Files
redairsoft_vk_gt_max_sender/.env.example
T
exostring ec65aaf57d Fix duplicate-post and timeout bugs in TG/MAX posting pipeline
- Stop blindly retrying send_photo/send_video/send_media_group and MAX
  send_message on ambiguous network timeouts - a timeout doesn't prove
  the message wasn't delivered, and retrying risked posting duplicates
  (observed live: a video posted 3-5x after repeated timeout retries).
- Raise/rework timeouts that were too short for real large-file transfer
  speeds: TG media upload timeout, and yt-dlp download now uses stall
  detection (killed only on true silence) instead of a flat ceiling that
  was cutting off legitimately slow-but-successful video downloads.
- Fix sendRichMessage: ok=true with an unparseable message_id no longer
  triggers a fallback send (Telegram already created the message).
- MAX: videos over the documented 250MB cap are now sent as a "watch via
  link" note instead of silently failing the upload.
- Add PRAGMA busy_timeout to all DB connections.
- Remove unused MAX_MEDIA_CHANNEL_ID (MAX's /uploads returns a portable
  token directly, no staging channel needed, unlike Telegram).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-15 12:17:47 +05:00

95 lines
3.6 KiB
Bash

# ==========================================
# VKontakte Settings
# ==========================================
# VK User/Service access token
VK_ACCESS_TOKEN=vk1.a.your_vk_token_here
# Target VK source: screen name, URL or owner_id (e.g., "redairsoft", "club123456", "-123456", "https://vk.com/redairsoft")
VK_SOURCE=redairsoft
# VK API Version
VK_API_VERSION=5.199
# Number of wall posts to fetch each cycle (default 10)
VK_CHECK_COUNT=10
# ==========================================
# Telegram Settings
# ==========================================
# Telegram Bot Token (from @BotFather)
TG_BOT_TOKEN=123456789:ABCdefGHIjklMNOpqrSTUvwxYZ
# Destination Chat/Channel ID (e.g., "-1001234567890" or with topic thread "-1001234567890:42")
TG_CHAT_ID=-1001234567890
# Optional TG Media Storage Channel (e.g. for generating permanent file_ids)
TG_MEDIA_CHANNEL_ID=
# Admin Telegram ID(s) for notifications & reports (single ID or comma-separated "123456,789012")
TG_ADMIN_IDS=123456789
# Timeout (seconds) for send_photo/send_video/send_media_group. Must comfortably
# cover your largest expected video at real upload speed (default 1800 = 30min).
TG_MEDIA_UPLOAD_TIMEOUT_SEC=1800
# ==========================================
# Local Telegram Bot API (Optional)
# If TELEGRAM_API_ID & TELEGRAM_API_HASH are provided, local API server runs inside container automatically
# ==========================================
LOCAL_BOT_API_URL=
TELEGRAM_API_ID=
TELEGRAM_API_HASH=
# ==========================================
# MAX Messenger Settings
# ==========================================
# MAX Bot Token
MAX_BOT_TOKEN=your_max_bot_token_here
# MAX Destination Chat ID
MAX_CHAT_ID=123456
# MAX API Base URL
MAX_API_BASE_URL=https://platform-api2.max.ru
# MAX's documented hard cap for a single video attachment. Videos over this are
# sent as a "watch via link" text note instead of failing the upload.
MAX_VIDEO_LIMIT_MB=250
# ==========================================
# Polling, Reporting & Maintenance
# ==========================================
# Check interval in minutes (default: 15)
CHECK_INTERVAL_MINUTES=15
# Initial start behavior on fresh DB:
# "skip_existing" (default) - ignores old history, posts only new posts published after start
# "publish_latest_one" - publishes only the 1 latest post and skips older ones
# "publish_all" - publishes all wall posts fetched
BOOTSTRAP_MODE=skip_existing
# Send report to admin even if 0 new posts were found
REPORT_EMPTY_RUNS=false
# Send report to admin if an error occurred during checking/posting
REPORT_ON_ERROR=true
# Clean stale temp files older than X minutes (default: 30)
CACHE_MAX_AGE_MINUTES=30
# ==========================================
# Media & Video Limits
# ==========================================
# Max video size for Cloud TG API in MB (limit: 49-50 MB)
VIDEO_MAX_SIZE_MB_CLOUD=49
# Max video size when using Local TG API in MB (supports up to 2000 MB)
VIDEO_MAX_SIZE_MB_LOCAL=500
# Max video duration in seconds (default: 600s / 10 min)
VIDEO_MAX_DURATION_SEC=600
# Max video resolution height (default: 720p)
VIDEO_MAX_HEIGHT=720
# ==========================================
# Post Formatting & Customization
# ==========================================
# Text to prepend before every post
HEADER_TEXT=
# Text to append after every post
FOOTER_TEXT=
# Common hashtags to attach (e.g., "#redairsoft #страйкбол")
COMMON_TAGS=#redairsoft #страйкбол
# Make the first line of the post bold
FORMAT_FIRST_LINE_BOLD=true
# Telegram auto-reaction emoji on published posts (real Bot API method, unlike MAX)
TG_AUTO_REACTION=👍
TG_AUTO_REACTION_ENABLED=true
# Logging Level (DEBUG, INFO, WARNING, ERROR)
LOG_LEVEL=INFO