Now with visual stats

This commit is contained in:
Remy Moll
2021-01-03 18:39:41 +01:00
parent 069c83e796
commit 5fe02d4bcd
6 changed files with 67 additions and 22 deletions

View File

@@ -43,8 +43,13 @@ class TelegramIO():
def process_message(self):
"""Inspects the first message from self.message_queue and reacts accordingly."""
message_data = self.message_queue.pop(0)
self.persistence["bot"]["messages_read"] += 1
current_hour = int(datetime.datetime.now().timestamp() // 3600)
if len(self.persistence["bot"]["receive_activity"]["hour"]) == 0 or current_hour != self.persistence["bot"]["receive_activity"]["hour"][-1]:
self.persistence["bot"]["receive_activity"]["hour"].append(current_hour)
self.persistence["bot"]["receive_activity"]["count"].append(1)
else:
self.persistence["bot"]["receive_activity"]["count"][-1] += 1
self.offset = message_data["update_id"] + 1
if "edited_message" in message_data:
@@ -112,7 +117,13 @@ class TelegramIO():
r = requests.post(send_url, data=data)
if (r.status_code != 200):
raise Exception
self.persistence["bot"]["messages_sent"]
current_hour = int(datetime.datetime.now().timestamp() // 3600)
if len(self.persistence["bot"]["send_activity"]["hour"]) == 0 or current_hour != self.persistence["bot"]["send_activity"]["hour"][-1]:
self.persistence["bot"]["send_activity"]["hour"].append(current_hour)
self.persistence["bot"]["send_activity"]["count"].append(1)
else:
self.persistence["bot"]["send_activity"]["count"][-1] += 1
except:
out = datetime.datetime.now().strftime("%d.%m.%y - %H:%M")
out += " @ " + "telegram.send_message"

View File

@@ -87,6 +87,13 @@ class BotFramework():
# *params means the list is unpacked and handed over as separate arguments.
self.telegram.send_message(result)
current_hour = int(datetime.datetime.now().timestamp() // 3600)
if len(self.persistence["bot"]["execute_activity"]["hour"]) == 0 or current_hour != self.persistence["bot"]["execute_activity"]["hour"][-1]:
self.persistence["bot"]["execute_activity"]["hour"].append(current_hour)
self.persistence["bot"]["execute_activity"]["count"].append(1)
else:
self.persistence["bot"]["execute_activity"]["count"][-1] += 1
if self.is_command(cmd): # first word
call_command(cmd, params)
elif cmd in self.persistence["bot"]["aliases"]:

View File

@@ -2,6 +2,7 @@ import datetime
from bot.api import telegram, google, weather, reddit
import requests
import numpy as np
import time
import json
import datetime
@@ -64,13 +65,20 @@ class ChatBot(FW.BotFramework):
ip = requests.get('https://api.ipify.org').text
except:
ip = "not fetchable"
message += "<pre>Status: Running :green_circle:\n"
message += "Uptime: " + delta[:delta.rfind(".")] + "\n"
message += "Reboots: " + str(self.persistence["global"]["reboots"]) + "\n"
message += "IP-Adress: " + ip + "\n"
message += "Messages read: " + str(self.persistence["bot"]["messages_read"]) + "\n"
message += "Messages sent: " + str(self.persistence["bot"]["messages_sent"]) + "\n"
message += "Commands executed " + str(self.persistence["bot"]["commands_executed"]) + "</pre>"
tot_r = np.array(self.persistence["bot"]["receive_activity"]["count"]).sum()
message += "Total messages read: " + str(tot_r) + "\n"
tot_s = np.array(self.persistence["bot"]["send_activity"]["count"]).sum()
message += "Total messages sent: " + str(tot_s) + "\n"
tot_e = np.array(self.persistence["bot"]["execute_activity"]["count"]).sum()
message += "Commands executed " + str(tot_e) + "</pre>"
return message