A Currency Scrapper Telegram Bot. Performs an an analysis comparing exchange rate differneces between providers.
Providers
Clone the repository and install the pip package to get the executable telepasta
pip install .Alternatively check it out on a virtual env prior to installing it system wide
Bash
python3 -m venv venv
source venv/bin/activate # if using bash
source venv/bin/activate.fish # if using fish
pip install .Deactivate virtual env after done checking
deactivateThe bot is a CLI command that on each execution will pull information from the providers and send a text message with such information. There is no periodic scrapping.
Configure the bot execution at ~/.telepasta, it's a YAML file.
telegram:
bot_token: a_string
chat_id: an_integer
lang: 'spa'_or_another_one
providers:
exchange_rate_api:
key: '3e84238eb2fe87d67d69abbc'- Replace
BOT_TOKENwith your bot instance token. - Replace
CHAT_IDwith your conversation ID. - Language that will be used for text messages sent by the bot. Currently
spaandeng - exchange_rate_api_key to get the clean rate reference.
In order to get your BOT_TOKEN and CHAT_ID check out the Python Telegram API. The token is your own bot instance ID and the chat id refers to the group or conversation where your bot instance is intended to respond.
Execute the command
telepastaSetup a cronjob to get a daily execution, at 7am, for example.
crontab -eThen add the following line
0 7 * * * telepasta
- Implement OOP for
- References: The currency exchange clean rates
- currency reference will be loaded from config
- providers can be blacklisted from conf
- create schema with example
- References: The currency exchange clean rates
{
"MXN": {
"USD": 17.46, "EUR": 18.74, "CAD": 12.77, "GBP": 21.6
}
}- Providers: The currency exchange providers data
- supported currencies
- create schema with example
{
"USD": {"Buy": 17.35, "Sell": 17.55},
"EUR": {"Buy": 18.95, "Sell": 19.35},
"CAD": {"Buy": 12.65, "Sell": 13.25},
"GBP": {"Buy": 22.55, "Sell": 23.35}
}- Bot: To abstract the communication with telegram
- will improve testing by separating bot usage from provider usage
- message formatting
- language detection
- alerts when change is postive
- from reference
- from provider
- formatting
- bold for providers and references
- underline for alerts ?
- commands
/ratesand/tasascommand to get current rates (providers and clean)/diffto get diff (compare vs previous and provider vs reference delta)
