QQ机器人插件

github开源项目

<span style="font-size:14px;"><span style="font-size:18px;">随机消息,nn匹配模式。

</span># coding: utf-8
import json
import logging
import os
from random import randint
import re
from smart_qq_bot.signals import on_group_message

"""
    data save as two table.
        nametable save the key(name) ,it cann't be del
        msgtable save the value(msg) 

    add_rule :      '!add-(key)--(value)'   ,add to two table
    remove_rule :   '!remove=(value)'       ,remove the value in msgtable
    send_msg : search the key in nametable ,if in ,so match a randommsg in msgtable and send it.
"""

class Randommsg(object):

    def __init__(self, key_file, value_file):
        self.nametable = []
        self.msgtable = []
        self.load(key_file,value_file)
        self.key_file = key_file
        self.value_file = value_file
        self._learn_regex = re.compile("^add=(.*)==(.*)=")
        self._remove_regx = re.compile("^remove=(.*)?")

    def is_learn(self, key):
        result = re.findall(self._learn_regex, key)
        if result:
            return result[0]
        return None

    def is_remove(self, key):
        result = re.findall(self._remove_regx, key)
        if result:
            return result[0]
        return None

    def load(self, key_file, value_file):
        if os.path.isfile(key_file):
            with open(key_file, "r") as f:
                self.nametable = json.load(f)
                logging.info("Randommsg key_file have loaded.")

        if os.path.isfile(value_file):
            with open(value_file, "r") as g:
                self.msgtable = json.load(g)
                logging.info("Randommsg value_file have loaded.")

    def add_rule(self, key, value):
        if key not in self.nametable:
            self.nametable.append(key)

        self.msgtable.append(value)
        # self.nametable[key].append(key)
        self.save()
        logging.info("add key-value sueccess :[%s]" % key)
        logging.info("add value :[%s]" % value)

    def remove_rule(self, value):       #del value in msgtable
        if value in self.msgtable:
            _remove_index = self.msgtable.index(value)
            del self.msgtable[_remove_index]

        self.save()
        logging.info("msgtable [%s] removed" % value)

    def match(self, key):
        if key in self.nametable:
            _numvalue = randint(0,len(self.msgtable)-1)     #match key and return a random value in msgtable
            result = self.msgtable[_numvalue]
            return result#[randint(0, len(result) - 1)]     #random in match table msg
        return None

    def save(self):
        #need search file,if unexsited,make it.
        with open(self.key_file, "w") as f:
            json.dump(self.nametable, f)
        logging.info("Randommsg key_file saved.")
        with open(self.value_file, "w") as g:
            json.dump(self.msgtable, g)
        logging.info("Randommsg value_file saved.")

randommsg = Randommsg("randommsg_key.json","random_value.json")
logging.info("plugin randommsg had been load")

@on_group_message(name="randommsg")
def send_msg(msg, bot):
    """
    :type bot: smart_qq_bot.bot.QQBot
    :type msg: smart_qq_bot.messages.GroupMsg
    """
    result = randommsg.is_learn(msg.content)
    if result:
        key, value = result
        # logging.info("learn key :[%s]" % key)
        # logging.info("learn value :[%s]" % value)
        randommsg.add_rule(key, value)
    else:
        response = randommsg.match(msg.content)
        # logging.info("mathc messages : [%s]" % response)
        if response:
            bot.send_qun_msg(msg.from_uin, response, msg_id=randint(1, 1000))
    result = randommsg.is_remove(msg.content)
    if result:
        randommsg.remove_rule(result)</span>




QQ机器人(QQPlus)功能介绍   1.支持Q群自动管理 自定义机器人进群欢迎语言、自定义审核入群方式(同意、拒绝、忽略、密码验证)、黑名单、无限群管理、自动改群名片、清除所有名片格式、批量修改名片、手机移动在线管理、远程管理及控制机器人,智能客服及客服菜单问答系统、自动营销管理系统、Q群互联。 2. Discuz 插件 新帖发送到QQ群、群聊天记录同步到论坛,论坛回帖、加好友、打招呼....所有消息发送到用户QQ,无需24小时盯着论坛,最大限度提醒用户回访论坛。支持二次开发,数据无缝对接。 3.支持插件扩展 无论使用php、asp、asp.net、还是窗体插件,甚至调用DLL二次开发,随时都可以扩展自己的业务。 4.贴心实用功能 自带查询天气、彩票、糗事百科、QQ群签到、成语接龙、股市行情....各种便民查询,想查就查! 5.窗体和命令行两种模式 喜欢简单、省事,没问题,窗体版为您量身定制,全部可视化操作,无需输入命令。需要输入命令行的快感,行!我们提供了命令行窗口的软件。 6.程序定制 鉴于不同站点有不同的实际功能需求,为了让更多的用户体验QQ机器人系列产品的强大易用功能,我们提供在QQ机器人系列产品的基础上进行功能定制开发服务。 7.支持发送图片 无论qq好友还是群,都可以发送图片,支持本地图片和网络图片 8.软件稳定 采用PC协议基础开发!可无限加群,无限管理,只要你的配置跟得上,QQ机器人将是你不错的选择!可加上W个群
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值