All checks were successful
CI/CD Pipeline / build-and-deploy (push) Successful in 1m47s
- Remove get_cookies.sh (targets a container without yt-dlp, already broken), get_cookies_local.sh, start_all.sh/stop_all.sh — these implement the old per-service-compose startup that now conflicts with the unified root docker-compose.yml. - Add cookies-cron/ — a reference copy of the scripts actually running via cron on the separate browser-equipped machine, with setup requirements and instructions for standing up a new cron host. - Update README.md/ARCHITECTURE.md to describe the current unified docker-compose + CI/CD deploy flow and host-mounted cookies instead of the old per-folder workflow.
111 lines
4.4 KiB
Bash
Executable file
111 lines
4.4 KiB
Bash
Executable file
#!/bin/bash
|
||
# Скрипт для обновления cookies Instagram и YouTube через cron
|
||
# Запускает скрипты получения cookies и копирует их на удаленный хост
|
||
|
||
set -euo pipefail
|
||
|
||
# Определяем директорию скрипта
|
||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||
cd "$SCRIPT_DIR"
|
||
|
||
# Настройки
|
||
INSTAGRAM_SCRIPT="$SCRIPT_DIR/get_instagram_cookies.sh"
|
||
YOUTUBE_SCRIPT="$SCRIPT_DIR/get_youtube_cookies.sh"
|
||
INSTAGRAM_COOKIES="$SCRIPT_DIR/instagram_cookies.txt"
|
||
YOUTUBE_COOKIES="$SCRIPT_DIR/youtube_cookies.txt"
|
||
REMOTE_HOST="germany"
|
||
REMOTE_INSTAGRAM_PATH="/root/services/videoDownloadTGbot/instagram_cookies.txt"
|
||
REMOTE_YOUTUBE_PATH="/root/services/videoDownloadTGbot/youtube_cookies.txt"
|
||
DEV_HOST="hermesDev"
|
||
DEV_INSTAGRAM_PATH="services/videoDownloadTGbot/instagram-downloader/instagram_cookies.txt"
|
||
DEV_YOUTUBE_PATH="services/videoDownloadTGbot/youtube-downloader/youtube_cookies.txt"
|
||
LOG_FILE="$SCRIPT_DIR/cron.log"
|
||
|
||
# Функция логирования
|
||
log() {
|
||
echo "[$(date '+%Y-%m-%d %H:%M:%S')] $*" | tee -a "$LOG_FILE"
|
||
}
|
||
|
||
# Функция обработки ошибок
|
||
error_exit() {
|
||
log "ОШИБКА: $*"
|
||
exit 1
|
||
}
|
||
|
||
log "=== Начало обновления cookies ==="
|
||
|
||
# Проверяем наличие скриптов
|
||
if [ ! -f "$INSTAGRAM_SCRIPT" ]; then
|
||
error_exit "Скрипт не найден: $INSTAGRAM_SCRIPT"
|
||
fi
|
||
|
||
if [ ! -f "$YOUTUBE_SCRIPT" ]; then
|
||
error_exit "Скрипт не найден: $YOUTUBE_SCRIPT"
|
||
fi
|
||
|
||
# Проверяем, что скрипты исполняемые
|
||
chmod +x "$INSTAGRAM_SCRIPT" "$YOUTUBE_SCRIPT"
|
||
|
||
# Получаем cookies Instagram
|
||
log "Получение cookies Instagram..."
|
||
if bash "$INSTAGRAM_SCRIPT" >> "$LOG_FILE" 2>&1; then
|
||
if [ -f "$INSTAGRAM_COOKIES" ]; then
|
||
log "✅ Cookies Instagram успешно получены"
|
||
else
|
||
error_exit "Файл cookies Instagram не был создан"
|
||
fi
|
||
else
|
||
error_exit "Ошибка при получении cookies Instagram (код возврата: $?)"
|
||
fi
|
||
|
||
# Получаем cookies YouTube
|
||
log "Получение cookies YouTube..."
|
||
if bash "$YOUTUBE_SCRIPT" >> "$LOG_FILE" 2>&1; then
|
||
if [ -f "$YOUTUBE_COOKIES" ]; then
|
||
log "✅ Cookies YouTube успешно получены"
|
||
else
|
||
error_exit "Файл cookies YouTube не был создан"
|
||
fi
|
||
else
|
||
# YouTube скрипт может завершиться с кодом 0, даже если новый файл не создан (использует старый)
|
||
if [ -f "$YOUTUBE_COOKIES" ]; then
|
||
log "✅ Cookies YouTube (возможно использован старый файл)"
|
||
else
|
||
error_exit "Файл cookies YouTube не найден"
|
||
fi
|
||
fi
|
||
|
||
# Копируем cookies на удаленный хост (прод)
|
||
log "Копирование cookies на удаленный хост $REMOTE_HOST..."
|
||
|
||
# Копируем Instagram cookies
|
||
if scp -q "$INSTAGRAM_COOKIES" "${REMOTE_HOST}:${REMOTE_INSTAGRAM_PATH}" 2>>"$LOG_FILE"; then
|
||
log "✅ Instagram cookies скопированы на $REMOTE_HOST"
|
||
else
|
||
error_exit "Ошибка при копировании Instagram cookies (код возврата: $?)"
|
||
fi
|
||
|
||
# Копируем YouTube cookies
|
||
if scp -q "$YOUTUBE_COOKIES" "${REMOTE_HOST}:${REMOTE_YOUTUBE_PATH}" 2>>"$LOG_FILE"; then
|
||
log "✅ YouTube cookies скопированы на $REMOTE_HOST"
|
||
else
|
||
error_exit "Ошибка при копировании YouTube cookies (код возврата: $?)"
|
||
fi
|
||
|
||
# Копируем cookies на тестовый стенд (не блокируем прод-доставку, если стенд недоступен)
|
||
log "Копирование cookies на тестовый стенд $DEV_HOST..."
|
||
|
||
if scp -q "$INSTAGRAM_COOKIES" "${DEV_HOST}:${DEV_INSTAGRAM_PATH}" 2>>"$LOG_FILE"; then
|
||
log "✅ Instagram cookies скопированы на $DEV_HOST"
|
||
else
|
||
log "⚠️ Не удалось скопировать Instagram cookies на $DEV_HOST (продолжаем)"
|
||
fi
|
||
|
||
if scp -q "$YOUTUBE_COOKIES" "${DEV_HOST}:${DEV_YOUTUBE_PATH}" 2>>"$LOG_FILE"; then
|
||
log "✅ YouTube cookies скопированы на $DEV_HOST"
|
||
else
|
||
log "⚠️ Не удалось скопировать YouTube cookies на $DEV_HOST (продолжаем)"
|
||
fi
|
||
|
||
log "=== Обновление cookies завершено успешно ==="
|
||
exit 0
|