User bans, emoji and other bug fixes, age limiter, etc #26
@ -51,7 +51,8 @@
|
||||
"enabled": false
|
||||
},
|
||||
"spoilers": {
|
||||
"enabled": true
|
||||
"enabled": true,
|
||||
"allow_external": true
|
||||
}
|
||||
},
|
||||
"scheduler": {
|
||||
|
@ -31,7 +31,7 @@ from modules.commands.warnings import *
|
||||
from modules.callbacks.nothing import *
|
||||
from modules.callbacks.reapply import *
|
||||
from modules.callbacks.rules import *
|
||||
from modules.callbacks.sid import *
|
||||
from modules.callbacks.spoiler import *
|
||||
from modules.callbacks.sponsorship import *
|
||||
from modules.callbacks.sub import *
|
||||
from modules.callbacks.sus import *
|
||||
|
@ -109,7 +109,9 @@
|
||||
"spoiler_unfinished": "У вас ще є незавершений спойлер. Надішліть /cancel щоб зупинити його створення",
|
||||
"spoiler_cancel": "Створення спойлера було припинено",
|
||||
"spoiler_empty": "Спойлер категорії \"{0}\" без опису",
|
||||
"spoiler_empty_named": "Спойлер категорії \"{0}\" без опису від **{1}**",
|
||||
"spoiler_described": "Спойлер категорії \"{0}\": {1}",
|
||||
"spoiler_described_named": "Спойлер категорії \"{0}\" від **{1}**: {2}",
|
||||
"spoiler_description_enter": "Добре, введіть бажаний опис спойлера",
|
||||
"spoiler_description_too_long": "Текст занадто довгий. Будь ласка, умісти опис у 1024 символи.",
|
||||
"spoiler_using_description": "Встановлено опис спойлера: {0}\n\nЗалишилось додати вміст самого спойлера. Бот приймає текстове повідомлення, фото, відео, файл а також гіф зображення (1 шт.)",
|
||||
@ -226,8 +228,10 @@
|
||||
"done": "✅ Готово",
|
||||
"sponsor_apply": "Заповнити форму",
|
||||
"sponsor_started": "Форму розпочато",
|
||||
"spoiler_send": "Надіслати",
|
||||
"spoiler_view": "Переглянути"
|
||||
"spoiler_view": "Переглянути",
|
||||
"spoiler_preview": "Попередній перегляд",
|
||||
"spoiler_send_chat": "Надіслати в холо-чат",
|
||||
"spoiler_send_other": "Надіслати в інший чат"
|
||||
},
|
||||
"callback": {
|
||||
"sub_accepted": "✅ Анкету {0} схвалено",
|
||||
@ -243,7 +247,8 @@
|
||||
"reapply_stopped": "ℹ️ Перервано заповнення анкети",
|
||||
"sponsor_started": "ℹ️ Заповнення форми розпочато",
|
||||
"sponsor_accepted": "✅ Форму {0} схвалено",
|
||||
"sponsor_rejected": "❌ Форму {0} відхилено"
|
||||
"sponsor_rejected": "❌ Форму {0} відхилено",
|
||||
"spoiler_sent": "✅ Повідомлення надіслано в холо-чат"
|
||||
},
|
||||
"inline": {
|
||||
"forbidden": {
|
||||
|
@ -1,10 +0,0 @@
|
||||
from app import app
|
||||
from pyrogram.types import CallbackQuery
|
||||
from pyrogram.client import Client
|
||||
from pyrogram import filters
|
||||
|
||||
# Callback rule ================================================================================================================
|
||||
@app.on_callback_query(filters.regex("sid_[\s\S]*"))
|
||||
async def callback_query_rule(app: Client, clb: CallbackQuery):
|
||||
await clb.answer(url=f'https://t.me/{(await app.get_me()).username}?start={clb.data.split("_")[1]}')
|
||||
# ==============================================================================================================================
|
31
modules/callbacks/spoiler.py
Normal file
31
modules/callbacks/spoiler.py
Normal file
@ -0,0 +1,31 @@
|
||||
from app import app
|
||||
from pyrogram.types import CallbackQuery, InlineKeyboardMarkup, InlineKeyboardButton
|
||||
from pyrogram.client import Client
|
||||
from pyrogram import filters
|
||||
from modules.database import col_spoilers
|
||||
from bson.objectid import ObjectId
|
||||
|
||||
from modules.utils import configGet, locale
|
||||
|
||||
# Callback sid =================================================================================================================
|
||||
@app.on_callback_query(filters.regex("sid_[\s\S]*"))
|
||||
async def callback_query_sid(app: Client, clb: CallbackQuery):
|
||||
await clb.answer(url=f'https://t.me/{(await app.get_me()).username}?start={clb.data.split("_")[1]}')
|
||||
# ==============================================================================================================================
|
||||
|
||||
# Callback shc =================================================================================================================
|
||||
@app.on_callback_query(filters.regex("shc_[\s\S]*"))
|
||||
async def callback_query_shc(app: Client, clb: CallbackQuery):
|
||||
|
||||
spoil = col_spoilers.find_one( {"_id": ObjectId(clb.data.split("_")[1])} )
|
||||
|
||||
if spoil["description"] == "":
|
||||
desc = locale("spoiler_empty_named", "message", locale=clb.from_user).format(locale(spoil["category"], "message", "spoiler_categories"), clb.from_user.first_name)
|
||||
else:
|
||||
desc = locale("spoiler_described_named", "message", locale=clb.from_user).format(locale(spoil["category"], "message", "spoiler_categories"), clb.from_user.first_name, spoil["description"])
|
||||
|
||||
await app.send_message(configGet("users", "groups"), desc, reply_markup=InlineKeyboardMarkup([[InlineKeyboardButton(locale("spoiler_view", "button", locale=clb.from_user), callback_data=f'sid_{clb.data.split("_")[1]}')]]))
|
||||
await app.send_message(configGet("admin", "groups"), desc, reply_markup=InlineKeyboardMarkup([[InlineKeyboardButton(locale("spoiler_view", "button", locale=clb.from_user), callback_data=f'sid_{clb.data.split("_")[1]}')]]))
|
||||
|
||||
await clb.answer(locale("spoiler_sent", "callback", locale=clb.from_user), show_alert=True)
|
||||
# ==============================================================================================================================
|
@ -146,7 +146,37 @@ async def any_stage(app: Client, msg: Message):
|
||||
ready = True
|
||||
|
||||
if ready is True:
|
||||
await msg.reply_text(locale("spoiler_ready", "message", locale=msg.from_user), reply_markup=InlineKeyboardMarkup([[InlineKeyboardButton(locale("spoiler_send", "button", locale=msg.from_user), switch_inline_query=f"spoiler:{spoiler['_id'].__str__()}")]]))
|
||||
if configGet("allow_external", "features", "spoilers") is True:
|
||||
await msg.reply_text(
|
||||
locale("spoiler_ready", "message", locale=msg.from_user),
|
||||
reply_markup=InlineKeyboardMarkup(
|
||||
[
|
||||
[
|
||||
InlineKeyboardButton(locale("spoiler_preview", "button", locale=msg.from_user), callback_data=f"sid_{spoiler['_id'].__str__()}")
|
||||
],
|
||||
[
|
||||
InlineKeyboardButton(locale("spoiler_send_chat", "button", locale=msg.from_user), callback_data=f"shc_{spoiler['_id'].__str__()}")
|
||||
],
|
||||
[
|
||||
InlineKeyboardButton(locale("spoiler_send_other", "button", locale=msg.from_user), switch_inline_query=f"spoiler:{spoiler['_id'].__str__()}")
|
||||
]
|
||||
]
|
||||
)
|
||||
)
|
||||
else:
|
||||
await msg.reply_text(
|
||||
locale("spoiler_ready", "message", locale=msg.from_user),
|
||||
reply_markup=InlineKeyboardMarkup(
|
||||
[
|
||||
[
|
||||
InlineKeyboardButton(locale("spoiler_preview", "button", locale=msg.from_user), callback_data=f"sid_{spoiler['_id'].__str__()}")
|
||||
],
|
||||
[
|
||||
InlineKeyboardButton(locale("spoiler_send_chat", "button", locale=msg.from_user), callback_data=f"shc_{spoiler['_id'].__str__()}")
|
||||
]
|
||||
]
|
||||
)
|
||||
)
|
||||
else:
|
||||
await msg.reply_text(locale("spoiler_incorrect_content", "message", locale=msg.from_user))
|
||||
|
||||
|
@ -22,6 +22,8 @@ async def inline_answer(client: Client, inline_query: InlineQuery):
|
||||
|
||||
results = []
|
||||
|
||||
if configGet("allow_external", "features", "spoilers") is True:
|
||||
|
||||
if inline_query.query.startswith("spoiler:"):
|
||||
|
||||
try:
|
||||
|
Reference in New Issue
Block a user