Skip to content

Commit 99ad8dc

Browse files
authored
Merge pull request #3 from Merrcurys/lang
Lang
2 parents b519840 + 42aad41 commit 99ad8dc

File tree

11 files changed

+285
-109
lines changed

11 files changed

+285
-109
lines changed

.env.template

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
API_TOKEN =
2-
BOT_ID =
32
API_ID =
43
API_HASH =
54
ADMIN_CHAT_ID =

README.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ Mention bot - это бот, который может оповещать все
77

88
Бота можно найти и протестировать по этому адресу: [@fast_mention_bot](https://t.me/fast_mention_bot?start=c1686051798545-ds)
99

10+
[Канал](https://t.me/merrcurys_software/41), где оповещаю об обновлениях бота.
11+
1012
## Функционал бота
1113
1. `/help`, `/command` - справка по всем командам.
1214

@@ -16,10 +18,12 @@ Mention bot - это бот, который может оповещать все
1618

1719
4. `/names_visibility` - тумблер для видимости имен при оповещении.
1820

19-
5. Все ошибки бот отправляет в админский чат.
21+
5. Смена языка (ru / en).
22+
23+
6. Все ошибки бот отправляет в админский чат.
2024

2125
## Ограничения бота
22-
* Бот работает только до 75 участников.
26+
* Бот работает только до 75 участников, без учета отправителя сообщения, ботов и удаленных аккаунтов.
2327
* Команду `/all` нельзя вызывать в одном чате, чаще чем раз в минуту.
2428
* В одном сообщение хранится не больше 5 ссылок на пользователей.
2529

keyboard/keyboard_buttons.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
from pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup
2+
3+
keyboard_start = [
4+
[InlineKeyboardButton(text="Добавить в группу / Add to a group",
5+
url="https://t.me/fast_mention_bot?startgroup=")]
6+
]
7+
8+
keyboard_help = InlineKeyboardMarkup(
9+
[
10+
[
11+
InlineKeyboardButton(
12+
text="🇷🇺 Русский", callback_data="lang:ru"
13+
),
14+
InlineKeyboardButton(
15+
text="🇬🇧 English", callback_data="lang:en"
16+
),
17+
]
18+
]
19+
)

lang/__init__.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
from importlib import import_module
2+
3+
4+
def get_lexicon(lang):
5+
"""возвращает словарь лексикона для указанного языка"""
6+
try:
7+
lexicon_module = import_module(f'lang.{lang}')
8+
return getattr(lexicon_module, f'LEXICON_{lang.upper()}')
9+
except ModuleNotFoundError:
10+
return {} # возвращаем пустой словарь, если язык не найден
11+
12+
13+
def get_text(key, lang="en"):
14+
"""Получаем текст на основе языка пользователя."""
15+
lexicon = get_lexicon(lang)
16+
return lexicon.get(key, key)

lang/en.py

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
from textwrap import dedent
2+
3+
LEXICON_EN = {
4+
# ------------------ ENGLISH ------------------ #
5+
6+
'start_text': dedent("""
7+
Добавьте бота в группу, для полного функционала.
8+
9+
Бот может оповещать всех в группе до 75 пользователей, может изменять права доступа к командам, а также скрывать никнеймы при оповещении.
10+
11+
Язык бота меняется внутри группы при вызове команды /help.
12+
13+
Add the bot to the group for full functionality.
14+
15+
The bot can notify everyone in a group of up to 75 users, can change access rights to commands, and hide nicknames when notified.
16+
17+
support - @merrcurys
18+
[github](https://github.com/Merrcurys/Mention-bot) | [news](https://t.me/merrcurys_software/41)
19+
"""),
20+
21+
# Menu
22+
'help_text': dedent("""
23+
**———COMMAND LIST———**
24+
25+
1. /help, /command - list of all commands.
26+
27+
2. /all, /here, /everyone - mention all users.
28+
29+
3. /access_toggle - toggle access rights for notifications.
30+
31+
4. /names_visibility - toggle visibility of usernames in mentions.
32+
33+
support - @merrcurys
34+
version: [4.0](https://t.me/merrcurys_software/42)
35+
"""),
36+
37+
'all_info': "Important information!",
38+
39+
# Notifications
40+
'spam_control': "This command can only be used once per minute.",
41+
'many_users': "This command can be used only if there are no more than 75 users in the chat.",
42+
'only_admin': "Only administrators can use this command.",
43+
'no_users_found': "In this chat, there is no one to mention except you.",
44+
45+
# Access rights to the all command
46+
'mention_all': "Now all chat members can be mentioned.",
47+
'mention_admin': "Now only administrators can mention chat members.",
48+
49+
# Username display
50+
'show_username': "Usernames are now displayed when chat members are mentioned.",
51+
'hide_username': "Usernames are now hidden when chat members are mentioned.",
52+
53+
# Language
54+
'lang_changed': "The language has been changed.",
55+
'lang_already_set': "This language is already installed.",
56+
'only_admin_lang': "Only administrators can use this command."
57+
}

lang/ru.py

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
from textwrap import dedent
2+
3+
LEXICON_RU = {
4+
# ------------------ РУССКИЙ ------------------ #
5+
6+
'start_text': dedent("""
7+
Добавьте бота в группу, для полного функционала.
8+
9+
Бот может оповещать всех в группе до 75 пользователей, может изменять права доступа к командам, а также скрывать никнеймы при оповещении.
10+
11+
Язык бота меняется внутри группы при вызове команды /help.
12+
13+
Add the bot to the group for full functionality.
14+
15+
The bot can notify everyone in a group of up to 75 users, can change access rights to commands, and hide nicknames when notified.
16+
17+
support - @merrcurys
18+
[github](https://github.com/Merrcurys/Mention-bot) | [news](https://t.me/merrcurys_software/41)
19+
"""),
20+
21+
# Меню
22+
'help_text': dedent("""
23+
**———СПИСОК КОМАНД———**
24+
25+
1. /help, /command - справка по всем командам.
26+
27+
2. /all, /here, /everyone - позвать всех пользователей.
28+
29+
3. /access_toggle - тумблер прав доступа к оповещениям.
30+
31+
4. /names_visibility - тумблер для видимости имен при оповещении.
32+
33+
техподдержка - @merrcurys
34+
version: [4.0](https://t.me/merrcurys_software/42)
35+
"""),
36+
37+
'all_info': "Важная информация!",
38+
39+
# Уведомления
40+
'spam_control': "Эту команду можно использовать только один раз в минуту.",
41+
'many_users': "Эту команду можно использовать, если в чате не больше 75 пользователей.",
42+
'only_admin': "Только администраторы могут использовать данную команду.",
43+
'no_users_found': "В этом чате кроме вас некого оповещать.",
44+
45+
# Права доступа к команде all
46+
'mention_all': "Упоминать участников чата теперь могут все.",
47+
'mention_admin': "Упоминать участников чата теперь могут только администраторы.",
48+
49+
# Отображение username
50+
'show_username': "При упоминании участников чата юзернеймы теперь отображаются.",
51+
'hide_username': "При упоминании участников чата юзернеймы теперь скрыты.",
52+
53+
# Язык
54+
'lang_changed': "Язык изменен.",
55+
'lang_already_set': "Этот язык уже установлен.",
56+
'only_admin_lang': "Смена языка доступна только администраторам."
57+
}

loader.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
# настройка логгирования
1818
logging.basicConfig(
19-
level=logging.INFO,
19+
level=logging.WARN,
2020
format="%(asctime)s - %(name)s - %(levelname)s - %(message)s",
2121
handlers=[
2222
logging.FileHandler(f"{DIR}/logs.log"),

0 commit comments

Comments
 (0)