Python Телеграмм бот скрытое продолжение

У меня есть канал/группа телеграммы, куда я добавляю участников вручную, и я вручную удаляю/удаляю пользователей через один/два/три месяца. Есть ли способ выполнить эту задачу автоматически, я имею в виду, можем ли мы удалить/выгнать пользователя из канала/группы автоматически или по расписанию?

Любой пример кода Python поможет понять. Спасибо.

VikaS GuttE 21 Сен 2021 в 19:26

3 ответа

Вы можете запланировать любое действие, используя python-telegram-bot , а также может запланировать kick_chat_member
Читать полную документацию здесь https://python-telegram-bot.readthedocs.io

Himanshu kumar 21 Сен 2021 в 19:42

У вас есть рабочий пример или видео для реализации kick_chat_member , извините, я новичок в python, поэтому не знаю, как использовать это и реализовать в Telegram. Спасибо за помощь.

VikaS GuttE
23 Сен 2021 в 20:33
Планирование kick_chat_member невозможно
Ali Padida
1 Окт 2021 в 20:30

Это возможно, если вы получаете время каждые 5 минут и всегда проверяете это время, когда хотите пнуть,

#2. Архитектура проекта телеграм бота на Python | Aiogram


Himanshu kumar
2 Окт 2021 в 21:02

Вы можете заблокировать пользователя в группе на определенный период времени, используя kick_chat_member. Функция вернет True , если пользователь успешно удален.

# kick a user from a group m = context.bot.kick_chat_member( chat_id=»-1001572091573″, user_id=’123456789′, timeout=int(time.time() + 86400)) # expiry after 24h

Вам необходимо получить chat_id группового чата и user_id пользователя для блокировки: вы можете сделать это, перехватив такие события, как new_chat_members , которые предоставляют всю информацию, когда новый пользователь добавлен в группу

# handler to process new member event updater.dispatcher.add_handler( MessageHandler(Filters.status_update.new_chat_members, new_member)) def new_member(update, context): logging.info(f»new_member : «) chat_id = update.message.chat.id user_id = update.message.from_user.id

Бот должен иметь возможность выполнять операции такого типа, поэтому убедитесь, что он является администратором или имеет привилегию ban user .

Подобные операции планирования (очевидно) не охватываются Telegram BOT API, но это логика, которую должно реализовать приложение/чат-бот.

Вам необходимо позаботиться о следующем:

  • получить chat_id (см. выше) и сохранить его для последующего пользователя
  • сохранять идентификаторы участников (см. выше), когда они присоединяются к группе, вместе с датой (чтобы иметь возможность установить, как долго они были частью группы)

Хороший способ реализовать задачи на Python — использовать расширенный планировщик Python.

from apscheduler.schedulers.background import BackgroundScheduler scheduler = BackgroundScheduler() scheduler.add_job(ban_members, ‘interval’, days=30) scheduler.start() def ban_members(): # get users from DB # establish who needs to be removed # call kick_chat_member
Beppe C 2 Окт 2021 в 12:21

Они не имели в виду запрет на определенный период времени. Они имели в виду планирование запрета. Так что, если пользователь присоединяется к группе, он будет забанен через месяц.

Ali Padida
1 Окт 2021 в 20:31

Я добавил пример кода для реализации фоновой задачи, блокирующей пользователей по истечении заданного периода времени. Примечание: это настраиваемая логика приложения, поэтому она не является частью Telegram Chatbot API или событием REST Telegram.

2 Окт 2021 в 12:29

GuttE Я думаю, что мой ответ должен предоставить вам решение, которое вы ищете (если вы используете библиотеку Python Telegram API). Могу уточнить/уточнить, если нужно.

Еще по теме:  Как можно узнать облачный пароль от Телеграмма при входе

3 Окт 2021 в 17:58

— Я пробовал выше, но не уверен, что что-то не так, также я не уверен, где и как я могу хранить данные пользователя. у вас есть рабочий код или образец? Я пробую это на replit.com для вашей информации. Спасибо за помощь.

VikaS GuttE
4 Окт 2021 в 16:39

Вы можете посмотреть на github.com/gcatanese/SampleTelegramQuiz. Это образец чат-бота Telegram с кодом для выполнения различных ответов. Как только вы получите user_id и chat_id , вам нужно где-то их сохранить (БД, файл), чтобы фоновая задача могла использовать их при запуске.

4 Окт 2021 в 16:58

Из-за документов официального Telegram Bot API невозможно запланировать banChatMember.

Что вы можете сделать, так это зарегистрировать пользователей в базе данных, включая поле под названием kick_date , и запустить скрипт заданий cron, чтобы проверить, не предшествует ли их kick_date текущее время, и использовать banChatMember , чтобы запретить их .

Я не публиковал никаких кодов после вашего вопроса;

  1. выглядело так, как будто вы ищете метод в Telegram API.
  2. Вы не упомянули, какой API бота Python Telegram вы хотите использовать.
  3. Предоставление образца кода для вашего вопроса (игнорируя причины 1 и 2) будет проектом для самого себя, поскольку он состоит из разных разделов кода. Я предлагаю вам разделить свой вопрос на эти части и искать/спрашивать о них:
  • Как сохранить текущих членов в базе данных?
  • Как сохранить новых членов в базе данных?
  • Как периодически запускать скрипт на Python?
  • Как кикать участников по id?

Я дам вам шаги, которые вы можете предпринять, чтобы достичь своей цели.

  1. После добавления участника в вашу группу вы получите обновление от Telegram, включающее поле new_chat_members :

< «update_id»: 436022554, «message»: < «message_id»: 259, «from»: < «id»: , «is_bot»: false, «first_name»: , «username»: , «language_code»: «en» >, «chat»: < «id»: , «title»: , «type»: «group», «all_members_are_administrators»: true >, «date»: 1633373553, «new_chat_members»: [ < «id»: , «is_bot»: false, «first_name»: , «username»: > ] > >

  1. Вы будете перебирать new_chat_members и добавлять их в свою базу данных вместе со временем kick_at .
  2. Напишите скрипт, чтобы получить ваших участников из базы данных и проверить, не пора ли их выгнать. ( kick_at now ) и используйте banChatMember для это важно.

Источник: question-it.com

Python телеграмм бот скрытое продолжение

Бот на Python, использующий BingAI для Telegram [Гайд]

Бот на Python, использующий BingAI для Telegram [Гайд]

10 апреля 2023
Оценки статьи
Еще никто не оценил статью

В данной статье мы будем описывать, как можно использовать сервис искусственного интеллекта Bing AI для создания бота в Telegram. Мы будем использовать библиотеку aiogram на Python, которая позволяет создавать ботов для Telegram.

Я обращаюсь к вам с просьбой о финансовой поддержке, чтобы помочь мне справиться с непредвиденной ситуацией, связанной с поломкой моей видеокарты. Как вы знаете, создание статей требует надежного оборудования, и видеокарта является важным компонентом для создания высококачественных материалов.

Я с большим энтузиазмом и преданностью занимаюсь написанием статей и созданием контента, который доступен абсолютно бесплатно. Моей целью является поделиться знаниями и помочь другим, но поломка видеокарты создала трудности и затраты, которые я самостоятельно не могу покрыть.

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

Еще по теме:  Как в Телеграмме все скачать сразу с кнала

Все откликнувшиеся на зов помощи будут упомянуты после выполнения целей

С ее помощью мы настроим обработчик сообщений и добавим функцию для получения ответа от Bing AI.

В этом гайде мы должны использовать Edge браузер для получения данных от Bing AI.

Создаем проект на Python

Нам необходимо создать проект с виртуальным окружением, поэтому создаем в любой удобной для Вас IDE.

Я воспользуюсь VSCODE. Создам папку проекта и открою ее в VSCODE. Из под Windows:

Создание виртуального окружения: py -m venv venv , активируем его с помощью команды: venv/Scripts/activate

Если из под Linux:

Создание виртуального окружения: python3 -m venv venv , активация: source venv/bin/activate .

Далее создадим файл main.py и рядом папку data, в которой создадим файл cookies.json.

Структура получится следующая

Получение cookies с BingAI (только с браузера Edge)

Первым, что необходимо сделать, это получить cookies с Bing AI чата. Для этого скачиваем расширение Cookie Editor для браузера.

Получаем Cookie Editor для браузера

Далее переходим в сам чат с Bing AI, чтобы войти в чат с нейросетью BingAI вы можете ознакомиться с этой статьей.

Нажимаем на наше расширение, вы увидите различные данные с сайта Microsoft и Bing, в расширении нажимайте кнопку export.

Нажимаем кнопку export

Далее эти куки сохраняется в буфере обмена (т.е копируются), и их нужно вставить в файл cookies.json который мы создали ранее.

Получиться должно вот так

Установка модулей aiogram и EdgeGPT

Далее нам необходимо установить модули для телеграм бота и Bing AI, для этого находясь в активированном виртуальном окружении в терминале прописываем следующую команду: pip install EdgeGPT aiogram .

Результат установки:

Collecting EdgeGPT Using cached EdgeGPT-0.1.22.1-py3-none-any.whl (9.9 kB) Collecting aiogram Using cached aiogram-2.25.1-py3-none-any.whl (203 kB) Collecting httpx Using cached httpx-0.23.3-py3-none-any.whl (71 kB) Collecting websockets Using cached websockets-11.0.1-cp311-cp311-win_amd64.whl (124 kB) Collecting rich Using cached rich-13.3.3-py3-none-any.whl (238 kB) Collecting certifi Using cached certifi-2022.12.7-py3-none-any.whl (155 kB) Collecting prompt-toolkit Using cached prompt_toolkit-3.0.38-py3-none-any.whl (385 kB) Collecting regex Using cached regex-2023.3.23-cp311-cp311-win_amd64.whl (267 kB) Collecting requests Using cached requests-2.28.2-py3-none-any.whl (62 kB) Collecting BingImageCreator>=0.1.1.1 Using cached BingImageCreator-0.1.2.1-py3-none-any.whl (6.4 kB) Collecting aiohttp3.9.0,>=3.8.0 Using cached aiohttp-3.8.4-cp311-cp311-win_amd64.whl (317 kB) Collecting Babel2.10.0,>=2.9.1 Using cached Babel-2.9.1-py2.py3-none-any.whl (8.8 MB) Collecting magic-filter>=1.0.9 Using cached magic_filter-1.0.9-py3-none-any.whl (9.3 kB) Collecting attrs>=17.3.0 Using cached attrs-22.2.0-py3-none-any.whl (60 kB) Collecting charset-normalizer4.0,>=2.0 Using cached charset_normalizer-3.1.0-cp311-cp311-win_amd64.whl (96 kB) Collecting multidict7.0,>=4.5 Using cached multidict-6.0.4-cp311-cp311-win_amd64.whl (28 kB) Collecting async-timeout5.0,>=4.0.0a3 Using cached async_timeout-4.0.2-py3-none-any.whl (5.8 kB) Collecting yarl2.0,>=1.0 Using cached yarl-1.8.2-cp311-cp311-win_amd64.whl (55 kB) Collecting frozenlist>=1.1.1 Using cached frozenlist-1.3.3-cp311-cp311-win_amd64.whl (32 kB) Collecting aiosignal>=1.1.2 Using cached aiosignal-1.3.1-py3-none-any.whl (7.6 kB) Collecting pytz>=2015.7 Using cached pytz-2023.3-py2.py3-none-any.whl (502 kB) Collecting httpcore0.17.0,>=0.15.0 Using cached httpcore-0.16.3-py3-none-any.whl (69 kB) Collecting rfc3986[idna2008]2,>=1.3 Using cached rfc3986-1.5.0-py2.py3-none-any.whl (31 kB) Collecting sniffio Using cached sniffio-1.3.0-py3-none-any.whl (10 kB) Collecting wcwidth Using cached wcwidth-0.2.6-py2.py3-none-any.whl (29 kB) Collecting idna4,>=2.5 Using cached idna-3.4-py3-none-any.whl (61 kB) Collecting urllib31.27,>=1.21.1 Using cached urllib3-1.26.15-py2.py3-none-any.whl (140 kB) Collecting markdown-it-py3.0.0,>=2.2.0 Using cached markdown_it_py-2.2.0-py3-none-any.whl (84 kB) Collecting pygments3.0.0,>=2.13.0 Using cached Pygments-2.14.0-py3-none-any.whl (1.1 MB) Collecting h110.15,>=0.13 Using cached h11-0.14.0-py3-none-any.whl (58 kB) Collecting anyio5.0,>=3.0 Using cached anyio-3.6.2-py3-none-any.whl (80 kB) Collecting mdurl~=0.1 Using cached mdurl-0.1.2-py3-none-any.whl (10.0 kB) Installing collected packages: wcwidth, rfc3986, pytz, websockets, urllib3, sniffio, regex, pygments, prompt-toolkit, multidict, mdurl, magic-filter, idna, h11, frozenlist, charset-normalizer, certifi, Babel, attrs, async-timeout, yarl, requests, markdown-it-py, anyio, aiosignal, rich, httpcore, BingImageCreator, aiohttp, httpx, aiogram, EdgeGPT Successfully installed Babel-2.9.1 BingImageCreator-0.1.2.1 EdgeGPT-0.1.22.1 aiogram-2.25.1 aiohttp-3.8.4 aiosignal-1.3.1 anyio-3.6.2 async-timeout-4.0.2 attrs-22.2.0 certifi-2022.12.7 charset-normalizer-3.1.0 frozenlist-1.3.3 h11-0.14.0 httpcore-0.16.3 httpx-0.23.3 idna-3.4 magic-filter-1.0.9 markdown-it-py-2.2.0 mdurl-0.1.2 multidict-6.0.4 prompt-toolkit-3.0.38 pygments-2.14.0 pytz-2023.3 regex-2023.3.23 requests-2.28.2 rfc3986-1.5.0 rich-13.3.3 sniffio-1.3.0 urllib3-1.26.15 wcwidth-0.2.6 websockets-11.0.1 yarl-1.8.2 [notice] A new release of pip available: 22.3 -> 23.0.1 [notice] To update, run: python.exe -m pip install —upgrade pip

Еще по теме:  Как в Телеграмме сделать несколько вкладок избранное

Пишем код для работы нейросети Bing AI в Telegram

Теперь настал момент написания кода, переходим в наш main.py, и пишем следующий код:

Этот код использует библиотеку aiogram для создания Telegram бота на Python, который может взаимодействовать с сервисом искусственного интеллекта Bing AI.

Импортируются модули Bot , types , Dispatcher и executor из библиотеки aiogram , а также модуль Chatbot из библиотеки EdgeGPT .

Переменная telegram_token хранит токен, который получает пользователь, создавший бота в Telegram.

Функция bing_chat используется для получения ответа от сервиса Bing AI. Она получает на вход prompt , то есть запрос пользователя, и возвращает ответ, полученный от Bing AI, удаляя из него специальные символы [^\d^] .

Далее создаются объекты Bot и Dispatcher , используя токен, который был сохранен в telegram_token .

Обработчик сообщений устанавливается на все сообщения, кроме тех, которые отправлены самим ботом. Если пользователь отправил пустой запрос, то бот ответит «Вы задали пустой запрос.». В противном случае, бот отправит «Ожидание ответа на ваш запрос. «, затем вызовет функцию bing_chat для получения ответа от Bing AI и отправит полученный ответ пользователю, также пользователь увидит активность от бота ввиде написания текста.

Если возникнет какая-либо ошибка, бот ответит «BingAI не хочет общаться с Вами.»

В конце запускается executor с параметрами dp и skip_updates=True . executor запускает цикл для обработки новых сообщений, пока бот не будет остановлен.

Проверка работы бота

Запускаем бота с помощью команды py main.py , и пробуем с ним общаться.

Скриншот общения с Bing AI Скриншот общения с Bing AI Скриншот общения с Bing AI от 21.05.2023

Проблема Bing AI иногда заключается в том, что он не всегда может с нами общаться, выдавая различные ошибки и выходя с нами из диалога. Для этого нам необходимо отправлять сообщение заново. Возможно это можно как-то пофиксить, и если я найду решение этой проблемы, то допишу в этой статье.

Меню категорий

    Загрузка категорий.

Источник: proghunter.ru

Блог вебмастера

создание сайтов, заработок в сети, раскрутка, программирование

Telegram бот для уведомлений от flurry sdk пример

Как сделать телеграм бот для получения уведомлений от Flurry SDK на python

02.10.2019 02.10.2019

Сделал недавно свою первую игру на unity под android, и поставил туда систему аналитики Flurry. Постоянно заходить на сайт и мониторить не совсем удобно, простенький скрипт — скучно, а вот уведомления в телеграм — самое оно.

Итак, сделал простенький бот в телеграм, который раз в час присылает мне статистику: активные устройства, сессии, новые устройства.

Что нужно для бота уведомлений

Как создать пользователя для API Flurry

Вот ссылка на документацию по статистике от flurry (сразу на нужный раздел): https://developer.yahoo.com/flurry/docs/api/code/publishing/ . Нам нужен Reporting API.

Документация по api flurry sdk

Дальше нам надо получить свой programmatic token. Как это сделать детально описано на странице https://developer.yahoo.com/flurry/docs/api/code/apptoken/ , со скриншотами. Если кратко:

Добавить пользователя для апи flurry

  1. Заходим в админку flurry.
  2. Нажимаем Admin-User-Programmatic user, возможно нужно еще раз залогиниться.
  3. Пишем имя.
  4. Генерируем код. Сохраните его где-то. Он нам и нужен.

Делаем бот для телеграма

Все, токены от бота и flurry у нас есть, теперь пишем чат-бота на питоне.

Импортируем нужные модули. Requests, telebot и может еще что-то нужно поставить через pip.

Источник: bdseo.ru

Рейтинг
( Пока оценок нет )
Загрузка ...