国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Python 加 PowerShell 刪除指定QQ群的圖片【tjxwork】

2023-07-22 02:50 作者:tjxgame  | 我要投稿

B站專欄的排版是真的爛,各種不讓插外鏈。

建議到這里看:

Python 加 PowerShell 刪除指定 QQ 群的圖片 - tjxblog:?

https://www.tjxblog.com/blog/2023-0009




前言

不知道你們是不是和我一樣,QQ加了不少的群,基本是加了就不看的。

有一些水群又水得厲害,收進(jìn)群助手了,但沒(méi)有屏蔽信息,不知道不覺(jué)間,就堆了一堆的圖片。

而QQ的刪除聊天記錄,就真的只是刪除聊天記錄,群里面圖片還是會(huì)留在聊天記錄的文件夾里面。

這就很麻煩了,你又分不清哪個(gè)群的圖片,把圖片全刪除了,又有那么幾個(gè)群是想保留圖片的。

剛好,騰訊最近出了個(gè)新的NT架構(gòu)的QQ,我本來(lái)期待他能像微信一樣按群來(lái)刪除圖片,結(jié)果還是不行。

搜索一番,找到兩個(gè)項(xiàng)目,分別用來(lái)解密和解碼QQ的數(shù)據(jù)庫(kù),然后發(fā)現(xiàn)能從數(shù)據(jù)庫(kù)的群聊天信息拿到圖片路徑。

那就好辦了,寫(xiě)了幾個(gè)腳本來(lái)實(shí)現(xiàn)按群來(lái)刪除圖片。

GitHub項(xiàng)目地址:

tjxwork/qq_db_export_group_image_path_and_move_or_delete:?

QQ數(shù)據(jù)庫(kù)導(dǎo)出群圖片路徑并移動(dòng)或者刪除(github.com): https://github.com/tjxwork/qq_db_export_group_image_path_and_move_or_delete

視頻教程地址:

其實(shí)是先有的視頻教程(演示),這篇文章算是圖文教程,會(huì)比視頻教程詳細(xì)一點(diǎn)。

刪除指定QQ群的圖片【tjxwork】_嗶哩嗶哩_bilibili

刪除指定QQ群的圖片【tjxwork】 - YouTube:?

https://www.youtube.com/watch?v=lMe9MrxBN-c


建議

如果你是出于:“想要清理不看的QQ群的群圖片,并且希望能一直保持聊天記錄比較“干凈”?!?的目的。

那么,新版的NTQQ暫時(shí)不建議使用,因?yàn)槟壳爸挥信f版的QQ才能屏蔽接受群圖片(看的時(shí)候可以手動(dòng)點(diǎn)擊加載)

QQ的相關(guān)信息

QQ的聊天記錄路徑

聊天記錄的配置文件存放在:C:\Users\Public\Documents\Tencent\QQ\UserDataInfo.ini

同一臺(tái)電腦下,所有用戶使用同一個(gè)配置文件。

例如,當(dāng)聊天記錄存放在D:\Chats\Tencent Files時(shí),UserDataInfo.ini 的內(nèi)容為:

QQ配置文件的相關(guān)信息可以看之前這篇:免登錄,用腳本提前修改微信、企業(yè)微信、QQ 的聊天路徑 - tjxblog: https://www.tjxblog.com/blog/2023-0001

NT版本QQ暫時(shí)無(wú)法修改記錄路徑,它直接沿用了舊版QQ的路徑設(shè)定。

QQ的圖片文件結(jié)構(gòu)

例如,當(dāng)聊天記錄存放在D:\Chats\Tencent Files,QQ賬號(hào)是303xxx445 時(shí)

移動(dòng)腳本要處理的是,聊天記錄文件夾的 Image 下面的 Group Group2 兩個(gè)文件夾

新版NT架構(gòu)QQ的相關(guān)信息

當(dāng)你使用首次使用NTQQ的時(shí)候,會(huì)提示導(dǎo)入數(shù)據(jù)庫(kù)。

其實(shí)就是把舊的 聊天記錄文件夾\QQ賬號(hào)\Msg3.0.db

導(dǎo)入了到了新的 聊天記錄文件夾\QQ賬號(hào)\nt_qq\nt_db\nt_msg.db

這期間會(huì)提示優(yōu)化過(guò)程,新的數(shù)據(jù)庫(kù)應(yīng)該是和舊數(shù)據(jù)庫(kù)不一樣的。

使用新的NTQQ的時(shí)候,會(huì)在原來(lái)的聊天記錄路徑下建立聊天記錄路徑\QQ賬號(hào)\nt_qq\文件夾

接收到的圖片及各類文件都是存放在新的路徑下面。

各種數(shù)據(jù)庫(kù):聊天記錄路徑\QQ賬號(hào)\nt_qq\nt_db

圖片之類的:聊天記錄路徑\QQ賬號(hào)\nt_qq\nt_data

圖片的存放結(jié)構(gòu)和Windows版微信類似,會(huì)按年-月份的方式來(lái)區(qū)分。

但是NTQQ目前仍然做不到像微信那樣,按群來(lái)刪除圖片之類的文件。

聊天記錄路徑\QQ賬號(hào)\nt_qq\nt_data\Pic 的結(jié)構(gòu):

前置項(xiàng)目及所需工具

解密QQ數(shù)據(jù)庫(kù) qq-win-db-key

Young-Lord/qq-win-db-key: Windows QQ 聊天數(shù)據(jù)庫(kù)解密 (github.com): https://github.com/Young-Lord/qq-win-db-key

解碼QQ數(shù)據(jù)庫(kù) qq_msg_decode

saucer-man/qq_msg_decode: 解碼qq聊天數(shù)據(jù)庫(kù) (github.com):?

https://github.com/saucer-man/qq_msg_decode

修復(fù)QQ數(shù)據(jù)庫(kù) SQLite-Tools

SQLite Download Page:?

https://www.sqlite.org/download.html

這里用的是 sqlite-tools-win32-x86-3420000:?

https://www.sqlite.org/2023/sqlite-tools-win32-x86-3420000.zip

操作流程

為了方便描述,假設(shè)下載完上面2個(gè)項(xiàng)目及SQLite-Tools后,都帶文件夾解壓到和我的腳本文件在同一級(jí),為當(dāng)前目錄,文件結(jié)構(gòu)如下:


tjxwork/qq_db_export_group_image_path_and_move_or_delete: QQ數(shù)據(jù)庫(kù)導(dǎo)出群圖片路徑并移動(dòng)或者刪除(github.com): https://github.com/tjxwork/qq_db_export_group_image_path_and_move_or_delete

以及:

你已經(jīng)安裝好Python,并且添加到系統(tǒng)環(huán)境變量。(安裝時(shí),勾選 PATH 選項(xiàng))

Python 腳本運(yùn)行時(shí),提示缺少什么模塊的時(shí)候,你要學(xué)會(huì) pip install xxxxxx

PowerShell 已允許腳本運(yùn)行 (請(qǐng)管理員權(quán)限打開(kāi) PowerShell 運(yùn)行: Set-ExecutionPolicy -ExecutionPolicy RemoteSigned)

在資源管理器的目錄空白處,按著Shift + 鼠標(biāo)右鍵,點(diǎn)擊 在此處打開(kāi) PowerShell 窗口 就可以在當(dāng)前目錄直接打開(kāi)PowerShell

如果有不是很清楚的地方,請(qǐng)搭配視頻版演示食用。

解密QQ數(shù)據(jù)庫(kù)

先去你的聊天記錄文件夾下面?zhèn)浞?Msg3.0.db

先打開(kāi)QQ,出現(xiàn)登陸窗口,先不要點(diǎn)擊登陸。

在當(dāng)前目錄打開(kāi)PowerShell,運(yùn)行解密腳本 \qq-win-db-key-master\main.py

然后點(diǎn)擊QQ的登陸按鈕。

耐心等待登陸,登陸成功后,腳本也隨之運(yùn)行結(jié)束。

此時(shí)當(dāng)前目錄下出現(xiàn)一個(gè)解密完成的 Msg3.0.db_0_xxxxxxxxxx.db 數(shù)據(jù)庫(kù)文件。

QQ可以退出了,后面用不到它了。

修復(fù)QQ數(shù)據(jù)庫(kù)

在當(dāng)前目錄打開(kāi)PowerShell,運(yùn)行 ?SQLite-Tools

使用SQLite-Tools打開(kāi) Msg3.0.db_0_xxxxxxxxxx.db

檢查是否出錯(cuò)

不出錯(cuò)就輸入 .quit退出 。

如提示出錯(cuò)的話,就繼續(xù)處理,導(dǎo)出為 temp.sql 臨時(shí)的SQL文件。

運(yùn)行完成后,當(dāng)前目錄下出現(xiàn)一個(gè) temp.sql 文件。

modify_temp_sql_last_line.py 腳本功能及默認(rèn)參數(shù):修改 ?temp.sql 文件的最后一行為 COMMIT;

運(yùn)行 modify_temp_sql_last_line.py 腳本

運(yùn)行完成,可以看到 temp.sql 文件的修改時(shí)間發(fā)現(xiàn)變化。

在當(dāng)前目錄打開(kāi)PowerShell,運(yùn)行 ?SQLite-Tools

創(chuàng)建新數(shù)據(jù)庫(kù) Msg.db 并導(dǎo)入 temp.sql

等待運(yùn)行完成后,當(dāng)前目錄下出現(xiàn)一個(gè)修復(fù)完成的 Msg.db 文件。

解碼QQ數(shù)據(jù)庫(kù)

使用文本編輯器打開(kāi) \qq_msg_decode-main\index.py 文件,

在大約534行處,修改為你的數(shù)據(jù)庫(kù)路徑,建議使用絕對(duì)路徑。

例如:

在當(dāng)前目錄打開(kāi)PowerShell,運(yùn)行解碼腳本 \qq_msg_decode-main\index.py

此過(guò)程最為漫長(zhǎng),我10G左右的QQ數(shù)據(jù)庫(kù),跑了4小時(shí)20分鐘。

腳本跑完后,Msg.db 的體積會(huì)變大,因?yàn)闀?huì)在表里面多加一個(gè)字段,用于存放解碼完成后的信息。

解碼完成后的數(shù)據(jù)庫(kù)結(jié)構(gòu)如圖:

導(dǎo)出群聊天記錄的圖片路徑為CSV

regex_processing_img_path_to_csv.py 腳本功能及默認(rèn)參數(shù):

讀取當(dāng)前目錄下的 Msg.db,導(dǎo)出各個(gè)群聊天記錄中的圖片路徑為csv格式,存放到當(dāng)前目錄下的 QQ_Group_CSV文件夾下

運(yùn)行 regex_processing_img_path_to_csv.py 腳本。

會(huì)將數(shù)據(jù)庫(kù)內(nèi)的群消息中的圖片路徑,以群分類,以數(shù)據(jù)庫(kù)中的表名為命名,導(dǎo)出為csv文件。

運(yùn)行完成后,當(dāng)前目錄下出現(xiàn)一個(gè) ?QQ_Group_CSV 文件夾

其中包含若干數(shù)量的,格式類似 group_123456789.csv 的CSV文件。

注意:CSV文件名,其數(shù)字部分并不100%和QQ群的群號(hào)對(duì)應(yīng)!

以聊天記錄查詢對(duì)應(yīng)的群的數(shù)據(jù)庫(kù)表名

由于在QQ數(shù)據(jù)庫(kù)里面存儲(chǔ)的群消息的表的名稱,并不是絕對(duì)和QQ群的群號(hào)是一致對(duì)應(yīng)的。

再加之,有部分還能在QQ消息管理器中查看聊天記錄的QQ群,已經(jīng)被封禁,無(wú)法查看其群號(hào)。

所以需要通過(guò)查詢來(lái)確定,QQ群與數(shù)據(jù)庫(kù)中的表的關(guān)系。

query_chat_come_from_qq_group.py 腳本功能及默認(rèn)參數(shù):

連接到當(dāng)前目錄下的 Msg.db 數(shù)據(jù)庫(kù),使用聊天記錄來(lái)查詢確定其在數(shù)據(jù)庫(kù)中對(duì)應(yīng)的表名。

運(yùn)行 query_chat_come_from_qq_group.py 腳本

復(fù)制消息管理器中的文本內(nèi)容,粘貼到PowerShell窗口中查詢,復(fù)制內(nèi)容請(qǐng)盡量具有獨(dú)特性,防止返回內(nèi)容過(guò)多。

查詢效果如圖:

定義移動(dòng)文件腳本參數(shù)來(lái)移動(dòng)圖片

move_csv_img_path.ps1 的腳本功能:

按腳本中定義黑白名單的群列表、運(yùn)行模式、時(shí)間線,來(lái)移動(dòng)對(duì)應(yīng)群csv文件中記錄的圖片,按群來(lái)分類,移動(dòng)到指定的目錄下。

move_csv_img_path.ps1 的腳本參數(shù)部分:

請(qǐng)自行修改腳本中的參數(shù)為自己的實(shí)際路徑。

建議移動(dòng)后的存放目錄,設(shè)置為聊天記錄同分一區(qū)下面,能極大地節(jié)省移動(dòng)時(shí)間,同分區(qū)移動(dòng)文件只是修改文件系統(tǒng)中的路徑指向而已。

move_csv_img_path.ps1 的腳本運(yùn)行邏輯:

運(yùn)行move_csv_img_path.ps1 腳本

返回內(nèi)容如圖:

移動(dòng)日志中出現(xiàn)大量錯(cuò)誤的原因

由于存在表情包之類的復(fù)用圖片,同一個(gè)圖片路徑,可能會(huì)在多個(gè)群CSV里面反復(fù)出現(xiàn)。 從而導(dǎo)致移動(dòng)腳本讀取第1個(gè)群CSV正常移走圖片后,移動(dòng)腳本再讀取到后續(xù)的群CSV文件中再出這條圖片路徑, 腳本再次移動(dòng)該圖片路徑時(shí)找不到圖片,就會(huì)在日志中記錄為失敗。此部分內(nèi)容可以看看視頻版演示。

效果

我最后清掉了183G的圖片,最多那個(gè)群35G……

留下的4個(gè)群只有3.32G。

原文作者:tjxwork

原文鏈接:https://www.tjxblog.com/blog/2023-0009 ?

發(fā)布時(shí)間:2023-07-22

Python 加 PowerShell 刪除指定QQ群的圖片【tjxwork】的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
来安县| 东阳市| 台北市| 南投县| 泗水县| 大田县| 定结县| 凤山县| 睢宁县| 池州市| 友谊县| 青龙| 密山市| 剑河县| 怀集县| 泌阳县| 修文县| 永康市| 阜宁县| 黑龙江省| 洪洞县| 普定县| 新兴县| 晋州市| 雅江县| 巴青县| 西丰县| 海晏县| 大田县| 五河县| 通海县| 遂昌县| 鄱阳县| 临漳县| 玛曲县| 大同县| 青岛市| 永嘉县| 洛川县| 惠州市| 紫阳县|