]> git.somenet.org - pub/jan/mattermost-privileged.git/blob - stats/main.py
[stats] userstats
[pub/jan/mattermost-privileged.git] / stats / main.py
1 #!/usr/bin/env -S python3 -Bu
2 # Someone's Mattermost scripts.
3 #   Copyright (c) 2016-2022 by Someone <someone@somenet.org> (aka. Jan Vales <jan@jvales.net>)
4 #   published under MIT-License
5 #
6 # Run stats and post results to stats-channel(s).
7 #
8
9 import sys
10 import traceback
11
12 import mattermost
13 import psycopg2
14
15 import config
16
17 def run_stats(prefix, module):
18     try:
19         return prefix+module.main(dbconn)
20     except:
21         return "``AUTODELETE-DAY`` Error in module: ``"+repr(module)+"``\n# :boom::boom::boom::boom::boom:\n```\n"+traceback.format_exc()+"\n```"
22
23
24 dbconn = psycopg2.connect(config.dbconnstring)
25 dbconn.set_session(autocommit=False, isolation_level=psycopg2.extensions.ISOLATION_LEVEL_SERIALIZABLE, readonly=True)
26
27 mm = mattermost.MMApi(config.mm_api_url)
28 mm.login(config.mm_user, config.mm_user_pw)
29
30 # run daily stats
31 [mm.create_post(config.stats_daily_channel_id, run_stats("``AUTODELETE-WEEK`` ", m)) for m in config.stats_daily]
32
33 # weekly
34 if len(sys.argv) > 1 and sys.argv[1] == "week":
35     [mm.create_post(config.stats_weekly_channel_id, run_stats("``AUTODELETE-MONTH`` ", m)) for m in config.stats_weekly]
36
37 mm.logout()