欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于go-cqhttp與Flask搭建定制機器人項目實戰(zhàn)示例

 更新時間:2022年11月23日 09:59:03   作者:????????????  
這篇文章主要為大家介紹了基于go-cqhttp與Flask搭建定制機器人項目實戰(zhàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

前言

許久之前用 Mirai 搭建了 QQ 機器人,不過因為云服務器到期了,QQ 機器人被 迫下線,現(xiàn)如今,可能是意猶未盡,今天就基于 go-cqhttp 與 Flask 搭建定制機器人;

安裝

官方安裝教程;

go-cqhttp 下載地址

1、前往 go-cqhttp 的下載地址,選擇自己需要的版本,下載的話,一般下載這兩個中的其中一個:

具體看自己的系統(tǒng)配置,可以通過 arch 指令進行查看:

博主這里是 x86_64,所以選擇下載第一個,也就是 go-cqhttp_linux_amd64.tar.gz;

x86_64,x64,AMD64 可看做是同一個東西;

  • x86 是 intel 開發(fā)的一種32位指令集;
  • x86_64 是一種64位的指令集,x86_64x86 指令的超集,在 x86 上可以運行的程序,在 x86_64 上也可以運行,x86_64AMD 發(fā)明的,也叫 AMD64;

現(xiàn)在用的 intel/amd 的桌面級 CPU 基本上都是 x86_64,與之相對的 arm 等都不是 x86_64;

2、創(chuàng)建并打開 go-cqhttp 文件夾:

cd /opt && mkdir go-cqhttp

3、然后把自己下載好的壓縮包上傳到此處,或者直接通過 wget 指令將壓縮包下載到此處;

wget url

4、解壓壓縮包:

tar -zxvf go-cqhttp_linux_amd64.tar.gz

5、賦予 go-cqhttp 權限:

chmod 777 go-cqhttp

6、第一次運行,生成配置文件:

./go-cqhttp

7、修改配置文件,具體參考官方配置文檔;

# go-cqhttp 默認配置文件
account: # 賬號相關
  uin: 1233456 # QQ賬號
  password: '' # 密碼為空時使用掃碼登錄
  encrypt: false  # 是否開啟密碼加密
  status: 0      # 在線狀態(tài) 請參考 https://docs.go-cqhttp.org/guide/config.html#在線狀態(tài)
  relogin: # 重連設置
    delay: 3   # 首次重連延遲, 單位秒
    interval: 3   # 重連間隔
    max-times: 0  # 最大重連次數(shù), 0為無限制
  # 是否使用服務器下發(fā)的新地址進行重連
  # 注意, 此設置可能導致在海外服務器上連接情況更差
  use-sso-address: true
heartbeat:
  # 心跳頻率, 單位秒
  # -1 為關閉心跳
  interval: 5
message:
  # 上報數(shù)據(jù)類型
  # 可選: string,array
  post-format: string
  # 是否忽略無效的CQ碼, 如果為假將原樣發(fā)送
  ignore-invalid-cqcode: false
  # 是否強制分片發(fā)送消息
  # 分片發(fā)送將會帶來更快的速度
  # 但是兼容性會有些問題
  force-fragment: false
  # 是否將url分片發(fā)送
  fix-url: false
  # 下載圖片等請求網(wǎng)絡代理
  proxy-rewrite: ''
  # 是否上報自身消息
  report-self-message: false
  # 移除服務端的Reply附帶的At
  remove-reply-at: false
  # 為Reply附加更多信息
  extra-reply-data: false
  # 跳過 Mime 掃描, 忽略錯誤數(shù)據(jù)
  skip-mime-scan: false
output:
  # 日志等級 trace,debug,info,warn,error
  log-level: warn
  # 日志時效 單位天. 超過這個時間之前的日志將會被自動刪除. 設置為 0 表示永久保留.
  log-aging: 15
  # 是否在每次啟動時強制創(chuàng)建全新的文件儲存日志. 為 false 的情況下將會在上次啟動時創(chuàng)建的日志文件續(xù)寫
  log-force-new: true
  # 是否啟用 DEBUG
  debug: false # 開啟調(diào)試模式
# 默認中間件錨點
default-middlewares: &default
  # 訪問密鑰, 強烈推薦在公網(wǎng)的服務器設置
  access-token: ''
  # 事件過濾器文件目錄
  filter: ''
  # API限速設置
  # 該設置為全局生效
  # 原 cqhttp 雖然啟用了 rate_limit 后綴, 但是基本沒插件適配
  # 目前該限速設置為令牌桶算法, 請參考:
  # https://baike.baidu.com/item/%E4%BB%A4%E7%89%8C%E6%A1%B6%E7%AE%97%E6%B3%95/6597000?fr=aladdin
  rate-limit:
    enabled: false # 是否啟用限速
    frequency: 1  # 令牌回復頻率, 單位秒
    bucket: 1     # 令牌桶大小
# 連接服務列表
servers:
  # HTTP 通信設置
  - http:
      # 服務端監(jiān)聽地址
      host: 127.0.0.1
      # 服務端監(jiān)聽端口
      port: 5700
      # 反向HTTP超時時間, 單位秒
      # 最小值為5,小于5將會忽略本項設置
      timeout: 5
      middlewares:
        <<: *default # 引用默認中間件
      # 反向HTTP POST地址列表
      post:
      #- url: '' # 地址
      #  secret: ''           # 密鑰
      #- url: 127.0.0.1:5701 # 地址
      #  secret: ''          # 密鑰
  # 正向WS設置
  - ws:
      # 正向WS服務器監(jiān)聽地址
      host: 127.0.0.1
      # 正向WS服務器監(jiān)聽端口
      port: 6700
      middlewares:
        <<: *default # 引用默認中間件
  - ws-reverse:
      # 反向WS Universal 地址
      # 注意 設置了此項地址后下面兩項將會被忽略
      universal: ws://your_websocket_universal.server
      # 反向WS API 地址
      api: ws://your_websocket_api.server
      # 反向WS Event 地址
      event: ws://your_websocket_event.server
      # 重連間隔 單位毫秒
      reconnect-interval: 3000
      middlewares:
        <<: *default # 引用默認中間件
  # pprof 性能分析服務器, 一般情況下不需要啟用.
  # 如果遇到性能問題請上傳報告給開發(fā)者處理
  # 注意: pprof服務不支持中間件、不支持鑒權. 請不要開放到公網(wǎng)
  - pprof:
      # pprof服務器監(jiān)聽地址
      host: 127.0.0.1
      # pprof服務器監(jiān)聽端口
      port: 7700
  # LambdaServer 配置
  - lambda:
      type: scf # 可用 scf,aws (aws未經(jīng)過測試)
      middlewares:
        <<: *default # 引用默認中間件
  # 可添加更多
  #- ws-reverse:
  #- ws:
  #- http:
database: # 數(shù)據(jù)庫相關設置
  leveldb:
    # 是否啟用內(nèi)置leveldb數(shù)據(jù)庫
    # 啟用將會增加10-20MB的內(nèi)存占用和一定的磁盤空間
    # 關閉將無法使用 撤回 回復 get_msg 等上下文相關功能
    enable: true

8、再次運行 ## go-cqhttp 掃碼綁定機器人;

9、另起會話 screen -S sid10t-bot,將其在后臺掛起;

發(fā)送消息

access_token = ''
url = f"http://127.0.0.1:port/send_private_msg?access_token={access_token}"
msg = "Hello World! --sid10t."
data = {
    "user_id": QQ Number,
    "message": msg
}
requests.post(url, data=data, timeout=5)

接收消息

這里的話不用別人的插件,自己寫 Flask 監(jiān)聽端口,別問為什么不用其他的框架,比如 SpringBoot 之類的,麻煩,每次更新都要重新編譯打包;

先寫個 app.py 構建基本的 Flask 框架,同時監(jiān)聽自己的 port:

from flask import Flask, request
from api import keyword
app = Flask(__name__)
@app.route('/', methods=["POST", "GET"])
def get_data():
    if request.get_json().get('message_type') == 'private':	
        uid = request.get_json().get('sender').get('user_id')
        msg = request.get_json().get('raw_message')
        keyword(msg, uid)
    if request.get_json().get('message_type')=='group':
        gid = request.get_json().get('group_id')
        uid = request.get_json().get('sender').get('user_id')
        msg = request.get_json().get('raw_message') 
        keyword(msg, uid, gid)
    return "OK"
if __name__ =="__main__":
    app.run(debug=True, port=port)

然后再寫一個 api.py 處理收集到的信息:

def keyword(msg, uid, gid=None):
    person_send_hello(uid)
def send_private_msg(uid):
    url = f"{BASEURL}/send_private_msg?access_token={ACCESS_TOKEN}"
    data = {
        "user_id": uid,
        "message": "Hello World! --sid10t."
    }
    try:
        requests.post(url, data=data, timeout=5)
    except:
        pass

后記

以上就是 基于 go-cqhttp 與 Flask 搭建定制機器人 的所有內(nèi)容了,之后可以根據(jù)自己的需求添加功能,這里就不贅述了,更多關于go cqhttp Flask搭建定制機器人的資料請關注腳本之家其它相關文章!

相關文章

  • golang通過node_exporter監(jiān)控GPU及cpu頻率、溫度的代碼

    golang通過node_exporter監(jiān)控GPU及cpu頻率、溫度的代碼

    node_exporter這個開源組件是配合prometheus收集主機操作系統(tǒng)層的metrics的常用組件,但是官方?jīng)]有提供GPU卡的metrics的采集,今天通過本文給大家介紹golang通過node_exporter監(jiān)控GPU及cpu頻率、溫度的相關知識,感興趣的朋友一起看看吧
    2022-05-05
  • go mutex互斥鎖使用Lock和Unlock方法占有釋放資源

    go mutex互斥鎖使用Lock和Unlock方法占有釋放資源

    Go號稱是為了高并發(fā)而生的,在高并發(fā)場景下,勢必會涉及到對公共資源的競爭,當對應場景發(fā)生時,我們經(jīng)常會使用 mutex 的 Lock() 和 Unlock() 方法來占有或釋放資源,雖然調(diào)用簡單,但 mutex 的內(nèi)部卻涉及挺多的,本文來好好研究一下
    2023-09-09
  • 淺析Go語言編程當中映射和方法的基本使用

    淺析Go語言編程當中映射和方法的基本使用

    這篇文章主要介紹了淺析Go語言編程當中映射和方法的基本使用,是golang入門學習中的基礎知識,需要的朋友可以參考下
    2015-10-10
  • Go1.18新特性之泛型使用三步曲(小結)

    Go1.18新特性之泛型使用三步曲(小結)

    本文主要介紹了Go1.18新特性之泛型,是Go1.18的新特性,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-04-04
  • Go爬蟲(http、goquery和colly)詳解

    Go爬蟲(http、goquery和colly)詳解

    goquery可以避免操作復雜的正則表達式,它可以直接根據(jù)url獲取一個Document對象,然后根據(jù)標簽選擇器、類選擇器和id選擇器獲取相應的選擇對象,進行自定義的操作,這篇文章主要介紹了Go爬蟲(http、goquery和colly),需要的朋友可以參考下
    2022-09-09
  • go語言處理TCP拆包/粘包的具體實現(xiàn)

    go語言處理TCP拆包/粘包的具體實現(xiàn)

    TCP的拆包/粘包也算是網(wǎng)絡編程中一個比較基礎的問題了,本文主要介紹了go語言處理TCP拆包/粘包,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • 淺談golang并發(fā)操作變量安全的問題

    淺談golang并發(fā)操作變量安全的問題

    這篇文章主要介紹了淺談golang并發(fā)操作變量安全的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • 解決Go語言中高頻次和高并發(fā)下隨機數(shù)重復的問題

    解決Go語言中高頻次和高并發(fā)下隨機數(shù)重復的問題

    在Golang中,獲取隨機數(shù)的方法一般會介紹有兩種,一種是基于math/rand的偽隨機,一種是基于crypto/rand的真隨機,math/rand由于其偽隨機的原理,經(jīng)常會出現(xiàn)重復的隨機數(shù),導致在需要進行隨機的業(yè)務出現(xiàn)較多的重復問題,所以本文給大家介紹了較好的解放方案
    2023-12-12
  • go使用net/url包來解析URL提取主機部分

    go使用net/url包來解析URL提取主機部分

    這篇文章主要為大家介紹了go使用net/url包來解析URL提取主機部分實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2024-01-01
  • 一文帶你了解Golang中的WaitGroups

    一文帶你了解Golang中的WaitGroups

    WaitGroups是同步你的goroutines的一種有效方式。這篇文章主要來和大家聊聊Golang中WaitGroups的使用,感興趣的小伙伴可以跟隨小編一起了解一下
    2023-03-03

最新評論