diff options
author | Rosyid Haryadi <rosyid_haryadi@protonmail.com> | 2024-07-28 15:00:48 +0700 |
---|---|---|
committer | Rosyid Haryadi <rosyid_haryadi@protonmail.com> | 2024-07-28 15:00:48 +0700 |
commit | 899d75d5165b7156dfece893523a7131232a195a (patch) | |
tree | e343c69acb29ab29cf1392388a260f0fdd12644c | |
parent | f3acbe23ead27f85367761ba5ec0b1a03df40c09 (diff) |
upd status, clean db, clean telegram queue
-rw-r--r-- | bot.py | 14 | ||||
-rw-r--r-- | main.py | 4 |
2 files changed, 9 insertions, 9 deletions
@@ -64,10 +64,12 @@ class Bot: self.isProcessingPolling = True try: - url = f'https://api.telegram.org/bot{self.token}/getUpdates?offset=-10' + url = f'https://api.telegram.org/bot{self.token}/getUpdates' response = requests.get(url) if response.status_code == 200: self._dbUpdate(response.json()) + # Clean queue after reading because apparently it has maximum size and can block newer messages + self.cleanTelegramApiQueue() except requests.exceptions.ConnectionError as e: logger.error("Connection error during polling update") self._checkUnreadDb() @@ -95,20 +97,18 @@ class Bot: def cleanTelegramApiQueue(self): try: - urlGetMaxId = f'https://api.telegram.org/bot{self.token}/getUpdates?offset=-1' - response = requests.get(urlGetMaxId) + baseGetUpdateUrl = f'https://api.telegram.org/bot{self.token}/getUpdates' + response = requests.get(f'{baseGetUpdateUrl}?offset=-1') data = response.json() if data['result']: - maxId = data['result'][0]['update_id'] + lastUpdateId = data['result'][0]['update_id'] # dapet trik dari stackoverflow # https://stackoverflow.com/questions/61976560/how-to-delete-queue-updates-in-telegram-api - urlRemoveApiQueue = f'https://api.telegram.org/bot{self.token}/getUpdates?offset={maxId + 1}' - requests.get(urlRemoveApiQueue) + requests.get(f'{baseGetUpdateUrl}?offset={lastUpdateId + 1}') except requests.exceptions.ConnectionError as e: logger.error("Connection error during polling update") if __name__ == '__main__': bot = Bot() - # bot.sendMessage('*harusnya ini bold* dan ini ngga') bot.getNewMessages() @@ -45,7 +45,7 @@ def sendLog(msg): bot.sendMessage(f"Selesai menampilkan log. Line terakhir: {maxLines}", log=False) -def processMessages(messages): +def handleCommand(messages): for msg in messages: msg = msg.lower() if msg == 'update': @@ -105,7 +105,7 @@ if __name__ == '__main__': initDb() while True: if not bot.isProcessingPolling and bot.hasNewMessages: - processMessages(bot.getNewMessages()) + handleCommand(bot.getNewMessages()) else: bot.pollUpdate() run_pending() |