# TelegramPoster Цей бот використовується для однієї-єдиної задачі - розміщувати фотографії з мого особистого архіву. Ось його код, тож Ви також можете захостити бота самостійно та розважитися з ним. Тільки не очікуйте, що він ідеальним. Не буде. Але гей, Ви завжди можете його доробити під себе ;) ## Установка Для запуску цього бота спочатку потрібно мати інтерпретатор Python та встановлений git. Google — Ваш друг у пошуках. Ви також можете ігнорувати git і просто завантажити код, також має спрацювати добре. Після цього Ви готові до встановлення. > У цьому README я вважаю, що Ви використовуєте python за замовчуванням у своїй > системі і PATH Вашої системи містить його. Якщо Ваш python за замовчуванням > є `python3` або, наприклад, `/home/user/.local/bin/python3.9` - використовуйте його натомість. > Якщо це нестандартний шлях до виконуваного файлу - Вам також слід змінити > це у скриптах, які Ви використовуватимете (`loop.sh`, `loop.bat`, `start.sh` та `start.bat`). 1. Завантажте бота: 1. `git clone https://git.end-play.xyz/profitroll/TelegramSender.git` (якщо хочете використовувати git) 2. `cd ./TelegramSender` 2. Встановіть залежності: `python -m pip install -r requirements.txt` Без їх установки бот не зможе працювати взагалі 3. Встановіть додаткові залежності [Не обов'язково]: `python -m pip install -r requirements-optional.txt` Вони не є обов’язковими, але можуть прискорити роботу бота 4. Налаштуйте свого бота за допомогою текстового редактора: `nano config.json` Ви можете редагувати за допомогою vim, nano, у Windows це Notepad або Notepad++. На Ваш смак. Якщо Ви не знаєте, де знайти bot_token і свій ідентифікатор, тут Ви можете знайти кілька підказок: [отримати токен бота](https://www.siteguarding.com/en/how-to-get-telegram-bot-api-token), [отримати свій ідентифікатор](https://www.alphr.com/telegram-find-user-id/), [отримати api_hash і api_id](https://core.telegram.org/api/obtaining_api_id). Також не забудьте змінити режим роботи бота. Ключ `"mode"` має в собі ключі `"post"` та `"submit"`, кожен з який може бути `true` або `false`. 5. Додайте бота на канал: Звичайно, щоб використовувати свого бота, Вам потрібно мати канал або групу, інакше немає сенсу мати такого бота. [Тут](https://stackoverflow.com/a/33497769) Ви можете знайти короткий гайд, як додати свого бота до каналу. 6. Заповніть папку вмістом: Звичайно, бот не може опублікувати щось із нічого. Налаштуйте свій `config.json`, які медіа-типи бот повинен публікувати (`"posting", "extensions"`), коли їх публікувати (`"posting", "time"`), а також де їх знайти (`"locations"`). Ви також можете переміщати їх після надсилання, встановивши для `"posting", "move_sent"` значення `true`. 6. Готово, запускайте! `python ./main.py` Або ви також можете використовувати `.\start.bat` на Windows і `bash ./start.sh` на Linux. Крім того, доступні `loop.sh` і `loop.bat`, якщо ви хочете, щоб ваш бот запускався знову після зупинки або після використання команди `/reboot`. ## Аргументи командного рядка Звичайно, у бота вони також є. З ними можна виконувати деякі дії. * `--move-sent` - дозволяє перемістити всі надіслані файли з черги до папки надісланих * `--cleanup` - очистити файли в папках `queue` і `sent`, якщо вони вже надіслані. Потрібен аргумент `--confirm` * `--cleanup-index` - видалити всі надіслані записи з індексу. Потрібен аргумент `--confirm` * `--norun` - дозволяє виконувати наведені вище аргументи, не запускаючи самого бота Приклади: * `python3 ./main.py --move-sent --norun` * `python3 ./main.py --cleanup --confirm` ## Локалізація Бот може використовувати різні мови. Є деякі попередньо встановлені (Англійська та Українська), однак Ви можете додавати свої власні локалізації теж. Всі файли локалізації знаходяться у папці `locale`, якщо в конфігураційному файлі не вказано іншу. Просто скопіюйте цікавлячий Вас файл, назвіть його відповідно до [тегів мови IETF](https://en.wikipedia.org/wiki/IETF_language_tag) (якщо Ви хочете, щоб переклад був сумісним з перекладами Telegram) або просто вкажіть свою власну назву. Збережіть свій переклад як json файл і все готово. Якщо ви хочете змінити мову за замовчуванням для повідомлень самого бота, які не можуть визначити мову адміністратора, відредагуйте параметр `"locale"` у `config.json`. Якщо ця мова недоступна, замість неї буде використано `"locale_fallback"`. Якщо обидві мови недоступні - буде показано помилку. Для зміни мови виведення консолі та логування вам слід відредагувати `"locale_log"`. Ми рекомендуємо вносити будь-які зміни лише до вашої окремої мови. Або, принаймні, завжди мати резервну копію, наприклад, `en.json` як запасний варіант.