делаем интереснее
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Simple_Not 2024-01-22 02:59:25 +10:00
parent 21bc3724c8
commit e55b1c54d8
5 changed files with 89 additions and 75 deletions

View File

@ -6,7 +6,7 @@ databaso:
base: pipisa base: pipisa
collection: dicks collection: dicks
telegram_token: 5724991559:AAEuLvpLsgP6LHRGMSyFtQLlR5qPQUO4b_w telegram_token: 6472915685:AAHPvgrQoqG7DxtfbnHWPe3Lfild-CGJ1j8 # 5724991559:AAEuLvpLsgP6LHRGMSyFtQLlR5qPQUO4b_w
telegram_admins_ids: telegram_admins_ids:
- 317051301 # hogweed1 - 317051301 # hogweed1
- 226765676 # blackjack - 226765676 # blackjack

View File

@ -8,9 +8,5 @@ def RandomDick():
with open('dicktxt/dick_sinonims.txt', 'r', encoding='utf-8') as file: with open('dicktxt/dick_sinonims.txt', 'r', encoding='utf-8') as file:
words = file.readlines() words = file.readlines()
random_line = random.choice(words).strip() return random.choice(words).strip()
return random_line

21
dicktxt/WordsChange.py Normal file
View File

@ -0,0 +1,21 @@
import yaml
import random
def ChangeWord(result): #выбирает рандомное слово для изменения размера пиписы
with open("dicktxt/dick_changes.yaml", 'r') as f:
words = yaml.load(f, Loader=yaml.Loader)
dick_inc = ( f'<b>{w}</b>' for w in words['increment'] )
dick_static = ( f'<b>{w}</b>' for w in words['nothing'] )
dick_decr = ( f'<b>{w}</b>' for w in words['decrement'] )
if result > 0:
size_change = random.choice(dick_inc) + '🚀'
elif result == 0:
size_change = random.choice(dick_static) + '🤨'
else:
size_change = random.choice(dick_decr) + ''
return size_change

30
dicktxt/dick_changes.yaml Normal file
View File

@ -0,0 +1,30 @@
---
increment:
- вырос
- подрос
- привстал
- увеличился
- преисполнился
- приподнялся
- изменил размер
- облагородился
- чрезвычайно преуспел
decrement:
- неудачно потусил на сходке
- уменьшился
- откусила злая гадюка
- продали евреи, он стал дешевле
- схуднул
- отрицательно вырос
- словил низкие вибрации
- повредился после простуды
- стал жертвой репрессий
- был подло использован
nothing:
- продвинулся
- наноуменьшился
- познал стабильность
- зафиксировал прибыль
- подумал о судьбах Китая
- прогулялся по лесу
- самоутвердился

View File

@ -3,7 +3,7 @@ from create_bot import bot, dp
import random import random
from random import randint from random import randint
import datetime import datetime
from dicktxt import ForReadDict from dicktxt import ForReadDict, WordsChange
from pipisa_functions import pipisa_time from pipisa_functions import pipisa_time
from global_conf import CONFIG from global_conf import CONFIG
@ -14,54 +14,30 @@ from arango import ArangoClient
admins = CONFIG['telegram_admins_ids'] 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"]) @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
if message.from_user.id in admins or message.chat.type != 'private': if message.from_user.id in admins or message.chat.type != 'private':
dicks_collection = 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'])
#### TODO уплатить нолог с 100 см для самого нищего #### TODO уплатить нолог с 100 см для самого нищего
# рандомайзер # рандомайзер
numb = randint(-9,10) result = 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>',
'<b>схуднул</b>'
)
dick_stayed = (
'<b>продвинулся</b>',
'<b>наноуменьшился</b>',
'<b>зафиксировал прибыль</b>'
)
if numb > 0:
size_change = random.choice(dick_plus) + '🚀'
elif numb == 0:
size_change = random.choice(dick_stayed) + '🤨'
else:
size_change = random.choice(dick_minus) + ''
try: try:
#### Чекнуть есть ли юзер в базе #### Чекнуть есть ли юзер в базе
@ -81,7 +57,7 @@ async def up_dick(message: types.Message):
if pipisa_time.rolltime(check_datetime=user['datetimes'], curr_time=datetime.datetime.now()): if pipisa_time.rolltime(check_datetime=user['datetimes'], curr_time=datetime.datetime.now()):
# пришло время крутить!! # пришло время крутить!!
updetedDick = user["dick_size"] + numb updetedDick = user["dick_size"] + result
try: try:
dt = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") dt = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
metadata = dicks_collection.insert( metadata = dicks_collection.insert(
@ -101,11 +77,11 @@ async def up_dick(message: types.Message):
print(f'ошибка в обновлении пиписы @{message.from_user.username}') print(f'ошибка в обновлении пиписы @{message.from_user.username}')
print(e2) print(e2)
randomword = ForReadDict.RandomDick() randomword = ForReadDict.RandomDick()
change_phrase = WordsChange.ChangeWord(result)
await bot.send_message(message.chat.id, f'@{message.from_user.username}, ваш <em>{randomword}</em> {change_phrase}\
await bot.send_message(message.chat.id, f'@{message.from_user.username}, ваш <em>{randomword}</em> {size_change}\ на <b>{abs(result)}</b> см!\n\
на <b>{abs(numb)}</b> см!\n\
Теперь он равен <b>{updetedDick}</b> см! ') Теперь он равен <b>{updetedDick}</b> см! ')
else: else:
await bot.send_message(message.chat.id, f'@{message.from_user.username},🚫 вы уже крутили пипису, ее размер <b>{user["dick_size"]}</b> см! ') await bot.send_message(message.chat.id, f'@{message.from_user.username},🚫 вы уже крутили пипису, ее размер <b>{user["dick_size"]}</b> см! ')
@ -137,7 +113,7 @@ async def up_dick(message: types.Message):
novenkiy = { novenkiy = {
'user_id': message.from_user.id, 'user_id': message.from_user.id,
'user_fullname': message.from_user.full_name, 'user_fullname': message.from_user.full_name,
'dick_size': numb, 'dick_size': result,
'datetimes': datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"), 'datetimes': datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"),
'attempts': 1, 'attempts': 1,
'chat_id': message.chat.id 'chat_id': message.chat.id
@ -146,13 +122,13 @@ async def up_dick(message: types.Message):
metadata = dicks_collection.insert(novenkiy, overwrite_mode='update') metadata = dicks_collection.insert(novenkiy, overwrite_mode='update')
if numb > 0: if result > 0:
await bot.send_message(message.chat.id, f'@{message.from_user.username}, ваш писюн показал головку 🚀\n\ await bot.send_message(message.chat.id, f'@{message.from_user.username}, ваш писюн показал головку 🚀\n\
на <b>{abs(numb)}</b> см!\n\ на <b>{abs(result)}</b> см!\n\
Теперь он равен <b>{numb}</b> см!') Теперь он равен <b>{result}</b> см!')
else: else:
await bot.send_message(message.chat.id, f'@{message.from_user.username}, добро пожаловать в игру!🚀\n\ await bot.send_message(message.chat.id, f'@{message.from_user.username}, добро пожаловать в игру!🚀\n\
Ты стартуешь не с лучшей позиции, природа наградила тебя всего <b>{numb}</b> см 😬') Ты стартуешь не с лучшей позиции, природа наградила тебя всего <b>{result}</b> см 😬')
print(f'Успешно добавлен пользователь @{message.from_user.username}') print(f'Успешно добавлен пользователь @{message.from_user.username}')
@ -164,6 +140,12 @@ async def up_dick(message: types.Message):
except Exception as e: except Exception as e:
print('ошибка DB в /dick') print('ошибка DB в /dick')
print(e) print(e)
#### для всех отложенных сообщений
## проверить если прошло ?пять минут? с публикации
## попробовать удалить такой пост и затереть его с коллекции
## оставлять последние в чате топ- и глобал-дик, сохранять последние сообщения о приросте, сохранять последний вызов /dick и иной команды
else: else:
await message.reply('Растить елду можно только в общих чатах!') await message.reply('Растить елду можно только в общих чатах!')
@ -175,14 +157,7 @@ async def up_dick(message: types.Message):
async def send_topchat(message: types.Message): async def send_topchat(message: types.Message):
if message.from_user.id in admins or message.chat.type != 'private': if message.from_user.id in admins or message.chat.type != 'private':
arango_client = ArangoClient(hosts=CONFIG['databaso']['host'] ) dicks_collection = get_dicks_collection()
pipisa_db = arango_client.db(
CONFIG['databaso']['base'],
username=CONFIG['databaso']['user'],
password=CONFIG['databaso']['pass']
)
dicks_collection = pipisa_db.collection(CONFIG['databaso']['collection'])
try: try:
dicks = dicks_collection.find({'chat_id': message.chat.id}, skip=0, limit=1100) dicks = dicks_collection.find({'chat_id': message.chat.id}, skip=0, limit=1100)
dicks = [d for d in dicks] dicks = [d for d in dicks]
@ -215,15 +190,7 @@ async def send_topchat(message: types.Message):
@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):
dicks_collection = 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'])
try: try:
dicks = dicks_collection.all( ) dicks = dicks_collection.all( )