Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

this code below can forward message from channel to another channel but how to modify it to forward from private channel that i'm not admin to my own private channel please :

from telethon import TelegramClient, events, sync
from telethon.tl.types import InputChannel
import yaml
import sys
import logging
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s -      %(message)s')
logging.getLogger('telethon').setLevel(level=logging.WARNING)
logger = logging.getLogger(__name__)

 def start(config):
client = TelegramClient(config["session_name"], 
                        config["api_id"], 
                        config["api_hash"])
client.start()

input_channels_entities = []
output_channel_entities = []
for d in client.iter_dialogs():
    if d.name in config["input_channel_names"]:
        input_channels_entities.append(InputChannel(d.entity.id, d.entity.access_hash))
    if d.name in config["output_channel_names"]:
        output_channel_entities.append(InputChannel(d.entity.id, d.entity.access_hash))
        
if not output_channel_entities:
    logger.error(f"Could not find any output channels in the user's dialogs")
    sys.exit(1)

if not input_channels_entities:
    logger.error(f"Could not find any input channels in the user's dialogs")
    sys.exit(1)
    
logging.info(f"Listening on {len(input_channels_entities)} channels. Forwarding messages to    {len(output_channel_entities)} channels.")

@client.on(events.NewMessage(chats=input_channels_entities))
async def handler(event):
    for output_channel in output_channel_entities:
        await client.forward_messages(output_channel, event.message)

client.run_until_disconnected()

if __name__ == "__main__":
if len(sys.argv) < 2:
    print(f"Usage: {sys.argv[0]} {{CONFIG_PATH}}")
    sys.exit(1)
with open(sys.argv[1], 'rb') as f:
    config = yaml.safe_load(f)
start(config)

NB: this is config file :

api_id: 'your api id get it from : my.telegram.org'

api_hash: 'your api hash get it from : my.telegram.org'

session_name: 'session name'

input_channel_names:

  • 'Input Channel Name 1'
  • 'Input Channel Name 2'

output_channel_names:

  • 'output Channel Name 1'
  • 'output Channel Name 2'

can someone modify it to forward message from private channel that im not admin to my own private channel telegram please


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
5.5k views
Welcome To Ask or Share your Answers For Others

1 Answer

等待大神解答

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share

548k questions

547k answers

4 comments

86.3k users

...