1

Тема: Бот в Телеграмі(Python)

Всім привіт. Пишу бота в телеграмі на Python. Суть бота полягає в тому, щоб бот відповідав на питання користувача в групі (коли користувач тегнув бота), а бот відповість і відмітить якогось рандомного користувача з цієї групи. На приклад:
- @бот, хто сьогодні миє посуд?
- Я думаю, що це @якийсь_користувач

Накидав код, але він не працює, спитав в чата gpt, а він ще гірше зробив :( Якщо хтось шарить, допоможіть, будь ласка. Буду дуже вдячний.

from typing import Final
from telegram import Update 
import random
from telegram.ext import Application, CommandHandler, MessageHandler, filters, ContextTypes


TOKEN: Final = 'токен бота'
BOT_USERNAME: Final = '@назва бота '

def mention_random_user(update: Update, context: CallbackContext):
    chat_id = update.message.chat_id
    chat_members = context.bot.get_chat_members_count(chat_id)
    
    random_index = random.randint(0, chat_members - 1)
    random_member = context.bot.get_chat_member(chat_id, random_index)
    random_member_mention = random_member.user.mention_text()
    update.message.reply_text(f"Вибраний рандомний користувач: {random_member_mention}")


#Commands 
async def start_command(update: Update, context: ContextTypes.DEFAULT_TYPE):
    await update.message.reply_text("Привіт! Дякую, що обрали цей бот для Вашої групи ???? Щоб почати розважатись просто додайте цей бот до групи та надайте йому права адміністратора ????")

async def help_command(update: Update, context: ContextTypes.DEFAULT_TYPE):
    await update.message.reply_text("Усе простіше простого ???? Просто на початку свого повідомлення відміть цього ботіка й напиши своє питання. Після цього ботік дасть відповідь відмітивши когось з учасників групи ????")


 # Responses 

 def handle_response(text: str) -> str: 
    processed: str = text.lower()

    if 'хто' in processed: 
        return update.message.reply_text(f"Я думаю, що це: {random_member_mention}")
    
    if 'хто з ким' in processed: 
        return 'Я думаю, що це '+ +' і '
    
    if 'чи' in processed: 
        return 'Я думаю, що '
    
    return 'Я не зрозумів, що Ви хочете від мене ????'


async def handle_message(update: Update, context: ContextTypes.DEFAULT_TYPE):
    message_type: str = update.message.chat.type   
    text: str = update.message.text

    print(f'User ({update.message.chat.id}) in {message_type}: "{text}"')

    if message_type == 'group' : 
        if BOT_USERNAME in text:
            new_text: str = text.replace(BOT_USERNAME, '').strip()
            response: str = handle_response(new_text)
        else:
            return 
    else: 
        response: str = handle_response(text)

    print('Bot:', response )
    await update.message.reply_text(response)

async def error(update: Update, context: ContextTypes.DEFAULT_TYPE): 
    print(f'Update {update} caused error {context.error}')

if __name__ == '__main__':

    app = Application.builder().token(TOKEN).build()

    app.add_handler(CommandHandler('start', start_command))
    app.add_handler(CommandHandler('help', help_command))


    app.add_handler(MessageHandler(filters.TEXT, handle_message))

    app.add_error_handler(error)

    app.run_polling(poll_interval=5)

def main():
    updater = Updater(TOKEN, use_context=True)
    dp = updater.dispatcher

    dp.add_handler(CommandHandler("mention_random", mention_random_user))

    updater.start_polling()
    updater.idle()

if __name__ == '__main__':
    main()

2

Re: Бот в Телеграмі(Python)

Будь ласка:
- замість "не працює" напишіть конкретно, що відбувається. "Не працює" описує купу різних ситуацій, починаючи з відсутності електрики. Виводить помилку? Яку саме? Не виводить нічого? А що саме ви з цим кодом робите?
- це ваш код чи код ChatGPT? Допомагати ChatGPT тут нікому не цікаво. Якщо це його правки, то поверніть свій код і питайте про нього.

Подякували: romalarkin, leofun012

3

Re: Бот в Телеграмі(Python)

Добрий день. Дякую за Вашу відповідь. Я врахую Ваші поради наступного разу.
- Що не працює: на поточному етапі, коли я просто намагаюсь розпочати роботу бота в телеграмі, то він не відповідає на команди /start і /help. Помилок не виводить.
- Так, це мій код, питаю про нього. Правки GPT я не вставляв.
Ще раз дякую за відповідь

4

Re: Бот в Телеграмі(Python)

Teelgram це зонд росіянської гебні.

Подякували: vitek1

5

Re: Бот в Телеграмі(Python)

Телеграм - це мережа розроблена Павлом Дуровим. Єдине, що він має спільного з русньою - це те, що він там просто народився. Можете почитати його інтерв'ю, в яких він чітко сказав, що в росію збиратись не повертається. Також він відмовився від рос громадянства і отримав 4 інших (так як він ВЖЕ не є рос громадянином, він не може платити податки в рос), відповідно з русньою він не працює. Тому, будь ласка, не несіть маячню, а краще допоможіть з ботом. Дякую

6

Re: Бот в Телеграмі(Python)

Ось вам більш-менш детальний розбір: https://youtu.be/0V67ADwFsPw
А взагалі я погано розумію, ким треба бути, щоб повірити, що московит із офіційним фахом "Пропаганда та психологічна війна" може зробити щось корисне чи хоча б безпечне в галузі інформаційних технологій.

romalarkin написав:

Можете почитати його інтерв'ю, в яких він чітко сказав

Геніально. А що не так з пуйлом? Можете почитати його інтерв'ю, в яких він чітко сказав, що московитська армія ніяких цивільних не вбиває, то все нацисти, з якими вона воює, роблять.

romalarkin написав:

я просто намагаюсь розпочати роботу бота в телеграмі

Підозрюю, що щось ви недореєстрували, коли бота створювали. Перечитайте уважніше інструкцію.

romalarkin написав:

так як він ВЖЕ не є рос громадянином, він не може платити податки в рос

Не росгромадяни можуть платити там податки; але він є громадянином РФ, він лише просив ЗМІ, щоб його так не називали, бо імідж псується.

Подякували: flatliner, vitek, leofun01, ostap34PHP4

7

Re: Бот в Телеграмі(Python)

Ніразу не встановлював телеграм та не знаю як він виглядає з середини.
Всі програмні продукти що використовуються на росії зберігаються В Серверах що на росії!!!
Коли ви щось встановлюете то даєте згоду на використання програмою : диску, камери.. - що саме залежить від програми. "Чесні" програми декларують що саме їм потрібно, невиключаю що є ті що неповідомляють або використовують згоду інших вже встановлених.
росія це не та країна що піклується про особисті дані користувачів (ви там можете купити цілі бази даних), питання, А навіщо ім зберігати всі ці дані?!