Ejemplo n.º 1
0
# -*- coding: utf-8 -*-

from qqbot import QQBot, RunBot

class MyQQBot(QQBot):
    def onQQMessage(self, contact, member, content):
        if content == '-hello':
            self.SendTo(contact, '你好,我是QQ机器人')
        elif content == '-stop':
            self.SendTo(contact, 'QQ机器人已关闭')
            self.Stop()

RunBot(MyQQBot)
Ejemplo n.º 2
0
        else:
            bot.SendTo(contact, member.name + '刷新好友失败')

    elif tmp[0] == "@qqbot机器人" and tmp[1] == "刷新讨论组":
        qq = qqinfo(member, bot)
        if qq in adminqq:
            bot.SendTo(contact, member.name + discuss(bot))

    elif tmp[0] == "@qqbot机器人" and tmp[1] == "刷新组":
        qq = qqinfo(member, bot)
        if qq in adminqq:
            bot.SendTo(contact, member.name + group(bot))
    elif tmp[0] == "@qqbot机器人" and tmp[1] == "刷新所有":
        qq = qqinfo(member, bot)
        if qq in adminqq:
            if bot.Update('buddy') and qq in adminqq:
                bot.SendTo(contact, member.name + '刷新好友成功')
            else:
                bot.SendTo(contact, member.name + '刷新好友失败')
            bot.SendTo(contact, member.name + group(bot))
            bot.SendTo(contact, member.name + discuss(bot))

    elif tmp[0] == "@qqbot机器人" and tmp[1] == "格式":
        bot.SendTo(
            contact, member.name +
            ",格式为:\"@qqbot机器人 添加OAIP *.*.*.*\",没有检测到IP,多个ip用空格隔开")


if __name__ == '__main__':
    RunBot()
Ejemplo n.º 3
0
def runQQ():
    RunBot()
Ejemplo n.º 4
0
        # bot : QQBot 对象
        pass

    def onStartupComplete(bot):
        # 启动工作全部完成时被调用(此时已登录成功,且已开始监听消息和 qterm 客户端命令)
        # bot : QQBot 对象
        pass

    def onFetchComplete(bot):
        # 完成一轮联系人列表刷新时被调用
        # bot : QQBot 对象
        pass


#
# =================================================================
#
# (3) QQbot初始化
#
# 初始化QQbot的启动参数。
for argItems in customArgs:
    sys.argv.append(str(argItems))  # 确保传入的数据的正确性。

# 避免自动增加引起错误的sys.argv中的参数。
# 由于PyCharm调试器的一些特性,需要增加这个参数来绕过qqbotcls.py中的runBot()中的增加参数的过程。
# 如果不绕过那个增加参数的过程,QQbot启动之后会被增加两个无效的参数,这会导致QQbot异常退出。
sys.argv.append('--subprocessCall')

# 正式启动QQbot。
RunBot(MyQQBotTest, user=user, qq=qq)
# 注意: 此函数将永远不会有机会返回,因此在这一行之后的代码都不会被执行。
Ejemplo n.º 5
0
import os
import sys

here = os.path.abspath(os.path.dirname(__file__))
sys.path.append(here)

from IRCServer import IRCServer

from qqbot import QQBot, RunBot
from qqbot.mainloop import StartDaemonThread

class QQBotToIRCAdapter(QQBot):
    def __init__(self):
        super(QQBot, self)
        self.server = None

    def onQQMessage(self, contact, member, content):
        content = content.replace('&lt;', '<')
        content = content.replace('&gt;', '>')
        if self.server:
            self.server.onQQMessage(contact, member, content)

    def onStartupComplete(self):
        ip, port = (self.conf.IRCServerAddress.split(':', 1) + [6667])[0:2]
        self.server = IRCServer(self, (ip, int(port)))
        StartDaemonThread(self.server.serve_forever)

if __name__ == '__main__':
    RunBot(QQBotToIRCAdapter)
Ejemplo n.º 6
0
@site: xsren.me

@version: 1.0
@license: Apache Licence
@file: my_qqbot.py
@time: 2017/5/29 下午4:54

"""

from qqbot import QQBotSlot as qqbotslot, RunBot

ts = [u'NB田',u'田NB',u'田BN']

@qqbotslot
def onQQMessage(bot, contact, member, content):
    print contact, content, member
    # if content == '-hello':
    #     bot.SendTo(contact, '你好,我是QQ机器人')
    # elif content == '-stop':
    #     bot.SendTo(contact, 'QQ机器人已关闭')
    #     bot.Stop()
    if u"矿大703" in contact.name.decode('utf8'):
        if u"见龙在田" in member.nick.decode('utf8'):
            bot.SendTo(contact, content)
            for t in ts:
                bot.SendTo(contact, t)


if __name__ == '__main__':
    RunBot(qq="1028730267")
Ejemplo n.º 7
0
					self.repCounter += 1
					print(self.repCounter)
				else:
					if(self.repCounter > 3):
						self.SendTo(contact, '你们的复读坚持了' + str(self.repCounter + 1) + '次~人类的本质就是个复读机!')
					self.repCounter = 0
			if(self.repCounter == 3):
				self.SendTo(contact, content)

			self.prevMsg = curMsg
			'''


#open the info table

RunBot(QQBotWithState, qq='3407757156', user=None)
'''
Goal:
1. Nilk will be the only authorized person who has the ability to edit the response of it.
2. Can troll in the group chat
3. When called out by @, provide proper info
'''
'''
@myqqbot.On('qqmessage')
def handler(bot, message):
	#editing
	if (message.contact.qq == '1259276249'):
		bot.SendTo(message.contact, 'copy that')
		if (message.content == '-stop'):
			bot.SendTo(message.contact, 'QQ Bot terminated')
			bot.Stop()
Ejemplo n.º 8
0
            f"天气状况:{tomorrow['type']}\n" \
            f"最高温度:{tomorrow['high']}\n" \
            f"最低温度:{tomorrow['low']}\n" \
            f"熊猫提醒: {info}\n" \
            f"官方提醒: {xiaoxi}"
    return xiangqing


# 单独发
@qqbotsched(hour='07', minute='25')
def mytask(bot):
    gl = bot.List('buddy', 'A大白兔奶糖')
    if gl is not None:
        for group in gl:
            bot.SendTo(group, str(weather('南京')))


@qqbotslot
def onQQMessage(bot, contact, member, content):
    if '天气' in content:
        Addrs = content[2:]
        bot.SendTo(contact, str(weather(Addrs)))

    elif bot.isMe(contact, member):
        print('This is me')


if __name__ == '__main__':
    # print(weather())
    RunBot(["-u", "somebody"])
    }:
        if g is not None:
            timegogao = bot.List('group', g)
            if timegogao is not None:
                for group in timegogao:
                    bot.SendTo(
                        group, '''
material机器人(请回复数字)
具体情况请找开发者!qq:412905523
不知道机器人回复规则请回复:命令
@我(艾特我)可以和我尬聊

1:qq微信智能机器人定制,开发(私聊,群聊)
2:zip/excel/rar/压缩包文件类密码找回破解
3:非文件类密码找回破解(包括验证码)
4:程序软件开发(java,python,批处理,html(css))
5:破解,逆向编程apk,exe,pyc等
6:外挂插件开发
7:网站/服务器建设开发,漏洞维修

material机器人(请回复数字)
具体情况请找开发者!qq:412905523
不知道机器人回复规则请回复:命令
@我(艾特我)可以和我尬聊
官方总群:664808953
                                ''')


if __name__ == '__main__':
    RunBot(['-q', '2758678389'])
Ejemplo n.º 10
0
    # 本段示例: 每小时执行一次的任务。(在0分0秒时)
    # bot : QQBot 对象
    import time
    DEBUG('1hour passed: ' + time.asctime())


@qqbotsched(hour='0', minute='0', second='0')
def mytask(bot):
    # 本段示例: 凌晨0点0分0秒时执行任务。
    # bot : QQBot 对象
    import time
    DEBUG('MidNight passed: ' + time.asctime())


#
# =================================================================
#
# (3) QQbot初始化
#
# 初始化QQbot的启动参数。
for argItems in customArgs:
    sys.argv.append(str(argItems))  # 确保传入的数据的正确性。

# 避免自动增加引起错误的sys.argv中的参数。
# 由于PyCharm调试器的一些特性,需要增加这个参数来绕过qqbotcls.py中的runBot()中的增加参数的过程。
# 如果不绕过那个增加参数的过程,QQbot启动之后会被增加两个无效的参数,这会导致QQbot异常退出。
sys.argv.append('--subprocessCall')

# 正式启动QQbot。
RunBot(user=user, qq=qq)
# 注意: 此函数将永远不会有机会返回,因此在这一行之后的代码都不会被执行。
Ejemplo n.º 11
0
            elif ('瓜大小雷锋' in str(contact)) and ('Q' in content) and (
                    'A' in content) and (
                        (':' in content) or
                        (':' in content)) and str(content).count('Q') == 1:
                # 小雷锋运营群可以直接添加问题库QA
                addQAFile = open("/home/qqbot/qa.txt", "ab")
                addQAFile.write('\n' + content)
                bot.SendTo(contact, 'QA添加成功!')
                bot.SendTo(contact, content)
                addQAFile.close()
            elif tmp == 0 and ('@ME' in content):
                if ('党' in content) or ('中国' in content) or ('台湾' in content):
                    bot.SendTo(contact, '小雷锋是热爱祖国的好孩子/可爱让我们不要谈论这些话题了/可爱')
                    BotAnswer += '小雷锋是热爱祖国的好孩子/可爱让我们不要谈论这些话题了/可爱' + '\n'
                elif ('母亲' in content) or ('妈妈' in content):
                    bot.SendTo(contact, '不告诉你,略略略')
                    BotAnswer += '不告诉你,略略略' + '\n'
                elif ('小V' in str(member)):
                    return
                else:
                    tmpAns3 = talk(content, contact.qq)
                    bot.SendTo(contact, '@' + member.name + '  ' + tmpAns3)
                    BotAnswer += '@' + member.name + '  ' + tmpAns3 + '\n'
            else:
                return ()
    RecordFile.write(BotAnswer + '\n')
    RecordFile.close()


RunBot()  # 启动qqbot,如果是插件模式请注释掉此行
Ejemplo n.º 12
0
def onQQMessage(bot, contact, member, content):
    # 当收到 QQ 消息时被调用
    # bot     : QQBot 对象,提供 List/SendTo/Stop/Restart 四个接口,详见文档第五节
    # contact : QContact 对象,消息的发送者,具有 ctype/qq/uin/name/nick/mark/card 属性,这些属性都是 str 对象
    # member  : QContact 对象,仅当本消息为 群或讨论组 消息时有效,代表实际发消息的成员
    # content : str 对象,消息内容
        if contact.ctype != 'buddy':
        DEBUG("onQQMessage: ctype=" + contact.ctype + "  member=(qq=" + member.qq + ", uin=" + str(member.uin) + ", name=" + member.name + ')  uin=' + contact.uin + '  qq=' + contact.qq + '   name=' + contact.name)
    else:
        DEBUG("onQQMessage: ctype=" + contact.ctype + 'uin=' + contact.uin + '  qq=' + contact.qq + '  name=' + contact.name)

    pass

@qqbotslot
def onNewContact(bot, contact, owner):
    # 当新增 好友/群/讨论组/群成员/讨论组成员 时被调用
    # bot     : QQBot 对象
    # contact : QContact 对象,代表新增的联系人
    # owner   : QContact 对象,仅在新增 群成员/讨论组成员 时有效,代表新增成员所在的 群/讨论组
    pass

@qqbotslot
def onLostContact(bot, contact, owner):
    # 当失去 好友/群/讨论组/群成员/讨论组成员 时被调用
    # bot     : QQBot 对象
    # contact : QContact 对象,代表失去的联系人
    # owner   : QContact 对象,仅在失去 群成员/讨论组成员 时有效,代表失去成员所在的 群/讨论组
    pass

@qqbotslot
def onInterval(bot):
    # 每隔 5 分钟被调用
    # bot : QQBot 对象
    pass

@qqbotslot
def onStartupComplete(bot):
    # 启动工作全部完成时被调用(此时已登录成功,且已开始监听消息和 qterm 客户端命令)
    # bot : QQBot 对象
    pass

@qqbotslot
def onFetchComplete(bot):
    # 完成一轮联系人列表刷新时被调用
    # bot : QQBot 对象
    pass

# QQbot定时任务功能
# 本段函数可以多次出现。
# 关于此功能的详细说明请参见:https://github.com/pandolia/qqbot#定制定时任务

@qqbotsched(minute='*/1', second='0')
def mytask(bot):
    # 本段示例: 每分钟执行一次的任务。(在0秒时)
    # bot : QQBot 对象
    import time
    DEBUG('1min passed: '+time.asctime())

@qqbotsched(hour='*/1',minute='0',  second='0')
def mytask(bot):
    # 本段示例: 每小时执行一次的任务。(在0分0秒时)
    # bot : QQBot 对象
    import time
    DEBUG('1hour passed: '+time.asctime())

@qqbotsched(hour='0',minute='0',  second='0')
def mytask(bot):
    # 本段示例: 凌晨0点0分0秒时执行任务。
    # bot : QQBot 对象
    import time
    DEBUG('MidNight passed: '+time.asctime())

#
# =================================================================
#
# (3) QQbot初始化
#
# 初始化QQbot的启动参数。
for argItems in customArgs:
    sys.argv.append(str(argItems)) # 确保传入的数据的正确性。

# 避免自动增加引起错误的sys.argv中的参数。
# 由于PyCharm调试器的一些特性,需要增加这个参数来绕过qqbotcls.py中的runBot()中的增加参数的过程。
# 如果不绕过那个增加参数的过程,QQbot启动之后会被增加两个无效的参数,这会导致QQbot异常退出。
sys.argv.append('--subprocessCall')

# 正式启动QQbot。
RunBot(user=user, qq=qq)
Ejemplo n.º 13
0
def onNewContact(bot, contact, owner):
    #exec when there is new member joining owner
    print('onNewContact evoked')
    if (owner is None): return
    if (owner.qq == GROUP_NUMBER):
        test_group = bot.List('group', GROUP_NUMBER)[0]
        new_member = bot.List(test_group, 'qq=' + str(contact.qq))[0]
        bot.SendTo(owner, '欢迎新dalao~'.encode('utf-8'))
        bot.SendTo(
            owner, 'Hello '.encode('utf-8') + contact.card.encode('utf-8') +
            '. 我是翔鹤,有什么问题可以at我,如果对于我的功能有什么建议的话请找nilk.'.encode('utf-8'))


#open the info table

RunBot(qq='3407757156', user='******')
'''
Goal:
1. Nilk will be the only authorized person who has the ability to edit the response of it.
2. Can troll in the group chat
3. When called out by @, provide proper info
'''
'''
	TODO:
	0. try to trim the @me before msg in group chat(done)
	1.点歌,发url
	
	3.氪金信息
	4.crawl for info, instead of hard coded csv(done)
	5.今日改修,今日修炼场,今日种火
	6.定时提醒清本,上线清任务领奖励(done)
Ejemplo n.º 14
0
        f = open('./message', 'a', encoding='utf-8')
        f.write(message + "\r")
        f.close()
        # print(tuling(content))

    message = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(
    )) + '   来自 群<%s> 成员<%s> 的消息: "%s"' % (groupName, member.name, content)
    f = open('./message2', 'a', encoding='utf-8')
    f.write(message + "\r")
    f.close()

    if content == '-hello':
        bot.SendTo(contact, '你好,有事吗?')
    elif content == '-stop':
        bot.SendTo(contact, '已下线')
        bot.Stop()


if __name__ == '__main__':
    RunBot(['-q', '1095073158'])

# 使用contact.__dict__获得对象的属性
# {'qq': '#NULL', 'uin': '3285709011', 'nick': 'mytest2', 'mark': '','name': 'mytest2', 'gcode': '3285709011', 'ctype': 'group'}
# uin唯一标识,群聊天时标识群,一对一私聊时标识qq。nick是群名称,ctype说明本次消息是何种类型的,group表示是群,buddy表示是私聊。
# {'qq': '#NULL', 'uin': '3012699167', 'nick': 'XX', 'mark': '#NULL',
# 'card': 'XXXX', 'name': 'XXXX', 'join_time': -1, 'last_speak_time': -1,
# 'role': '#NULL', 'role_id': -1, 'is_buddy': -1, 'level': -1, 'levelname': '#NULL',
# 'point': -1, 'ctype': 'group-member'}
#
# 当私聊时此对象为NoneType,uin唯一标识群成员,nick标识qq昵称,card表示群聊天里发消息的那个qq昵称备注。
Ejemplo n.º 15
0
def starQQ():
    RunBot()
Ejemplo n.º 16
0
    DEBUG('MidNight passed: '+time.asctime())

#

# 在此插入任何需要的初始化的部分。这里的代码会在作为插件和作为机器人启动器时使用。
pass

#
# =================================================================
#
# (3) QQbot初始化
#
# 检测加载方式。如果是插件方式加载则忽略参数处理与机器人启动过程。
if __name__ == "__main__":
    # 正在以启动器方式启动。
    print("############  PycharmLoader 正在以启动器方式启动。  ############")
    # 初始化QQbot的启动参数。
    for argItems in customArgs:
        sys.argv.append(str(argItems)) # 确保传入的数据的正确性。

    # 避免自动增加引起错误的sys.argv中的参数。
    # 由于PyCharm调试器的一些特性,需要增加这个参数来绕过qqbotcls.py中的runBot()中的增加参数的过程。
    # 如果不绕过那个增加参数的过程,QQbot启动之后会被增加两个无效的参数,这会导致QQbot异常退出。
    sys.argv.append('--subprocessCall')

    # 正式启动QQbot。
    RunBot(user=user, qq=qq) # 注意: 此函数将永远不会有机会返回。
else:
    # 正在以插件方式启动。
    print("#############  PycharmLoader 正在以插件方式启动。 #############")
    pass