]> git.mxchange.org Git - fba.git/commitdiff
Continued:
authorRoland Häder <roland@mxchange.org>
Thu, 22 Jun 2023 16:15:09 +0000 (18:15 +0200)
committerRoland Häder <roland@mxchange.org>
Thu, 22 Jun 2023 16:16:13 +0000 (18:16 +0200)
- added obsfucation metrics, only pleroma and mastodon are currently
  obsfucating their block list
- so also reflect this here

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

diff --git a/api.py b/api.py
index 3c03c6f32f686081dd05c64661d5c6fe7e3b46f7..60d0c5774fe3e1361a84662d508e65f6aa20725b 100644 (file)
--- a/api.py
+++ b/api.py
@@ -73,6 +73,8 @@ def api_scoreboard(mode: str, amount: int):
         database.cursor.execute("SELECT software, AVG(total_peers) AS average FROM instances WHERE software IS NOT NULL GROUP BY software HAVING average>0 ORDER BY average DESC LIMIT ?", [amount])
     elif mode == "obsfucator":
         database.cursor.execute("SELECT software, COUNT(domain) AS cnt FROM instances WHERE has_obsfucation = 1 GROUP BY software ORDER BY cnt DESC LIMIT ?", [amount])
+    elif mode == "obsfucation":
+        database.cursor.execute("SELECT has_obsfucation, COUNT(domain) AS cnt FROM instances WHERE software IN ('pleroma', 'mastodon') GROUP BY has_obsfucation ORDER BY cnt DESC LIMIT ?", [amount])
     else:
         raise HTTPException(status_code=400, detail="No filter specified")
 
@@ -181,6 +183,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/scoreboard.json?mode=avg_peers&amount={amount}")
     elif mode == "obsfucator" and amount > 0:
         response = requests.get(f"http://{config.get('host')}:{config.get('port')}{config.get('base_url')}/api/scoreboard.json?mode=obsfucator&amount={amount}")
+    elif mode == "obsfucation" and amount > 0:
+        response = requests.get(f"http://{config.get('host')}:{config.get('port')}{config.get('base_url')}/api/scoreboard.json?mode=obsfucation&amount={amount}")
     else:
         raise HTTPException(status_code=400, detail="No filter specified")
 
index 87b5602f1acf5db7ee64f499df814550fd3c06f1..e1340ff50c27a687b81e20fdf3cb44d49fa690d5 100644 (file)
@@ -32,7 +32,8 @@
         <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=avg_peers&amp;amount=30">average peers</a> /
-        <a href="{{base_url}}/scoreboard?mode=obsfucator&amp;amount=30">obsfucating software</a>
+        <a href="{{base_url}}/scoreboard?mode=obsfucator&amp;amount=30">obsfucating software</a> /
+        <a href="{{base_url}}/scoreboard?mode=obsfucation&amp;amount=10">obsfucation metrics</a>
     </p>
 {% endblock %}
 {% block footer %}
index b0612ceabbfb7fffed56e9f221eb1a69da22a883..53cc3ec78dcb4d42556d83a03c609d1eaad58e49 100644 (file)
@@ -1,6 +1,6 @@
 {% extends "base.html" %}
 
-{% block title %}Scoreboard - {% if mode == 'software' %}TOP {{amount}} used software{% elif mode == 'obsfucator' %}TOP {{amount}} obsfucating 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 title %}Scoreboard - {% if mode == 'software' %}TOP {{amount}} used software{% elif mode == 'obsfucation' %}Obsfucation metrics{% elif mode == 'obsfucator' %}TOP {{amount}} obsfucating 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' %}
@@ -19,6 +19,8 @@
         <h1>TOP {{amount}} average peer count</h1>
     {% elif mode == 'obsfucator' %}
         <h1>TOP {{amount}} obsfucating software</h1>
+    {% elif mode == 'obsfucator' %}
+        <h1>Obsfucation metrics</h1>
     {% endif %}
 {% endblock %}
 
@@ -27,8 +29,8 @@
         <table>
             <thead>
                 <th>№</th>
-                <th>{% if mode in ('software', 'avg_peers', 'obsfucator') %}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', 'obsfucator') %}Total{% else %}Blocks{% endif %}</th>
+                <th>{% if mode in ('software', 'avg_peers', 'obsfucator') %}Software{% elif mode == 'obsfucation' %}Obsfucation status{% 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', 'obsfucator', 'obsfucation') %}Total{% else %}Blocks{% endif %}</th>
             </thead>
 
             <tbody>
@@ -36,7 +38,7 @@
                 <tr>
                     <td>{{loop.index}}</td>
                     <td>
-                        {% if mode in ('software', 'command', 'error_code', 'avg_peers', 'obsfucator') %}
+                        {% if mode in ('software', 'command', 'error_code', 'avg_peers', 'obsfucator', 'obsfucation') %}
                             {{entry['domain']}}
                         {% elif entry['domain'] == None %}
                             -
         <ul>
             <li>Error code 999 is fake and covers a lot of reasons why the domain/instance is not reachable. Mostly that the domain is not resolvable or the server refused connection.</li>
         </ul>
+    {% elif mode == 'obsfucation' %}
+        <h2>Please note to obsfucation status:</h2>
+        <ul>
+            <li>Only supported networks are listed here.</li>
+            <li><em>None</em> means not determined yet.</li>
+        </ul>
     {% endif %}
     <a href="{{base_url}}/">Index</a> /
     {{ super() }}