WIP: /language system
This commit is contained in:
@@ -18,16 +18,18 @@ async def cmd_kill(app: PyroClient, msg: Message):
|
||||
if msg.from_user.id not in app.admins:
|
||||
return
|
||||
|
||||
user = await app.find_user(msg.from_user)
|
||||
|
||||
if len(USERS_WITH_CONTEXT) > 0:
|
||||
await msg.reply_text(
|
||||
app._("shutdown_confirm", "message").format(len(USERS_WITH_CONTEXT)),
|
||||
app._("shutdown_confirm", "message", locale=user.locale).format(
|
||||
len(USERS_WITH_CONTEXT)
|
||||
),
|
||||
reply_markup=InlineKeyboardMarkup(
|
||||
[
|
||||
[
|
||||
InlineKeyboardButton(
|
||||
app._(
|
||||
"shutdown", "button", locale=msg.from_user.language_code
|
||||
),
|
||||
app._("shutdown", "button", locale=user.locale),
|
||||
callback_data="shutdown",
|
||||
)
|
||||
]
|
||||
|
@@ -3,22 +3,25 @@ from pyrogram.client import Client
|
||||
from pyrogram.types import Message
|
||||
|
||||
from classes.pyroclient import PyroClient
|
||||
from classes.user import PosterUser
|
||||
|
||||
|
||||
@Client.on_message(~filters.scheduled & filters.command(["start"], prefixes="/"))
|
||||
async def cmd_start(app: PyroClient, msg: Message):
|
||||
if PosterUser(msg.from_user.id).is_blocked():
|
||||
user = await app.find_user(msg.from_user)
|
||||
|
||||
if user.banned:
|
||||
return
|
||||
|
||||
await msg.reply_text(app._("start", "message", locale=msg.from_user.language_code))
|
||||
await msg.reply_text(app._("start", "message", locale=user.locale))
|
||||
|
||||
|
||||
@Client.on_message(
|
||||
~filters.scheduled & filters.command(["rules", "help"], prefixes="/")
|
||||
)
|
||||
async def cmd_rules(app: PyroClient, msg: Message):
|
||||
if PosterUser(msg.from_user.id).is_blocked():
|
||||
user = await app.find_user(msg.from_user)
|
||||
|
||||
if user.banned:
|
||||
return
|
||||
|
||||
await msg.reply_text(app._("rules", "message", locale=msg.from_user.language_code))
|
||||
await msg.reply_text(app._("rules", "message", locale=user.locale))
|
||||
|
@@ -48,9 +48,9 @@ async def cmd_import(app: PyroClient, msg: Message):
|
||||
else:
|
||||
return
|
||||
|
||||
await msg.reply_text(
|
||||
app._("import_request", "message", locale=msg.from_user.language_code)
|
||||
)
|
||||
user = await app.find_user(msg.from_user)
|
||||
|
||||
await msg.reply_text(app._("import_request", "message", locale=user.locale))
|
||||
|
||||
answer = await listen_message(app, msg.chat.id, timeout=600)
|
||||
|
||||
@@ -58,15 +58,13 @@ async def cmd_import(app: PyroClient, msg: Message):
|
||||
|
||||
if answer is None:
|
||||
await msg.reply_text(
|
||||
app._("import_ignored", "message", locale=msg.from_user.language_code),
|
||||
app._("import_ignored", "message", locale=user.locale),
|
||||
quote=True,
|
||||
)
|
||||
return
|
||||
|
||||
if answer.text == "/cancel":
|
||||
await answer.reply_text(
|
||||
app._("import_abort", "message", locale=msg.from_user.language_code)
|
||||
)
|
||||
await answer.reply_text(app._("import_abort", "message", locale=user.locale))
|
||||
return
|
||||
|
||||
if answer.document is None:
|
||||
@@ -74,7 +72,7 @@ async def cmd_import(app: PyroClient, msg: Message):
|
||||
app._(
|
||||
"import_invalid_media",
|
||||
"message",
|
||||
locale=msg.from_user.language_code,
|
||||
locale=user.locale,
|
||||
),
|
||||
quote=True,
|
||||
)
|
||||
@@ -82,16 +80,14 @@ async def cmd_import(app: PyroClient, msg: Message):
|
||||
|
||||
if answer.document.mime_type != "application/zip":
|
||||
await answer.reply_text(
|
||||
app._("import_invalid_mime", "message", locale=msg.from_user.language_code),
|
||||
app._("import_invalid_mime", "message", locale=user.locale),
|
||||
quote=True,
|
||||
)
|
||||
return
|
||||
|
||||
if disk_usage(getcwd())[2] < (answer.document.file_size) * 3:
|
||||
await msg.reply_text(
|
||||
app._(
|
||||
"import_too_big", "message", locale=msg.from_user.language_code
|
||||
).format(
|
||||
app._("import_too_big", "message", locale=user.locale).format(
|
||||
answer.document.file_size // (2**30),
|
||||
disk_usage(getcwd())[2] // (2**30),
|
||||
)
|
||||
@@ -111,14 +107,12 @@ async def cmd_import(app: PyroClient, msg: Message):
|
||||
tmp_path = Path(f"{app.config['locations']['tmp']}/{answer.document.file_id}")
|
||||
|
||||
downloading = await answer.reply_text(
|
||||
app._("import_downloading", "message", locale=msg.from_user.language_code),
|
||||
app._("import_downloading", "message", locale=user.locale),
|
||||
quote=True,
|
||||
)
|
||||
|
||||
await app.download_media(answer, file_name=str(tmp_path))
|
||||
await downloading.edit(
|
||||
app._("import_unpacking", "message", locale=msg.from_user.language_code)
|
||||
)
|
||||
await downloading.edit(app._("import_unpacking", "message", locale=user.locale))
|
||||
|
||||
try:
|
||||
with ZipFile(tmp_path, "r") as handle:
|
||||
@@ -137,17 +131,15 @@ async def cmd_import(app: PyroClient, msg: Message):
|
||||
format_exc(),
|
||||
)
|
||||
await answer.reply_text(
|
||||
app._(
|
||||
"import_unpack_error", "message", locale=msg.from_user.language_code
|
||||
).format(exp, format_exc())
|
||||
app._("import_unpack_error", "message", locale=user.locale).format(
|
||||
exp, format_exc()
|
||||
)
|
||||
)
|
||||
return
|
||||
|
||||
logger.info("Downloaded '%s' - awaiting upload", answer.document.file_name)
|
||||
|
||||
await downloading.edit(
|
||||
app._("import_uploading", "message", locale=msg.from_user.language_code)
|
||||
)
|
||||
await downloading.edit(app._("import_uploading", "message", locale=user.locale))
|
||||
|
||||
remove(tmp_path)
|
||||
|
||||
@@ -184,7 +176,7 @@ async def cmd_import(app: PyroClient, msg: Message):
|
||||
app._(
|
||||
"import_upload_error_other",
|
||||
"message",
|
||||
locale=msg.from_user.language_code,
|
||||
locale=user.locale,
|
||||
).format(path.basename(filename)),
|
||||
disable_notification=True,
|
||||
)
|
||||
@@ -205,7 +197,7 @@ async def cmd_import(app: PyroClient, msg: Message):
|
||||
app._(
|
||||
"import_upload_error_duplicate",
|
||||
"message",
|
||||
locale=msg.from_user.language_code,
|
||||
locale=user.locale,
|
||||
).format(path.basename(filename)),
|
||||
disable_notification=True,
|
||||
)
|
||||
@@ -214,7 +206,7 @@ async def cmd_import(app: PyroClient, msg: Message):
|
||||
app._(
|
||||
"import_upload_error_other",
|
||||
"message",
|
||||
locale=msg.from_user.language_code,
|
||||
locale=user.locale,
|
||||
).format(path.basename(filename)),
|
||||
disable_notification=True,
|
||||
)
|
||||
@@ -235,7 +227,7 @@ async def cmd_import(app: PyroClient, msg: Message):
|
||||
rmtree(Path(f"{app.config['locations']['tmp']}/{tmp_dir}"), ignore_errors=True)
|
||||
|
||||
await answer.reply_text(
|
||||
app._("import_finished", "message", locale=msg.from_user.language_code),
|
||||
app._("import_finished", "message", locale=user.locale),
|
||||
quote=True,
|
||||
)
|
||||
|
||||
@@ -260,9 +252,9 @@ async def cmd_remove(app: PyroClient, msg: Message):
|
||||
else:
|
||||
return
|
||||
|
||||
await msg.reply_text(
|
||||
app._("remove_request", "message", locale=msg.from_user.language_code)
|
||||
)
|
||||
user = await app.find_user(msg.from_user)
|
||||
|
||||
await msg.reply_text(app._("remove_request", "message", locale=user.locale))
|
||||
|
||||
answer_id = await listen_message(app, msg.chat.id, timeout=600)
|
||||
|
||||
@@ -270,28 +262,22 @@ async def cmd_remove(app: PyroClient, msg: Message):
|
||||
|
||||
if answer_id is None:
|
||||
await msg.reply_text(
|
||||
app._("remove_ignored", "message", locale=msg.from_user.language_code),
|
||||
app._("remove_ignored", "message", locale=user.locale),
|
||||
quote=True,
|
||||
)
|
||||
return
|
||||
|
||||
if answer_id.text == "/cancel":
|
||||
await answer_id.reply_text(
|
||||
app._("remove_abort", "message", locale=msg.from_user.language_code)
|
||||
)
|
||||
await answer_id.reply_text(app._("remove_abort", "message", locale=user.locale))
|
||||
return
|
||||
|
||||
await msg.reply_text(
|
||||
app._("remove_kind", "message", locale=msg.from_user.language_code),
|
||||
app._("remove_kind", "message", locale=user.locale),
|
||||
reply_markup=ReplyKeyboardMarkup(
|
||||
[
|
||||
[
|
||||
KeyboardButton(
|
||||
app._("photo", "button", locale=msg.from_user.language_code)
|
||||
),
|
||||
KeyboardButton(
|
||||
app._("video", "button", locale=msg.from_user.language_code)
|
||||
),
|
||||
KeyboardButton(app._("photo", "button", locale=user.locale)),
|
||||
KeyboardButton(app._("video", "button", locale=user.locale)),
|
||||
]
|
||||
],
|
||||
resize_keyboard=True,
|
||||
@@ -307,7 +293,7 @@ async def cmd_remove(app: PyroClient, msg: Message):
|
||||
|
||||
if answer_kind is None:
|
||||
await msg.reply_text(
|
||||
app._("remove_ignored", "message", locale=msg.from_user.language_code),
|
||||
app._("remove_ignored", "message", locale=user.locale),
|
||||
quote=True,
|
||||
reply_markup=ReplyKeyboardRemove(),
|
||||
)
|
||||
@@ -315,7 +301,7 @@ async def cmd_remove(app: PyroClient, msg: Message):
|
||||
|
||||
if answer_kind.text == "/cancel":
|
||||
await answer_kind.reply_text(
|
||||
app._("remove_abort", "message", locale=msg.from_user.language_code),
|
||||
app._("remove_abort", "message", locale=user.locale),
|
||||
reply_markup=ReplyKeyboardRemove(),
|
||||
)
|
||||
return
|
||||
@@ -326,11 +312,9 @@ async def cmd_remove(app: PyroClient, msg: Message):
|
||||
func = video_delete
|
||||
else:
|
||||
await answer_kind.reply_text(
|
||||
app._(
|
||||
"remove_unknown", "message", locale=msg.from_user.language_code
|
||||
).format(
|
||||
app._("photo", "button", locale=msg.from_user.language_code),
|
||||
app._("video", "button", locale=msg.from_user.language_code),
|
||||
app._("remove_unknown", "message", locale=user.locale).format(
|
||||
app._("photo", "button", locale=user.locale),
|
||||
app._("video", "button", locale=user.locale),
|
||||
),
|
||||
reply_markup=ReplyKeyboardRemove(),
|
||||
)
|
||||
@@ -346,9 +330,9 @@ async def cmd_remove(app: PyroClient, msg: Message):
|
||||
answer_id.from_user.id,
|
||||
)
|
||||
await answer_kind.reply_text(
|
||||
app._(
|
||||
"remove_success", "message", locale=msg.from_user.language_code
|
||||
).format(answer_id.text),
|
||||
app._("remove_success", "message", locale=user.locale).format(
|
||||
answer_id.text
|
||||
),
|
||||
reply_markup=ReplyKeyboardRemove(),
|
||||
)
|
||||
else:
|
||||
@@ -359,9 +343,9 @@ async def cmd_remove(app: PyroClient, msg: Message):
|
||||
answer_id.from_user.id,
|
||||
)
|
||||
await answer_kind.reply_text(
|
||||
app._(
|
||||
"remove_failure", "message", locale=msg.from_user.language_code
|
||||
).format(answer_id.text),
|
||||
app._("remove_failure", "message", locale=user.locale).format(
|
||||
answer_id.text
|
||||
),
|
||||
reply_markup=ReplyKeyboardRemove(),
|
||||
)
|
||||
|
||||
|
@@ -1,7 +1,8 @@
|
||||
from pyrogram.client import Client
|
||||
from pyrogram import filters
|
||||
from pyrogram.types import Message, User
|
||||
from libbot import sync
|
||||
from pyrogram import filters
|
||||
from pyrogram.client import Client
|
||||
from pyrogram.types import Message, User
|
||||
|
||||
from classes.pyroclient import PyroClient
|
||||
|
||||
|
||||
@@ -12,31 +13,29 @@ from classes.pyroclient import PyroClient
|
||||
& filters.command(["report"], prefixes=["", "/"])
|
||||
)
|
||||
async def command_report(app: PyroClient, msg: Message):
|
||||
if msg.reply_to_message.forward_from_chat.id == app.config["posting"]["channel"]:
|
||||
await msg.reply_text(
|
||||
app._(
|
||||
"report_sent",
|
||||
"message",
|
||||
locale=msg.from_user.language_code
|
||||
if msg.from_user is not None
|
||||
else None,
|
||||
)
|
||||
if msg.reply_to_message.forward_from_chat.id != app.config["posting"]["channel"]:
|
||||
return
|
||||
|
||||
user = await app.find_user(msg.from_user)
|
||||
|
||||
await msg.reply_text(
|
||||
app._(
|
||||
"report_sent",
|
||||
"message",
|
||||
locale=user.locale if msg.from_user is not None else None,
|
||||
)
|
||||
)
|
||||
|
||||
print(msg)
|
||||
print(msg)
|
||||
|
||||
report_sent = await msg.reply_to_message.forward(app.owner)
|
||||
sender = msg.from_user if msg.from_user is not None else msg.sender_chat
|
||||
report_sent = await msg.reply_to_message.forward(app.owner)
|
||||
sender = msg.from_user if msg.from_user is not None else msg.sender_chat
|
||||
|
||||
sender_name = (
|
||||
sender.first_name if isinstance(sender, User) else sender.title
|
||||
)
|
||||
sender_name = sender.first_name if isinstance(sender, User) else sender.title
|
||||
|
||||
# ACTION NEEDED
|
||||
# Name and username are somehow None
|
||||
await report_sent.reply_text(
|
||||
app._("report_received", "message").format(
|
||||
sender_name, sender.username, sender.id
|
||||
),
|
||||
quote=True,
|
||||
)
|
||||
await report_sent.reply_text(
|
||||
app._("report_received", "message", locale=user.locale).format(
|
||||
sender_name, sender.username, sender.id
|
||||
),
|
||||
quote=True,
|
||||
)
|
||||
|
Reference in New Issue
Block a user