Compare commits

...

3 Commits

Author SHA1 Message Date
860d9ac281 Added /help and /start command 2023-08-11 22:43:34 +02:00
822693decc Fixes and improvements 2023-08-11 21:33:08 +02:00
7aafdf6c19 This commit closes #5 2023-08-11 21:32:45 +02:00
10 changed files with 70 additions and 9 deletions

42
locale/de.json Normal file
View File

@@ -0,0 +1,42 @@
{
"metadata": {
"flag": "🇩🇪",
"name": "Deutsch",
"codes": [
"de",
"de-AT",
"de-CH",
"de-DE",
"de-LI",
"de-LU"
]
},
"commands": {
"language": "Sprache des Bots in dieser Gruppe einstellen",
"language_auto": "Automatische Sprachwahl umschalten"
},
"messages": {
"help": "Hallo! Dieser Bot kann Ihnen helfen, sich gegen nervige Bots zu schützen, indem er Emoji-Captchas beim Beitritt erzwingt.\n\nFügen Sie diesen Bot zu Ihrer gewünschten Gruppe hinzu und geben Sie ihm die Berechtigungen **Nachrichten löschen** und **Benutzer sperren**. Sie können auch die Sprache des Bots in der Gruppe mit /language ändern und die automatische Sprache pro Benutzer mit /language_auto umschalten.\n\nDieser Bot ist Open Source, also können Sie ihn selbst hosten oder nach Ihren Wünschen verändern: https://git.end-play.xyz/profitroll/EmojiCaptchaBot\n\nWenn Sie einen Fehler melden oder einen Vorschlag machen möchten besuchen Sie die [Problemseite](https://git.end-play.xyz/profitroll/EmojiCaptchaBot/issues) des Bots auf git.\n\nEinen schönen Tag noch :)",
"locale_auto_disabled": "Die automatische Sprachauswahl auf individueller Basis wurde **deaktiviert**. Bitte beachten Sie, dass jetzt die Sprache der Gruppe verwendet wird. Sie können sie mit /language ändern. Wenn \"Standard\" als Sprache eingestellt ist, wird die Standardsprache des Bots ({default_locale}) verwendet.",
"locale_auto_enabled": "Die automatische Sprachauswahl auf individueller Basis wurde **aktiviert**. Bitte beachten Sie, dass die Standardsprache der Gruppe oder des Bots verwendet wird, wenn der Bot kein Sprachpaket für den Benutzer hat. Sie können die Sprache der Gruppe mit /language ändern. Wenn \"Standard\" als Sprache eingestellt ist, wird die Standardsprache des Bots ({default_locale}) verwendet.",
"locale_choice": "Okay. Bitte wählen Sie die Sprache mit der Tastatur unten aus.\n\nBitte beachten Sie, dass Sie auch die automatische Sprachauswahl für jeden Benutzer mit dem Befehl /language_auto",
"permission_denied": "Dies ist Ihnen nicht erlaubt.",
"verify": "Bitte benutzen Sie die unten stehenden Tasten, um das Captcha auszufüllen. Tippen Sie auf die Tasten mit den Emojis, die Sie auf diesem Bild sehen.",
"welcome_verify": "Willkommen, {mention}! Um hier chatten zu können, müssen wir verifizieren, dass Sie ein Mensch sind. Bitte klicke auf die untenstehende Taste, um die Verifizierung zu starten.",
"welcome": "Willkommen zum Chat, {mention}!"
},
"callbacks": {
"captcha_failed_force": "Sie haben den Benutzer {user_id} gezwungen, das Captcha nicht zu bestehen.",
"captcha_failed": "Sie haben das Captcha nicht bestanden.",
"captcha_mistake": "Falsche Antwort. Restliche Versuche: {remaining}.",
"captcha_passed": "Sie haben das Captcha bestanden. Willkommen!",
"locale_set": "Die Sprache in dieser Gruppe ist jetzt: {locale}",
"nothing": "Diese Aktion ist schon abgeschlossen.",
"wrong_user": "Diese Nachricht ist nicht für Sie gedacht."
},
"buttons": {
"ban": "Bannen (für Admins)",
"locale_default": "Standard",
"verify": "Sich verifizieren"
}
}

View File

@@ -4,8 +4,8 @@
"name": "English",
"codes": [
"en",
"en-US",
"en-GB"
"en-GB",
"en-US"
]
},
"commands": {
@@ -13,6 +13,7 @@
"language_auto": "Toggle automatic language selection"
},
"messages": {
"help": "Hi! This bot can help you protect against annoying bots by enforcing emoji captcha on join.\n\nIn order to it, add this bot to your desired group and provide it with **Delete Messages** and **Ban Users** permissions. You can also change bot's language in the group using /language and toggle automatic per-user language using /language_auto.\n\nThis bot is open source, so feel free to host it yourself or modify to your liking: https://git.end-play.xyz/profitroll/EmojiCaptchaBot\n\nIf you want to file an issue or make a suggestion visit bot's [issues page](https://git.end-play.xyz/profitroll/EmojiCaptchaBot/issues) on bot's git.\n\nHave a nice day :)",
"locale_auto_disabled": "Automatic language selection on per-user basis has been **disabled**. Please note that group's language will now be used. You can change it using /language. If \"Default\" language is set bot's default language ({default_locale}) will be used.",
"locale_auto_enabled": "Automatic language selection on per-user basis has been **enabled**. Please note that if bot does not have a language pack for user group's or bot's default language will be used. You can change group's language using /language. If \"Default\" language is set bot's default language ({default_locale}) will be used.",
"locale_choice": "Alright. Please choose the language using keyboard below.\n\nNote, that you can also enable automatic language selection on per-user basis using command /language_auto",
@@ -27,7 +28,7 @@
"captcha_mistake": "Invalid answer. Remaining attempts: {remaining}.",
"captcha_passed": "You have passed the captcha. Welcome!",
"locale_set": "Group's language is now: {locale}",
"nothing": "This actions has already been finished.",
"nothing": "This action has already been finished.",
"wrong_user": "This message is not for you."
},
"buttons": {

View File

@@ -12,6 +12,7 @@
"language_auto": "Переключити автоматичний вибір мови"
},
"messages": {
"help": "Привіт! Цей бот допоможе вам захиститися від настирливих ботів, запровадивши емодзі-капчу при вході в групу.\n\nДля цього додайте цього бота в потрібну вам групу і надайте йому права **Видаляти повідомлення** та **Банити користувачів**. Ви також можете змінити мову бота в групі за допомогою /language та увімкнути автоматичну мову для кожного користувача за допомогою /language_auto.\n\nЦей бот має відкритий вихідний код, тому ви можете хостити його самостійно або модифікувати під себе: https://git.end-play.xyz/profitroll/EmojiCaptchaBot\n\nЯкщо ви хочете повідомити про проблему або внести пропозицію відвідайте [сторінку підтримки бота](https://git.end-play.xyz/profitroll/EmojiCaptchaBot/issues) на гіті бота.\n\nГарного дня :)",
"locale_auto_disabled": "Автоматичний вибір мови для кожного користувача було **вимкнено**. Зверніть увагу, що тепер буде використовуватися мова групи. Ви можете змінити її за допомогою /language. Якщо встановлено мову \"За замовчуванням\" буде використовуватися мова бота за замовчуванням ({default_locale}).",
"locale_auto_enabled": "Автоматичний вибір мови для кожного користувача був **увімкнений**. Зверніть увагу, що якщо бот не має мовного пакета для користувача буде використовуватися мова групи або бота за замовчуванням. Ви можете змінити мову групи за допомогою /language. Якщо встановлено мову \"За замовчуванням\" буде використовуватися мова бота за замовчуванням ({default_locale}).",
"locale_choice": "Гаразд. Будь ласка, оберіть мову за допомогою клавіатури нижче.\n\nЗауважте, що ви також можете увімкнути автоматичний вибір мови для кожного користувача за допомогою команди /language_auto",

View File

@@ -11,7 +11,7 @@ from classes.pyrogroup import PyroGroup
logger = logging.getLogger(__name__)
@PyroClient.on_callback_query(filters.regex(r"ban;[\s\S]*"))
@PyroClient.on_callback_query(filters.regex(r"ban;[\s\S]*")) # type: ignore
async def callback_ban(app: PyroClient, callback: CallbackQuery):
group = await PyroGroup.create_if_not_exists(callback.message.chat.id, None, True)
locale = group.select_locale(app, callback.message.from_user)

View File

@@ -16,7 +16,7 @@ from classes.pyrogroup import PyroGroup
logger = logging.getLogger(__name__)
@PyroClient.on_callback_query(filters.regex(r"emoji;[\s\S]*"))
@PyroClient.on_callback_query(filters.regex(r"emoji;[\s\S]*")) # type: ignore
async def callback_emoji_button(app: PyroClient, callback: CallbackQuery):
parsed = CallbackEmoji.from_callback(callback)
group = await PyroGroup.create_if_not_exists(callback.message.chat.id, None, True)

View File

@@ -5,7 +5,7 @@ from classes.pyroclient import PyroClient
from classes.pyrogroup import PyroGroup
@PyroClient.on_callback_query(filters.regex(r"nothing"))
@PyroClient.on_callback_query(filters.regex(r"nothing")) # type: ignore
async def callback_nothing(app: PyroClient, callback: CallbackQuery):
group = await PyroGroup.create_if_not_exists(callback.message.chat.id, None, True)
locale = group.select_locale(app, callback.message.from_user)

View File

@@ -17,7 +17,7 @@ from modules.utils import get_captcha_image
logger = logging.getLogger(__name__)
@PyroClient.on_callback_query(filters.regex(r"verify;[\s\S]*"))
@PyroClient.on_callback_query(filters.regex(r"verify;[\s\S]*")) # type: ignore
async def callback_verify(app: PyroClient, callback: CallbackQuery):
parsed = CallbackVerify.from_callback(callback)
group = await PyroGroup.create_if_not_exists(callback.message.chat.id, None, True)

17
plugins/commands/help.py Normal file
View File

@@ -0,0 +1,17 @@
import logging
from pyrogram import filters
from pyrogram.types import Message
from classes.pyroclient import PyroClient
logger = logging.getLogger(__name__)
@PyroClient.on_message(
~filters.scheduled
& filters.private
& filters.command(["help", "start"], prefixes=["/"]) # type: ignore
)
async def command_help(app: PyroClient, message: Message):
await message.reply_text(app._("help", "messages", locale=message.from_user.language_code))

View File

@@ -9,7 +9,7 @@ from classes.pyrogroup import PyroGroup
logger = logging.getLogger(__name__)
@PyroClient.on_message(filters.new_chat_members & filters.group & filters.me)
@PyroClient.on_message(filters.new_chat_members & filters.group & filters.me) # type: ignore
async def handler_bot_join(app: PyroClient, message: Message):
logger.info("Bot has joined the group %s")
await PyroGroup.create_if_not_exists(message.chat.id, None, True)

View File

@@ -21,7 +21,7 @@ logger = logging.getLogger(__name__)
@PyroClient.on_message(
filters.new_chat_members & filters.group & ~filters.me & ~filters.bot
filters.new_chat_members & filters.group & ~filters.me & ~filters.bot # type: ignore
)
async def handler_user_join(app: PyroClient, message: Message):
group = await PyroGroup.create_if_not_exists(message.chat.id, None, True)