From e55b1c54d86dd7af8000ce27454117d92771a39a Mon Sep 17 00:00:00 2001
From: Simple_Not <44047940+moonbaseDelta@users.noreply.github.com>
Date: Mon, 22 Jan 2024 02:59:25 +1000
Subject: [PATCH] =?UTF-8?q?=D0=B4=D0=B5=D0=BB=D0=B0=D0=B5=D0=BC=20=D0=B8?=
=?UTF-8?q?=D0=BD=D1=82=D0=B5=D1=80=D0=B5=D1=81=D0=BD=D0=B5=D0=B5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
config.yaml | 2 +-
dicktxt/ForReadDict.py | 8 +--
dicktxt/WordsChange.py | 21 ++++++++
dicktxt/dick_changes.yaml | 30 +++++++++++
handlers/pipisa.py | 103 +++++++++++++-------------------------
5 files changed, 89 insertions(+), 75 deletions(-)
create mode 100644 dicktxt/WordsChange.py
create mode 100644 dicktxt/dick_changes.yaml
diff --git a/config.yaml b/config.yaml
index d3c0ac4..f79fa1e 100644
--- a/config.yaml
+++ b/config.yaml
@@ -6,7 +6,7 @@ databaso:
base: pipisa
collection: dicks
-telegram_token: 5724991559:AAEuLvpLsgP6LHRGMSyFtQLlR5qPQUO4b_w
+telegram_token: 6472915685:AAHPvgrQoqG7DxtfbnHWPe3Lfild-CGJ1j8 # 5724991559:AAEuLvpLsgP6LHRGMSyFtQLlR5qPQUO4b_w
telegram_admins_ids:
- 317051301 # hogweed1
- 226765676 # blackjack
diff --git a/dicktxt/ForReadDict.py b/dicktxt/ForReadDict.py
index 75afba0..752a890 100644
--- a/dicktxt/ForReadDict.py
+++ b/dicktxt/ForReadDict.py
@@ -7,10 +7,6 @@ def RandomDick():
# когда указываешь путь
with open('dicktxt/dick_sinonims.txt', 'r', encoding='utf-8') as file:
words = file.readlines()
+
+ return random.choice(words).strip()
- random_line = random.choice(words).strip()
- return random_line
-
-
-
-
\ No newline at end of file
diff --git a/dicktxt/WordsChange.py b/dicktxt/WordsChange.py
new file mode 100644
index 0000000..5b8f84d
--- /dev/null
+++ b/dicktxt/WordsChange.py
@@ -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'{w}' for w in words['increment'] )
+ dick_static = ( f'{w}' for w in words['nothing'] )
+ dick_decr = ( f'{w}' 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
\ No newline at end of file
diff --git a/dicktxt/dick_changes.yaml b/dicktxt/dick_changes.yaml
new file mode 100644
index 0000000..d38c0c3
--- /dev/null
+++ b/dicktxt/dick_changes.yaml
@@ -0,0 +1,30 @@
+---
+increment:
+- вырос
+- подрос
+- привстал
+- увеличился
+- преисполнился
+- приподнялся
+- изменил размер
+- облагородился
+- чрезвычайно преуспел
+decrement:
+- неудачно потусил на сходке
+- уменьшился
+- откусила злая гадюка
+- продали евреи, он стал дешевле
+- схуднул
+- отрицательно вырос
+- словил низкие вибрации
+- повредился после простуды
+- стал жертвой репрессий
+- был подло использован
+nothing:
+- продвинулся
+- наноуменьшился
+- познал стабильность
+- зафиксировал прибыль
+- подумал о судьбах Китая
+- прогулялся по лесу
+- самоутвердился
\ No newline at end of file
diff --git a/handlers/pipisa.py b/handlers/pipisa.py
index 0347ff4..09ac958 100644
--- a/handlers/pipisa.py
+++ b/handlers/pipisa.py
@@ -3,7 +3,7 @@ from create_bot import bot, dp
import random
from random import randint
import datetime
-from dicktxt import ForReadDict
+from dicktxt import ForReadDict, WordsChange
from pipisa_functions import pipisa_time
from global_conf import CONFIG
@@ -14,54 +14,30 @@ from arango import ArangoClient
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):
- #global size_change, dick_plus, dick_minus
if message.from_user.id in admins or message.chat.type != 'private':
-
- 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'])
-
+ dicks_collection = get_dicks_collection()
#### TODO уплатить нолог с 100 см для самого нищего
# рандомайзер
- numb = randint(-9,10)
- dick_plus = (
- 'вырос',
- 'подрос',
- 'привстал',
- 'увеличился',
- 'преисполнился'
- )
- dick_minus = (
- 'неудачно потусил на сходке',
- 'уменьшился',
- 'откусила злая гадюка',
- 'продали евреи, он стал дешевле',
- 'схуднул'
- )
- dick_stayed = (
- 'продвинулся',
- 'наноуменьшился',
- 'зафиксировал прибыль'
- )
-
- 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) + '✂'
-
+ result = randint(-9,10)
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()):
# пришло время крутить!!
- updetedDick = user["dick_size"] + numb
+ updetedDick = user["dick_size"] + result
try:
dt = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
metadata = dicks_collection.insert(
@@ -101,11 +77,11 @@ async def up_dick(message: types.Message):
print(f'ошибка в обновлении пиписы @{message.from_user.username}')
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}, ваш {randomword} {size_change}\
-на {abs(numb)} см!\n\
+ await bot.send_message(message.chat.id, f'@{message.from_user.username}, ваш {randomword} {change_phrase}\
+на {abs(result)} см!\n\
Теперь он равен {updetedDick} см! ')
else:
await bot.send_message(message.chat.id, f'@{message.from_user.username},🚫 вы уже крутили пипису, ее размер {user["dick_size"]} см! ')
@@ -137,7 +113,7 @@ async def up_dick(message: types.Message):
novenkiy = {
'user_id': message.from_user.id,
'user_fullname': message.from_user.full_name,
- 'dick_size': numb,
+ 'dick_size': result,
'datetimes': datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"),
'attempts': 1,
'chat_id': message.chat.id
@@ -146,13 +122,13 @@ async def up_dick(message: types.Message):
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\
-на {abs(numb)} см!\n\
-Теперь он равен {numb} см!')
+на {abs(result)} см!\n\
+Теперь он равен {result} см!')
else:
await bot.send_message(message.chat.id, f'@{message.from_user.username}, добро пожаловать в игру!🚀\n\
-Ты стартуешь не с лучшей позиции, природа наградила тебя всего {numb} см 😬')
+Ты стартуешь не с лучшей позиции, природа наградила тебя всего {result} см 😬')
print(f'Успешно добавлен пользователь @{message.from_user.username}')
@@ -164,6 +140,12 @@ async def up_dick(message: types.Message):
except Exception as e:
print('ошибка DB в /dick')
print(e)
+
+
+ #### для всех отложенных сообщений
+ ## проверить если прошло ?пять минут? с публикации
+ ## попробовать удалить такой пост и затереть его с коллекции
+ ## оставлять последние в чате топ- и глобал-дик, сохранять последние сообщения о приросте, сохранять последний вызов /dick и иной команды
else:
await message.reply('Растить елду можно только в общих чатах!')
@@ -174,15 +156,8 @@ async def up_dick(message: types.Message):
@dp.message_handler(commands=["topdick"])
async def send_topchat(message: types.Message):
if message.from_user.id in admins or message.chat.type != 'private':
-
- 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'])
-
+
+ dicks_collection = get_dicks_collection()
try:
dicks = dicks_collection.find({'chat_id': message.chat.id}, skip=0, limit=1100)
dicks = [d for d in dicks]
@@ -214,16 +189,8 @@ async def send_topchat(message: types.Message):
@dp.message_handler(commands=["globaldick"])
-async def send_global_top(message: types.Message):
-
-
- 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'])
+async def send_global_top(message: types.Message):
+ dicks_collection = get_dicks_collection()
try:
dicks = dicks_collection.all( )