国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

一個(gè)簡單有趣的微信聊天機(jī)器人

leonardofed / 3090人閱讀

摘要:微信已經(jīng)成了中國人生活中基本的通訊工具除了那些自由開源人士以外,前兩天發(fā)現(xiàn)微信機(jī)器人的項(xiàng)目,其實(shí)早就有了。開發(fā)微信機(jī)器人該項(xiàng)目基于上的,使用文檔在這里。原文地址一個(gè)簡單有趣的微信聊天機(jī)器人我的博客時(shí)空路由器

微信已經(jīng)成了中國人生活中基本的通訊工具(除了那些自由開源人士以外),前兩天發(fā)現(xiàn)微信機(jī)器人的項(xiàng)目,其實(shí)早就有了。想著自己也做一個(gè)吧,順便加了一些小小的功能。

釋放我的機(jī)器人

微信掃一掃加他,跟他尬聊吧,把他拽到群里調(diào)戲他。

具體功能下面會(huì)介紹。

工具

手機(jī)

微信登陸必須得有手機(jī)端登陸才能使用網(wǎng)頁登陸,因?yàn)橐獟咭粧?/pre>

Python 平臺(tái)

該項(xiàng)目基于 Python 開發(fā),所以至少得來個(gè)嵌入式的開發(fā)板,或者電腦,或者...云服務(wù)器 ;-),如果要保證長時(shí)間開啟與話,最好使用云服務(wù)器。

開發(fā)微信機(jī)器人

該項(xiàng)目基于 Github 上的 wxpy,使用文檔在 這里。中文版的,所以我就不介紹這個(gè)怎么使用了。簡單描述一下

創(chuàng)建機(jī)器人
from wxpy import *
bot = Bot()
注冊消息回復(fù)

機(jī)器人對(duì)好友、群聊中 at 他的人進(jìn)行回復(fù),在群聊中同時(shí)統(tǒng)計(jì)每個(gè)人的發(fā)言次數(shù)和第一次發(fā)言的時(shí)間,將這些信息實(shí)時(shí)存儲(chǔ)在本地,以防程序錯(cuò)誤導(dǎo)致數(shù)據(jù)丟失。

消息回復(fù)中的機(jī)器人使用 圖靈機(jī)器人, 可免費(fèi)申請 API,調(diào)用他。也可以使用 小 I 機(jī)器人。這兩個(gè)都是深度整合在項(xiàng)目里的。

@bot.register([Friend, Group])
def reply_friend(msg):
    """
    消息自動(dòng)回復(fù)
    """
    print(msg)
    if isinstance(msg.chat, Group):
        group = msg.chat.name
        name = msg.member.name
        if group in stat:
            if name in stat[group]["count"]:
                stat[group]["count"][name] += 1
            else:
                stat[group]["count"][name] = 1
            flag = True
            for rank in stat[group]["rank"]:
                if name == rank["name"]:
                    flag = False
                    break
            if flag:
                stat[group]["rank"].append({"name": name, "time": time.strftime("%H:%M:%S", time.localtime())})
        else:
            stat[group] = {"count": {name: 1}, "rank": [{"name": name, "time": time.strftime("%H:%M:%S", time.localtime())}, ]}
        if msg.text == "發(fā)言排行榜":
            g = bot.groups().search(group)[0]
            if not stat[g.name]:
                return
            msg_text = ""
            index = 1
            count = stat[g.name]["count"]
            for name in sorted(count, key=lambda x: count[x], reverse=True):
                # print("{}: {} {}".format(index, rank["name"], rank["time"]))
                msg_text += "{}: {} 發(fā)言了 {} 次
".format(index, name, count[name])
                index += 1
            if msg_text:
                msg_text = "發(fā)言排行榜:
" + msg_text
                g.send(msg_text)
        if msg.text == "起床排行榜":
            g = bot.groups().search(group)[0]
            if not stat[g.name]:
                return
            msg_text = ""
            index = 1
            for rank in stat[g.name]["rank"]:
                # print("{}: {} {}".format(index, rank["name"], rank["time"]))
                msg_text += "{}: {} {}
".format(index, rank["name"], rank["time"])
                index += 1
            if msg_text:
                msg_text = "起床排行榜:
" + msg_text
                g.send(msg_text)
        with open("stat.json", "w") as fh:
            fh.write(json.dumps(stat))
        if not msg.is_at:
            return
    return tuling_auto_reply(msg)
自動(dòng)接受好友申請
@bot.register(msg_types=FRIENDS)
def auto_accept_friends(msg):
    """
    自動(dòng)接受好友請求
    """
    # 接受好友請求
    new_friend = msg.card.accept()
    # 向新的好友發(fā)送消息
    new_friend.send("哈哈,我們現(xiàn)在是超級(jí)好的好朋友了呢~~")
添加計(jì)劃任務(wù)

光回復(fù)怎么夠,還要做一些小小的有趣的功能,我這里添加了兩個(gè)統(tǒng)計(jì),一個(gè)是起床時(shí)間統(tǒng)計(jì),另一個(gè)是發(fā)言統(tǒng)計(jì)。

當(dāng)天群聊的用戶第一次發(fā)言作為起床時(shí)間,雖然有些不嚴(yán)謹(jǐn),但畢竟功能是受限制的。

然后每天的 9 點(diǎn)發(fā)布一次起床排行榜, 20 點(diǎn)發(fā)布一次發(fā)言排行榜。當(dāng)然其實(shí)主動(dòng)發(fā)送 “起床排行榜”、“發(fā)言排行榜” 也會(huì)回復(fù)當(dāng)前的排行。

起床排行榜

發(fā)言排行榜

實(shí)現(xiàn)
class ScheduleThread(threading.Thread):
    """
    計(jì)劃任務(wù)線程
    """
    def run(self):
        global schedule_time
        global bot
        global stat
        while 1:
            time.sleep(300)
            cur_hour = time.strftime("%H", time.localtime())
            # print("cur:{}	schedule:{}".format(cur_hour, schedule_time))
            if cur_hour == schedule_time:
                continue
            elif cur_hour == "09":
                for group in bot.groups():
                    print(group.name)
                    if not stat[group.name]:
                        continue
                    msg_text = ""
                    index = 1
                    for rank in stat[group.name]["rank"]:
                        # print("{}: {} {}".format(index, rank["name"], rank["time"]))
                        msg_text += "{}: {} {}
".format(index, rank["name"], rank["time"])
                        index += 1
                    if msg_text:
                        msg_text = "排行日報(bào)
起床排行榜:
" + msg_text
                        group.send(msg_text)
            elif cur_hour == "20":
                for group in bot.groups():
                    print(group.name)
                    if not stat[group.name]:
                        continue
                    msg_text = ""
                    index = 1
                    count = stat[group.name]["count"]
                    for name in sorted(count, key=lambda x: count[x], reverse=True):
                        # print("{}: {} {}".format(index, rank["name"], rank["time"]))
                        msg_text += "{}: {} 發(fā)言了 {} 次
".format(index, name, count[name])
                        index += 1
                    if msg_text:
                        msg_text = "排行日報(bào)
發(fā)言排行榜:
" + msg_text
                        group.send(msg_text)
            elif cur_hour == "00":
                stat = dict()
                with open("stat.json", "w") as fh:
                    fh.write("")
            schedule_time = cur_hour
聊聊

展示兩個(gè)機(jī)器人互相尬聊的情況是怎么樣的。

部署

創(chuàng)建機(jī)器人時(shí)添加一個(gè) console_qr 參數(shù), True 時(shí)表示在終端顯示二維碼,False 表示用圖片程序打開二維碼。按情況來,如果在沒有界面的云服務(wù)器上,那就在終端打開,如果只能連 tty ,那最好的辦法就是生成一張圖片,放到指定的 FTP 或者云盤目錄,然后本地打開掃描,或者建個(gè)簡單的 HTTP 服務(wù)器展示圖片,方法很多,根據(jù)自己情況來吧。

原文地址:一個(gè)簡單有趣的微信聊天機(jī)器人
我的博客:時(shí)空路由器

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/38642.html

相關(guān)文章

  • python_bomb----有趣微信聊天機(jī)器人

    摘要:模塊是一個(gè)文件,以結(jié)尾,包含了對(duì)象定義和語句模塊讓你能夠有邏輯地組織你的代碼段。把相關(guān)的代碼分配到一個(gè)模塊里能讓你的代碼更好用,更易懂。命令執(zhí)行成功,執(zhí)行結(jié)果命令執(zhí)行失敗一秒后執(zhí)行關(guān)機(jī)命令 Python 模塊(Module) 是一個(gè) Python 文件,以 .py 結(jié)尾,包含了 Python 對(duì)象定義和Python語句 模塊讓你能夠有邏輯地組織你的 Python 代碼段。 把相關(guān)的代...

    bawn 評(píng)論0 收藏0
  • 微信程序開發(fā)系列教程(二)微信訂閱號(hào)+人工智能問答服務(wù)

    摘要:我的前一篇文章微信程序開發(fā)系列教程一開發(fā)環(huán)境搭建已經(jīng)介紹了微信服務(wù)器的開發(fā)環(huán)境搭建。本文作為開發(fā)系列的第二篇文章,介紹如何給您的微信訂閱號(hào)開發(fā)一個(gè)最簡單的問答服務(wù),非常好玩。 我的前一篇文章微信程序開發(fā)系列教程(一)開發(fā)環(huán)境搭建?已經(jīng)介紹了微信服務(wù)器的開發(fā)環(huán)境搭建。本文作為開發(fā)系列的第二篇文章,介紹如何給您的微信訂閱號(hào)開發(fā)一個(gè)最簡單的問答服務(wù),非常好玩。 這個(gè)系列的完整代碼在我的git...

    lncwwn 評(píng)論0 收藏0
  • 30行代碼實(shí)現(xiàn)微信自動(dòng)回復(fù)機(jī)器人

    摘要:行代碼實(shí)現(xiàn)微信自動(dòng)回復(fù)機(jī)器人一寫在前面今天下午又學(xué)到了另一種有趣的玩法微信自動(dòng)回復(fù)機(jī)器人。將返回消息返回給微信消息的發(fā)送人。以此實(shí)現(xiàn)將微信個(gè)人號(hào)變身為聊天機(jī)器人。 30行代碼實(shí)現(xiàn)微信自動(dòng)回復(fù)機(jī)器人 一、寫在前面 今天下午又學(xué)到了itchat另一種有趣的玩法---微信自動(dòng)回復(fù)機(jī)器人。 程序很簡單僅僅三十行代碼左右,實(shí)現(xiàn)了機(jī)器人自動(dòng)與你的微信好友聊天,下面是我的機(jī)器人小籠包跟自己微信好友聊...

    lingdududu 評(píng)論0 收藏0
  • SegmentFault 技術(shù)周刊 Vol.30 - 學(xué)習(xí) Python 來做一些神奇好玩的事情吧

    摘要:學(xué)習(xí)筆記七數(shù)學(xué)形態(tài)學(xué)關(guān)注的是圖像中的形狀,它提供了一些方法用于檢測形狀和改變形狀。學(xué)習(xí)筆記十一尺度不變特征變換,簡稱是圖像局部特征提取的現(xiàn)代方法基于區(qū)域圖像塊的分析。本文的目的是簡明扼要地說明的編碼機(jī)制,并給出一些建議。 showImg(https://segmentfault.com/img/bVRJbz?w=900&h=385); 前言 開始之前,我們先來看這樣一個(gè)提問: pyth...

    lifesimple 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<