from .. import loader, utils
import os
__version__ = (1, 0, 0)
# meta developer: @kmodules
@loader.tds
class GPMToolMod(loader.Module):
"""Модуль позволяет пересылать сообщение из канала, где это запрещено."""
strings = {
"name": "GPMTool",
"no_args": "🚫 Укажите ссылку правильно.\n\n
Пример: .gpm https://t.me/channel/9
",
"invalid_args": "🚫 Неверный формат ссылки.",
"msg_not_found": "🚫 Сообщение не найдено.",
"no_premium": "👎 У вас нету Telegram Premium. \n\nСообщение будет отправлено без премиум эмоджи.
",
"loading": "🤑 Загрузка..."
}
async def client_ready(self, client, db):
self.client = client
@loader.command()
async def gpm(self, message):
"""<ссылка: https://t.me/канал/номер_поста> Переслать сообщения из канала, где запрещено."""
args = utils.get_args_raw(message)
if not args:
await utils.answer(message, self.strings["no_args"])
return
try:
if not args.startswith('https://t.me/'):
await utils.answer(message, self.strings["invalid_args"])
return
channel = args.split('https://t.me/')[1].split('/')[0]
msg_id = int(args.split('/')[-1])
except ValueError:
await utils.answer(message, self.strings["invalid_args"])
return
await utils.answer(message, self.strings["loading"])
me = await self.client.get_me()
has_premium = getattr(me, 'premium', False)
copied_message = await self.client.get_messages(channel, ids=msg_id)
if not copied_message:
await utils.answer(message, self.strings["msg_not_found"])
return
media = None
caption = copied_message.message
file_path = None
if copied_message.media:
file_path = await copied_message.download_media()
if hasattr(copied_message.media, 'photo'):
media = 'photo'
elif hasattr(copied_message.media, 'document'):
media = 'document'
elif hasattr(copied_message.media, 'audio'):
media = 'audio'
elif hasattr(copied_message.media, 'video'):
media = 'video'
elif hasattr(copied_message.media, 'voice'):
media = 'voice'
elif hasattr(copied_message.media, 'video_note'):
media = 'video_note'
elif hasattr(copied_message.media, 'sticker'):
media = 'sticker'
if media:
if media == 'photo':
await self.client.send_file(
message.chat_id,
file_path,
caption=caption,
parse_mode='html',
formatting_entities=copied_message.entities
)
else:
await self.client.send_file(
message.chat_id,
file_path,
caption=caption,
parse_mode='html',
formatting_entities=copied_message.entities,
voice_note=(media == 'voice'),
video_note=(media == 'video_note')
)
if file_path:
os.remove(file_path)
await message.delete()
else:
await utils.answer(
message,
copied_message.message,
parse_mode='html'
)
if not has_premium and message.chat_id != "me":
await self.client.send_message(message.chat_id, self.strings["no_premium"])