aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xapi_plotter.py38
-rwxr-xr-xdocker-compose.yml2
-rwxr-xr-xsubreddit.py34
3 files changed, 55 insertions, 19 deletions
diff --git a/api_plotter.py b/api_plotter.py
new file mode 100755
index 0000000..83d4f08
--- /dev/null
+++ b/api_plotter.py
@@ -0,0 +1,38 @@
+import matplotlib.pyplot as plt
+import datetime
+import math
+import os
+import re
+
+def round_to_min(dt: datetime.datetime):
+ return datetime.datetime(
+ year = dt.year,
+ month = dt.month,
+ day = dt.day,
+ hour = dt.hour,
+ minute = math.floor(dt.minute)
+ )
+
+with open(os.path.join("logs", "api.log"), "r") as f:
+ s = f.read().split("\n")
+
+timestamps = set()
+
+for l in s:
+ x = re.search(r"^.*\tResponse: 200", l)
+ if x is not None:
+ timestamps.add(datetime.datetime.strptime(x.group()[1:24], "%Y-%m-%d %H:%M:%S,%f"))
+
+d = {}
+for timestamp in timestamps:
+ nearest = round_to_min(timestamp)
+
+ try:
+ d[nearest] += 1
+ except KeyError:
+ d[nearest] = 1
+
+fig, ax = plt.subplots()
+ax.plot(list(d.keys()), list(d.values()))
+
+plt.show() \ No newline at end of file
diff --git a/docker-compose.yml b/docker-compose.yml
index 4cd338c..9624bc9 100755
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -7,8 +7,6 @@ services:
dockerfile: Dockerfile
image: jwansek/smallytchannelbot
network_mode: host
- volumes:
- - ./logs/:/logs/
cron:
build:
context: .
diff --git a/subreddit.py b/subreddit.py
index 4beeed6..f600d6f 100755
--- a/subreddit.py
+++ b/subreddit.py
@@ -27,28 +27,28 @@ FREE_FLAIRS = CONFIG["free_flairs"]
IMGUR = ImgurClient(**CONFIG["imgurapi"])
-# logging.basicConfig(
-# format = "%(process)s\t[%(asctime)s]\t%(message)s",
-# level = logging.INFO,
-# handlers=[
-# logging.FileHandler("actions.log"),
-# logging.StreamHandler()
-# ])
-
-handler = logging.FileHandler("/logs/api.log")
-handler.setLevel(logging.DEBUG)
-handler.setFormatter(logging.Formatter("[%(asctime)s]\t%(message)s"))
-for logger_name in ("praw", "prawcore"):
- logger = logging.getLogger(logger_name)
- logger.setLevel(logging.DEBUG)
- logger.addHandler(handler)
+logging.basicConfig(
+ format = "%(process)s\t[%(asctime)s]\t%(message)s",
+ level = logging.INFO,
+ handlers=[
+ logging.FileHandler("actions.log"),
+ logging.StreamHandler()
+ ])
+
+# handler = logging.FileHandler("/logs/api.log")
+# handler.setLevel(logging.DEBUG)
+# handler.setFormatter(logging.Formatter("[%(asctime)s]\t%(message)s"))
+# for logger_name in ("praw", "prawcore"):
+# logger = logging.getLogger(logger_name)
+# logger.setLevel(logging.DEBUG)
+# logger.addHandler(handler)
def get_time():
return time.strftime("%b %d %Y %H:%M:%S", time.gmtime())
def display(message, concerning = None):
- # logging.info(message)
- print(message)
+ logging.info(message)
+ # print(message)
#yes it'd be prettier to do this with a logging.Handler, but alas
#due to `concerning` it'd be more complicated than doing it like this