diff options
-rwxr-xr-x | api_plotter.py | 38 | ||||
-rwxr-xr-x | docker-compose.yml | 2 | ||||
-rwxr-xr-x | subreddit.py | 34 |
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 |