forked from Pavel_Durov/python_bot
делаем интереснее
This commit is contained in:
parent
21bc3724c8
commit
e55b1c54d8
@ -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
|
||||||
|
@ -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
21
dicktxt/WordsChange.py
Normal 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
30
dicktxt/dick_changes.yaml
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
---
|
||||||
|
increment:
|
||||||
|
- вырос
|
||||||
|
- подрос
|
||||||
|
- привстал
|
||||||
|
- увеличился
|
||||||
|
- преисполнился
|
||||||
|
- приподнялся
|
||||||
|
- изменил размер
|
||||||
|
- облагородился
|
||||||
|
- чрезвычайно преуспел
|
||||||
|
decrement:
|
||||||
|
- неудачно потусил на сходке
|
||||||
|
- уменьшился
|
||||||
|
- откусила злая гадюка
|
||||||
|
- продали евреи, он стал дешевле
|
||||||
|
- схуднул
|
||||||
|
- отрицательно вырос
|
||||||
|
- словил низкие вибрации
|
||||||
|
- повредился после простуды
|
||||||
|
- стал жертвой репрессий
|
||||||
|
- был подло использован
|
||||||
|
nothing:
|
||||||
|
- продвинулся
|
||||||
|
- наноуменьшился
|
||||||
|
- познал стабильность
|
||||||
|
- зафиксировал прибыль
|
||||||
|
- подумал о судьбах Китая
|
||||||
|
- прогулялся по лесу
|
||||||
|
- самоутвердился
|
@ -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( )
|
||||||
|
Loading…
Reference in New Issue
Block a user