Click here to Skip to main content
15,946,342 members
Home / Discussions / Python
   

Python

 
PinnedForum Guidelines - PLEASE READ Pin
Chris Maunder5-Oct-22 12:14
cofounderChris Maunder5-Oct-22 12:14 
Question¿Cómo programar una secuencia en Python? Pin
ericro10-Jul-24 17:36
ericro10-Jul-24 17:36 
AnswerRe: ¿Cómo programar una secuencia en Python? Pin
Richard MacCutchan10-Jul-24 21:49
mveRichard MacCutchan10-Jul-24 21:49 
QuestionTelegram bot for membership management Pin
Mohamed Sylla 202413-Jun-24 18:07
Mohamed Sylla 202413-Jun-24 18:07 
Hello/Good evening everyone,

I'm new to the field of programming and have been trying to fill my knowledge gap with AI. My goal is to create a bot that instantly sends a message to a user whenever they request membership to the group the bot is affiliated with.

After numerous attempts with the help of AI, I managed to obtain a usable code. Unfortunately, when I run it, nothing happens.

Here is the link to my GitHub project: https://github.com/tesbgtoi/ybot

If anyone has experience with the Telegram API and could help me identify what's not working or provide advice on fixing my code, I would be extremely grateful.

Thank you very much for your help!


Python
import logging
from telegram import Bot
from telegram.error import TelegramError

# Configurez le logging
logging.basicConfig(
    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
    level=logging.INFO
)
logger = logging.getLogger(__name__)

# Informations spécifiques
TOKEN = "TOKEN_DU_BOT"
GROUP_ID = 123456789  # Remplacez par l'ID de votre groupe

# Fonction pour récupérer les demandes d'adhésion en attente
async def get_membership_requests(bot: Bot, group_id: int) -> list:
    try:
        administrators = await bot.get_chat_administrators(chat_id=group_id)
        membership_requests = []
        for admin in administrators:
            if not admin.user.is_bot:
                member = await bot.get_chat_member(chat_id=group_id, user_id=admin.user.id)
                if member.status == 'restricted':
                    membership_requests.append(member)
        return membership_requests
    except TelegramError as e:
        logger.error(f"Erreur lors de la récupération des demandes d'adhésion : {e}")
        return []

# Fonction pour envoyer des messages aux utilisateurs en attente
async def send_membership_notifications(bot: Bot, group_id: int, membership_requests: list) -> None:
    for request in membership_requests:
        try:
            await bot.send_message(
                chat_id=request.user.id,
                text="Votre demande d'adhésion au groupe a été reçue. Veuillez patienter pendant que l'administrateur approuve votre demande."
            )
            logger.info(f"Notification envoyée à l'utilisateur : {request.user.id}")
        except TelegramError as e:
            logger.error(f"Erreur lors de l'envoi de la notification à l'utilisateur {request.user.id} : {e}")

async def main() -> None:
    bot = Bot(token=TOKEN)

    # Récupérer les demandes d'adhésion en attente
    membership_requests = await get_membership_requests(bot, GROUP_ID)

    # Envoyer des messages aux utilisateurs en attente
    await send_membership_notifications(bot, GROUP_ID, membership_requests)

if __name__ == '__main__':
    import asyncio
    asyncio.run(main())


modified 12-Jul-24 19:34pm.

AnswerRe: Telegram bot for membership management Pin
Akrash Nadeem12-Jul-24 13:35
Akrash Nadeem12-Jul-24 13:35 
QuestionMemory Leak - Python & License Plate Reader Pin
Member 162810456-Jun-24 15:11
Member 162810456-Jun-24 15:11 
AnswerRe: Memory Leak - Python & License Plate Reader Pin
Dave Kreskowiak6-Jun-24 15:59
mveDave Kreskowiak6-Jun-24 15:59 
Questionsource code Pin
Member 162777841-Jun-24 23:14
Member 162777841-Jun-24 23:14 
AnswerRe: source code Pin
Richard MacCutchan2-Jun-24 0:43
mveRichard MacCutchan2-Jun-24 0:43 
AnswerRe: source code Pin
Dave Kreskowiak2-Jun-24 5:04
mveDave Kreskowiak2-Jun-24 5:04 
QuestionHuawei MSC CDR Decoder .dat Pin
Member 1625394229-Apr-24 4:10
Member 1625394229-Apr-24 4:10 
AnswerRe: Huawei MSC CDR Decoder .dat Pin
Richard MacCutchan29-Apr-24 4:39
mveRichard MacCutchan29-Apr-24 4:39 
QuestionAlgorithm to Efficiently Search a Solution Space Pin
Member 1624736219-Apr-24 18:35
Member 1624736219-Apr-24 18:35 
AnswerRe: Algorithm to Efficiently Search a Solution Space Pin
Richard MacCutchan19-Apr-24 22:30
mveRichard MacCutchan19-Apr-24 22:30 
GeneralRe: Algorithm to Efficiently Search a Solution Space Pin
Member 1624736220-Apr-24 5:07
Member 1624736220-Apr-24 5:07 
GeneralRe: Algorithm to Efficiently Search a Solution Space Pin
Richard MacCutchan20-Apr-24 5:09
mveRichard MacCutchan20-Apr-24 5:09 
GeneralRe: Algorithm to Efficiently Search a Solution Space Pin
Member 1624736220-Apr-24 5:29
Member 1624736220-Apr-24 5:29 
SuggestionRe: Algorithm to Efficiently Search a Solution Space Pin
k505420-Apr-24 6:23
mvek505420-Apr-24 6:23 
AnswerRe: Algorithm to Efficiently Search a Solution Space Pin
k505420-Apr-24 6:38
mvek505420-Apr-24 6:38 
QuestionDelete profile Pin
Antwane Nix19-Apr-24 4:02
Antwane Nix19-Apr-24 4:02 
AnswerRe: Delete profile Pin
RedDk19-Apr-24 7:00
RedDk19-Apr-24 7:00 
GeneralRe: Delete profile Pin
Antwane Nix19-Apr-24 13:15
Antwane Nix19-Apr-24 13:15 
AnswerRe: Delete profile Pin
Dave Kreskowiak19-Apr-24 12:04
mveDave Kreskowiak19-Apr-24 12:04 
GeneralRe: Delete profile Pin
Antwane Nix19-Apr-24 13:17
Antwane Nix19-Apr-24 13:17 
Questionnested loop python Pin
MD ARMAN from Durham23-Feb-24 4:17
MD ARMAN from Durham23-Feb-24 4:17 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.