Refresh report data (manual update)
This commit is contained in:
@@ -1 +0,0 @@
|
||||
1
|
||||
@@ -1,17 +0,0 @@
|
||||
#!/bin/sh
|
||||
set -eu
|
||||
|
||||
# 平台按 schedule.conf 每小时执行;脚本内部只在北京时间 11 点真正写入数据。
|
||||
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
|
||||
TMP_FILE="$SCRIPT_DIR/data.json.tmp"
|
||||
OUTPUT_FILE="$SCRIPT_DIR/data.json"
|
||||
|
||||
rm -f "$TMP_FILE"
|
||||
python3 "$SCRIPT_DIR/update_report_data.py" "$TMP_FILE" "$@"
|
||||
|
||||
if [ -f "$TMP_FILE" ]; then
|
||||
mv "$TMP_FILE" "$OUTPUT_FILE"
|
||||
echo "Updated $OUTPUT_FILE"
|
||||
else
|
||||
echo "Skipped: not the scheduled update hour"
|
||||
fi
|
||||
@@ -23,8 +23,6 @@ CSV_URL = (
|
||||
)
|
||||
TIMEZONE = ZoneInfo("Asia/Shanghai")
|
||||
COUNTRIES = ["KZ", "UZ", "KG", "AM"]
|
||||
# 平台只支持“每隔几小时”,因此按小时调度,仅在此时刻真正更新(Asia/Shanghai)
|
||||
UPDATE_HOUR = 11
|
||||
|
||||
DATE_HEADERS = {"date"}
|
||||
GEO_HEADERS = {"geo", "country"}
|
||||
@@ -245,14 +243,9 @@ def build_payload(rows, now):
|
||||
|
||||
def main():
|
||||
if len(sys.argv) < 2:
|
||||
raise SystemExit("用法: update_report_data.py <输出文件> [--force]")
|
||||
raise SystemExit("用法: update_report_data.py <输出文件>")
|
||||
|
||||
now = datetime.now(TIMEZONE)
|
||||
forced = "--force" in sys.argv[2:]
|
||||
if not forced and now.hour != UPDATE_HOUR:
|
||||
print(f"SKIP {now:%Y-%m-%d %H:%M} 非 {UPDATE_HOUR}:00(Asia/Shanghai),不更新")
|
||||
return
|
||||
|
||||
request = urllib.request.Request(CSV_URL, headers={"User-Agent": "AgentStage-Ozon-Report/2.0"})
|
||||
with urllib.request.urlopen(request, timeout=90) as response:
|
||||
text = response.read().decode("utf-8-sig")
|
||||
|
||||
Reference in New Issue
Block a user