查看完整的 Skype 聊天历史记录

查看完整的 Skype 聊天历史记录

我在 Mac OS X 10.5.8 上安装了 Skype 2.8。

在聊天菜单下有一个名为“最近聊天”的选项。通过这个选项,我可以看到最近的聊天记录,但看不到以前的聊天记录。

我知道较旧的聊天记录已保存,因为它们位于 中~/Library/Application Support/Skype/username/chatmsg256.dbb。将此文件放入文本编辑器后,其中包含我之前所有 Skype 聊天的文本聊天信息。但它存储在一种未知的文件格式中,我不知道如何解析。

Skype 是否有内置日志查看器(如 Adium 的),我可以使用它来访问这些旧日志?

答案1

我不确定这是否表明全部的历史记录,但请尝试以下操作。无论联系人是在线还是离线,都会弹出聊天窗口。

点击蓝色聊天按钮

然后点击“查看早期消息:”下的“全部”。

点击全部

或者,点击联系人的齿轮图标并选择“查看聊天记录”。这将生成一个 html 文件,并在您的网络浏览器窗口中打开。

我不确定这是否显示了所有的历史记录,原因是我不完全记得我在这台电脑上的聊天记录是什么时候开始的。

答案2

Skype 将聊天历史记录存储在 SQLite 数据库中:~/Library/Application Support/Skype/YourSkypeName/main.db。您可以使用命令行sqlite3工具查看聊天记录。

找出聊天伙伴的用户名

终端中的以下命令(我假设您正在使用 shell bash)列出了所有聊天伙伴的用户名:

sqlite3 /Users/danielbeck/Library/Application\ Support/Skype/YourSkypeName/main.db 'SELECT DISTINCT(dialog_partner) FROM Messages;'

提取与特定聊天伙伴之间的所有消息

选项 A. 写入终端

要打印与某个聊天伙伴发送的所有消息(theOtherPersonsUserName),请使用以下命令:

sqlite3 /Users/danielbeck/Library/Application\ Support/Skype/YourSkypeName/main.db "SELECT author, from_dispname, datetime(timestamp, 'unixepoch') as date, body_xml FROM Messages where dialog_partner = 'theOtherPersonsUserName' ORDER BY timestamp;"

这将按时间顺序每行打印一条消息,发送用户名、显示名称、日期和文本,如下所示:

danielbecks-用户名|Daniel Beck|2012-02-03 08:47:53|只是测试一些东西

选项 B. 写入文件

您可以将此聊天记录直接写入文件。运行以下命令将记录写入theOtherPersonsUserName文件theOtherPersonsUserName.log

sqlite3 /Users/danielbeck/Library/Application\ Support/Skype/YourSkypeName/main.db "SELECT author, from_dispname, datetime(timestamp, 'unixepoch') as date, body_xml FROM Messages where dialog_partner = 'theOtherPersonsUserName' ORDER BY timestamp;" > "theOtherPersonsUserName.log"


当然,您也可以main.db在任何 SQLite 数据库查看器中打开并从那里开始。

答案3

只想提供一些更易于使用和最新的查看 Skype 日志的方法:

答案4

从 Mac 上的 Skype 8 开始,数据库文件的路径发生了变化。如下所示:

~/Library/Application Support/Microsoft/Skype for Desktop/databases

参考 :https://answers.microsoft.com/en-us/skype/forum/all/skype-on-mac-blank-screen-at-startup/4e63b629-cbb4-41d6-94e2-94c17bba097e

相关内容