Skip to content

DarkSuniuM/TeleSendTime

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TeleSendTime

TeleSendTime is a Python module for Telegram message automation.

Installation

Use the package manager pip to install TeleSendTime.

pip install TeleSendTime
# or using Git
pip install git+https://gitlab.com/DarkSuniuM/TeleSendTime.git

Usage

# template.txt
# "$" prefixed words are variables
BTC Rate (USD): $rate
# app.py

import requests

from tele_sendtime import Automation
from tele_sendtime import load_template


automation = Automation('MY_BOT_TOKEN')


# chat_id => Chat ID or Channel Username (Note: You can use username only for channels)
# interval in seconds.
@automation.job(chat_id='@my_channel_username', template=load_template('template.txt'), interval=60)
def send_btc_rate_in_usd():
    # Sample API Call
    req = requests.get('https://api.coindesk.com/v1/bpi/currentprice/USD.json')
    rate = req.json()['bpi']['USD']['rate_float']

    # return type should be a list of strings or dictianories
    # Use dict when there is a template
    return [{'rate': rate}] 


@automation.job(chat_id='@my_channel_username', interval=60)
def send_btc_rate_in_eur():
    # Sample API Call
    req = requests.get('https://api.coindesk.com/v1/bpi/currentprice/EUR.json')
    rate = req.json()['bpi']['EUR']['rate_float']

    # When using String, Template get's ignored!
    return [f'BTC Price (EURO): {rate}']


# Run the automation bot.
automation.run()

To Do

  • Add Documentation
  • Improve Concurrency
  • Add Logging
  • Add support for other message types (photo, audio, document)
  • Add Tests

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

License

GNU LGPLv3