當前位置:首頁 » 操作系統 » powershell資料庫

powershell資料庫

發布時間: 2024-11-11 09:46:31

㈠ Python加PowerShell刪除指定QQ群的圖片

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

有一些水群又水得厲害,收進群助手了,但沒有屏蔽信息,不知不覺間,就堆了一堆的圖片。

而QQ的刪除聊天記錄,就真的只是刪除聊天記錄,群裡面圖片還是會留在聊天記錄的文件夾裡面,這就很麻煩了,你又分不清哪個群的圖片,把圖片全刪除了,又有那麼幾個群是想保留圖片的。

剛好,騰訊最近出了個新的NT架構的QQ,我本來期待他能像微信一樣按群來刪除圖片,結果還是不行。

搜索一番,找到兩個項目,分別用來解密和解碼QQ的資料庫,然後發現能從資料庫的群聊天信息拿到圖片路徑。

那就好辦了,寫了幾個腳本來實現按群來刪除圖片。

如果你是出於:「想要清理不看的QQ群的群圖片,並且希望能一直保持聊天記錄比較「干凈」。

那麼,新版的NTQQ暫時不建議使用,因為目前只有舊版的QQ才能屏蔽接受群圖片(看的時候可以手動點擊載入)

QQ的相關信息,聊天記錄的配置文件存放在:C:\Users\Public\Documents\Tencent\QQ\UserDataInfo.ini,同一台電腦下,所有用戶使用同一個配置文件。

例如,當聊天記錄存放在D:\Chats\Tencent Files時,UserDataInfo.ini 的內容為:QQ配置文件的相關信息可以看之前這篇: 免登錄,用腳本提前修改微信、企業微信、QQ 的聊天路徑 - tjxblog NT版本QQ暫時無法修改記錄路徑,它直接沿用了舊版QQ的路徑設定。

QQ的圖片文件結構,例如,當聊天記錄存放在D:\Chats\Tencent Files,QQ賬號是303xxx445 時,移動腳本要處理的是,聊天記錄文件夾的 Image 下面的 Group Group2 兩個文件夾。

新版NT架構QQ的相關信息,當你使用首次使用NTQQ的時候,會提示導入資料庫。其實就是把舊的聊天記錄文件夾\QQ賬號\Msg3.0.db 導入到了新的聊天記錄文件夾\QQ賬號\nt_qq\nt_db\nt_msg.db。這期間會提示優化過程,新的資料庫應該是和舊資料庫不一樣的。使用新的NTQQ的時候,會在原來的聊天記錄路徑下建立聊天記錄路徑\QQ賬號\nt_qq\文件夾。接收到的圖片及各類文件都是存放在新的路徑下面。各種資料庫:聊天記錄路徑\QQ賬號\nt_qq\nt_db,圖片之類的:聊天記錄路徑\QQ賬號\nt_qq\nt_data。圖片的存放結構和Windows版微信類似,會按年-月份的方式來區分。但是NTQQ目前仍然做不到像微信那樣,按群來刪除圖片之類的文件。

操作流程,為了方便描述,假設下載完上面2個項目及sqlite-Tools後,都帶文件夾解壓到和我的腳本文件在同一級,為當前目錄,文件結構如下:

我的項目地址:tjxwork/qq_db_export_group_image_path_and_move_or_delete: QQ資料庫導出群圖片路徑並移動或者刪除(github.com)

以及:你已經安裝好Python,並且添加到系統環境變數。(安裝時,勾選PATH 選項)Python 腳本運行時,提示缺少什麼模塊的時候,你要學會pip install xxxxxx PowerShel 已允許腳本運行 (請管理員許可權打開 PowerShell 運行:Set-ExecutionPolicy -ExecutionPolicy RemoteSigned)在資源管理器的目錄空白處,按著Shift + 滑鼠右鍵,點擊 在此處打開 PowerShell 窗口 就可以在當前目錄直接打開PowerShell。

解密QQ資料庫,先去你的聊天記錄文件夾下面備份Msg3.0.db,先打開QQ,出現登陸窗口,先不要點擊登陸,在當前目錄打開PowerShell,運行解密腳本\qq-win-db-key-master\main.py 然後點擊QQ的登陸按鈕,耐心等待登陸,登陸成功後,腳本也隨之運行結束。此時當前目錄下出現一個解密完成的Msg3.0.db_0_xxxxxxxxxx.db 資料庫文件。QQ可以退出了,後面用不到它了。

修復QQ資料庫,打開PowerShell,運行SQLite-Tools,使用SQLite-Tools打開 Msg3.0.db_0_xxxxxxxxxx.db 檢查是否出錯。不出錯就輸入.quit退出。如提示出錯的話,就繼續處理,導出為temp.sql 臨時的SQL文件。運行完成後,當前目錄下出現一個temp.sql 文件。modify_temp_sql_last_line.py 腳本功能及默認參數:修改 temp.sql 文件的最後一行為 COMMIT;運行modify_temp_sql_last_line.py 腳本,運行完成,可以看到temp.sql 文件的修改時間發現變化。在當前目錄打開PowerShell,運行SQLite-Tools,創建新資料庫Msg.db 並導入 temp.sql,等待運行完成後,當前目錄下出現一個修復完成的Msg.db 文件。

解碼QQ資料庫,使用文本編輯器打開\qq_msg_decode-main\index.py 文件,在大約534行處,修改為你的資料庫路徑,建議使用絕對路徑。例如:在當前目錄打開PowerShell,運行解碼腳本\qq_msg_decode-main\index.py 此過程最為漫長,我10G左右的QQ資料庫,跑了4小時20分鍾。腳本跑完後,Msg.db 的體積會變大,因為會在表裡面多加一個欄位,用於存放解碼完成後的信息。解碼完成後的資料庫結構如圖。

導出群聊天記錄的圖片路徑為CSV,regex_processing_img_path_to_csv.py 腳本功能及默認參數:讀取當前目錄下的Msg.db,導出各個群聊天記錄中的圖片路徑為csv格式,存放到當前目錄下的 QQ_Group_CSV文件夾下。運行regex_processing_img_path_to_csv.py 腳本,會將資料庫內的群消息中的圖片路徑,以群分類,以資料庫中的表名為命名,導出為csv文件。運行完成後,當前目錄下出現一個QQ_Group_CSV 文件夾,其中包含若干數量的,格式類似group_123456789.csv 的CSV文件。注意:CSV文件名,其數字部分並不100%和QQ群的群號對應!

以聊天記錄查詢對應的群的資料庫表名,由於在QQ資料庫裡面存儲的群消息的表的名稱,並不是絕對和QQ群的群號是一致對應的。再加之,有部分還能在QQ消息管理器中查看聊天記錄的QQ群,已經被封禁,無法查看其群號。所以需要通過查詢來確定,QQ群與資料庫中的表的關系。query_chat_come_from_qq_group.py 腳本功能及默認參數:連接到當前目錄下的Msg.db 資料庫,使用聊天記錄來查詢確定其在資料庫中對應的表名。運行query_chat_come_from_qq_group.py 腳本,復制消息管理器中的文本內容,粘貼到PowerShell窗口中查詢,復制內容請盡量具有獨特性,防止返回內容過多。查詢效果如圖。

定義移動文件腳本參數來移動圖片,move_csv_img_path.ps1 的腳本功能:按腳本中定義黑白名單的群列表、運行模式、時間線,來移動對應群csv文件中記錄的圖片,按群來分類,移動到指定的目錄下。move_csv_img_path.ps1 的腳本參數部分:請自行修改腳本中的參數為自己的實際路徑。建議移動後的存放目錄,設置為聊天記錄同分一區下面,能極大地節省移動時間,同分區移動文件只是修改文件系統中的路徑指向而已。move_csv_img_path.ps1 的腳本運行邏輯:運行move_csv_img_path.ps1 腳本,返回內容如圖。

移動日誌中出現大量錯誤的原因,由於存在表情包之類的復用圖片,同一個圖片路徑,可能會在多個群CSV裡面反復出現。從而導致移動腳本讀取第1個群CSV正常移走圖片後,移動腳本再讀取到後續的群CSV文件中再出這條圖片路徑,腳本再次移動該圖片路徑時找不到圖片,就會在日誌中記錄為失敗。此部分內容可以看看視頻版演示。

效果,我最後清掉了183G的圖片,最多那個群35G……留下的4個群只有3.32G。

熱點內容
aipdf腳本 發布:2024-11-14 15:49:18 瀏覽:618
小編程家 發布:2024-11-14 15:43:29 瀏覽:140
java非同步存儲 發布:2024-11-14 15:43:28 瀏覽:66
普通電腦做數據伺服器 發布:2024-11-14 15:42:29 瀏覽:895
數位演算法軟體 發布:2024-11-14 15:38:00 瀏覽:516
apache外網不能訪問 發布:2024-11-14 15:34:15 瀏覽:479
如何上傳透明頭像 發布:2024-11-14 15:32:40 瀏覽:836
無法連接雲伺服器 發布:2024-11-14 15:09:26 瀏覽:504
公司伺服器的管理應該如何進行 發布:2024-11-14 15:08:18 瀏覽:215
rc4加密解密 發布:2024-11-14 15:06:32 瀏覽:89