日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

【python】nonebot--QQ接口库

發布時間:2024/8/1 python 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【python】nonebot--QQ接口库 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Nonebot框架開發酷Q機器人插件

nonebot官方文檔:https://none.rclab.tk/guide/
cqhttp官方文檔:https://cqhttp.cc/docs/4.10/#/

裝飾器

—命令識別

@on_command()

  • name 定義命令名稱 字符串類型

  • aliases=(cmd1,cmd2,…)元組類型的命令別名

  • permission= perm.權限
    權限可選值:
    PRIVATE_FRIEND 私人好友
    PRIVATE_GROUP 私人群
    PRIVATE_DISCUSS 私人討論組
    PRIVATE_OTHER 私人其他
    PRIVATE 私人
    DISCUSS 討論組
    GROUP_MEMBER 群成員
    GROUP_ADMIN 群管理
    GROUP_OWNER 群主
    GROUP 群
    SUPERUSER 超級管理員
    EVERYBODY 任何人

  • only_to_me = True 為True在群里喚醒機器人需要@,False則時不需要

  • privileged = False 默認值為False 是否開啟特權,在存在會話的情況下也運行該裝飾器下的函數

  • shell_like= False 默認值False 是否用類shell語法來分割命令后面的參數

—事件監聽

@on_notice()
可選參數:

  • group_upload 事件名:群文件上傳
  • group_admin 事件名:
    group_admin.set、group_admin.unset 事件子類型,分別表示設置和取消管理員
  • group_decrease 事件名:群成員減少
    group_decrease.leave、group_decrease.kick、group_decrease.kick_me 事件子類型,分別表示主動退群、成員被踢、登錄號被踢
  • group_increase 事件名:群成員增加
    group_increase.approve、group_increase.invite 事件子類型,分別表示管理員已同意入群、管理員邀請入群
  • friend_add 事件名:好友添加

—消息控制

@on_message()

—請求處理

@on_request()
可選參數:

  • friend 好友添加請求
  • group 群添加請求(自身是群主或管理員)

消息處理

—發送回復消息

session.send()
參數:

  • message 要發送的消息內容
  • at_sender 回復時是否@消息發送者 默認為False
  • ensure_private 確定消息來源是否為私聊 默認為False
  • ignore_failure 是否忽略可能發送的錯誤 默認為True
  • **kargs 默認為None

—發送私聊消息

send_private_msg()
參數:

  • user_id number - 對方 QQ 號
  • message message - 要發送的內容
  • auto_escape boolean false 消息內容是否作為純文本發送(即不解析 CQ 碼),只在 message字段是字符串時有效

—發送群消息

send_group_msg()
參數:

  • group_id number - 群號
  • message message - 要發送的內容
  • auto_escape boolean false 消息內容是否作為純文本發送(即不解析 CQ 碼),只在 message
    字段是字符串時有效

—發送討論組消息

send_discuss_msg()
參數:

  • discuss_id number - 討論組 ID(正常情況下看不到,需要從討論組消息上報的數據中獲得)
  • message message - 要發送的內容
  • auto_escape boolean false 消息內容是否作為純文本發送(即不解析 CQ 碼),只在 message
    字段是字符串時有效

—發送消息

send_msg()
參數:

  • message_type string - 消息類型,支持
    private、group、discuss,分別對應私聊、群組、討論組,如不傳入,則根據傳入的 *_id 參數判斷
  • user_id number - 對方 QQ 號(消息類型為 private 時需要)
  • group_id number - 群號(消息類型為 group 時需要)
  • discuss_id number - 討論組 ID(消息類型為 discuss 時需要)
  • message message - 要發送的內容
  • auto_escape boolean false 消息內容是否作為純文本發送(即不解析 CQ 碼),只在 message
    字段是字符串時有效

—撤回消息

ps:需要安裝酷Q pro版才能實現該功能
delete_msg()
參數:

  • message_id number (int32)

—發送好友贊

ps:需要安裝酷Q pro版才能實現該功能
send_like()
參數:

  • user_id number - 對方 QQ 號
  • times number 贊的次數默認值為1,每個好友每天最多 10 次

—處理加好友請求

set_friend_add_request()
參數:

  • flag string - 加好友請求的 flag(需從上報的數據中獲得)
  • approve boolean true 是否同意請求
  • remark string 空 添加后的好友備注(僅在同意時有效)

—處理加群請求/邀請

set_group_add_request()
參數:

  • flag string - 加群請求的 flag(需從上報的數據中獲得)
  • sub_type 或 type string - add 或 invite,請求類型(需要和上報消息中的 sub_type 字段相符)
  • approve boolean true 是否同意請求/邀請
  • reason string 空 拒絕理由(僅在拒絕時有效)

—發送文字

#文件位置:插件py文件中 發送其他類型消息同理 from nonebot import CommandSession,on_command @on_command('你好') async def auto_reply(session:CommandSession):await session.send('[轉賬] 0.01元轉賬需收款,請使用手機QQ查看。',at_sender=True)

—發送表情

QQ表情

[CQ:face,id=表情id]

emoji表情

[CQ:emoji,id=表情id]

原創表情

[CQ:bface,id=表情id]

小表情

[CQ:sface,id=表情id]

酷Q [CQ:face,*] 表情代碼對應表:https://cqp.cc/t/36910
酷Q [CQ:emoji,*] emoji表情代碼對應表:https://cqp.cc/t/15827

—發送圖片

ps:需要安裝酷Q pro版才能實現該功能

[CQ:image,file=文件名]

—發送語音

ps:需要安裝酷Q pro版才能實現該功能

[CQ:record,file=文件名]

—分享音樂

[CQ:music,id=209249583,type=qq]

—發送窗口抖動

戳一戳

session.send('[CQ:shake,id=1]')

— @某人

{1}為被@的群成員帳號。若該參數為all,則@全體成員(次數用盡或權限不足則會轉換為文本)。 舉例:[CQ:at,qq=123456]

— 發送猜拳魔法表情

[CQ:rps,type={1}] {1}為猜拳結果的類型,暫不支持發送時自定義。該參數可被忽略。 1 - 猜拳結果為石頭 2 - 猜拳結果為剪刀 3 - 猜拳結果為布

— 發送擲骰子魔法表情

[CQ:dice,type={1}] {1}對應擲出的點數,暫不支持發送時自定義。該參數可被忽略。

— 匿名發消息(僅支持群消息使用)

[CQ:anonymous,ignore={1}] 本CQ碼需加在消息的開頭。 當{1}為true時,代表不強制使用匿名,如果匿名失敗將轉為普通消息發送。 當{1}為false或ignore參數被忽略時,代表強制使用匿名,如果匿名失敗將取消該消息的發送。 舉例: [CQ:anonymous,ignore=true] [CQ:anonymous]

— 發送音樂

[CQ:music,type={1},id={2}] {1}為音樂平臺類型,目前支持qq、163、xiami {2}為對應音樂平臺的數字音樂id 注意:音樂只能作為單獨的一條消息發送 舉例: [CQ:music,type=qq,id=422594](發送一首QQ音樂的“Time after time”歌曲到群內) [CQ:music,type=163,id=28406557](發送一首網易云音樂的“桜咲く”歌曲到群內)

— 發送音樂自定義分享

[CQ:music,type=custom,url={1},audio={2},title={3},content={4},image={5}] {1}為分享鏈接,即點擊分享后進入的音樂頁面(如歌曲介紹頁)。 {2}為音頻鏈接(如mp3鏈接)。 {3}為音樂的標題,建議12字以內。 {4}為音樂的簡介,建議30字以內。該參數可被忽略。 {5}為音樂的封面圖片鏈接。若參數為空或被忽略,則顯示默認圖片。 注意:音樂自定義分享只能作為單獨的一條消息發送

— 發送鏈接分享

[CQ:share,url={1},title={2},content={3},image={4}] {1}為分享鏈接。 {2}為分享的標題,建議12字以內。 {3}為分享的簡介,建議30字以內。該參數可被忽略。 {4}為分享的圖片鏈接。若參數為空或被忽略,則顯示默認圖片。 注意:鏈接分享只能作為單獨的一條消息發送

群組管理

—群組踢人

set_group_kick()

—群組單人禁言

set_group_ban()

—群組匿名用戶禁言

set_group_anonymous_ban()

—群組全員禁言

set_group_whole_ban()

—群組設置管理員

set_group_admin()

—群組匿名

set_group_anonymous()

—設置群名片

set_group_card()

—退出群組

set_group_leave()

—設置群組專屬頭銜

set_group_special_title()

—退出討論組

set_discuss_leave()

—獲取群列表

get_group_list()獲取群成員信息 get_group_member_info()

—獲取群成員列表

get_group_member_list()

—獲取群信息

_get_group_info()

—獲取會員信息

_get_vip_info()

—獲取群公告

_get_group_notice()

–發布群公告

_send_group_notice()

數據獲取

—獲取登錄號信息

get_login_info()
返回數據:

  • user_id number (int64) QQ 號
  • nickname string

—獲取陌生人信息

get_stranger_info()
參數:

  • user_id number - QQ 號
  • no_cache boolean false 是否不使用緩存(使用緩存可能更新不及時,但響應更快)

返回數據:

  • user_id number (int64) QQ 號
  • nickname string 昵稱
  • sex string 性別,male 或 female 或 unknown
  • age number (int32) 年齡

—獲取 Cookies

get_cookies()
返回數據:

  • cookies string

—獲取 CSRF Token

get_csrf_token()
返回數據:

  • token number (int32) CSRF Token

—獲取 QQ 相關接口憑證

get_credentials()
返回數據:

  • cookies string Cookies值
  • csrf_token number(int32) CSRF Token

—獲取語音

get_record()
參數:

  • file string - 收到的語音文件名(CQ 碼的 file 參數),如
    0B38145AA44505000B38145AA4450500.silk
  • out_format string - 要轉換到的格式,目前支持 mp3、amr、wma、m4a、spx、ogg、wav、flac
  • full_path boolean false 是否返回文件的絕對路徑(Windows 環境下建議使用,Docker 中不建議)

返回數據:

  • file string 轉換后的語音文件名或路徑,如 0B38145AA44505000B38145AA4450500.mp3,如果開啟了
    full_path,則如
    C:\Apps\CoolQ\data\record\0B38145AA44505000B38145AA4450500.mp3

—獲取圖片

get_image()
參數:

  • file string - 收到的圖片文件名(CQ 碼的 file 參數),如
    6B4DE3DFD1BD271E3297859D41C530F5.jpg

返回數據:

  • file string 下載后的圖片文件路徑,如
    C:\Apps\CoolQ\data\image\6B4DE3DFD1BD271E3297859D41C530F5.jpg

—獲取插件運行狀態

get_status()

—獲取 酷Q 及 HTTP API 插件的版本信息

get_version_info()
返回數據:

  • app_initialized boolean HTTP API 插件已初始化
  • app_enabled boolean HTTP API 插件已啟用
  • plugins_good object HTTP API 的各內部插件是否正常運行
  • app_good boolean HTTP API 插件正常運行(已初始化、已啟用、各內部插件正常運行)
  • online boolean 當前 QQ 在線,null 表示無法查詢到在線狀態
  • good boolean HTTP API 插件狀態符合預期,意味著插件已初始化,內部插件都在正常運行,且 QQ 在線

—檢查是否可以發送圖片

can_send_image()
返回數據:

  • yes boolean 是或否

—檢查是否可以發送語音

can_send_record()
返回數據:

  • yes boolean 是或否

—重啟 HTTP API 插件

set_restart_plugin()
參數:

  • delay number 0 要延遲的毫秒數,如果默認情況下無法重啟,可以嘗試設置延遲為 2000 左右

—清理數據目錄

clean_data_dir()

  • 參數: data_dir string - 收到清理的目錄名,支持 image、record、show、bface

—清理插件日志

clean_plugin_log()

—重啟 酷Q,并以當前登錄號自動登錄(需勾選快速登錄)

_set_restart()
參數:
字段名 數據類型 默認值 說明

  • clean_log boolean false 是否在重啟時清空 酷Q 的日志數據庫(log*.db)
  • clean_cache boolean false 是否在重啟時清空 酷Q 的緩存數據庫(cache.db)
  • clean_event boolean false 是否在重啟時清空 酷Q 的事件數據庫(eventv2.db)

— 檢查更新

.check_update()

—對事件執行快速操作

.handle_quick_operation()

—獲取 data 目錄中的文件的接口

除了上面的 API,插件還提供一個簡單的靜態文件獲取服務,請求方式只支持 HTTP 的 GET,URL 路徑為 /data/
加上要請求的文件相對于 酷Q data 目錄的路徑。例如,假設 酷Q 主目錄在 C:\Apps\CQA,則要獲取
C:\Apps\CQA\data\image\ABCD.jpg.cqimg 的話,只需請求
/data/image/ABCD.jpg.cqimg,響應內容即為要請求的文件。 和上面的其它請求一樣,如果配置文件中指定了 access
token,則每次請求需要在請求頭中加入驗證頭 Authorization: Bearer your-token。
另外,請求的路徑中不允許出現 …,即上級目錄的標記,以防止惡意或錯誤的請求到系統中的其它文件。 本功能默認情況下不開啟,在配置文件中將
serve_data_files 設置為 yes 或 true 即可開啟,見 配置文件說明。

總結

以上是生活随笔為你收集整理的【python】nonebot--QQ接口库的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。