diff options
Diffstat (limited to 'bot.py')
-rw-r--r-- | bot.py | 14 |
1 files changed, 7 insertions, 7 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() |