Xem kịch bản được trình bày ở đây: Lưu lịch sử trò chuyện Skype .
Đây là mã:
' Define global variables
Dim oFSO, chat_file, folder_to_save
' Directory where You want to save history (you can modify it)
' Now it is relative, so it will be created where Your *.vbs script runs
folder_to_save = "SkypeChatHistory"
line_count = 0
' Create FSO
Set oFSO = CreateObject("Scripting.FileSystemObject")
set_next_free_dir()
' Connect to Skype API via COM
Set oSkype = WScript.CreateObject("Skype4COM.Skype", "Skype_")
' Open skype, if it is not running
If Not oSkype.Client.IsRunning Then
oSkype.Client.Start()
End If
WScript.Echo "Skype history will be saved. Found " & oSkype.Chats.Count & " chat group."
' Iterate chats
For Each oChat In oSkype.Chats
names = ""
' First name is You, so it is unnecessary to keep
no_1st_flag = TRUE
For Each oUser In oChat.Members
If no_1st_flag Then
no_1st_flag = FALSE
Else
names = names & "_" & oUser.FullName
End If
Next
get_file("chat" & names & ".txt")
chat_file.WriteLine(vbNewLine & "==== CHAT HISTORY (" & Replace(names, "_", "") & ") ====" & vbNewLine)
line_count = line_count + oChat.Messages.Count
' Fix by an anonymous commenter
If oChat.Messages.Count > 0 Then
For Each oMsg In oChat.Messages
' Fix by Vadim Kravchenko
On Error Resume Next
chat_file.WriteLine(oMsg.FromDisplayName & " (" & oMsg.Timestamp & "): " & oMsg.Body)
Next
End If
chat_file.Close
Next
WScript.Echo "Backup was finished (" & line_count & " line saved). You can find your chats in: ./" & folder_to_save
' Garbage collection
SET chat_file = NOTHING
SET folder_to_save = NOTHING
SET oFSO = NOTHING
SET oSkype = NOTHING
' Access to a file given by name
Sub get_file(file_name)
' Parameter fix by: rommeech
Set chat_file = oFSO.OpenTextFile(folder_to_save & "/" & file_name, 8, True, -1)
End Sub
' Find an appropriate directory the logs to save, however, to avoid collision with former dirs
Sub set_next_free_dir()
If oFSO.FolderExists(folder_to_save) Then
ext = 1
While oFSO.FolderExists(folder_to_save & "_" & ext) And ext < 100
ext = ext + 1
Wend
folder_to_save = folder_to_save & "_" & ext
End If
oFSO.CreateFolder(folder_to_save)
End Sub
Chỉ cần lưu nó dưới dạng .vbs
tập tin và chạy nó. Sau đó, lần đầu tiên, Skype sẽ hỏi bạn về quyền kết nối API Skype, vì vậy chỉ cần nhấp vào OK. Sau đó, nó sẽ tạo một thư mục được gọi SkypeChatHistory
và một số tệp trong đó sẽ có lịch sử trò chuyện của bạn.
main.db
và có thể xuất trò chuyện với chương trình python hoặc trực tiếp với chương trình có thể đọc cơ sở dữ liệu sqlite3, thực hiện truy vấn hoặc chọn thông qua tùy chọn giao diện đồ họa . Tôi đã viết chi tiết hơn trong câu trả lời dưới đây.