This repository has been archived on 2024-08-21. You can view files and clone it, but cannot push or open issues or pull requests.
TelegramPoster/README_uk.md
2023-07-03 12:34:55 +02:00

11 KiB
Raw Permalink Blame History

TelegramPoster

License: GPL Code style: black

Цей бот використовується для однієї-єдиної задачі - публікувати фотографії з мого особистого архіву. Ось його код, тож ви також можете запустити бота і погратися з ним самостійно. Тільки не очікуйте, що він буде ідеальним. Це не так. Але ви завжди можете його форкнути ;)

Залежності

Користуйтесь інструкцією зі встановлення MongoDB та README Photos API.

Зверніть увагу, що Photos API також потребує MongoDB, тому має сенс спочатку встановити й налаштувати Mongo.

Встановлення

Щоб запустити бота, вам потрібно мати інтерпретатор Python, Photos API, MongoDB і, за бажанням, git (якщо ви хочете оновлювати за допомогою git pull). Ви також можете проігнорувати git і просто завантажити вихідний код, це також повинно спрацювати. Після цього ви готові до роботи.

У цьому README я припускаю, що ви використовуєте python за замовчуванням у вашій системі, і він міститься у вашому системному PATH. Якщо ваш python за замовчуванням це python3 або, наприклад, /home/user/.local/bin/python3.9 - використовуйте його. Якщо це нестандартний шлях до виконуваного файлу - вам також слід змінити його у скриптах, які ви будете використовувати (loop.sh, loop.bat, start.sh та start.bat).

  1. Встановіть MongoDB та Photos API:

    1. Встановіть MongoDB, дотримуючись офіційного посібника зі встановлення
    2. Встановіть Photos API, дотримуючись README Photos API
  2. Завантажте бота:

    1. git clone https://git.end-play.xyz/profitroll/TelegramPoster.git (якщо ви використовуєте git)
    2. cd TelegramPoster
  3. Створіть віртуальне середовище [Необов'язково]:

    1. Встановіть модуль virtualenv: pip install virtualenv
    2. Створіть venv: python -m venv .venv
    3. Активуйте його за допомогою ource .venv/bin/activate в Linux, .venv\Scripts\activate.bat в CMD або .venv\Scripts\Activate.ps1 в PowerShell.
  4. Встановіть залежності проекту:

    python -m pip install -r requirements.txt.
    Без їх встановлення бот не зможе працювати взагалі.

  5. Налаштуйте необхідні ключі за допомогою вашого улюбленого текстового редактора:

    1. Скопіюйте конфігураційний файл: cp config_example.json config.json
    2. Відкрийте config.json за допомогою вашого улюбленого текстового редактора. Наприклад, nano config.json, але ви також можете відредагувати його за допомогою vim, mcedit або Notepad/Notepad++ на Windows
    3. Змініть значення ключів "bot.owner", "bot.api_id", "bot.api_hash" і "bot.bot_token".

    Якщо ви не знаєте, де знайти bot_token і ваш id - тут ви можете знайти кілька підказок: отримати токен бота, отримати свій id, отримати api_hash та api_id.

  6. Налаштування бази даних та API:

    1. Налаштуйте базу даних:

      1. Змініть хост і порт бази даних у ключах "database.host" і "database.port". Для локальної установки за замовчуванням це будуть 127.0.0.1 і 27017 відповідно
      2. Змініть ім'я бази даних в "database.name". Вона буде автоматично створена при запуску
      3. Якщо ви змінили користувача та пароль для доступу до бази даних, вам також слід змінити ключі "database.user" та "database.password", інакше залиште їх null (за замовчуванням).
    2. Налаштуйте Photos API:

      1. Змініть "posting.api.address" та "posting.api.address_external" на ті, що використовує ваш сервер API
      2. Запустіть бота за допомогою python main.py --create-user --create-album, щоб налаштувати нового користувача та альбом. Ви також можете скористатися ручним створенням користувача і альбому, описаним у вікі. Ви також можете змінити ім'я користувача, пароль і альбом у "posting.api" на користувача і альбом, які у вас є, якщо у вас вже налаштовані альбом і користувач Photos API. У цьому випадку вам не потрібно створювати нові.
  7. Додайте бота до каналу:

    Щоб використовувати бота, вам, звичайно, потрібно мати канал або групу, інакше немає сенсу мати такого бота. Тут ви можете знайти короткий посібник, як додати бота до каналу. Після цього просто встановіть "posting.channel" на ID вашого каналу і "posting.comments" на ID групи коментарів.

  8. Налаштуйте час публікації:

    Щоб ваш бот публікував випадковий контент, вам потрібно налаштувати "posting.time" зі списком рядків у форматі "ДД:ММ" або використовувати "posting.interval" у форматі "XdXhXmXs". Щоб використовувати інтервал замість вибраного часу, встановіть "posting.use_interval" у значення true.

  9. Готово, запускайте!

    Переконайтеся, що MongoDB і Photos API запущені і використовуйте python main.py для запуску бота.
    Або ви також можете використовувати .\start.bat в Windows і bash ./start.sh в Linux.
    Додатково доступні loop.sh і loop.bat, якщо ви хочете, щоб ваш бот запустився знову після зупинки або після використання команди /shutdown.

Якщо вам потрібні додаткові інструкції щодо налаштування бота або у вас виникли труднощі - скористайтеся вікі в цьому репозиторії, щоб отримати детальніші інструкції.

CLI аргументи

Звичайно, бот також має CLI аргументи. За допомогою них можна виконувати деякі дії.

  • --create-user - створити нового користувача API. Потребує встановленого конфігураційного ключа "posting.api.address";
  • --create-album - створити новий альбом API. Вимагає заповнених адреси API та конфігурації користувача ("posting.api").

Приклади:

  • python main.py --create-user
  • python main.py --create-user --create-album

Поради та покращення

Локалізація

Бот може використовувати файли локалізації. Деякі з них встановлено за замовчуванням (англійська та українська), але ви також можете додавати свої власні.

Усі файли локалізації знаходяться у теці locale. Просто скопіюйте файл локалі за вашим вибором, назвіть його відповідно до мовних кодів IETF (якщо ви хочете, щоб ваша локаль була сумісна з локалями Telegram) або дайте йому власну назву. Збережіть переклад у форматі json, і все буде готово. Якщо ви хочете змінити локаль за замовчуванням для повідомлень - відредагуйте параметр "locale" у файлі config.json.

Ми рекомендуємо вносити зміни лише у вашу власну локаль. Або, принаймні, завжди мати резервну копію, наприклад, en.json як запасний варіант.