Administrator
2025-02-07 7eb1a8ed1a007d80de41d131071ee38f5872700c
third_data/kpl_api.py
@@ -19,7 +19,7 @@
DABAN_TYPE_EVER_LIMIT_DOWN = 5
def __base_request(url, data, timeout=60):
def __base_request(url, data, timeout=10):
    DELEGATE = True
    if not DELEGATE:
        headers = {
@@ -55,6 +55,7 @@
def getLimitUpInfoNew():
    pids = [(1, "首板"), (2, "2连板"), (3, "3连板"), (4, "4连板"), (5, "")]
    fresults = []
    day = ''
    for pid_info in pids:
        results = []
        for i in range(100):
@@ -75,7 +76,7 @@
                    r[i] = kpl_util.filter_block(r[i])
        fresults.extend(results)
    return json.dumps({"errcode": 0, "list": fresults})
    return json.dumps({"errcode": 0, "list": fresults, "day": day})
def getLimitUpInfo():
@@ -124,6 +125,13 @@
    return result
def getMarketJingXuanRealRankingInfoByTimeRange(startTime, endTime, date, orderJingE_DESC=True):
    data = f"Order={1 if orderJingE_DESC else 0}&st=30&a=RealRankingInfo&apiv=w35&Type=5&Index=0&RStart={startTime}&c=ZhiShuRanking&VerSion=5.13.0.0&REnd={endTime}&Date={date}&PhoneOSNew=1&ZSType=7&DeviceID=d6f20ce9-fa08-31c9-a493-536ebb8e9773&"
    result = __base_request("https://apphq.longhuvip.com/w1/api/index.php",
                            data=data)
    return result
# 获取代码的板块
def getStockIDPlate(code):
    data = f"a=GetStockIDPlate_New&apiv=w32&c=StockL2Data&StockID={code}&PhoneOSNew=1&UserID=0&DeviceID=a38adabd-99ef-3116-8bb9-6d893c846e23&VerSion=5.8.0.2&Token=0&"
@@ -163,12 +171,20 @@
# 获取代码的精选板块
# 返回格式:[(板块代码,板块名称,涨幅百分比)]
def getCodeJingXuanBlocks(code):
def getCodeJingXuanBlocks(code, jx=True):
    data = f"a=GetStockIDPlate&apiv=w32&Type=2&c=StockL2Data&StockID={code}&PhoneOSNew=1&UserID=0&DeviceID=a38adabd-99ef-3116-8bb9-6d893c846e23&VerSion=5.8.0.2&Token=0&"
    result = __base_request("https://apphq.longhuvip.com/w1/api/index.php", data=data)
    result = json.loads(result)
    print(result)
    return result.get("ListJX") if result.get("ListJX") else result.get("List")
    # print(result)
    if jx:
        return result.get("ListJX") if result.get("ListJX") else result.get("List")
    else:
        fresults = []
        if result.get("List"):
            fresults.extend(result.get("List"))
        if result.get("ListJX"):
            fresults.extend(result.get("ListJX"))
        return fresults
# 获取自由流通市值
@@ -189,7 +205,7 @@
    if result:
        if "List" in result:
            names = [kpl_util.filter_block(x["CName"]) for x in result["List"]]
            return names
            return names if len(names) < 3 else names[:2]
    return []
@@ -209,8 +225,11 @@
def getCodeBlocks(code):
    blocks = []
    try:
        _bks = __getConceptJXBK(code)
        print(_bks)
        _bks = getCodeJingXuanBlocks(code)
        # 取前2个
        if _bks and len(_bks) > 2:
            _bks = _bks[:2]
        _bks = [x[1] for x in _bks]
        if _bks:
            blocks.extend(_bks)
    except:
@@ -257,5 +276,29 @@
    return None
def getZLJECodesRank(index):
    """
    获取主力金额的排行
    @return:
    """
    data = f"Order=1&a=RealRankingInfo_W8&st=50&c=NewStockRanking&PhoneOSNew=1&RStart=0925&DeviceID=d6f20ce9-fa08-31c9-a493-536ebb8e9773&VerSion=5.13.0.0&Isst=0&index={index}&Date=&REnd=1420&apiv=w35&Type=1&FilterMotherboard=0&Filter=0&Ratio=6&FilterTIB=1&FilterGem=0&"
    result = __base_request("https://apphwhq.longhuvip.com/w1/api/index.php", data=data, timeout=3)
    result = json.loads(result)
    return result
def getMarketStrong():
    """
    获取市场强度
    :return:
    """
    result = __base_request("https://apphwhq.longhuvip.com/w1/api/index.php",
                            data=f"a=DiskReview&apiv=w35&c=HomeDingPan&VerSion=5.13.0.0&PhoneOSNew=1&DeviceID=d6f20ce9-fa08-31c9-a493-536ebb8e9773&",
                            timeout=3)
    data = json.loads(result)
    return int(data["info"]["strong"])
if __name__ == "__main__":
    print(getLimitUpInfoNew())
    result =getHistoryLimitUpInfo("2024-02-19")
    print(result)