目錄
前言
原理
準備
go-cqhttp插件安裝
nonebot框架的安裝
插件的拓展
效果
警告
前言
emmmm,大家好,我叫善念,有點懶 好久沒有給大家更新教程了,今天給大家帶來的專案比較有趣,而且非常簡單,簡稱 有手即可!
很多人應該都經歷過,當你進入一些Python學習交流群的時候突然來了一封郵件,或者一些進群的自動@機器人,今天咱們要實作的就是這些相關功能!
講句心里話,我寫的一些文章有些無法過審都爛在倉庫里(幾個小時白費),本身都是想要大家學習參考,包括我的文章內容都非常詳細,大家也是有目共睹的,
很多人學習python,不知道從何學起, 很多人學習python,掌握了基本語法過后,不知道在哪里尋找案例上手, 很多已經做案例的人,卻不知道如何去學習更加高深的知識, 那么針對這三類人,我給大家提供一個好的學習平臺,免費領取視頻教程,電子書籍,以及課程的源代碼! QQ群:861355058 歡迎加入,一起討論 一起學習!
非常懇求你們的一鍵三連
?
原理
利用go-cqhttp插件獲取咱們的QQ相關資料,包括截取咱們的各類聊天(聊天資訊)、資訊事件(進群退群之類的),然后利用nonebot框架來反向截取go-cqhttp截留到的資料,使我們能夠利用到這些資訊事件,
是不是一臉懵逼了,其實沒有大家想象的復雜,簡而言之就是利用go-cqhttp插件在cmd中列印出登陸的QQ賬號的事件,然后用nonebot框架來反向截取go-cqhttp截留到的資料,供我們在pycharm中用代碼去利用這些事件,
比如go-cqhttp插件截留到的資料:
?
nonebot框架來反向截取go-cqhttp截留到的資料:
?
為什么不讓你們去細究而是我直接通俗地講下使用的方法呢,因為我覺得如果你讓我講解里面的一些真正的底層原理,我自己也沒這個本事,但是我可以教你如何簡單的使用,
準備
go-cqhttp插件安裝
進入官網
?
根據自己的作業系統去下載相對應的版本:
如果你下載的是zip軟體包,那么它應該是這樣的:
?
雙擊exe檔案后 全部點是的, 會生成一個.bat檔案
?
雙擊.bat檔案后選擇反向websocket連接的方式,
它會生成一個config組態檔,暫且不管它,但是它非常重要!
?
重新打開.bat檔案,
登陸你的賬號,首次登陸一般為掃碼登陸,里面的登陸協議好像是隨機的ipad或者手表之類的,
登陸后會生成session檔案與device檔案,分別保存了咱們的賬戶資訊(cookis)與登陸的設備資訊,
此時,咱們已經成功了一半,已經實作了在cmd中列印出截留到的資料,剩下的就是如何對接Python把這些資料弄到咱們的pycharm(你也可以使用其它的IDE)中去,
nonebot框架的安裝
進入官網
?
可以看到一個很關鍵的地方,Python解釋器的版本必須為3.7以及以上版本,簡單的pip安裝模塊即可,
如果你是這樣做的,那么就做錯了,咱們的nonebot已經出到v2版本了,這個是v1的很多功能都殘缺了,
所以請進入到v2版本的官網
?
怎么安裝模塊就不多講了,有手就行,
然后就是看檔案咯,我這里就直接教大家怎么簡單地使用了,首先創建一個目錄結構,
?
如我所說:
?
我標記的兩個檔案,咱們暫時可以不用,就很簡單的一個目錄結構了,plugins下面的檔案為我們的功能插件,我們想要實作的功能都寫在這個里面,比如進群@,或者別的功能,
bot.py為咱們的主程式,啟動主程式后呼叫咱們的插件即可:
import nonebot from nonebot.adapters.cqhttp import Bot as CQHTTPBot from nonebot import on_notice from nonebot.typing import T_State from nonebot.adapters import Bot, Event from nonebot.adapters.cqhttp.message import Message from nonebot.adapters.cqhttp import GroupIncreaseNoticeEvent,GroupDecreaseNoticeEvent nonebot.init() driver = nonebot.get_driver() driver.register_adapter("cqhttp", CQHTTPBot) # nonebot.load_builtin_plugins() nonebot.load_plugin("awesome_bot.plugins.squer") app = nonebot.get_asgi() if __name__ == "__main__": nonebot.run(host='127.0.0.1', port=28655)
像我這里就是呼叫了squer插件,這里值得注意的是我寫了一句
表明機器人的地址運行在這里,那么我們是如何實作go-cqhttp與nonebot連接起來的呢?當然這個ip與埠都要對應才能連接起來咯,所以我們的config.yml檔案就要利用起來了,修改里面的引數:
?
這樣子咱們就實作了基本的功能了,
?
插件的拓展
關鍵插件的撰寫千變萬化,相對應的API我建議看官方檔案,比如我寫的就是一個進群或者退群直接發郵件的插件:
from nonebot import on_notice from nonebot.typing import T_State from nonebot.adapters import Bot, Event from nonebot.adapters.cqhttp.message import Message from nonebot.adapters.cqhttp import GroupIncreaseNoticeEvent,GroupDecreaseNoticeEvent import requests # -*- coding: utf-8 -*- import tkinter as tk from tkinter import * from tkinter import ttk from PIL import ImageTk import webbrowser import os import win32ui import requests import time import threading from queue import Queue from tkinter import messagebox import uuid import windnd import random import string from requests_toolbelt import MultipartEncoder welcom = on_notice() @welcom.handle() async def welcome(bot: Bot, event: GroupIncreaseNoticeEvent, state: T_State): user = event.get_user_id() yx = str(user+'@qq.com').strip() print(yx) sendmail(yx)
效果
?
??
警告
切勿用于任何非法用途,僅供學習參考,除學習的用途切勿聯系我,關鍵插件的郵件部分請自行撰寫,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/378104.html
標籤:Python
