Files
abot/group_auto/group_auto_invite.py
2025-02-24 15:05:45 +08:00

121 lines
3.6 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import redis
# 创建 Redis 连接
try:
r = redis.StrictRedis(host='192.168.2.32', port=6379, db=0, decode_responses=True)
r.ping() # 检查连接是否正常
except redis.ConnectionError as e:
print(f"Redis连接失败: {e}")
exit(1)
# Redis 中存储群组映射的前缀
mapping_prefix = "group:group_mapping:"
# 添加群组ID到指定key
def add_mapping(key, group_id):
try:
if r.sismember(mapping_prefix + key, group_id):
return f"Group ID {group_id} already exists for key {key}."
else:
r.sadd(mapping_prefix + key, group_id)
return f"Added: {key} -> {group_id}"
except redis.RedisError as e:
return f"操作失败: {e}"
# 删除指定key下的某个群组ID
def del_mapping(key, group_id):
try:
if r.sismember(mapping_prefix + key, group_id):
r.srem(mapping_prefix + key, group_id)
return f"Deleted: {key} -> {group_id}"
else:
return f"Group ID {group_id} not found for key {key}."
except redis.RedisError as e:
return f"操作失败: {e}"
# 获取指定key下的所有群组ID
def get_group_ids(key):
try:
group_ids = r.smembers(mapping_prefix + key)
if group_ids:
return f"Group IDs for {key}: {', '.join(group_ids)}"
else:
return f"Key '{key}' has no associated group IDs."
except redis.RedisError as e:
return f"操作失败: {e}"
# 获取指定key的第一个群组ID
def get_first_group_id(key):
try:
group_ids = r.smembers(mapping_prefix + key)
if group_ids:
first_group_id = next(iter(group_ids)) # 获取集合中的第一个元素
print(f"First Group ID for {key}: {first_group_id}")
return first_group_id
else:
return f"Key '{key}' has no associated group IDs."
except redis.RedisError as e:
return f"操作失败: {e}"
# 处理命令行输入
def process_command(command):
command_parts = command.split()
if len(command_parts) == 0:
return "Invalid command."
cmd = command_parts[0]
if cmd == "add" and len(command_parts) == 3:
key = command_parts[1]
group_id = command_parts[2]
return add_mapping(key, group_id)
elif cmd == "del" and len(command_parts) == 3:
key = command_parts[1]
group_id = command_parts[2]
return del_mapping(key, group_id)
elif cmd == "get" and len(command_parts) == 2:
key = command_parts[1]
return get_group_ids(key)
elif cmd == "get_first" and len(command_parts) == 2:
key = command_parts[1]
return get_first_group_id(key)
elif cmd == "help":
commands = (
"命令列表:\n"
"'#加群配置|add key group_id' - 添加群组ID\n"
"'#加群配置|del key group_id' - 删除群组ID\n"
"'#加群配置|get key' - 获取所有群组ID\n"
"'#加群配置|get_first key' - 获取第一个群组ID\n"
)
return commands
else:
return "Unknown command or wrong number of arguments. please enter : #加群配置|help"
# 主函数
def main():
print("群自动邀请系统已启动。")
print(
"输入 'add key group_id' 来添加群组ID'del key group_id' 来删除,'get key' 来查询所有群组ID'get_first key' 来查询第一个群组ID。")
while True:
command = input("请输入命令:")
if command.lower() == "exit":
print("退出系统。")
break
process_command(command)
if __name__ == "__main__":
main()