我想在 Skype 应用程序之外阅读我的 Skype 消息存档。并且能够以某种方式导出它(除了从我的消息中复制粘贴),据我所知,Skype 只提供 30 天或存档。
有人在使用应用程序来存档/导出 Skype 消息吗?
您还可以查看 Skype 的个人资料数据库(%USERDIR%\Application Data\Skype\%your profile name%\main.db),它基本上是 SQLite 数据库,看看您可以从中获得什么。如果您使用的是Windows 8 及更高版本,则路径为%USERDIR%\AppData\Local\Packages\Microsoft.SkypeApp\Localstate\ %your_skype_profile_name%\main.db
我会给你一个关于桌子的打击:
这些表很宽,某些字段的使用并不那么明显,但我想你明白了。
现在来吧,这是 Stackoverflow,让我们来了解一下技术,好吗?让我们放下幼稚的 jpeg、gui 工具和电子表格伪代码,直奔问题的核心!
[拳头撞击]
来源:https ://coolaj86.com/articles/searching-skypes-sqlite-database/
首先,您必须为您的用户找到正确的 Skype 数据库:
ls ~/Library/Application\ Support/Skype/
sqlite3 ~/Library/Application\ Support/Skype/<<YOUR_USER_NAME>>/main.db
您需要查看可用的表格及其描述:
.tables " see the short table list
.schema Contacts " all about the Contacts table
.schema Messages " all about the Messages table
您可能需要使用良好的 ol'ctrl+f
在输出中搜索time
,author
和username
.
然后你必须深入研究 SQL ......
" List the 25 most recently contacted contacts
SELECT skypename, lastused_timestamp FROM Contacts ORDER BY lastused_timestamp DESC LIMIT 25;
" List the 100 most recent messages
SELECT id, convo_id, timestamp, type, author, body_xml FROM Messages ORDER BY timestamp DESC LIMIT 100;
" List the 100 most recent conversations (and all participants)
SELECT last_activity_timestamp, identity, type, given_displayname, displayname FROM Conversations ORDER BY last_activity_timestamp DESC LIMIT 100;
" Search for a message with the text 'home'
SELECT author, body_xml FROM Messages WHERE body_xml LIKE '%HOME%' ORDER BY timestamp ASC;
" Search for a contact named 'john'
SELECT (displayname || ' : ' || skypename || ' : ' || fullname) as names FROM Contacts WHERE names LIKE '%JOHN%' ORDER BY lastused_timestamp ASC;
(注意注释带有“,而不是#)
注意
Messages
指一行文字,例如“What's up?”Conversations
指的是两方或多方之间的消息集合。Chats
是指用“昨天”、“7 天前”、“3 月 24 日”等标签分隔的逻辑时间间隔我推荐两种方法来做到这一点:
A.最简单的方法是使用Skyperious。适用于 Windows、Linux 和 Mac。你可以做到这一切
这是搜索功能:
这是导出的示例输出:
B.更难,但自然更灵活的方法是安装一个 SQLite 浏览器,比如这个,然后自己导出消息。您可以通过查看这篇文章来了解有关如何执行此操作的一些信息,或者您也可以搜索其他类似的文章(AlexS 的回答也提供了线索)。您将需要一些 SQL 经验才能使用此选项。
看看这个:http ://web.archive.org/web/20061019071406/https://developer.skype.com/Docs/ApiDoc/CHAT_object
CHATMESSAGES - list of chatmessage identifiers
CHATMESSAGES - all messages IDs in this chat, for example CHAT #test_l/$6a072ce5537c4044 CHATMESSAGES 34, 35, 36, 38, 39
我对 Skype 的历史也有同样的问题,每个人都想玩弄这些历史,原因有很多。我想与您分享我的经验,因为我不是专家,但这可能会对某人有所帮助。
无论你有台式机还是智能设备,Main.db 文件都是 Skype History 的核心,它是 Sql 3 文件。
怎么获得?????????????
1.桌面:
关闭 Skype 并在以下位置找到文件 Main.db C:/Users/[your computer username]/App Data/Roaming/Skype/[your Skype Id]
(请在 Win7 上查看此文件,对于 XP 和其他人,您必须找到该文件)。
在其他驱动器上备份此文件。
使用 SQLite 或 SQLite Expert 等任何 sql 软件将文件作为数据库打开。
在“数据”菜单中,您可以在程序左侧查看所有历史信息,例如消息、通话、对话和许多详细信息。
您将在消息中找到传出和传入的 IM 消息。
单击右键并转到选择列并选择感兴趣的列,例如消息文本和时间戳的 ID 用户名 body-xml。
您可以通过勾选必填字段来缩短您的选择。
单击右键并选择文本编辑,然后您可以为所选字段执行任何您需要的操作,添加删除等。
您不需要保存任何内容,因为它会自动保存。
对于使用不同类型的日期格式的时间步非常重要,例如,您可以找到日期时间 23/12/2009 18:23 的时间戳 1261610607,
那么如何调整时间呢?
您可以简单地打开 Excel 工作表并粘贴方程式:
=IF(H6="","",(H6/86400)+25569+(-5/24))
就这样。
现在重新打开它,然后查看聊天历史记录。
2.对于智能设备(以Ipad为例):(您必须使用台式机或笔记本电脑寻求帮助:
下载并安装 iExplorer for iPad 或其他浏览软件。
连接您的设备,您将看到大部分文件。
选择APPs/Skype/Library/App Support/Skype/[your Skype ID]
。
通过单击右键并导出文件将文件发送到您的桌面。
重复上面从 2 到 11 所示的步骤,就像桌面程序一样。
完成编辑后关闭数据库并从 iExplorer 指向您的 Skype 用户并选择Add File
,浏览到修改后的文件并再次将其发送到 iPad。
启动 Skype 并查看结果。