У меня есть канал/группа телеграммы, куда я добавляю участников вручную, и я вручную удаляю/удаляю пользователей через один/два/три месяца. Есть ли способ выполнить эту задачу автоматически, я имею в виду, можем ли мы удалить/выгнать пользователя из канала/группы автоматически или по расписанию?
Любой пример кода 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 , чтобы запретить их .
Я не публиковал никаких кодов после вашего вопроса;
- выглядело так, как будто вы ищете метод в Telegram API.
- Вы не упомянули, какой API бота Python Telegram вы хотите использовать.
- Предоставление образца кода для вашего вопроса (игнорируя причины 1 и 2) будет проектом для самого себя, поскольку он состоит из разных разделов кода. Я предлагаю вам разделить свой вопрос на эти части и искать/спрашивать о них:
- Как сохранить текущих членов в базе данных?
- Как сохранить новых членов в базе данных?
- Как периодически запускать скрипт на Python?
- Как кикать участников по id?
Я дам вам шаги, которые вы можете предпринять, чтобы достичь своей цели.
- После добавления участника в вашу группу вы получите обновление от 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»: > ] > >
- Вы будете перебирать new_chat_members и добавлять их в свою базу данных вместе со временем kick_at .
- Напишите скрипт, чтобы получить ваших участников из базы данных и проверить, не пора ли их выгнать. ( kick_at now ) и используйте banChatMember для это важно.
Источник: question-it.com
Python телеграмм бот скрытое продолжение
Бот на 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 для браузера.
Далее переходим в сам чат с Bing AI, чтобы войти в чат с нейросетью BingAI вы можете ознакомиться с этой статьей.
Нажимаем на наше расширение, вы увидите различные данные с сайта Microsoft и Bing, в расширении нажимайте кнопку 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 иногда заключается в том, что он не всегда может с нами общаться, выдавая различные ошибки и выходя с нами из диалога. Для этого нам необходимо отправлять сообщение заново. Возможно это можно как-то пофиксить, и если я найду решение этой проблемы, то допишу в этой статье.
Меню категорий
-
Загрузка категорий.
Источник: proghunter.ru
Блог вебмастера
создание сайтов, заработок в сети, раскрутка, программирование
Как сделать телеграм бот для получения уведомлений от 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.
Дальше нам надо получить свой programmatic token. Как это сделать детально описано на странице https://developer.yahoo.com/flurry/docs/api/code/apptoken/ , со скриншотами. Если кратко:
- Заходим в админку flurry.
- Нажимаем Admin-User-Programmatic user, возможно нужно еще раз залогиниться.
- Пишем имя.
- Генерируем код. Сохраните его где-то. Он нам и нужен.
Делаем бот для телеграма
Все, токены от бота и flurry у нас есть, теперь пишем чат-бота на питоне.
Импортируем нужные модули. Requests, telebot и может еще что-то нужно поставить через pip.
Источник: bdseo.ru