KworkHunterBot - Telegram-бот для фрилансеров [GitHub]

KworkHunterBot — это Telegram-бот для фрилансеров, который помогает быстро отслеживать новые проекты на бирже Kwork и оперативно откликаться на них, увеличивая ваши шансы получить заказ.

Возможности

  • Мгновенные уведомления о новых проектах по выбранным категориям Kwork.
  • Авторизация через Kwork прямо в Telegram.
  • Просмотр информации о проекте и быстрый переход к отклику.
  • Получение вложений к проектам прямо в чат.
  • Безопасное хранение данных (логин/пароль шифруются, ключ шифрования теряется после перезагрузки бота).

Как это работает?

  1. Авторизация: Введите свои данные Kwork через бота (все данные шифруются и не передаются третьим лицам).
  2. Выбор категорий: На сайте Kwork выберите любимые рубрики, по которым хотите получать проекты.
  3. Включение отслеживания: Включите отслеживание через раздел «Профиль» в боте.
  4. Получение уведомлений: Бот будет присылать новые проекты по выбранным категориям сразу после их появления на бирже.

Быстрый старт

1. Клонируйте репозиторий:

git clone git@github.com:kurochki-n/Kwork-Hunter-Bot.git cd Kwork-Hunter-Bot

2. Установите зависимости с помощью пакетного менеджера uv:

uv sync

3. Настройте переменные окружения:

Создайте файл .env на основе .env.example и укажите токен бота, строку подключения к БД (можно скопировать из .env.example) и контакт поддержки.

4. Запустите бота:

uv run main.py

Структура проекта

  • main.py — точка входа, настройка бота, логирование, запуск планировщика.
  • api/ — работа с API Kwork, авторизация, получение проектов.
  • bot/handlers/ — обработчики команд, кнопок, локализация сообщений.
  • bot/utils/ — вспомогательные функции, трекинг проектов.
  • db/ — модели SQLAlchemy, база данных пользователей и сессий.
  • config_reader.py — чтение конфигурации из .env.
  • logs/ — папка для логов (создается при первом запуске бота).
  • temp/ — временные файлы (создается при первом запуске бота).

Модели данных

  • User — пользователь Telegram, связанный с одной сессией Kwork.
  • KworkSession — данные для авторизации и отслеживания проектов (логин, пароль, cookie, последние проекты).

Требования

  • Python 3.13+
  • SQLite (по умолчанию) или другая поддерживаемая СУБД
  • Telegram Bot API токен (получите в BotFather)
  • Аккаунт продавца на Kwork
1
Начать дискуссию