telegram群组管理机器人

[电报机器人]群组管理

https://github.com/BiroStorm/TG-GroupManagerBot

一个简单的电报机器人可以管理一个组,它是为一个“意大利社区组”创建的。

我把它发布在github上,这样每个人都可以看到它是如何制作的,如果有人有任何建议可以帮助实现它。

🌟 是怎么做的 🌟

它是用python的 Pyrogram库编写的, 它使用MongoDB作为主数据库来存储数据。

📚 命令 📚

成员管理
CommandArgsWhereComment
/StaffNonePrivateSee list of staffs
/addStaff[username | id]PrivateMake a user a staffer
/rmStaff[username | id]PrivateRemove a staffer
群组管理
CommandArgumentsWhereComment
/addGroupNoneGroup将组添加到数据库
/rmGroupNoneGroup从数据库中删除组
/getLinkNoneGroup检索或生成指向组的专用链接
/revokelinkNoneGroup从特定组撤消链接
/revokeAllNoneAny从所有组撤消所有生成的链接
/setLogNoneChannel将频道设置为日志频道
/unLogNoneChannel移除日志频道
/globalban[Reply | id | username]Any禁止用户访问所有组和频道
/globalunban[Reply | id | username]Any从所有组和频道取消绑定用户
其他
CommandArgumentsWhereComment
/permissions[Reply]Group更改成员特殊权限(仅当使用此命令的用户具有“can_promote_members”权限时才有效
/pin[Reply]Group固定消息(仅限有权使用此命令、授予或获取此权限的用户/权限)
/broadcast[Reply]Private向所有组发送带标题的消息或照片。现在所有的按钮都是意大利语的,我需要换一下

需求和环境变量在 config.ini

  • Mongo Database
  • Python 3+

复制此项目后,在 TelegramBot 文件夹里面 创建 config.ini 文件,内容如下:

[pyrogram]

api_id = API_ID

api_hash = API_HASH

bot_token = BOT_TOKEN

  

[plugins]

root = plugins

  

[database]

link = URL_TO_MONGODB

dbname = NAMEOFYOURDB

  

[creator]

id = YOUR_TELEGRAM_ACCOUNT_ID

运行控制台

TelegramBot外部的那个文件夹运行以下命令:

python -m TelegramBot

在Docker中运行

使用Docker创建镜像:

docker build -t botimg .

运行镜像:

docker run --name TGgroupmanager botimg

Discramer公司

这是我很久以前(2020年中期)做的一个项目,但现在我没有太多时间继续或更新它。这个项目不打算与其他小组一起使用,除了一个是因为它应该为其他小组工作。

这个项目还没有完成,但它应该可以工作,我已经将它更新到Pyrogram的新版本(1.0.7),它应该一直工作到Pyrogram的新的大更新。

如果你对这个项目有什么问题,请通过电报@BrioStoCazz与我联系

首先,需要使用Telegram Bot API,具体步骤如下: 1. 获取Bot Token,在BotFather处创建机器人并获取Token。 2. 获取群组ID,在机器人中发送一条消息到群组中,然后使用getUpdates API获取消息更新,从返回的JSON数据中获取群组ID。 3. 通过群组ID获取群组信息,包括群组成员列表和邀请链接。 4. 监听群组成员变化,当有新成员加入群组时,使用getChatMember API获取新成员信息,从中获取用户ID和用户名。 Java代码实现如下: ```java import org.telegram.telegrambots.ApiContextInitializer; import org.telegram.telegrambots.meta.TelegramBotsApi; import org.telegram.telegrambots.meta.api.methods.groupadministration.GetChatMember; import org.telegram.telegrambots.meta.api.methods.groupadministration.GetChatMemberCount; import org.telegram.telegrambots.meta.api.methods.groupadministration.GetChatMembersCount; import org.telegram.telegrambots.meta.api.methods.groupadministration.GetChatMembersCount; import org.telegram.telegrambots.meta.api.methods.invite.CreateChatInviteLink; import org.telegram.telegrambots.meta.api.methods.updates.GetUpdates; import org.telegram.telegrambots.meta.api.objects.Chat; import org.telegram.telegrambots.meta.api.objects.ChatMember; import org.telegram.telegrambots.meta.api.objects.Update; import org.telegram.telegrambots.meta.api.objects.User; import org.telegram.telegrambots.meta.exceptions.TelegramApiException; import org.telegram.telegrambots.updatesreceivers.DefaultBotSession; import java.util.List; public class TelegramBot { public static void main(String[] args) { ApiContextInitializer.init(); try { TelegramBotsApi telegramBotsApi = new TelegramBotsApi(DefaultBotSession.class); telegramBotsApi.registerBot(new MyBot()); } catch (TelegramApiException e) { e.printStackTrace(); } } private static class MyBot extends org.telegram.telegrambots.bots.TelegramLongPollingBot { @Override public void onUpdateReceived(Update update) { if (update.hasMessage() && update.getMessage().hasText()) { String messageText = update.getMessage().getText(); long chatId = update.getMessage().getChatId(); if (messageText.equals("/invite_link")) { try { // 获取群组信息 GetChatMembersCount getChatMembersCount = new GetChatMembersCount(); getChatMembersCount.setChatId(chatId); int membersCount = execute(getChatMembersCount); CreateChatInviteLink createChatInviteLink = new CreateChatInviteLink(); createChatInviteLink.setChatId(chatId); createChatInviteLink.setMemberLimit(membersCount + 1); String inviteLink = execute(createChatInviteLink).getInviteLink(); // 发送邀请链接 execute(new SendMessage(chatId, inviteLink)); } catch (TelegramApiException e) { e.printStackTrace(); } } } else if (update.hasMessage() && update.getMessage().getNewChatMembers() != null) { // 新成员加入群组 List<User> newChatMembers = update.getMessage().getNewChatMembers(); for (User user : newChatMembers) { try { GetChatMember getChatMember = new GetChatMember(); getChatMember.setChatId(update.getMessage().getChatId()); getChatMember.setUserId(user.getId()); ChatMember chatMember = execute(getChatMember); System.out.println("New member joined: " + chatMember.getUser().getUserName()); } catch (TelegramApiException e) { e.printStackTrace(); } } } } @Override public String getBotUsername() { return "your_bot_username"; } @Override public String getBotToken() { return "your_bot_token"; } } } ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值