update scam protection

pull/130/head
Rilliat 2025-04-15 12:41:27 +03:00
parent 0864f61f1a
commit 9c1b18ffe4
3 changed files with 41 additions and 16 deletions

View File

@ -518,6 +518,7 @@ loader:
clearmodules: "🗑 Clear modules"
cancel: "🚫 Cancel"
overwrite_module: "<emoji document_id=5454225457916420314>😖</emoji> <b>This module attempted to override the core one (</b><code>{}</code><b>)</b>\n\n<emoji document_id=5472146462362048818>💡</emoji><i> Don't report it as bug. It's a security measure to prevent replacing core modules with some junk</i>"
scam_module: "<emoji document_id=5454225457916420314>😖</emoji> <b>The module</b> <code>{name}</code> <b>is a scam, please report it to the support group (</b><code>{prefix}support</code><b>)</b>\n\n<tg-spoiler><i>Protection has stopped its loading.</i></tg-spoiler>"
overwrite_command: "<emoji document_id=5454225457916420314>😖</emoji> <b>This module attempted to override the core command (</b><code>{}{}</code><b>)</b>\n\n<emoji document_id=5472146462362048818>💡</emoji><i> Don't report it as bug. It's a security measure to prevent replacing core modules' commands with some junk</i>"
unload_core: "<emoji document_id=5454225457916420314>😖</emoji> <b>You can't unload core module</b> <code>{}</code><b></b>\n\n<emoji document_id=5472146462362048818>💡</emoji><i> Don't report it as bug. It's a security measure to prevent replacing core modules with some junk</i>"
cannot_unload_lib: "<emoji document_id=5454225457916420314>😖</emoji> <b>You can't unload library</b>"

View File

@ -488,6 +488,7 @@ loader:
clearmodules: "🗑 Выгрузить модули"
cancel: "🚫 Отмена"
overwrite_module: "<emoji document_id=5454225457916420314>😖</emoji> <b>Этот модуль попытался перезаписать встроенный (</b><code>{}</code><b>)</b>\n\n<emoji document_id=5472146462362048818>💡</emoji><i> Это не ошибка, а мера безопасности, требуемая для предотвращения замены встроенных модулей всяким хламом. Не сообщайте о ней в support чате</i>"
scam_module: "<emoji document_id=5454225457916420314>😖</emoji> <b>Модуль</b> <code>{name}</code> <b>является скамом, сообщите о нём, пожалуйста, в группу поддержки (</b><code>{prefix}support</code><b>)</b>\n\n<tg-spoiler><i>Защита остановила его загрузку.</i></tg-spoiler>"
overwrite_command: "<emoji document_id=5454225457916420314>😖</emoji> <b>Этот модуль попытался перезаписать встроенную команду (</b><code>{}</code><b>)</b>\n\n<emoji document_id=5472146462362048818>💡</emoji><i> Это не ошибка, а мера безопасности, требуемая для предотвращения замены команд встроенных модулей всяким хламом. Не сообщайте о ней в support чате</i>"
unload_core: "<emoji document_id=5454225457916420314>😖</emoji> <b>Ты не можешь выгрузить встроенный модуль</b> <code>{}</code><b></b>\n\n<emoji document_id=5472146462362048818>💡</emoji><i> Это не ошибка, а мера безопасности, требуемая для предотвращения замены встроенных модулей всяким хламом. Не сообщайте о ней в support чате</i>"
cannot_unload_lib: "<emoji document_id=5454225457916420314>😖</emoji> <b>Ты не можешь выгрузить библиотеку</b>"

View File

@ -36,6 +36,7 @@ import requests
from herokutl.errors.rpcerrorlist import MediaCaptionTooLongError
from herokutl.tl.functions.channels import JoinChannelRequest
from herokutl.tl.types import Channel, Message, PeerUser
from herokutl.errors.common import ScamDetectionError
from .. import loader, main, utils
from .._local_storage import RemoteStorage
@ -700,7 +701,7 @@ class LoaderMod(loader.Module):
except CoreOverwriteError as e:
await core_overwrite(e)
return
except loader.LoadError as e:
except (loader.LoadError, ScamDetectionError) as e:
with contextlib.suppress(Exception):
await self.allmodules.unload_module(instance.__class__.__name__)
@ -708,13 +709,24 @@ class LoaderMod(loader.Module):
self.allmodules.modules.remove(instance)
if message:
await utils.answer(
message,
(
"<emoji document_id=5454225457916420314>😖</emoji>"
f" <b>{utils.escape_html(str(e))}</b>"
),
)
if isinstance(e, loader.LoadError):
await utils.answer(
message,
(
"<emoji document_id=5454225457916420314>😖</emoji>"
f" <b>{utils.escape_html(str(e))}</b>"
),
)
elif isinstance(e, ScamDetectionError):
await utils.answer(
message,
(
self.strings('scam_module').format(
name=instance.__class__.__name__,
prefix=self.get_prefix(),
)
)
)
return
except Exception as e:
logger.exception("Loading external module failed due to %s", e)
@ -770,7 +782,7 @@ class LoaderMod(loader.Module):
except CoreOverwriteError as e:
await core_overwrite(e)
return
except loader.LoadError as e:
except (loader.LoadError, ScamDetectionError) as e:
with contextlib.suppress(Exception):
await self.allmodules.unload_module(instance.__class__.__name__)
@ -778,13 +790,24 @@ class LoaderMod(loader.Module):
self.allmodules.modules.remove(instance)
if message:
await utils.answer(
message,
(
"<emoji document_id=5454225457916420314>😖</emoji>"
f" <b>{utils.escape_html(str(e))}</b>"
),
)
if isinstance(e, loader.LoadError):
await utils.answer(
message,
(
"<emoji document_id=5454225457916420314>😖</emoji>"
f" <b>{utils.escape_html(str(e))}</b>"
),
)
elif isinstance(e, ScamDetectionError):
await utils.answer(
message,
(
self.strings('scam_module').format(
name=instance.__class__.__name__,
prefix=self.get_prefix(),
)
)
)
return
except loader.SelfUnload as e:
logger.debug("Unloading %s, because it raised `SelfUnload`", instance)