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")
|
TIMEZONE = ZoneInfo("Asia/Shanghai")
|
||||||
COUNTRIES = ["KZ", "UZ", "KG", "AM"]
|
COUNTRIES = ["KZ", "UZ", "KG", "AM"]
|
||||||
# 平台只支持“每隔几小时”,因此按小时调度,仅在此时刻真正更新(Asia/Shanghai)
|
|
||||||
UPDATE_HOUR = 11
|
|
||||||
|
|
||||||
DATE_HEADERS = {"date"}
|
DATE_HEADERS = {"date"}
|
||||||
GEO_HEADERS = {"geo", "country"}
|
GEO_HEADERS = {"geo", "country"}
|
||||||
@@ -245,14 +243,9 @@ def build_payload(rows, now):
|
|||||||
|
|
||||||
def main():
|
def main():
|
||||||
if len(sys.argv) < 2:
|
if len(sys.argv) < 2:
|
||||||
raise SystemExit("用法: update_report_data.py <输出文件> [--force]")
|
raise SystemExit("用法: update_report_data.py <输出文件>")
|
||||||
|
|
||||||
now = datetime.now(TIMEZONE)
|
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"})
|
request = urllib.request.Request(CSV_URL, headers={"User-Agent": "AgentStage-Ozon-Report/2.0"})
|
||||||
with urllib.request.urlopen(request, timeout=90) as response:
|
with urllib.request.urlopen(request, timeout=90) as response:
|
||||||
text = response.read().decode("utf-8-sig")
|
text = response.read().decode("utf-8-sig")
|
||||||
|
|||||||
Reference in New Issue
Block a user