меньше кода - лучше!

This commit is contained in:
Simple_Not 2024-01-23 12:45:44 +10:00
parent eb59091615
commit 505d90aea8
4 changed files with 63 additions and 45 deletions

0
db_logic/__init__.py Normal file
View File

18
db_logic/collections.py Normal file
View File

@ -0,0 +1,18 @@
from global_conf import CONFIG
#### https://docs.python-arango.com/en/main/
from arango import ArangoClient
def get_dicks_collection():
arango_client = ArangoClient(hosts=CONFIG['databaso']['host'] )
pipisa_db = arango_client.db(
CONFIG['databaso']['base'],
username=CONFIG['databaso']['user'],
password=CONFIG['databaso']['pass']
)
dicks_collection = pipisa_db.collection(CONFIG['databaso']['collection'])
return dicks_collection

33
db_logic/tops.py Normal file
View File

@ -0,0 +1,33 @@
from global_conf import CONFIG
from db_logic import collections
def get_tops(top_ = False, glob_ = False, chat_id = None):
if top_:
try:
dicks = [d for d in collections.get_dicks_collection().find({'chat_id': chat_id}, skip=0, limit=1100)]
except Exception as e:
print('ошибка DB в /topdick')
print(e)
elif glob_:
try:
dicks = [d for d in collections.get_dicks_collection().all( ) if d['user_id'] != d['chat_id']]
except Exception as e:
print('ошибка DB в /globaldick')
print(e)
else:
print('вызывают хз что!')
top_dicks = sorted(dicks, key=lambda dick: dick['dick_size'], reverse=True)
top_dicks = top_dicks[:( min(len(top_dicks), 10) )]
dickos = ''
emo = ['🏆','🚀','🍆','🍌','🐍','🐎','🌭','🌶','👌','💩']
if len(top_dicks) > 0:
for i in range(len(top_dicks)):
dickos += f' {emo[i]} {i+1}. {top_dicks[i]["user_fullname"]}: {top_dicks[i]["dick_size"]}см\n'
i += 1
return dickos

View File

@ -8,30 +8,20 @@ from pipisa_functions import pipisa_time
from global_conf import CONFIG
#### https://docs.python-arango.com/en/main/
from arango import ArangoClient
from db_logic import tops
from db_logic import collections
admins = CONFIG['telegram_admins_ids']
def get_dicks_collection():
arango_client = ArangoClient(hosts=CONFIG['databaso']['host'] )
pipisa_db = arango_client.db(
CONFIG['databaso']['base'],
username=CONFIG['databaso']['user'],
password=CONFIG['databaso']['pass']
)
dicks_collection = pipisa_db.collection(CONFIG['databaso']['collection'])
return dicks_collection
@dp.message_handler(commands=["dick"])
async def up_dick(message: types.Message):
if message.from_user.id in admins or message.chat.type != 'private':
dicks_collection = get_dicks_collection()
dicks_collection = collections.get_dicks_collection()
#### TODO уплатить нолог с 100 см для самого нищего
@ -150,42 +140,19 @@ async def up_dick(message: types.Message):
async def send_topchat(message: types.Message):
if message.from_user.id in admins or message.chat.type != 'private':
top_ = False
glob_ = False
dicks_collection = get_dicks_collection()
top_ = message['text'].startswith('/topdick')
glob_ = message['text'].startswith('/globaldick')
if message['text'].statswith('/topdick'):
top_ = True
try:
dicks = dicks_collection.find({'chat_id': message.chat.id}, skip=0, limit=1100)
dicks = [d for d in dicks]
except Exception as e:
print('ошибка DB в /topdick')
print(e)
elif message['text'].statswith('/globaldick'):
glob_ = True
try:
dicks = dicks_collection.all( )
dicks = [d for d in dicks if d['user_id'] != d['chat_id']]
except Exception as e:
print('ошибка DB в /globaldick')
print(e)
if top_:
dickos = tops.get_tops( top_=True, chat_id=message.chat.id )
elif glob_:
dickos = tops.get_tops( glob_=True )
else:
print('вызывают хз что!')
top_dicks = sorted(dicks, key=lambda dick: dick['dick_size'], reverse=True)
top_dicks = top_dicks[:( min(len(top_dicks), 10) )]
dickos = ''
emo = ['🏆','🚀','🍆','🍌','🐍','🐎','🌭','🌶','👌','💩']
print('вызывают хз что!')
if len(top_dicks) == 0:
if not dickos:
await bot.send_message(message.chat.id, '🍆 Никто ничего не нарастил! 🍌')
else:
for i in range(len(top_dicks)):
dickos += f' {emo[i]} {i+1}. {top_dicks[i]["user_fullname"]}: {top_dicks[i]["dick_size"]}см\n'
i += 1
if top_:
await bot.send_message(message.chat.id, '🏆Топ 10 бубылд чата🏆\n\n' + dickos)
elif glob_: