pipisa-exporter/exporto.py
Simple_Not b646c73f47
All checks were successful
continuous-integration/drone/push Build is passing
remake many certs
2023-07-17 12:36:23 +10:00

77 lines
2.0 KiB
Python

from flask import Flask
#### https://docs.python-arango.com/en/main/
from arango import ArangoClient
app = Flask(__name__)
def get_top_dicks():
arango_client = ArangoClient(hosts='https://arango.guaranteedstruggle.host')
pipisa_db = arango_client.db('pipisa', username='root', password='stolendick527')
dicks_collection = pipisa_db.collection('dicks')
dicks = dicks_collection.all( )
dicks = [[
d['user_fullname'],
d['dick_size'],
d['user_id'],
d['chat_id'],
d['attempts'],
] for d in dicks]
dicks = sorted(dicks, key=lambda dick: dick[1], reverse=True)
return dicks
@app.route('/metrics')
def metrics():
metrics = ""
docks = get_top_dicks()
# текущий размер пипис
for dick in docks:
metrics += 'pipisio{user="%s", user_id="%s", chat_id="%s"} %s\n' % (dick[0], dick[2], dick[3], dick[1])
# текущее число попыток
for dick in docks:
metrics += 'pipisio_attempto{user="%s", user_id="%s", chat_id="%s"} %s\n' % (dick[0], dick[2], dick[3], dick[4])
docks = [ d for d in docks if d[3] == -1001355646177]
# расстояние до следующего впереди
for k in range(len(docks)):
### не самый красивый код для не самой красивой ситуации
if k == 0:
metrics += 'pipisio_topdick_distanso{user="%s", user_id="%s", chat_id="%s"} %s\n' % (docks[k][0], docks[k][2], docks[k][3], 0)
else:
i = k - 1
upper_dick_size = docks[i][1]
while i > 0 and upper_dick_size == docks[k][1]:
i -= 1
upper_dick_size = docks[i][1]
metrics += 'pipisio_topdick_distanso{user="%s", user_id="%s", chat_id="%s"} %s\n' % (docks[k][0], docks[k][2], docks[k][3], (upper_dick_size - docks[k][1]))
return metrics
if __name__ == '__main__':
app.run(host='0.0.0.0', port=9992)