Compare commits
3 Commits
dea7805dff
...
e93d2c0ef7
Author | SHA1 | Date | |
---|---|---|---|
|
e93d2c0ef7 | ||
|
b673b43c93 | ||
|
c02215574d |
8
bot.py
8
bot.py
@ -1,20 +1,12 @@
|
|||||||
import logging
|
import logging
|
||||||
import graypy
|
|
||||||
|
|
||||||
from aiogram import executor
|
from aiogram import executor
|
||||||
|
|
||||||
from create_bot import dp
|
from create_bot import dp
|
||||||
|
|
||||||
import handlers
|
import handlers
|
||||||
|
|
||||||
|
|
||||||
logging.basicConfig(level=logging.DEBUG)
|
logging.basicConfig(level=logging.DEBUG)
|
||||||
|
|
||||||
|
|
||||||
logging.basicConfig(
|
|
||||||
level = logging.DEBUG,
|
|
||||||
handlers = [ graypy.GELFUDPHandler('localhost', 12201) ]
|
|
||||||
)
|
|
||||||
|
|
||||||
# pipisa.register_handlers_pipisa(dp)
|
# pipisa.register_handlers_pipisa(dp)
|
||||||
# time_new_year.register_handlers_time(dp)
|
# time_new_year.register_handlers_time(dp)
|
||||||
|
@ -1,4 +1,7 @@
|
|||||||
from aiogram import Bot, Dispatcher
|
from aiogram import Bot, Dispatcher
|
||||||
|
|
||||||
|
|
||||||
API_TOKEN = '5724991559:AAEuLvpLsgP6LHRGMSyFtQLlR5qPQUO4b_w'
|
API_TOKEN = '5724991559:AAEuLvpLsgP6LHRGMSyFtQLlR5qPQUO4b_w'
|
||||||
|
|
||||||
bot = Bot(token=API_TOKEN, parse_mode="HTML")
|
bot = Bot(token=API_TOKEN, parse_mode="HTML")
|
||||||
dp = Dispatcher(bot)
|
dp = Dispatcher(bot)
|
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
from handlers import pipisa
|
from handlers import pipisa
|
||||||
from handlers import davinci
|
#from handlers import davinci #### токены рип
|
||||||
from handlers import time_new_year
|
from handlers import time_new_year
|
||||||
from handlers import sendalarm
|
#from handlers import sendalarm
|
||||||
from handlers import start_help
|
from handlers import start_help
|
||||||
|
|
||||||
|
@ -9,15 +9,16 @@ openai.api_key = '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'
|
|||||||
async def send(message: types.Message):
|
async def send(message: types.Message):
|
||||||
if 'тупица' in message.text.lower():
|
if 'тупица' in message.text.lower():
|
||||||
|
|
||||||
|
## TODO уточнить остатки токенов и денег
|
||||||
response = openai.Completion.create(
|
response = openai.Completion.create(
|
||||||
model="text-davinci-003",
|
model="text-davinci-003",
|
||||||
prompt=message.text[7:],
|
prompt=message.text[7:],
|
||||||
temperature=0.7,
|
temperature=0.7,
|
||||||
max_tokens=1000,
|
max_tokens=1000,
|
||||||
top_p=1.0,
|
top_p=1.0,
|
||||||
frequency_penalty=0.0,
|
frequency_penalty=0.0,
|
||||||
presence_penalty=0.6,
|
presence_penalty=0.6,
|
||||||
stop=["сброс"]
|
stop=["сброс"]
|
||||||
)
|
)
|
||||||
await message.reply(response['choices'][0]['text'])
|
await message.reply(response['choices'][0]['text'])
|
||||||
|
|
||||||
|
@ -1,181 +1,204 @@
|
|||||||
from aiogram import types, Dispatcher
|
from aiogram import types, Dispatcher
|
||||||
from sqlalchemy.orm.session import close_all_sessions
|
#from sqlalchemy.orm.session import close_all_sessions
|
||||||
from create_bot import bot, dp
|
from create_bot import bot, dp
|
||||||
from sqdb import user, session
|
#from sqdb import user, session
|
||||||
import random
|
import random
|
||||||
from random import randint
|
from random import randint
|
||||||
import datetime
|
import datetime
|
||||||
from dicktxt import ForReadDict
|
from dicktxt import ForReadDict
|
||||||
|
|
||||||
|
from arango import ArangoClient
|
||||||
|
|
||||||
|
#from arangodb_base import dicks_collection
|
||||||
|
|
||||||
|
|
||||||
@dp.message_handler(commands=["dick"])
|
@dp.message_handler(commands=["dick"])
|
||||||
async def up_dick(message: types.Message):
|
async def up_dick(message: types.Message):
|
||||||
# рандомайзер
|
#global size_change, dick_plus, dick_minus
|
||||||
numb = randint(-6,10)
|
|
||||||
global size_change, dick_plus, dick_minus
|
|
||||||
dick_plus = ('<b>вырос</b>', '<b>подрос</b>', '<b>привстал</b>')
|
arango_client = ArangoClient(hosts='https://arango.vdk2ch.ru')
|
||||||
dick_minus = ('<b>уменьшился</b>', '<b>откусила злая гадюка</b>', '<b>продали евреи, он стал дешевле</b>')
|
pipisa_db = arango_client.db('pipisa', username='root', password='stolendick527')
|
||||||
|
dicks_collection = pipisa_db.collection('dicks')
|
||||||
|
|
||||||
|
|
||||||
|
# рандомайзер
|
||||||
|
numb = randint(-9,10)
|
||||||
|
dick_plus = (
|
||||||
|
'<b>вырос</b>',
|
||||||
|
'<b>подрос</b>',
|
||||||
|
'<b>привстал</b>',
|
||||||
|
'<b>увеличился</b>',
|
||||||
|
'<b>преисполнился</b>'
|
||||||
|
)
|
||||||
|
dick_minus = (
|
||||||
|
'<b>неудачно потусил на сходке</b>',
|
||||||
|
'<b>уменьшился</b>',
|
||||||
|
'<b>откусила злая гадюка</b>',
|
||||||
|
'<b>продали евреи, он стал дешевле</b>'
|
||||||
|
)
|
||||||
|
|
||||||
if numb > 0:
|
if numb > 0:
|
||||||
size_change = random.choice(dick_plus) + '🚀'
|
size_change = random.choice(dick_plus) + '🚀'
|
||||||
#if numb = 0 size_change = random.choice(const) TODO
|
#if numb = 0 size_change = random.choice(const) TODO
|
||||||
else: size_change = random.choice(dick_minus) + '✂'
|
else:
|
||||||
|
size_change = random.choice(dick_minus) + '✂'
|
||||||
|
|
||||||
|
|
||||||
# работа с таблицей
|
|
||||||
try:
|
try:
|
||||||
b = session.query(user).filter(user.user_id == message.from_user.id).first()
|
#### Чекнуть есть ли юзер в базе
|
||||||
if b:
|
candidate_cursor = dicks_collection.find({'user_id': message.from_user.id}, skip=0, limit=1488)
|
||||||
last_time = b.datetimes
|
|
||||||
now_time = datetime.datetime.now()
|
if candidate_cursor.count() > 0:
|
||||||
diff = now_time.day - last_time.day
|
## Если есть то нарастить и отправить сообщение
|
||||||
|
print(11111)
|
||||||
if abs(diff) <= 0:
|
user = candidate_cursor.pop()
|
||||||
|
|
||||||
|
print(user)
|
||||||
|
print(user['datetimes'])
|
||||||
|
|
||||||
|
last_time = datetime.datetime.strptime(user['datetimes'], '%Y-%m-%d %H:%M:%S')
|
||||||
|
time_to_grow = datetime.datetime.now().replace(hour=14, minute=8, second=8, microsecond=0)
|
||||||
|
|
||||||
|
if (time_to_grow - last_time).days > 0:
|
||||||
|
# прошло больше суток
|
||||||
|
|
||||||
|
updetedDick = user["dick_size"] + numb
|
||||||
try:
|
try:
|
||||||
current_dick = b.dick_size
|
# metadata = dicks_collection.update_match(
|
||||||
|
# {'user_id': message.from_user.id, 'chat_it': message.chat.id},
|
||||||
|
# {'dick_size': updetedDick, 'datetimes': datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")}
|
||||||
await bot.send_message(message.chat.id, f'@{message.from_user.username},🚫 вы уже крутили пипису, ее размер <b>{current_dick}</b> см! ')
|
# )
|
||||||
except:
|
metadata = dicks_collection.insert(
|
||||||
print('ошибка в if diff <=0')
|
{
|
||||||
session.rollback()
|
'_key': user['_key'],
|
||||||
finally:
|
'_id': user['_id'],
|
||||||
session.close_all()
|
'_rev': user['_rev'],
|
||||||
print('пользователь уже крутил')
|
'user_id': message.from_user.id,
|
||||||
|
'user_fullname': user['user_fullname'],
|
||||||
|
'dick_size': updetedDick,
|
||||||
|
'datetimes': datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"),
|
||||||
|
'chat_id': message.chat.id
|
||||||
|
},
|
||||||
|
overwrite_mode='update'
|
||||||
|
)
|
||||||
|
print(f'Успешно апдейтнули пипису @{message.from_user.username}')
|
||||||
|
except Exception as e2:
|
||||||
|
print(f'ошибка в обновлении пиписы @{message.from_user.username}')
|
||||||
|
print(e2)
|
||||||
|
|
||||||
|
randomword = ForReadDict.RandomDick()
|
||||||
|
|
||||||
|
|
||||||
|
await bot.send_message(message.chat.id, f'@{message.from_user.username}, ваш <em>{randomword}</em> {size_change}\
|
||||||
|
# на <b>{abs(numb)}</b> см!\n\
|
||||||
|
# Теперь он равен <b>{updetedDick}</b> см! ')
|
||||||
else:
|
else:
|
||||||
try:
|
await bot.send_message(message.chat.id, f'@{message.from_user.username},🚫 вы уже крутили пипису, ее размер <b>{user["dick_size"]}</b> см! ')
|
||||||
a = session.query(user).filter(user.user_id == message.from_user.id).first() # запрос на поиск в таблице
|
print(f'пользователь @{message.from_user.username} уже крутил')
|
||||||
updetedDick = a.dick_size = (a.dick_size + numb)
|
|
||||||
a.datetimes = datetime.datetime.now()
|
else:
|
||||||
session.flush()
|
## если нету, то создать
|
||||||
session.commit() #обновляет запись
|
|
||||||
randomword = ForReadDict.RandomDick()
|
try:
|
||||||
|
novenkiy = {
|
||||||
await bot.send_message(message.chat.id, f'@{message.from_user.username}, ваш <em>{randomword}</em> {size_change}\
|
'user_id': message.from_user.id,
|
||||||
|
'user_fullname': message.from_user.full_name,
|
||||||
|
'dick_size': numb,
|
||||||
|
'datetimes': datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"),
|
||||||
|
'chat_id': message.chat.id
|
||||||
|
}
|
||||||
|
|
||||||
|
#### TODO проверить как-то по-умному что мы таки его добавили
|
||||||
|
metadata = dicks_collection.insert(novenkiy)
|
||||||
|
|
||||||
|
|
||||||
|
if numb > 0:
|
||||||
|
await bot.send_message(message.chat.id, f'@{message.from_user.username}, ваш писюн показал головку 🚀\n\
|
||||||
на <b>{abs(numb)}</b> см!\n\
|
на <b>{abs(numb)}</b> см!\n\
|
||||||
Теперь он равен <b>{updetedDick}</b> см! ')
|
Теперь он равен <b>{numb}</b> см!')
|
||||||
except:
|
else:
|
||||||
session.rollback()
|
await bot.send_message(message.chat.id, f'@{message.from_user.username}, добро пожаловать в игру!🚀\n\
|
||||||
print('ошибка в обновлении пиписы')
|
Ты стартуешь не с лучшей позиции, природа наградила тебя всего: <b>{abs(numb)}</b> см 😬')
|
||||||
finally:
|
|
||||||
session.close_all()
|
|
||||||
print('пиписа обновлена')
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
else:
|
print(f'Успешно добавлен пользователь @{message.from_user.username}')
|
||||||
session.close()
|
except Exception as e1:
|
||||||
try:
|
|
||||||
numb = randint(1,10)
|
|
||||||
|
|
||||||
int_table = user(user_id = message.from_user.id, user_fullname = message.from_user.full_name, dick_size = numb, datetimes = datetime.datetime.now(),\
|
|
||||||
chat_id = message.chat.id)
|
|
||||||
|
|
||||||
session.add(int_table)
|
|
||||||
session.flush()
|
|
||||||
session.commit()
|
|
||||||
session.close()
|
|
||||||
|
|
||||||
await bot.send_message(message.chat.id, f'@{message.from_user.username}, ваш писюн показал головку 🚀\n\
|
|
||||||
на <b>{abs(numb)}</b> см!\n\
|
|
||||||
Теперь он равен <b>{numb}</b> см!')
|
|
||||||
except:
|
|
||||||
print('ошибка в добавлении нового пользователя')
|
print('ошибка в добавлении нового пользователя')
|
||||||
session.rollback()
|
print(e1)
|
||||||
finally:
|
|
||||||
session.close_all()
|
|
||||||
print('Успешно добавлен пользователь')
|
except Exception as e:
|
||||||
|
print('ошибка DB в /dick')
|
||||||
except:
|
print(e)
|
||||||
session.rollback()
|
|
||||||
print('ошибка в основном коде')
|
|
||||||
finally:
|
|
||||||
session.close_all()
|
|
||||||
|
|
||||||
|
|
||||||
@dp.message_handler(commands=["topdick"])
|
@dp.message_handler(commands=["topdick"])
|
||||||
async def send_topchat(message: types.Message):
|
async def send_topchat(message: types.Message):
|
||||||
|
|
||||||
|
|
||||||
|
arango_client = ArangoClient(hosts='https://arango.vdk2ch.ru')
|
||||||
|
pipisa_db = arango_client.db('pipisa', username='root', password='stolendick527')
|
||||||
|
dicks_collection = pipisa_db.collection('dicks')
|
||||||
|
|
||||||
try:
|
try:
|
||||||
changechat_id = session.query(user).filter(user.user_id == message.from_user.id).first()
|
dicks = dicks_collection.find({'chat_id': message.chat.id}, skip=0, limit=1100)
|
||||||
chats = message.chat.id
|
dicks = [d for d in dicks]
|
||||||
if changechat_id.chat_id != chats:
|
except Exception as e:
|
||||||
changechat_id.chat_id = chats
|
print('ошибка DB в /topdick')
|
||||||
session.commit()
|
print(e)
|
||||||
session.close()
|
|
||||||
else:
|
|
||||||
session.close()
|
|
||||||
top = session.query(user.user_fullname, user.dick_size).order_by(user.dick_size.desc()).filter(user.chat_id == chats).limit(10).all()
|
|
||||||
delimiter = ': '
|
|
||||||
|
|
||||||
# проверка на длину списка, если меньше limit, то:
|
top_dicks = sorted(dicks, key=lambda dick: dick['dick_size'], reverse=True)
|
||||||
|
|
||||||
|
dick_limit = min(len(top_dicks), 10)
|
||||||
|
top_dicks = top_dicks[:dick_limit]
|
||||||
|
|
||||||
|
dickos = ''
|
||||||
|
emo = ['🏆','🚀','🍆','🍌','🐍','🐎','🌭','🌶','👌','💩']
|
||||||
|
|
||||||
sizelen = len(top)
|
if len(top_dicks) == 0:
|
||||||
if sizelen < 10:
|
await bot.send_message(message.chat.id, '🍆 Никто ничего не нарастил! 🍌')
|
||||||
lenminus = 10 - sizelen
|
else:
|
||||||
top.extend(('-'*lenminus))
|
for i in range(len(top_dicks)):
|
||||||
await bot.send_message(message.chat.id, f'🏆Топ 10 бубылд чата🏆\n\n\
|
dickos += f' {emo[i]} {i+1}. {top_dicks[i]["user_fullname"]}: {top_dicks[i]["dick_size"]}см\n'
|
||||||
🚀 {delimiter.join(map(str, top[0]))}\n\
|
i += 1
|
||||||
💫 {delimiter.join(map(str, top[1]))}\n\
|
|
||||||
🍆 {delimiter.join(map(str, top[2]))}\n\
|
|
||||||
🍌 {delimiter.join(map(str, top[3]))}\n\
|
|
||||||
🐍 {delimiter.join(map(str, top[4]))}\n\
|
|
||||||
🐎 {delimiter.join(map(str, top[5]))}\n\
|
|
||||||
🌭 {delimiter.join(map(str, top[6]))}\n\
|
|
||||||
🌶 {delimiter.join(map(str, top[7]))}\n\
|
|
||||||
👌 {delimiter.join(map(str, top[8]))}\n\
|
|
||||||
💩 {delimiter.join(map(str, top[9]))}\n')
|
|
||||||
session.close()
|
|
||||||
# если все нормально и участников минимум 10
|
|
||||||
|
|
||||||
else:
|
await bot.send_message(message.chat.id, '🏆Топ 10 бубылд чата🏆\n\n' + dickos)
|
||||||
|
|
||||||
await bot.send_message(message.chat.id, f'🏆Топ 10 бубылд чата🏆\n\n\
|
|
||||||
🚀 {delimiter.join(map(str, top[0]))}\n\
|
|
||||||
💫 {delimiter.join(map(str, top[1]))}\n\
|
|
||||||
🍆 {delimiter.join(map(str, top[2]))}\n\
|
|
||||||
🍌 {delimiter.join(map(str, top[3]))}\n\
|
|
||||||
🐍 {delimiter.join(map(str, top[4]))}\n\
|
|
||||||
🐎 {delimiter.join(map(str, top[5]))}\n\
|
|
||||||
🌭 {delimiter.join(map(str, top[6]))}\n\
|
|
||||||
🌶 {delimiter.join(map(str, top[7]))}\n\
|
|
||||||
👌 {delimiter.join(map(str, top[8]))}\n\
|
|
||||||
💩 {delimiter.join(map(str, top[9]))}\n')
|
|
||||||
except:
|
|
||||||
session.rollback()
|
|
||||||
print('ошибка в /topdick')
|
|
||||||
finally:
|
|
||||||
session.close_all()
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@dp.message_handler(commands=["globaldick"])
|
@dp.message_handler(commands=["globaldick"])
|
||||||
async def send_global_top(message: types.Message):
|
async def send_global_top(message: types.Message):
|
||||||
|
|
||||||
|
|
||||||
|
arango_client = ArangoClient(hosts='https://arango.vdk2ch.ru')
|
||||||
|
pipisa_db = arango_client.db('pipisa', username='root', password='stolendick527')
|
||||||
|
dicks_collection = pipisa_db.collection('dicks')
|
||||||
|
|
||||||
try:
|
try:
|
||||||
top_chat = session.query(user.user_fullname, user.dick_size).order_by(user.dick_size.desc()).limit(10).all()
|
dicks = dicks_collection.all( )
|
||||||
|
dicks = [d for d in dicks]
|
||||||
delimiter = ': '
|
except Exception as e:
|
||||||
|
print('ошибка DB в /glovaldick')
|
||||||
|
print(e)
|
||||||
await bot.send_message(message.chat.id, f'🏆Топ 10 пипис в мире🏆\n\n\
|
|
||||||
1. {delimiter.join(map(str, top_chat[0]))}\n\
|
|
||||||
2. {delimiter.join(map(str, top_chat[1]))}\n\
|
|
||||||
3. {delimiter.join(map(str, top_chat[2]))}\n\
|
|
||||||
4. {delimiter.join(map(str, top_chat[3]))}\n\
|
|
||||||
5. {delimiter.join(map(str, top_chat[4]))}\n\
|
|
||||||
6. {delimiter.join(map(str, top_chat[5]))}\n\
|
|
||||||
7. {delimiter.join(map(str, top_chat[6]))}\n\
|
|
||||||
8. {delimiter.join(map(str, top_chat[7]))}\n\
|
|
||||||
9. {delimiter.join(map(str, top_chat[8]))}\n\
|
|
||||||
10. {delimiter.join(map(str, top_chat[9]))}\n')
|
|
||||||
except:
|
|
||||||
session.rollback()
|
|
||||||
print('ошибка в /glovaldick')
|
|
||||||
finally:
|
|
||||||
session.close_all()
|
|
||||||
|
|
||||||
|
top_dicks = sorted(dicks, key=lambda dick: dick['dick_size'], reverse=True)
|
||||||
|
|
||||||
|
dick_limit = min(len(top_dicks), 10)
|
||||||
|
top_dicks = top_dicks[:dick_limit]
|
||||||
|
|
||||||
|
dickos = ''
|
||||||
|
emo = ['🏆','🚀','💫','🍆','🍌','🐍','🐎','🌭','🌶','👌']
|
||||||
|
|
||||||
# def register_handlers_pipisa(dp: Dispatcher):
|
if len(top_dicks) == 0:
|
||||||
# dp.register_message_handler(up_dick)
|
await bot.send_message(message.chat.id, '🍆 Никто ничего не нарастил! 🍌')
|
||||||
# dp.register_message_handler(send_topchat)
|
else:
|
||||||
# dp.register_message_handler(send_global_top)
|
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
|
||||||
|
|
||||||
|
await bot.send_message(message.chat.id, '🏆Топ 10 пипис в мире🏆\n\n' + dickos)
|
||||||
|
|
||||||
|
@ -1,4 +1,2 @@
|
|||||||
aiogram
|
aiogram
|
||||||
sqdb
|
python-arango
|
||||||
sqlalchemy
|
|
||||||
graypy
|
|
Loading…
Reference in New Issue
Block a user