diff --git a/lottery-hk/scripts/lottery_特码.py b/lottery-hk/scripts/lottery_特码.py index 9179183..628bb60 100755 --- a/lottery-hk/scripts/lottery_特码.py +++ b/lottery-hk/scripts/lottery_特码.py @@ -130,35 +130,33 @@ def get_te_ma_candidates(period='082'): def format_te_ma_result(weights, period=None, budget=15, qi_week=None, qi_day=None, qi_nq=None): """输出特码候选 + 推荐分配 - period: 不传则自动取 v_xg.json Qi 期 - qi_week / qi_day: 配套开彩日 (不传取 ?) - qi_nq: Nq 期号 (再下次) + period: 要分析哪期 (None=自动取 v_xg.json Qi) + qi_week / qi_day / qi_nq: v_xg.json 字段 (None=自动取) """ - # 自动取 Qi + 挂牌期信息 - if period is None or qi_week is None or qi_day is None or qi_nq is None: - try: - import urllib.request - req = urllib.request.Request('https://btc.tktk.app/data/v_xg.json', - headers={'User-Agent': 'Mozilla/5.0'}) - with urllib.request.urlopen(req, timeout=10) as r: - v = json.loads(r.read().decode('utf-8')) - if period is None: - period = v.get('Qi', '???') - if qi_week is None: - qi_week = v.get('Week', '?') - if qi_day is None: - qi_day = v.get('Day', '?') - if qi_nq is None: - qi_nq = v.get('Nq', '?') - except Exception: - if period is None: - period = '???' - if qi_week is None: - qi_week = '?' - if qi_day is None: - qi_day = '?' - if qi_nq is None: - qi_nq = '?' + # 一次性查 v_xg.json 拿所有字段 + try: + import urllib.request + req = urllib.request.Request('https://btc.tktk.app/data/v_xg.json', + headers={'User-Agent': 'Mozilla/5.0'}) + with urllib.request.urlopen(req, timeout=10) as r: + v = json.loads(r.read().decode('utf-8')) + qi_xg = v.get('Qi', '???') + nq_xg = v.get('Nq', '???') + week_xg = v.get('Week', '?') + day_xg = v.get('Day', '?') + except Exception: + qi_xg = nq_xg = '???' + week_xg = day_xg = '?' + + # 如果用户没传 period, 默认用 Qi + if period is None: + period = qi_xg + if qi_week is None: + qi_week = week_xg + if qi_day is None: + qi_day = day_xg + if qi_nq is None: + qi_nq = nq_xg L = [] L.append("=" * 62) @@ -168,9 +166,19 @@ def format_te_ma_result(weights, period=None, budget=15, qi_week=None, qi_day=No # Nq = 未开下期 # Week/Day = Nq 期开彩日 # Data.1-7 = Qi-2 期已开号码 (不是 Qi 期) - # 所以 Qi 期的开彩日要推算 (-3 天 from Nq 期) - L.append(f"v_xg.json Qi={period} (最新已开, 刚开) | Nq={qi_nq} (未开下期)") - L.append(f"Qi 期推测开彩日: {qi_week} Day={qi_day} 之前 1 个开彩日 (-3 天)") + # 如果 period == Nq 期, Week/Day 就是 period 开彩日 (直接用) + # 如果 period == Qi 期, Week/Day 是 Nq 期开彩日 (要 -3 天推算 Qi 期) + if str(period) == str(qi_nq): + # period 是 Nq 期 (未开), Week/Day 直接是 period 开彩日 + L.append(f"v_xg.json: Qi={qi_xg} (最新已开) | Nq={nq_xg} (未开下期) | Week={week_xg} (Day={day_xg}) = 本期 {period} 期开彩日") + elif str(period) == str(qi_xg): + # period 是 Qi 期 (已开), Week/Day 是 Nq 期, 要 -3 天推算 Qi 期开彩日 + L.append(f"v_xg.json: Qi={qi_xg} (最新已开) | Nq={nq_xg} (未开下期) | Week={week_xg} (Day={day_xg}) = Nq 期开彩日") + L.append(f"本期 ({period}) 开彩日: Nq 期开彩日 ({qi_week} Day={qi_day}) 之前 1 个开彩日 (-3 天)") + else: + # period 是其他期 (Cli 传用户指定) + L.append(f"v_xg.json: Qi={qi_xg} (最新已开) | Nq={nq_xg} (未开下期) | Week={week_xg} (Day={day_xg}) = Nq 期开彩日") + L.append(f"本期 ({period}) 开彩日: 用户指定期 (非 Qi/Nq), 不推算") L.append("=" * 62) L.append("") L.append("📋 挂牌资料源:") @@ -247,13 +255,13 @@ if __name__ == '__main__': period = '082' weights = get_te_ma_candidates(period) # 自动取 v_xg.json Qi + Week + Day + Nq 一次, 传所有 + # (period 保留用户 CLI 传的, 不要被 Qi 覆盖 — Qi 只用来推算开彩日) try: import urllib.request req = urllib.request.Request('https://btc.tktk.app/data/v_xg.json', headers={'User-Agent': 'Mozilla/5.0'}) with urllib.request.urlopen(req, timeout=10) as r: v = json.loads(r.read().decode('utf-8')) - period = v.get('Qi', period) qi_week = v.get('Week', '?') qi_day = v.get('Day', '?') qi_nq = v.get('Nq', '?')