Compare commits
16 Commits
d596fe9af7
...
BIG_DICK_C
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b646c73f47 | ||
|
|
2a93b636dc | ||
|
|
2cb35e8015 | ||
|
|
8a322efa6b | ||
|
|
bbc5207cb4 | ||
|
|
a3fbd02692 | ||
|
|
e8bed9a381 | ||
| 639e5ecc2e | |||
|
|
8d684856c9 | ||
|
|
ae21a176f7 | ||
|
|
ef861e6bcc | ||
|
|
cbb2d5de99 | ||
|
|
c5104e0550 | ||
|
|
528fbc8aa5 | ||
|
|
3c6cb98ce1 | ||
|
|
5e0879fe81 |
31
.drone.yml
Normal file
31
.drone.yml
Normal file
@@ -0,0 +1,31 @@
|
||||
---
|
||||
kind: pipeline
|
||||
type: exec
|
||||
name: default
|
||||
|
||||
platform:
|
||||
os: linux
|
||||
arch: amd64
|
||||
|
||||
#clone:
|
||||
# убрано так как сейчас не тестим ничего предварительно а сразу тянем в директорию
|
||||
#disable: true
|
||||
|
||||
steps:
|
||||
- name: test it first
|
||||
commands:
|
||||
- /usr/bin/python3 -m py_compile exporto.py
|
||||
- name: pull into the folduh
|
||||
commands:
|
||||
- cd /usr/share/$DRONE_REPO_NAME
|
||||
- su -c "git pull" jack
|
||||
#- chown -R jack:jack .
|
||||
when:
|
||||
branch:
|
||||
- BIG_DICK_COCK
|
||||
- name: restart systemd unit
|
||||
commands:
|
||||
- systemctl restart pipisa_exporter
|
||||
when:
|
||||
branch:
|
||||
- BIG_DICK_COCK
|
||||
89
exporto.py
89
exporto.py
@@ -1,32 +1,13 @@
|
||||
from sqlalchemy import create_engine, Integer, String, BIGINT, Column, DateTime
|
||||
from sqlalchemy.ext.declarative import declarative_base
|
||||
from sqlalchemy.orm import sessionmaker
|
||||
from sqlalchemy import select, update
|
||||
|
||||
|
||||
|
||||
from flask import Flask
|
||||
|
||||
#### https://docs.python-arango.com/en/main/
|
||||
from arango import ArangoClient
|
||||
|
||||
|
||||
|
||||
app = Flask(__name__)
|
||||
|
||||
|
||||
engine = create_engine('postgresql+psycopg2://postgres:postgres@postgres.vdk2ch.ru:5432/jack_bot', echo=True)
|
||||
Session = sessionmaker(bind=engine)
|
||||
|
||||
|
||||
Base = declarative_base()
|
||||
|
||||
|
||||
|
||||
class user(Base):
|
||||
__tablename__ = 'users'
|
||||
|
||||
id = Column(Integer, primary_key=True)
|
||||
user_id = Column(Integer)
|
||||
user_fullname = Column(String)
|
||||
dick_size = (Column(Integer))
|
||||
datetimes = (Column(DateTime))
|
||||
chat_id = Column(BIGINT)
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -34,23 +15,63 @@ class user(Base):
|
||||
def get_top_dicks():
|
||||
|
||||
|
||||
session = Session()
|
||||
arango_client = ArangoClient(hosts='https://arango.guaranteedstruggle.host')
|
||||
pipisa_db = arango_client.db('pipisa', username='root', password='stolendick527')
|
||||
dicks_collection = pipisa_db.collection('dicks')
|
||||
|
||||
top = session.query(user.user_fullname, user.dick_size, user.user_id, user.chat_id).all()
|
||||
dicks = dicks_collection.all( )
|
||||
dicks = [[
|
||||
d['user_fullname'],
|
||||
d['dick_size'],
|
||||
d['user_id'],
|
||||
d['chat_id'],
|
||||
d['attempts'],
|
||||
] for d in dicks]
|
||||
|
||||
|
||||
session.close()
|
||||
dicks = sorted(dicks, key=lambda dick: dick[1], reverse=True)
|
||||
|
||||
return dicks
|
||||
|
||||
return top
|
||||
|
||||
|
||||
|
||||
@app.route('/metrics')
|
||||
def metrics():
|
||||
metrics = ""
|
||||
for dick in get_top_dicks():
|
||||
metrics += 'pipisio{user="%s", user_id="%s", chat_id="%s"} %s\n' % (dick[0], dick[2], dick[3], dick[1])
|
||||
|
||||
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)
|
||||
engine.dispose()
|
||||
app.run(host='0.0.0.0', port=9992)
|
||||
6
requirements.txt
Normal file
6
requirements.txt
Normal file
@@ -0,0 +1,6 @@
|
||||
aiogram
|
||||
sqdb
|
||||
sqlalchemy
|
||||
graypy
|
||||
flask
|
||||
psycopg2
|
||||
Reference in New Issue
Block a user