[O] Use telegram api

This commit is contained in:
Hykilpikonna
2022-03-03 01:26:51 -05:00
parent 4e93d80a68
commit 943f4536fb
+10 -15
View File
@@ -1,13 +1,14 @@
from __future__ import annotations
import os
import time
import traceback
from typing import Callable, Optional
import requests
from selenium.common.exceptions import StaleElementReferenceException
from selenium.webdriver.chrome.webdriver import WebDriver
from selenium.webdriver.common.by import By
from telegram import Bot, Message
CSS = By.CSS_SELECTOR
@@ -23,34 +24,28 @@ def parse_retry(parser: Callable, browser: WebDriver, tries: int = 0):
class TelegramReporter:
token: str
bot: Bot
receiver: str | int
alert_receiver: Optional[str | int]
def __init__(self, token: str, receiver: str, alert_receiver: Optional[str | int]):
self.token = token
def __init__(self, token: str, receiver: str | int, alert_receiver: Optional[str | int]):
self.bot = Bot(token)
self.receiver = receiver
self.alert_receiver = alert_receiver
def send(self, msg: str, rec: Optional[str | int] = None) -> bool:
def send(self, msg: str, rec: Optional[str | int] = None) -> Message:
"""
Send a message
:param msg: Message string
:param rec: Receiver
:return: Success or not
:return: Edit code or None if failed
"""
if rec is None:
rec = self.receiver
r = requests.get(f'https://api.telegram.org/bot{self.token}/sendMessage',
params={'chat_id': rec, 'parse_mode': 'Markdown', 'text': msg})
return self.bot.send_message(chat_id=rec, parse_mode='Markdown', text=msg)
if r.status_code != 200:
print('Request not OK:', r.status_code, r.text)
return r.status_code == 200
def alert(self) -> bool:
def alert(self) -> Message:
if self.alert_receiver:
return self.send('/alert', self.alert_receiver)