@Xliteee

Почему скрипт не принимает переменные?

Пишу скрипт который должен реагировать на новые посты в определенном канале и оставлять под ними комментарий от имени пользователя. Для удобавства решил сделать хранение айдишника канала и чата в текстовых документах, но при их использовании получаю ошибку. Хотя когда вместо переменных стоят значения в цифровом формате то все работает. В чем может быть проблема? Возможно я неправильно пытаюсь прочесть txt файл, помогите пожалуйста

from telethon import TelegramClient, events, utils
from telethon.sync import TelegramClient
from telethon.sessions import StringSession
from telethon.tl.functions.messages import GetDialogsRequest
from telethon.tl.types import InputPeerEmpty
import asyncio
from loguru import logger
import random
from random import randint

from config import API_ID
from config import API_HASH
from config import phone

#пробуем законектиться в аккаунт исходя из конфиг данных
try:
	client = TelegramClient(phone, API_ID, API_HASH)
except KeyError:
	os.system('clear')
	print("[!] config.py не настроен!!!!!\n")
	sys.exit(1)

client.connect()
if not client.is_user_authorized():
	try:
		client.send_code_request(phone)
		client.sign_in(phone, input('[+] Enter the code: '))
	except:
		print("Похоже слишком много раз отправлен запрос")

with open("msg_text.txt", encoding='utf-8') as inp:
    lines = inp.readlines()



file1 = open("testchatid.txt", "r")

# считываем все строки
lines = file1.readlines()

# итерация по строкам
for line in lines:
    print(line.strip())
    global truechatid
    truechatid = line.strip()

file2 = open("testchanid.txt", "r")

# считываем все строки
lines = file2.readlines()

# итерация по строкам
for line in lines:
    print(line.strip())
    global truechanid
    truechanid = line.strip()

#функция которая принимает все новые сообщения из переменной
@client.on(events.NewMessage(chats = truechatid))
async def handler(event):
	random_line = random.choice(lines).strip() #Берем строку обрезаем её и рандомим
	if event.sender_id == truechanid: #Если айди отправителя ровняеться указаному
		await client.send_message(entity=truechatid, message=random_line, reply_to=event.message.id) #Отправляем сообщение в ответ на пост
		logger.success(f'| Проккоментровал пост {event.chat.id}') #Выводим инфу в консоль
	else:
		logger.error(f'| В чате появилось новое сообщение')

client.run_until_disconnected()
  • Вопрос задан
  • 78 просмотров
Пригласить эксперта
Ответы на вопрос 1
Vindicar
@Vindicar
RTFM!
Я подозреваю, что ты не подумал о типах данных.
Из текстового файла ты можешь прочитать только строковой тип.
А какой тип данных используют нужные тебе ID?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
23 нояб. 2024, в 22:03
3000 руб./за проект
23 нояб. 2024, в 21:53
30000 руб./за проект
23 нояб. 2024, в 21:49
1000 руб./в час