Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/c29r3/apy-checker
https://github.com/c29r3/apy-checker
Last synced: 28 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/c29r3/apy-checker
- Owner: c29r3
- Created: 2024-07-31T16:58:47.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2024-09-18T15:36:12.000Z (about 2 months ago)
- Last Synced: 2024-10-11T05:27:10.871Z (28 days ago)
- Language: Python
- Size: 50.8 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
### README.md
---
#### English Version
# APY Monitoring Telegram Bot
This Telegram bot is designed to monitor APY (Annual Percentage Yield) values from two sources: Solend and Kamino. It periodically collects data and sends notifications if the APY values meet certain conditions.
## Features
### Periodic Data Collection
- The bot periodically fetches APY values for USDC and USDT from Solend and Kamino.
- The data is cached for subsequent use and comparison.### Notifications
- The bot sends notifications on Telegram if the APY values from one of the sources are less than or equal to the specified minimum threshold (`MIN_APY_THRESHOLD`).
- The bot also sends notifications if the APY change (in percentage) between two consecutive measurements exceeds the specified threshold (`PERCENTAGE_CHANGE`).### Command Handling
- `/start`: Sends a welcome message and provides buttons for interacting with the bot.
- `/apy`: Sends the current cached APY values for Solend and Kamino.
- `/set_threshold`: Allows authorized users to set a new minimum APY threshold.
- `/set_percentage_change`: Allows authorized users to set a new APY percentage change threshold.
- `/show_config`: Displays the current bot configuration (authorized users, thresholds, and check interval).### Authorization and Request Frequency Control
- The bot supports a list of authorized users who can change settings.
- It controls the frequency of user requests to prevent spam.## Technical Details
- **Logging**: Logs all important events and errors for easier diagnosis and debugging.
- **Multithreading**: The bot runs in a separate thread, allowing it to process commands and collect data simultaneously.
- **Configuration Parameters**: Loaded from `config.json`, including Telegram token, chat ID, check interval, APY thresholds, and authorized users list.### Main Dependencies
- `requests`: For making HTTP requests to Solend and Kamino APIs.
- `telebot`: For working with the Telegram Bot API.
- `threading`: For organizing multithreading.
- `logging`: For event and error logging.
- `json`: For working with the configuration file.
- `pytz`: For working with time zones.This bot is useful for automatic monitoring of financial indicators and receiving notifications about significant APY changes.
---
#### Russian Version
# Телеграм-бот для мониторинга APY
Этот телеграм-бот предназначен для мониторинга значений APY (годовая процентная доходность) из двух источников: Solend и Kamino. Он периодически собирает данные и отправляет уведомления, если значения APY удовлетворяют определённым условиям.
## Функции
### Периодический сбор данных
- Бот периодически запрашивает значения APY для USDC и USDT из Solend и Kamino.
- Данные кэшируются для последующего использования и сравнения.### Уведомления
- Бот отправляет уведомления в Telegram, если значения APY из одного из источников меньше или равны заданному минимальному порогу (`MIN_APY_THRESHOLD`).
- Бот также отправляет уведомления, если изменение APY (в процентах) между двумя последовательными замерами превышает заданный порог (`PERCENTAGE_CHANGE`).### Обработка команд
- `/start`: Отправляет приветственное сообщение и предоставляет кнопки для взаимодействия с ботом.
- `/apy`: Отправляет текущие кэшированные значения APY для Solend и Kamino.
- `/set_threshold`: Позволяет авторизованным пользователям установить новый минимальный порог APY.
- `/set_percentage_change`: Позволяет авторизованным пользователям установить новый порог изменения APY в процентах.
- `/show_config`: Показывает текущую конфигурацию бота (авторизованные пользователи, пороги и интервал проверки).### Авторизация и контроль частоты запросов
- Бот поддерживает список авторизованных пользователей, которые могут изменять настройки.
- Контролирует частоту запросов от пользователей, чтобы предотвратить спам.## Технические детали
- **Логирование**: Ведется логирование всех важных событий и ошибок, что упрощает диагностику и отладку.
- **Многопоточность**: Бот работает в отдельном потоке, что позволяет ему параллельно обрабатывать команды и собирать данные.
- **Параметры конфигурации**: Загружаются из `config.json` и включают токен Telegram, идентификатор чата, интервал проверки, пороги APY и список авторизованных пользователей.### Основные зависимости
- `requests`: Для выполнения HTTP-запросов к API Solend и Kamino.
- `telebot`: Для работы с Telegram Bot API.
- `threading`: Для организации многопоточности.
- `logging`: Для логирования событий и ошибок.
- `json`: Для работы с конфигурационным файлом.
- `pytz`: Для работы с временными зонами.Этот бот может быть полезен для автоматического мониторинга финансовых показателей и получения уведомлений о значимых изменениях APY.