From 60da5d7a884378f5531fe3a89a35d4245d21cff2 Mon Sep 17 00:00:00 2001 From: spla Date: Sun, 8 Jan 2023 10:55:24 +0100 Subject: [PATCH] Save MAU to database --- README.md | 3 ++- database.py | 10 +++++----- fetchservers.py | 11 ++++++----- query.py | 2 +- 4 files changed, 14 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 960a04c..d8d55a2 100644 --- a/README.md +++ b/README.md @@ -31,4 +31,5 @@ Within Python Virtual Environment: 4.1.2023 - Refactored. 4.1.2023 - Now peers are obtained from mastodon.social's peers list. 5.1.2023 - Added fediquery.py. Allow ask the main bot fediverse about `soft` and `server` and it replies to the asking user with its data if any. -7.1.2023 - When querying a not found server, we will be added to database if it's alive. +7.1.2023 - When querying a not found server, we will be added to database if it's alive. +8.1.2023 - Save MAU to database. diff --git a/database.py b/database.py index 6ae0375..eb16ed2 100644 --- a/database.py +++ b/database.py @@ -95,11 +95,11 @@ class Database(): conn.close() - def write_api(self, server, software, users, alive, api, soft_version): + def write_api(self, server, software, users, mau, alive, api, soft_version): now = datetime.now() - insert_sql = "INSERT INTO fediverse(server, updated_at, software, users, alive, users_api, version) VALUES(%s,%s,%s,%s,%s,%s,%s) ON CONFLICT DO NOTHING" + insert_sql = "INSERT INTO fediverse(server, updated_at, software, users, mau, alive, users_api, version) VALUES(%s,%s,%s,%s,%s,%s,%s,%s) ON CONFLICT DO NOTHING" conn = None @@ -111,11 +111,11 @@ class Database(): print(f'Writing {server} nodeinfo data...') - cur.execute(insert_sql, (server, now, software, users, alive, api, soft_version)) + cur.execute(insert_sql, (server, now, software, users, mau, alive, api, soft_version)) cur.execute( - "UPDATE fediverse SET updated_at=(%s), software=(%s), users=(%s), alive=(%s), users_api=(%s), version=(%s) where server=(%s)", - (now, software, users, alive, api, soft_version, server) + "UPDATE fediverse SET updated_at=(%s), software=(%s), users=(%s), mau=(%s), alive=(%s), users_api=(%s), version=(%s) where server=(%s)", + (now, software, users, mau, alive, api, soft_version, server) ) cur.execute("UPDATE world SET checked='t' where server=(%s)", (server,)) diff --git a/fetchservers.py b/fetchservers.py index cc8075c..6970f94 100644 --- a/fetchservers.py +++ b/fetchservers.py @@ -203,10 +203,10 @@ def getsoft(server): users = nodeinfo_json.get('usage').get('users').get('total') or '0' if users > 1000000: return - + self.mau = nodeinfo_json.get('usage').get('users').get('activeMonth') or 0 alive = True - db.write_api(server, soft, users, alive, nodeinfo, soft_version) + db.write_api(server, soft, users, mau, alive, nodeinfo, soft_version) print(f"Server {server} ({soft} {soft_version}) is alive!") print('*********************************************************************') @@ -227,12 +227,12 @@ def getsoft(server): users = nodeinfo_json['usage']['users']['total'] if users > 1000000: return - + self.mau = nodeinfo_json.get('usage').get('users').get('activeMonth') or 0 alive = True if soft == 'socialhome': - db.write_api(server, soft, users, alive, nodeinfo, soft_version) + db.write_api(server, soft, users, mau, alive, nodeinfo, soft_version) print('*********************************************************************') print(f"Server {serve}r ({soft} {soft_version}) is alive!") @@ -268,9 +268,10 @@ def getsoft(server): soft_version = 'unknown' + mau = 0 alive = True - db.write_api(server, soft, users, alive, nodeinfo, soft_version) + db.write_api(server, soft, users, mau, alive, nodeinfo, soft_version) print('*********************************************************************') print(f"Server {server} ({soft}) is alive!") diff --git a/query.py b/query.py index 4764894..8b5855a 100644 --- a/query.py +++ b/query.py @@ -209,7 +209,7 @@ class Query(): self.alive = True - self.db.write_api(server, self.soft, self.users, self.alive, nodeinfo, self.soft_version) + self.db.write_api(server, self.soft, self.users, self.mau, self.alive, nodeinfo, self.soft_version) print(f"Server {server} ({self.soft} {self.soft_version}) is alive!") print('*********************************************************************')