68 lines
2.6 KiB
Batchfile
68 lines
2.6 KiB
Batchfile
@echo off
|
|
if not defined GYXX_PYTHON set "GYXX_PYTHON=python"
|
|
REM Daily 22:00 task: collect collaborator + self-operated exposure, write back to Feishu, then sync cmt_notes.
|
|
REM Historical launcher retained for provenance; production scheduling is owned by gyxx schedule run.
|
|
|
|
setlocal
|
|
|
|
for %%I in ("%~dp0..\..") do set "PROJECT_DIR=%%~fI"
|
|
if not defined GYXX_DATA_ROOT (
|
|
if not defined GYXX_PROJECT_ROOT (
|
|
echo ERROR: GYXX_DATA_ROOT or GYXX_PROJECT_ROOT must be defined. 1>&2
|
|
exit /b 3
|
|
)
|
|
set "GYXX_DATA_ROOT=%GYXX_PROJECT_ROOT%\var"
|
|
)
|
|
set LOG_DIR=%GYXX_DATA_ROOT%\logs\content_marketing\scheduled
|
|
REM The Python scheduler service may inject a project-specific interpreter.
|
|
set PYTHON=%GYXX_PYTHON%
|
|
where %PYTHON% >nul 2>&1 || set PYTHON=python
|
|
|
|
if not exist "%LOG_DIR%" mkdir "%LOG_DIR%"
|
|
|
|
set TS=%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%%time:~6,2%
|
|
set TS=%TS: =0%
|
|
|
|
set LOG_FILE=%LOG_DIR%\daily_run_%TS%.log
|
|
|
|
echo === Daily run started at %date% %time% === > "%LOG_FILE%"
|
|
echo PROJECT_DIR=%PROJECT_DIR% >> "%LOG_FILE%"
|
|
|
|
cd /d "%PROJECT_DIR%"
|
|
|
|
echo --- [step 1] run_all.py (collaborator only; includes collaborator mapping refresh) --- >> "%LOG_FILE%"
|
|
call %PYTHON% run_all.py --daily-scope >> "%LOG_FILE%" 2>&1
|
|
set RC_RUN=%ERRORLEVEL%
|
|
echo run_all exit=%RC_RUN% >> "%LOG_FILE%"
|
|
|
|
echo --- [step 2] refresh_self_mapping.py --- >> "%LOG_FILE%"
|
|
call %PYTHON% data\tools\refresh_self_mapping.py >> "%LOG_FILE%" 2>&1
|
|
set RC_SELF_MAP=%ERRORLEVEL%
|
|
echo refresh_self_mapping exit=%RC_SELF_MAP% >> "%LOG_FILE%"
|
|
|
|
echo --- [step 3] self_bilibili_scraper.py --- >> "%LOG_FILE%"
|
|
call %PYTHON% self_bilibili_scraper.py >> "%LOG_FILE%" 2>&1
|
|
set RC_SELF_BILI=%ERRORLEVEL%
|
|
echo self_bilibili exit=%RC_SELF_BILI% >> "%LOG_FILE%"
|
|
|
|
echo --- [step 4] chanmama_scraper.py (self-operated Douyin) --- >> "%LOG_FILE%"
|
|
call %PYTHON% chanmama_scraper.py >> "%LOG_FILE%" 2>&1
|
|
set RC_SELF_DOUYIN=%ERRORLEVEL%
|
|
echo chanmama exit=%RC_SELF_DOUYIN% >> "%LOG_FILE%"
|
|
|
|
echo --- [step 5] sync_metrics_to_cmt_notes.py --- >> "%LOG_FILE%"
|
|
call %PYTHON% data\tools\sync_metrics_to_cmt_notes.py >> "%LOG_FILE%" 2>&1
|
|
set RC_SYNC=%ERRORLEVEL%
|
|
echo sync exit=%RC_SYNC% >> "%LOG_FILE%"
|
|
|
|
set FINAL_RC=0
|
|
if not "%RC_RUN%"=="0" set FINAL_RC=1
|
|
if not "%RC_SELF_MAP%"=="0" set FINAL_RC=1
|
|
if not "%RC_SELF_BILI%"=="0" set FINAL_RC=1
|
|
if not "%RC_SELF_DOUYIN%"=="0" set FINAL_RC=1
|
|
if not "%RC_SYNC%"=="0" set FINAL_RC=1
|
|
|
|
echo === Daily run finished at %date% %time% (run=%RC_RUN%, self_map=%RC_SELF_MAP%, self_bili=%RC_SELF_BILI%, self_douyin=%RC_SELF_DOUYIN%, sync=%RC_SYNC%, final=%FINAL_RC%) === >> "%LOG_FILE%"
|
|
|
|
endlocal & exit /b %FINAL_RC%
|