微信防撤回的實現

2021-08-02 13:20:30 字數 1372 閱讀 6156

**

首先宣告,這絕不是接鍋,只是因為防撤回的原作者(fkzhang)不更新了,而我又非常需要防撤回,某些開車群總是喜歡開後撤回,於是...

看起來是不是覺得很亂並且看不出邏輯?沒關係,我們在這裡需要做的只是取出資料而已,一開始的邏輯很明確的告訴了我們,如果str變數的值是revokemsg,那麼就會走下面真實的撤回的**。

好了,那麼繼續分析**,首先要知道str變數的值是怎麼來的,往上翻一下可以看到以下**:

很明顯我們應當跟蹤bf.q這個方法,看一下這個方法裡做了什麼:

好了,裡頭邏輯做了些啥不需要管了,只需要管它的返回值,結合上面的**,我們很容易能知道,在這個返回的map內包含以下資料:

.sysmsg.$type = revokemsg

.sysmsg

.revokemsg

.session = 傳送訊息的人

.sysmsg

.revokemsg

.replacemsg = 原始訊息要替換的文字(也就是『xx撤回了一條訊息』)

.sysmsg

.revokemsg

.newmsgid = 訊息id

那麼,只需要將.sysmsg.$type.sysmsg.revokemsg.replacemsg的內容改掉就行了,把這個過程變成以下步驟:

1. 修改 .sysmsg.$type 為 null,以使其不觸發 update 資料庫的流程

2. 將 .sysmsg

.revokemsg

.replacemsg 的內容改為『撤回被阻止』

3. 將被改寫過的資料寫入資料庫

下面的**完成了這一系列步驟:

這樣就可以得到乙個資料庫物件,凡是遇到資料庫操作,都可以從這個物件裡進行方法的呼叫。

微信開發 1 微信防撤回功能實現

先貼上知乎原帖 實現思路,將接收到的訊息都存進乙個字典 msg dict 接收到撤回通知時,提取撤回訊息的id,從字典中進行比對,然後傳送 儲存。那麼字典能放得下那麼多訊息嗎?當接收到新訊息時,執行函式對字典中超過兩分鐘的訊息進行清理 兩分鐘內訊息不會很多 原主談過的我就不談了。談幾點實現的注意點 ...

python實現檢視微信訊息撤回

娛樂 windows系統 2.安裝成功之後,進入pip3.exe所在的目錄 安裝itchat pip3.exe install itchat 下圖我的已經安裝過了 注意 使用3以及以上版本執行 3.開啟cmd拖入按回車就好了 建乙個wx.py檔案,以下 匯入 encoding utf 8 impor...

itchat監聽微信撤回訊息

import itchat from itchat.content import import remsg infomation 監聽傳送訊息 itchat.msg register text defhandle receive msg msg print msg msg from itchat.s...