[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 from __future__ import annotations
import os
import time
import traceback import traceback
from typing import Callable, Optional from typing import Callable, Optional
import requests
from selenium.common.exceptions import StaleElementReferenceException from selenium.common.exceptions import StaleElementReferenceException
from selenium.webdriver.chrome.webdriver import WebDriver from selenium.webdriver.chrome.webdriver import WebDriver
from selenium.webdriver.common.by import By from selenium.webdriver.common.by import By
from telegram import Bot, Message
CSS = By.CSS_SELECTOR CSS = By.CSS_SELECTOR
@@ -23,34 +24,28 @@ def parse_retry(parser: Callable, browser: WebDriver, tries: int = 0):
class TelegramReporter: class TelegramReporter:
token: str bot: Bot
receiver: str | int receiver: str | int
alert_receiver: Optional[str | int] alert_receiver: Optional[str | int]
def __init__(self, token: str, receiver: str, alert_receiver: Optional[str | int]): def __init__(self, token: str, receiver: str | int, alert_receiver: Optional[str | int]):
self.token = token self.bot = Bot(token)
self.receiver = receiver self.receiver = receiver
self.alert_receiver = alert_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 Send a message
:param msg: Message string :param msg: Message string
:param rec: Receiver :param rec: Receiver
:return: Success or not :return: Edit code or None if failed
""" """
if rec is None: if rec is None:
rec = self.receiver rec = self.receiver
r = requests.get(f'https://api.telegram.org/bot{self.token}/sendMessage', return self.bot.send_message(chat_id=rec, parse_mode='Markdown', text=msg)
params={'chat_id': rec, 'parse_mode': 'Markdown', 'text': msg})
if r.status_code != 200: def alert(self) -> Message:
print('Request not OK:', r.status_code, r.text)
return r.status_code == 200
def alert(self) -> bool:
if self.alert_receiver: if self.alert_receiver:
return self.send('/alert', self.alert_receiver) return self.send('/alert', self.alert_receiver)