format Black

This commit is contained in:
Rykov7
2023-02-22 18:53:12 +03:00
parent 23a93b5dbd
commit d0cf0762c8
13 changed files with 356 additions and 205 deletions
+129 -73
View File
@@ -14,181 +14,222 @@ from .config import *
@bot.edited_message_handler(func=in_spam_list)
@bot.message_handler(func=in_spam_list)
def moderate_messages(message: types.Message):
""" Ban user and delete their message. """
logging.warning(f'[BAN] {message.from_user.id} {message.from_user.username} - {message.text}')
"""Ban user and delete their message."""
logging.warning(
f"[BAN] {message.from_user.id} {message.from_user.username} - {message.text}"
)
bot.delete_message(message.chat.id, message.id)
bot.ban_chat_member(message.chat.id, message.from_user.id)
with shelve.open(f'{DATA}{message.chat.id}') as s:
s['Banned'] += 1
with shelve.open(f"{DATA}{message.chat.id}") as s:
s["Banned"] += 1
@bot.message_handler(func=in_caption_spam_list, content_types=['video'])
@bot.message_handler(func=in_caption_spam_list, content_types=["video"])
def catch_videos(message: types.Message):
"""Catch offensive videos"""
logging.warning(f'[BAN] {message.from_user.id} {message.from_user.first_name} - {message.video.file_name}')
logging.warning(
f"[BAN] {message.from_user.id} {message.from_user.first_name} - {message.video.file_name}"
)
bot.delete_message(message.chat.id, message.id)
bot.ban_chat_member(message.chat.id, message.from_user.id)
with shelve.open(f'{DATA}{message.chat.id}') as s:
s['Banned'] += 1
with shelve.open(f"{DATA}{message.chat.id}") as s:
s["Banned"] += 1
@bot.edited_message_handler(func=in_delete_list)
@bot.message_handler(func=in_delete_list)
def delete_message(message: types.Message):
""" Delete unwanted message. """
"""Delete unwanted message."""
bot.delete_message(message.chat.id, message.id)
with shelve.open(f'{DATA}{message.chat.id}') as s:
s['Deleted'] += 1
with shelve.open(f"{DATA}{message.chat.id}") as s:
s["Deleted"] += 1
""" [ COMMANDS ] """
@bot.message_handler(commands=['start', 'links', 'ссылки'])
@bot.message_handler(commands=["start", "links", "ссылки"])
def start(message: types.Message):
""" What to begin with. """
log_msg = f'[START] {message.from_user.id} {message.from_user.first_name}'
"""What to begin with."""
log_msg = f"[START] {message.from_user.id} {message.from_user.first_name}"
logging.warning(log_msg)
markup = types.InlineKeyboardMarkup([[RULES], [FAQ], [LIB]], 1)
send_or_reply(message, "Начни с прочтения", reply_markup=markup)
@bot.message_handler(commands=['rules', 'rule', 'r', 'правила', 'правило', 'п'])
@bot.message_handler(commands=["rules", "rule", "r", "правила", "правило", "п"])
def send_rules(message):
markup = types.InlineKeyboardMarkup([[RULES]], 1)
args = message.text.split()
if len(args) > 1 and args[-1].isdigit() and 0 < int(args[-1]):
send_or_reply(message, f'<b>Правило {args[-1]}</b>\n<i>{rules.fetch_rule(args[-1])}</i>', reply_markup=markup)
send_or_reply(
message,
f"<b>Правило {args[-1]}</b>\n<i>{rules.fetch_rule(args[-1])}</i>",
reply_markup=markup,
)
else:
send_or_reply(message, '...', reply_markup=markup)
send_or_reply(message, "...", reply_markup=markup)
@bot.message_handler(commands=['faq', 'чзв'])
@bot.message_handler(commands=["faq", "чзв"])
def send_faq(message):
markup = types.InlineKeyboardMarkup([[FAQ]], 1)
send_or_reply(message, '...', reply_markup=markup)
send_or_reply(message, "...", reply_markup=markup)
@bot.message_handler(commands=['lib', 'library', 'books', 'книги', 'библиотека'])
@bot.message_handler(commands=["lib", "library", "books", "книги", "библиотека"])
def send_lib(message):
markup = types.InlineKeyboardMarkup([[LIB]], 1)
send_or_reply(message, '...', reply_markup=markup)
send_or_reply(message, "...", reply_markup=markup)
@bot.message_handler(commands=['lutz', 'лутц'])
@bot.message_handler(commands=["lutz", "лутц"])
def send_lutz(message):
bot.send_document(message.chat.id,
document='BQACAgQAAxkBAAPBYsWJG9Ml0fPrnbU9UyzTQiQSuHkAAjkDAAIstCxSkuRbXAlcqeQpBA',
caption="вот, не позорься")
bot.send_document(
message.chat.id,
document="BQACAgQAAxkBAAPBYsWJG9Ml0fPrnbU9UyzTQiQSuHkAAjkDAAIstCxSkuRbXAlcqeQpBA",
caption="вот, не позорься",
)
@bot.message_handler(commands=['bdmtss', 'бдмтсс'])
@bot.message_handler(commands=["bdmtss", "бдмтсс"])
def send_bdmtss_audio(message):
bot.send_voice(message.chat.id, 'AwACAgIAAxkBAAIJrWOg2WUvLwrf7ahyJxQHB8_nqllwAAL5JQAC2_IJSbhfQIO5YnVmLAQ')
bot.send_voice(
message.chat.id,
"AwACAgIAAxkBAAIJrWOg2WUvLwrf7ahyJxQHB8_nqllwAAL5JQAC2_IJSbhfQIO5YnVmLAQ",
)
@bot.message_handler(commands=['tr', 'тр'])
@bot.message_handler(commands=["tr", "тр"])
def translate_layout(message):
if message.reply_to_message and message.reply_to_message.text:
if message.reply_to_message.text[0] in RUS:
bot.send_message(message.chat.id, message.reply_to_message.text.translate(RUS_ENG_TABLE))
bot.send_message(
message.chat.id, message.reply_to_message.text.translate(RUS_ENG_TABLE)
)
else:
bot.send_message(message.chat.id, message.reply_to_message.text.translate(ENG_RUS_TABLE))
bot.send_message(
message.chat.id, message.reply_to_message.text.translate(ENG_RUS_TABLE)
)
@bot.message_handler(commands=['quote', 'цитата'])
@bot.message_handler(commands=["quote", "цитата"])
def stan_speak(message):
bot.send_message(message.chat.id, stan.speak(0))
@bot.message_handler(commands=['tsya', 'тся', 'ться'])
@bot.message_handler(commands=["tsya", "тся", "ться"])
def send_tsya(message: types.Message):
markup = types.InlineKeyboardMarkup()
markup.add(types.InlineKeyboardButton('🧑🏼‍🎓 Читать правило', url='https://tsya.ru/'), row_width=1)
send_or_reply(message, '<i>-тся</i> и <i>-ться</i> в глаголах', reply_markup=markup)
markup.add(
types.InlineKeyboardButton("🧑🏼‍🎓 Читать правило", url="https://tsya.ru/"),
row_width=1,
)
send_or_reply(message, "<i>-тся</i> и <i>-ться</i> в глаголах", reply_markup=markup)
@bot.message_handler(commands=['nometa', 'номета'])
@bot.message_handler(commands=["nometa", "номета"])
def send_nometa(message: types.Message):
markup = types.InlineKeyboardMarkup()
markup.add(types.InlineKeyboardButton('❓ nometa.xyz', url='https://nometa.xyz/ru.html'), row_width=1)
send_or_reply(message, """Не задавай мета-вопросов вроде:
markup.add(
types.InlineKeyboardButton("❓ nometa.xyz", url="https://nometa.xyz/ru.html"),
row_width=1,
)
send_or_reply(
message,
"""Не задавай мета-вопросов вроде:
<i> «Можно задать вопрос?»
«Кто-нибудь пользовался .. ?»
«Привет, мне нужна помощь по .. !»</i>
Просто спроси сразу! И чем лучше объяснишь проблему, тем вероятнее получишь помощь.""", reply_markup=markup)
Просто спроси сразу! И чем лучше объяснишь проблему, тем вероятнее получишь помощь.""",
reply_markup=markup,
)
@bot.message_handler(commands=['neprivet', 'непривет'])
@bot.message_handler(commands=["neprivet", "непривет"])
def send_neprivet(message: types.Message):
markup = types.InlineKeyboardMarkup()
markup.add(types.InlineKeyboardButton('👋 Непривет', url='https://neprivet.com/'), row_width=1)
send_or_reply(message, 'Пожалуйста, не пишите просто «Привет» в чате.', reply_markup=markup)
markup.add(
types.InlineKeyboardButton("👋 Непривет", url="https://neprivet.com/"),
row_width=1,
)
send_or_reply(
message, "Пожалуйста, не пишите просто «Привет» в чате.", reply_markup=markup
)
@bot.message_handler(commands=['nojob', 'ноджоб'])
@bot.message_handler(commands=["nojob", "ноджоб"])
def send_nojob(message):
logging.warning('Sent no job')
logging.warning("Sent no job")
answer = """Мы здесь не для того, чтобы за тебя решать задачи.
Здесь помогают по конкретным вопросам в <u>ТВОЁМ</u> коде, поэтому тебе нужно показать код, который ты написал сам и объяснить где и почему застрял... всё просто. 🤷🏼️"""
Здесь помогают по конкретным вопросам в <u>ТВОЁМ</u> коде, поэтому тебе нужно показать код, который ты написал сам и \
объяснить где и почему застрял... всё просто. 🤷🏼️"""
send_or_reply(message, answer)
@bot.message_handler(commands=['nobot', 'нобот'])
@bot.message_handler(commands=["nobot", "нобот"])
def nobot(message: types.Message):
answer = """<b>Внимание</b>:
Телеграм бот <i>не должен</i> быть твоим первым проектом на Python. Пожалуйста, изучи <code>основы Python</code>, <code>работу с модулями</code>, <code>основы веб-технологий</code>, <code>асинхронное программирование</code> и <code>отладку</code> до начала работы с Телеграм ботами. Существует много ресурсов для этого в интернете."""
Телеграм бот <i>не должен</i> быть твоим первым проектом на Python. Пожалуйста, изучи <code>основы Python</code>, \
<code>работу с модулями</code>, <code>основы веб-технологий</code>, <code>асинхронное программирование</code> и \
<code>отладку</code> до начала работы с Телеграм ботами. Существует много ресурсов для этого в интернете."""
send_or_reply(message, answer)
@bot.message_handler(commands=['nogui', 'ногуи'])
@bot.message_handler(commands=["nogui", "ногуи"])
def nogui(message: types.Message):
answer = """<b>Внимание</b>:
GUI приложение <i>не должно</i> быть твоим первым проектом на Python. Пожалуйста, изучи <code>основы Python</code>, <code>работу с модулями</code>, <code>циклы событий</code> и <code>отладку</code> до начала работы с какими-либо GUI-фреймворками. Существует много ресурсов для этого в интернете."""
GUI приложение <i>не должно</i> быть твоим первым проектом на Python. Пожалуйста, изучи <code>основы Python</code>, \
<code>работу с модулями</code>, <code>циклы событий</code> и <code>отладку</code> до начала работы с какими-либо \
GUI-фреймворками. Существует много ресурсов для этого в интернете."""
send_or_reply(message, answer)
@bot.message_handler(commands=['g', 'г'])
@bot.message_handler(commands=["g", "г"])
def google_it(message: types.Message):
""" Google it! """
query = f'<i>{detect_args(message)}</i>'
get_query = 'https://www.google.com/search?q=' + represent_as_get(message)
"""Google it!"""
query = f"<i>{detect_args(message)}</i>"
get_query = "https://www.google.com/search?q=" + represent_as_get(message)
markup = types.InlineKeyboardMarkup()
markup.add(types.InlineKeyboardButton('🔍 Google Поиск', url=get_query), row_width=1)
send_or_reply(message, f'<i>Ищем «{query}»...</i>', reply_markup=markup)
markup.add(types.InlineKeyboardButton("🔍 Google Поиск", url=get_query), row_width=1)
send_or_reply(message, f"<i>Ищем «{query}»...</i>", reply_markup=markup)
""" [ ADMIN PANEL ] """
@bot.message_handler(func=is_admin, commands=['ddel'])
@bot.message_handler(func=is_admin, commands=["ddel"])
def delete_user(message: types.Message):
if message.reply_to_message:
bot.delete_message(message.chat.id, message.id)
bot.delete_message(message.chat.id, message.reply_to_message.id)
logging.warning(
f'[DEL (M)] {message.reply_to_message.from_user.id} {message.reply_to_message.from_user.first_name} - {message.reply_to_message.text}')
f"[DEL (M)] {message.reply_to_message.from_user.id} {message.reply_to_message.from_user.first_name} - \
{message.reply_to_message.text}"
)
@bot.message_handler(func=is_admin, commands=['bban'])
@bot.message_handler(func=is_admin, commands=["bban"])
def ban_user(message: types.Message):
if message.reply_to_message:
bot.delete_message(message.chat.id, message.id)
bot.delete_message(message.chat.id, message.reply_to_message.id)
bot.ban_chat_member(message.chat.id, message.reply_to_message.from_user.id)
logging.warning(
f'[BAN (M)] {message.reply_to_message.from_user.id} {message.reply_to_message.from_user.first_name} - {message.reply_to_message.text}')
f"[BAN (M)] {message.reply_to_message.from_user.id} {message.reply_to_message.from_user.first_name} - \
{message.reply_to_message.text}"
)
@bot.message_handler(func=is_admin, commands=['unban_id'])
@bot.message_handler(func=is_admin, commands=["unban_id"])
def unban_user(message: types.Message):
if message.text.split()[-1].isdigit():
user_id = int(message.text.split()[-1])
bot.unban_chat_member(PYTHONCHATRU, user_id)
logging.warning(f'[UNBAN (M)] {user_id}')
logging.warning(f"[UNBAN (M)] {user_id}")
""" [ INLINE ] """
@@ -196,14 +237,19 @@ def unban_user(message: types.Message):
@bot.inline_handler(lambda query: True)
def default_query(inline_query):
""" Inline the Zen of Python. """
"""Inline the Zen of Python."""
zen = []
for id_p, phrase in enumerate(ZEN):
q = inline_query.query.casefold()
if phrase.casefold().startswith(q) or ' ' + q in phrase.casefold():
zen.append(types.InlineQueryResultArticle(
f"{id_p}", f'The Zen of Python #{id_p + 1}', types.InputTextMessageContent(
f"{phrase}"), description=phrase))
if phrase.casefold().startswith(q) or " " + q in phrase.casefold():
zen.append(
types.InlineQueryResultArticle(
f"{id_p}",
f"The Zen of Python #{id_p + 1}",
types.InputTextMessageContent(f"{phrase}"),
description=phrase,
)
)
bot.answer_inline_query(inline_query.id, zen, cache_time=1200)
@@ -211,10 +257,20 @@ def default_query(inline_query):
""" [ COUNTER ] """
@bot.message_handler(content_types=['text', 'sticker', 'photo', 'animation', 'video', 'audio', 'document'],
chat_types=['supergroup', 'group'])
@bot.message_handler(
content_types=[
"text",
"sticker",
"photo",
"animation",
"video",
"audio",
"document",
],
chat_types=["supergroup", "group"],
)
def handle_msg(message: types.Message):
""" Count messages, Stan. """
"""Count messages, Stan."""
update_stats(message)
stan.act(message)
@@ -222,13 +278,13 @@ def handle_msg(message: types.Message):
""" [ WEBHOOK ] """
@app.route(f"/bot{TOKEN}/", methods=['POST'])
@app.route(f"/bot{TOKEN}/", methods=["POST"])
def webhook():
""" Parse POST requests from Telegram. """
if request.headers.get('content-type') == 'application/json':
json_string = request.get_data().decode('utf-8')
"""Parse POST requests from Telegram."""
if request.headers.get("content-type") == "application/json":
json_string = request.get_data().decode("utf-8")
update = types.Update.de_json(json_string)
bot.process_new_updates([update])
return ''
return ""
else:
abort(403)