]> git.mxchange.org Git - fba.git/commitdiff
Continued:
authorRoland Häder <roland@mxchange.org>
Tue, 20 Jun 2023 19:04:54 +0000 (21:04 +0200)
committerRoland Häder <roland@mxchange.org>
Tue, 20 Jun 2023 19:19:20 +0000 (21:19 +0200)
- another aliases for pleroma/misskey

api.py
fba/federation.py
templates/views/index.html
templates/views/scoreboard.html

diff --git a/api.py b/api.py
index 052b3836e49b06e15c0ad677705f007b9b3d459b..41e0589e13f8915607047ecab1993ab6f2325284 100644 (file)
--- a/api.py
+++ b/api.py
@@ -68,6 +68,8 @@ def api_top(mode: str, amount: int):
         fba.cursor.execute("SELECT command, COUNT(domain) AS score FROM instances WHERE command IS NOT NULL GROUP BY command ORDER BY score DESC, command ASC LIMIT ?", [amount])
     elif mode == "error_code":
         fba.cursor.execute("SELECT last_status_code, COUNT(domain) AS score FROM instances WHERE last_status_code IS NOT NULL AND last_status_code != '200' GROUP BY last_status_code ORDER BY score DESC LIMIT ?", [amount])
+    elif mode == "avg_peers":
+        fba.cursor.execute("SELECT software, AVG(total_peers) AS sum FROM instances WHERE software IS NOT NULL GROUP BY software HAVING sum>0 ORDER BY sum DESC LIMIT ?", [amount])
     else:
         raise HTTPException(status_code=400, detail="No filter specified")
 
@@ -76,7 +78,7 @@ def api_top(mode: str, amount: int):
     for domain, score in fba.cursor.fetchall():
         scores.append({
             "domain": domain,
-            "score" : score
+            "score" : round(score)
         })
 
     return scores
@@ -172,6 +174,8 @@ def scoreboard(request: Request, mode: str, amount: int):
         response = requests.get(f"http://{config.get('host')}:{config.get('port')}{config.get('base_url')}/api/top.json?mode=command&amount={amount}")
     elif mode == "error_code" and amount > 0:
         response = requests.get(f"http://{config.get('host')}:{config.get('port')}{config.get('base_url')}/api/top.json?mode=error_code&amount={amount}")
+    elif mode == "avg_peers" and amount > 0:
+        response = requests.get(f"http://{config.get('host')}:{config.get('port')}{config.get('base_url')}/api/top.json?mode=avg_peers&amount={amount}")
     else:
         raise HTTPException(status_code=400, detail="No filter specified")
 
index c9d959226e5cfe6bc7b4e6322ebe87a7b2114cba..ec716172a13e67b5e8e2dab37eaae1d868794664 100644 (file)
@@ -495,13 +495,13 @@ def determine_software(domain: str, path: str = None) -> str:
     sofware = tidyup.domain(software)
     # DEBUG: print("DEBUG: sofware after tidyup.domain():", software)
 
-    if software in ["akkoma", "rebased"]:
+    if software in ["akkoma", "rebased", "akkounfucked", "ched"]:
         # DEBUG: print("DEBUG: Setting pleroma:", domain, software)
         software = "pleroma"
     elif software in ["hometown", "ecko"]:
         # DEBUG: print("DEBUG: Setting mastodon:", domain, software)
         software = "mastodon"
-    elif software in ["slipfox calckey", "calckey", "groundpolis", "foundkey", "cherrypick", "meisskey"]:
+    elif software in ["slipfox calckey", "calckey", "groundpolis", "foundkey", "cherrypick", "meisskey", "magnetar", "keybump"]:
         # DEBUG: print("DEBUG: Setting misskey:", domain, software)
         software = "misskey"
     elif software == "runtube.re":
index 7e8849aa476c39302fd3d0d7a852940f116cee93..2cab61039971db5067ac229a273b7957d2fd36ed 100644 (file)
@@ -30,7 +30,8 @@
         <a href="{{base_url}}/scoreboard?mode=reference&amp;amount=50">referencing instances</a> /
         <a href="{{base_url}}/scoreboard?mode=software&amp;amount=50">used software</a> /
         <a href="{{base_url}}/scoreboard?mode=command&amp;amount=10">commands</a> /
-        <a href="{{base_url}}/scoreboard?mode=error_code&amp;amount=30">error codes</a>
+        <a href="{{base_url}}/scoreboard?mode=error_code&amp;amount=30">error codes</a> /
+        <a href="{{base_url}}/scoreboard?mode=avg_peers&amp;amount=30">average peers</a>
     </p>
 {% endblock %}
 {% block footer %}
index dbbba79a5cc62ede7a1113105bedddc02affd137..46d58076dbb8ab98761b22c609756333dca6f894 100644 (file)
@@ -1,6 +1,6 @@
 {% extends "base.html" %}
 
-{% block title %}Scoreboard - {% if mode == 'software' %}TOP {{amount}} used software{% elif mode == 'command' %}TOP {{amount}} commands{% elif mode == 'error_code' %}TOP {{amount}} error codes{% elif mode == 'reference' %}TOP {{amount}} referencing instances{% elif mode == 'blocked' %}TOP {{amount}} deferated instances{% elif mode == 'blocker' %}TOP {{amount}} deferating instances{% endif %}{% endblock %}
+{% block title %}Scoreboard - {% if mode == 'software' %}TOP {{amount}} used software{% elif mode == 'avg_peers' %}TOP {{amount}} average peer count{% elif mode == 'command' %}TOP {{amount}} commands{% elif mode == 'error_code' %}TOP {{amount}} error codes{% elif mode == 'reference' %}TOP {{amount}} referencing instances{% elif mode == 'blocked' %}TOP {{amount}} deferated instances{% elif mode == 'blocker' %}TOP {{amount}} deferating instances{% endif %}{% endblock %}
 
 {% block header %}
     {% if mode == 'blocker' %}
@@ -23,8 +23,8 @@
         <table>
             <thead>
                 <th>№</th>
-                <th>{% if mode == 'software' %}Software{% elif mode == 'error_code' %}Error code{% else %}Instance{% endif %}</th>
-                <th>{% if mode == 'reference' %}References{% elif mode in('software', 'error_code') %}Total{% else %}Blocks{% endif %}</th>
+                <th>{% if mode in ('software', 'avg_peers') %}Software{% elif mode == 'error_code' %}Error code{% else %}Instance{% endif %}</th>
+                <th>{% if mode == 'reference' %}References{% elif mode == 'avg_peers' %}Average{% elif mode in('software', 'error_code') %}Total{% else %}Blocks{% endif %}</th>
             </thead>
 
             <tbody>
@@ -32,7 +32,7 @@
                 <tr>
                     <td>{{loop.index}}</td>
                     <td>
-                        {% if mode in ('software', 'command', 'error_code') %}
+                        {% if mode in ('software', 'command', 'error_code', 'avg_peers') %}
                             {{entry['domain']}}
                         {% elif entry['domain'] == None %}
                             -