add support for TG webhooks
This commit is contained in:
parent
08fd240054
commit
a717dc8558
2 changed files with 25 additions and 10 deletions
33
bot.py
33
bot.py
|
@ -14,6 +14,8 @@ from config import Config
|
|||
|
||||
config = Config()
|
||||
config.WEBHOOK_URL = os.getenv("WEBHOOK_URL", config.WEBHOOK_URL)
|
||||
config.TG_CHAT_ID = os.getenv("TG_CHAT_ID", config.TG_CHAT_ID)
|
||||
config.TG_API_KEY = os.getenv("TG_API_KEY", config.TG_API_KEY)
|
||||
|
||||
STATE_PATH = os.getenv("STATE_PATH", "state.pickle")
|
||||
|
||||
|
@ -64,14 +66,25 @@ def process_event(event, template):
|
|||
|
||||
|
||||
async def send_message(text):
|
||||
async with aiohttp.ClientSession() as session:
|
||||
result = await session.post(config.WEBHOOK_URL, json={
|
||||
"text": text,
|
||||
"format": "html",
|
||||
"displayName": "PUBLIC INFORMATION STREAMS & SERVICES",
|
||||
"avatarUrl": config.AVATAR_URL
|
||||
})
|
||||
logging.debug(f"RECV: [{result.status}] {await result.text()}")
|
||||
if config.WEBHOOK_URL:
|
||||
logging.debug(f"Posting via WEBHOOK.")
|
||||
async with aiohttp.ClientSession() as session:
|
||||
result = await session.post(config.WEBHOOK_URL, json={
|
||||
"text": text,
|
||||
"format": "html",
|
||||
"displayName": "PUBLIC INFORMATION STREAMS & SERVICES",
|
||||
"avatarUrl": config.AVATAR_URL
|
||||
})
|
||||
logging.debug(f"RECV: [{result.status}] {await result.text()}")
|
||||
if config.TG_CHAT_ID and config.TG_API_KEY:
|
||||
logging.debug(f"Posting via TELEGRAM.")
|
||||
async with aiohttp.ClientSession() as session:
|
||||
result = await session.post(f"https://api.telegram.org/bot{config.TG_API_KEY}/sendMessage", json={
|
||||
"chat_id": config.TG_CHAT_ID,
|
||||
"text": text.replace('<br>', '\n'),
|
||||
"parse_mode": "html"
|
||||
})
|
||||
logging.debug(f"RECV: [{result.status}] {await result.text()}")
|
||||
|
||||
|
||||
def get_event_id(event: Event) -> str:
|
||||
|
@ -117,8 +130,8 @@ async def main():
|
|||
if __name__ == '__main__':
|
||||
logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - [%(levelname)s] %(message)s')
|
||||
|
||||
if config.WEBHOOK_URL is None:
|
||||
raise RuntimeError("WEBHOOK_URL is not defined.")
|
||||
if config.WEBHOOK_URL is None and (config.TG_API_KEY is None or config.TG_CHAT_ID is None):
|
||||
raise RuntimeError("One of WEBHOOK_URL, TG_API_KEY & TG_CHAT_ID must be defined.")
|
||||
|
||||
loop = asyncio.get_event_loop()
|
||||
loop.run_until_complete(main())
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
class Config:
|
||||
WEBHOOK_URL = None
|
||||
TG_API_KEY = None
|
||||
TG_CHAT_ID = None
|
||||
AVATAR_URL = 'https://gitlab.com/sdbs_cz/piss-bot/-/raw/master/piss.jpg'
|
||||
URLS = [
|
||||
'https://sdbs.cz/wp-content/themes/sdbs/file-download.php?type=in',
|
||||
|
|
Loading…
Reference in a new issue