Телеграмм бот для мониторинга изменений на артах в Wplace.
Основные параметры задаются в файле config.py.
Пример конфигурации для одной зоны:
ZoneConfig(
name="Арт 1", # Название зоны (любое для удобства)
image_pos=((0, 0, 100, 100), (100, 100, 200, 200)), # Координаты: (Tile X, Tile Y, Pixel X, Pixel Y)
save_file="zone1.png", # Файл для сохранения текущего состояния зоны
bot_token="...", # Токен Telegram-бота (получить у @BotFather)
chat_id="...", # ID чата или канала для уведомлений
ignored_authors=(), # Игнорируемые авторы (их ID можно узнать через API)
interval=600, # Интервал проверки в секундах (по умолчанию 600 = 10 минут)
use_white_bg=True # Отправлять видео с белым фоном вместо чёрного
),Можно указать несколько зон для наблюдения, просто перечислив их через запятую:
ZONE_CONFIGS = (
ZoneConfig(
name="Арт 1",
image_pos=((0, 0, 100, 100), (100, 100, 200, 200)),
save_file="zone1.png",
bot_token="токен1",
chat_id="чат_id1",
ignored_authors=(),
interval=600
),
ZoneConfig(
name="Арт 2",
image_pos=((200, 200, 300, 300), (300, 300, 400, 400)),
save_file="zone2.png",
bot_token="токен2",
chat_id="чат_id2",
ignored_authors=(),
interval=600,
use_white_bg=True
),
)SEND_VIDEO_INSTEAD_OF_GIF– отправка видео (MP4) вместо GIF. Рекомендуется: видео в Telegram меньше сжимаются и быстрее загружаются.SEND_FILTERED– еслиTrue, бот будет уведомлять даже об изменениях от игнорируемых авторов (авторы не из фильтра всё равно будеут помечены восклицательным знаком в начале сообщения).TEST_DONT_SAVE_ZONE– режим отладки, в котором изменения в артах не сохраняются ботом.
-
Установите зависимости:
pip install -r requirements.txt
-
Настройте файл
config.pyпод свои зоны. -
Запустите бота:
python main.py
-
Бот делает скриншот выбранной зоны каждые
intervalсекунд. -
Сравнивает текущее изображение с сохранённым.
-
Если есть изменения:
- Генерирует видео (или GIF) до / после
- Отправляет сообщение в Telegram-чат
- Сохраняет новое состояние зоны
-
Изменения от авторов из
ignored_authorsигнорируются (еслиSEND_FILTERED=False).
- Bot Token → создать бота через @BotFather.
- Chat ID → узнать через @getmy_id_bot.
Если вы обнаружили ошибки или хотите предложить улучшения, создайте issue в репозитории проекта или напишите мне в дискорд.