forkeado de spla/fediverse
Added software version
This commit is contained in:
pare
6d31149031
commit
429a03b62f
S'han modificat 2 arxius amb 32 adicions i 12 eliminacions
|
@ -142,7 +142,7 @@ sql = "create table "+table+" (server varchar(200) PRIMARY KEY, federated_with v
|
|||
create_table(db, db_user, table, sql)
|
||||
|
||||
table = "fediverse"
|
||||
sql = "create table "+table+" (server varchar(200) PRIMARY KEY, users INT, updated_at timestamptz, software varchar(15))"
|
||||
sql = "create table "+table+" (server varchar(200) PRIMARY KEY, users INT, updated_at timestamptz, software varchar(15), version varchar(40))"
|
||||
create_table(db, db_user, table, sql)
|
||||
|
||||
table = "totals"
|
||||
|
|
40
fediverse.py
40
fediverse.py
|
@ -71,7 +71,7 @@ def alive_server(server, x):
|
|||
|
||||
cur = conn.cursor()
|
||||
|
||||
cur.execute("select alive, software, users_api from fediverse where server=(%s)", (server,))
|
||||
cur.execute("select alive, software, users_api, version from fediverse where server=(%s)", (server,))
|
||||
|
||||
row = cur.fetchone()
|
||||
|
||||
|
@ -80,6 +80,7 @@ def alive_server(server, x):
|
|||
was_alive = row[0]
|
||||
serv_soft = row[1]
|
||||
serv_api = row[2]
|
||||
soft_version = row[3]
|
||||
|
||||
cur.close()
|
||||
|
||||
|
@ -102,51 +103,68 @@ def alive_server(server, x):
|
|||
if serv_api == '/nodeinfo/2.0?':
|
||||
try:
|
||||
users = data.json()['usage']['users']['total']
|
||||
soft_version = data.json()['software']['version']
|
||||
alive = True
|
||||
except:
|
||||
users = 0
|
||||
soft_version = ""
|
||||
if serv_api == '/nodeinfo/2.0.json?':
|
||||
try:
|
||||
users = data.json()['usage']['users']['total']
|
||||
soft_version = data.json()['software']['version']
|
||||
alive = True
|
||||
except:
|
||||
users = 0
|
||||
soft_version = ""
|
||||
elif serv_api == '/api/v1/instance?':
|
||||
try:
|
||||
users = data.json()['stats']['user_count']
|
||||
soft_version = data.json()['version']
|
||||
alive = True
|
||||
except:
|
||||
users = 0
|
||||
soft_version = ""
|
||||
if serv_soft == "pleroma" or serv_soft == "diaspora" or serv_soft == "peertube" or serv_soft == "pixelfed" or serv_soft == "hubzilla" or serv_soft == "writefreely" or serv_soft == "friendica":
|
||||
try:
|
||||
users = data.json()['usage']['users']['total']
|
||||
soft_version = data.json()['software']['version']
|
||||
alive = True
|
||||
except:
|
||||
users = 0
|
||||
soft_version = ""
|
||||
if serv_soft == "gnusocialv2" or serv_soft == "gnusocial":
|
||||
try:
|
||||
users = data.json()['usage']['users']['total']
|
||||
if users == 0:
|
||||
users = data.json()['usage']['users']['activeHalfyear']
|
||||
soft_version = data.json()['software']['version']
|
||||
alive = True
|
||||
except:
|
||||
users = 0
|
||||
soft_version = ""
|
||||
if serv_soft == "plume" or serv_soft == 'red' or serv_soft == "misskey" or serv_soft == "zap" or serv_soft == "prismo" or serv_soft == "ravenvale" or serv_soft == "osada" or serv_soft == "groundpolis":
|
||||
try:
|
||||
users = data.json()['usage']['users']['total']
|
||||
soft_version = data.json()['software']['version']
|
||||
alive = True
|
||||
except:
|
||||
users = 0
|
||||
soft_version = ""
|
||||
if serv_soft == "ganggo" or serv_soft == "squs" or serv_soft == "dolphin":
|
||||
try:
|
||||
users = data.json()['usage']['users']['total']
|
||||
soft_version = data.json()['software']['version']
|
||||
alive = True
|
||||
except:
|
||||
users = 0
|
||||
soft_version = ""
|
||||
|
||||
if soft_version != "" and soft_version != None:
|
||||
print("Server " + str(server) + " (" + serv_soft + " " + soft_version + ") is alive!")
|
||||
else:
|
||||
print("Server " + str(server) + " (" + serv_soft + ") is alive!")
|
||||
|
||||
insert_sql = "INSERT INTO fediverse(server, users, updated_at, software, alive, users_api) VALUES(%s,%s,%s,%s,%s,%s) ON CONFLICT DO NOTHING"
|
||||
insert_sql = "INSERT INTO fediverse(server, users, updated_at, software, alive, users_api, version) VALUES(%s,%s,%s,%s,%s,%s,%s) ON CONFLICT DO NOTHING"
|
||||
conn = None
|
||||
|
||||
try:
|
||||
|
@ -155,9 +173,9 @@ def alive_server(server, x):
|
|||
|
||||
cur = conn.cursor()
|
||||
|
||||
cur.execute(insert_sql, (server, users, now, serv_soft, alive, serv_api))
|
||||
cur.execute(insert_sql, (server, users, now, serv_soft, alive, serv_api, soft_version))
|
||||
|
||||
cur.execute("UPDATE fediverse SET users=(%s), updated_at=(%s), software=(%s), alive=(%s), users_api=(%s) where server=(%s)", (users, now, serv_soft, alive, serv_api, server))
|
||||
cur.execute("UPDATE fediverse SET users=(%s), updated_at=(%s), software=(%s), alive=(%s), users_api=(%s), version=(%s) where server=(%s)", (users, now, serv_soft, alive, serv_api, soft_version, server))
|
||||
|
||||
cur.execute("UPDATE world SET checked='t' where server=(%s)", (server,))
|
||||
|
||||
|
@ -254,9 +272,9 @@ def alive_server(server, x):
|
|||
if conn is not None:
|
||||
conn.close()
|
||||
|
||||
def write_api(server, software, users, alive, api):
|
||||
def write_api(server, software, users, alive, api, soft_version):
|
||||
|
||||
insert_sql = "INSERT INTO fediverse(server, updated_at, software, users, alive, users_api) VALUES(%s,%s,%s,%s,%s,%s) ON CONFLICT DO NOTHING"
|
||||
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"
|
||||
conn = None
|
||||
|
||||
try:
|
||||
|
@ -265,9 +283,9 @@ def write_api(server, software, users, alive, api):
|
|||
|
||||
cur = conn.cursor()
|
||||
|
||||
cur.execute(insert_sql, (server, now, software, users, alive, api))
|
||||
cur.execute(insert_sql, (server, now, software, users, alive, api, soft_version))
|
||||
|
||||
cur.execute("UPDATE fediverse SET updated_at=(%s), software=(%s), users=(%s), alive=(%s), users_api=(%s) where server=(%s)", (now, software, users, alive, api, server))
|
||||
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))
|
||||
|
||||
cur.execute("UPDATE world SET checked='t' where server=(%s)", (server,))
|
||||
|
||||
|
@ -316,18 +334,20 @@ async def getsoft(server):
|
|||
try:
|
||||
soft = response_json['software']['name']
|
||||
soft = soft.lower()
|
||||
soft_version = response_json['software']['version']
|
||||
users = response_json['usage']['users']['total']
|
||||
if users > 1000000:
|
||||
return
|
||||
alive = True
|
||||
write_api(server, soft, users, alive, api)
|
||||
print("Server " + server + " (" + soft + ") is alive!")
|
||||
write_api(server, soft, users, alive, api, soft_version)
|
||||
print("Server " + server + " (" + soft + " " + soft_version + ") is alive!")
|
||||
return
|
||||
except:
|
||||
pass
|
||||
if response.status == 200 and soft == '' and api == "/api/v1/instance?":
|
||||
soft = 'mastodon'
|
||||
users = response_json['stats']['user_count']
|
||||
soft_version = response_json['version']
|
||||
if users > 1000000:
|
||||
return
|
||||
alive = True
|
||||
|
|
Loading…
Referencia en una nova incidència