From 7eb1a8ed1a007d80de41d131071ee38f5872700c Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期五, 07 二月 2025 14:26:37 +0800
Subject: [PATCH] 辨识度票策略修改/恢复P撤/上传订阅涨幅

---
 third_data/kpl_api.py |   80 ++++++++++++++++++++++++++++++----------
 1 files changed, 60 insertions(+), 20 deletions(-)

diff --git a/third_data/kpl_api.py b/third_data/kpl_api.py
index 405db99..ea1fbac 100644
--- a/third_data/kpl_api.py
+++ b/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 = {
@@ -49,24 +49,22 @@
 def __getLimitUpInfo(pidType, page, pageSize):
     data = f"Order=0&a=DailyLimitPerformance&st={pageSize}&apiv=w35&Type=4&c=HomeDingPan&PhoneOSNew=1&DeviceID=a38adabd-99ef-3116-8bb9-6d893c846e24&VerSion=5.13.0.0&Index={(page - 1) * pageSize}&PidType={pidType}&"
     result = __base_request("https://apphq.longhuvip.com/w1/api/index.php", data=data)
-    print(result)
     return result
 
 
 def getLimitUpInfoNew():
     pids = [(1, "棣栨澘"), (2, "2杩炴澘"), (3, "3杩炴澘"), (4, "4杩炴澘"), (5, "")]
     fresults = []
+    day = ''
     for pid_info in pids:
         results = []
         for i in range(100):
             start_time = time.time()
             result = __getLimitUpInfo(pid_info[0], i + 1, 20)
-            print("璇锋眰鐢ㄦ椂", time.time() - start_time)
             result = json.loads(result)
             datas = result["info"][0]
             results.extend(datas)
             day = result["info"][1]
-            print(datas)
             if len(datas) < 20:
                 break
         for r in results:
@@ -78,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():
@@ -127,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
+
+
 # 鑾峰彇浠g爜鐨勬澘鍧�
 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&"
@@ -166,12 +171,20 @@
 
 # 鑾峰彇浠g爜鐨勭簿閫夋澘鍧�
 # 杩斿洖鏍煎紡锛歔(鏉垮潡浠g爜,鏉垮潡鍚嶇О,娑ㄥ箙鐧惧垎姣�)]
-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
 
 
 # 鑾峰彇鑷敱娴侀�氬競鍊�
@@ -192,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 []
 
 
@@ -212,20 +225,23 @@
 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:
         pass
-
-    try:
-        _bks = __getConceptBK(code)
-        print(_bks)
-        if _bks:
-            blocks.extend(_bks)
-    except:
-        pass
+    if not blocks:
+        try:
+            _bks = __getConceptBK(code)
+            print(_bks)
+            if _bks:
+                blocks.extend(_bks)
+        except:
+            pass
     return list(set(blocks))
 
 
@@ -260,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(getCodeBlocks("002350"))
+    result =getHistoryLimitUpInfo("2024-02-19")
+    print(result)

--
Gitblit v1.8.0