new: [api:stats/top] Add a new optional entry to point to get the top 100 of most queried hashes (existing and non-existing)

This commit is contained in:
Alexandre Dulaunoy 2021-08-29 14:06:35 +02:00
parent 4419052c4f
commit c17dbff6a6
Signed by: adulau
GPG key ID: 09E2CD4944E6CBCD
2 changed files with 19 additions and 0 deletions

View file

@ -9,6 +9,7 @@ config = configparser.ConfigParser()
config.read('../etc/server.conf')
stats = config['global'].getboolean('stats')
stats_pubsub = config['global'].getboolean('stats_pubsub')
stats_public = config['global'].getboolean('stats_public')
score = 1
session = config['session'].getboolean('enable')
session_ttl = config['session'].get('ttl')
@ -263,6 +264,23 @@ class sessioncreate(Resource):
ret['info'] = rdb.get('session:{}'.format(name))
return ret
@api.route('/stats/top')
@api.doc(description="Return the top 100 of most queried values.")
class stattop(Resource):
def get(self):
if stats_public is False:
return {'message': 'Public statistics not enabled'}, 400
ret = {}
ret['nx'] = rdb.zrevrange("s:nx:sha1", 0, 100, withscores=True)
exist = rdb.zrevrange("s:exist:sha1", 0, 100, withscores=True)
ret['exist'] = []
for value in exist:
name = rdb.hget("h:{}".format(value[0]), "FileName")
entry = {}
entry['FileName'] = name
entry['SHA-1'] = value
ret['exist'].append(entry)
return ret
if __name__ == '__main__':
app.run(host='0.0.0.0')

View file

@ -1,6 +1,7 @@
[global]
stats = yes
stats_pubsub = yes
stats_public = yes
[session]
enable = yes
ttl = 86400