cloudytechi147
Yoctopat
- Katılım
- 10 Aralık 2021
- Mesajlar
- 1
Daha fazla
- Cinsiyet
- Erkek
Aslında mesajları bir kanaldan başka bir kanala ileten bir bot yapıyorum. Sözcük değiştirme, ses veya görüntüden kaçınma (kodumun üst kısmında tanımlandığı gibi) gibi bazı değişiklikleri uygular ve bu şekilde mükemmel çalışır.
Ancak, üzerinde gerçekleştirilen işlemlerden sonra mesajı çeviren ve sonucu şöyle ileten bir işlevsellik eklemek istiyorum:
" [üzerinde işlemler yapıldıktan sonra iletilen mesaj]
[üzerinde işlemler yapıldıktan ve Fransızcaya çevrildikten sonra ileti iletildi]
"
Yani asıl kod var, Google translate API'yi içe aktardım, ancak işlemleri nerede yaptığımı ve bana bu hataları göndermeden nasıl birleştireceğimi anlamıyorum (bkz. Ekran görüntüsü)
-------------------------------
Gelen kod Translate Languages in Python.
Ancak, üzerinde gerçekleştirilen işlemlerden sonra mesajı çeviren ve sonucu şöyle ileten bir işlevsellik eklemek istiyorum:
" [üzerinde işlemler yapıldıktan sonra iletilen mesaj]
[üzerinde işlemler yapıldıktan ve Fransızcaya çevrildikten sonra ileti iletildi]
"
Yani asıl kod var, Google translate API'yi içe aktardım, ancak işlemleri nerede yaptığımı ve bana bu hataları göndermeden nasıl birleştireceğimi anlamıyorum (bkz. Ekran görüntüsü)
Kod:
from telethon import TelegramClient, events.
from telethon.tl.types import PeerChannel, MessageActionChatEditPhoto
from telethon.tl.functions.messages import GetBotCallbackAnswerRequest, DeleteMessagesRequest
from datetime import datetime.
from googletrans import Translator.
import time.
import configparser.
import re.
import os.
import logging.
import sqlite3.
import sys.
import asyncio.
def channel_group(config):
channel_group_dic = {}
channel_group_list = []
for channel_group_from, channel_group_to in config.items('Settings'):
firts_letter = channel_group_from[:1]
if firts_letter.lower() == "g" or firts_letter.lower() == "c" or firts_letter.lower() == "b" or firts_letter.lower() == "u":
channel_group_list.append(int(channel_group_from[1:]))
channel_group_split = channel_group_to.split(";")
temp_channel_group_list = []
for channel_group in channel_group_split:
first_letter_channel_group = channel_group[:1]
if first_letter_channel_group.lower() == "g":
temp_channel_group_list.append(int("-"+channel_group[1:]))
if first_letter_channel_group.lower() == "c":
temp_channel_group_list.append(int("-100"+channel_group[1:]))
channel_group_dic[int(channel_group_from[1:])]=temp_channel_group_list
return channel_group_list, channel_group_dic.
def eval_list(string):
string_list = None.
try:
if isinstance(eval(string), list):
string_list = eval(string)
except Exception as e:
print("Error :",string)
return string_list.
def replace_list(string):
replace_list = []
for string in replace.split(";"):
string_list = eval_list(string)
if string_list:
replace_list.append(string_list)
return replace_list.
def skip_list(string):
skip_list = []
string_list = eval_list(string)
if string_list:
skip_list = string_list.
return skip_list.
def skip_message_image_list(string):
channel_group_list = []
for channel_group_from in string.split(";"):
firts_letter = channel_group_from[:1]
if firts_letter.lower() == "g" or firts_letter.lower() == "c" or firts_letter.lower() == "b" or firts_letter.lower() == "u":
channel_group_list.append(int(channel_group_from[1:]))
return channel_group_list.
config = configparser.ConfigParser()
config.read('config.ini')
if not os.path.exists('config.ini'):
print ("config.ini file not found")
os.system("pause >nul")
sys.exit()
api_id = config.get('Settings', 'api_id')
api_hash = config.get('Settings', 'api_hash')
replace = config.get('Settings', 'replace')
allow_voice = config.getboolean('Settings', 'allow_voice')
allow_gif = config.getboolean('Settings', 'allow_gif')
skip = config.get('Settings', 'skip')
skip_message_image = config.get('Settings', 'skip_message_image')
skip_message_image_list = skip_message_image_list(skip_message_image)
replace_list = replace_list(replace)
skip_list = skip_list(skip)
channel_group_list_from, channel_group_dic_to = channel_group(config)
##print(channel_group_list_from)
##print(channel_group_dic_to)
##print(replace_list)
if not channel_group_list_from:
sys.exit("Error")
client = TelegramClient('session', api_id, api_hash)
@client.on(events.NewMessage(chats=channel_group_list_from,outgoing=False))
async def new_message_handler(event):
## print(event)
if event.is_channel:
channel_group_id_from = event.message.peer_id.channel_id
elif event.is_group:
channel_group_id_from = event.message.peer_id.chat_id
else:
channel_group_id_from = event.message.peer_id.user_id
channel_group_message_id = event.message.id
channel_group_message_text = event.message.message
if event.photo:
if channel_group_id_from in skip_message_image_list:
print('Message Image Skipped ### ID:', channel_group_id_from)
return.
for skip in skip_list:
if skip in channel_group_message_text:
print('Message Skipped:', channel_group_message_text," ### ID:", channel_group_id_from)
return.
found = False.
for replace in replace_list:
if replace[0] in channel_group_message_text:
found = True.
event.message.message = channel_group_message_text.replace(replace[0],replace[1])
channel_group_message = event.message
message_text = event.raw_text
**## message_text_a_translate = event.raw_text
message_translated = event.translator.translate( message_text, dest='fr', src='en')
## print('Message:', channel_group_message_text," ### ID:", channel_group_id_from)**
if found:
print('Message Edited in EN:', message_text)#affichage du message original apres traitement en anglais.
print('message Edited in FR :', message_translated)#affichage du message apres traitement et traduction en FRANCAIS.
if event.voice and not allow_voice:
return.
if event.gif and not allow_gif:
return.
for channel_group_to in channel_group_dic_to[channel_group_id_from]:
try:
mirror_message = await client.send_message(channel_group_to, message=channel_group_message)
except Exception as e:
print("Error:",e)
if __name__ == '__main__':
client.start()
print("Waiting Messages...")
client.run_until_disconnected()
-------------------------------
Gelen kod Translate Languages in Python.