题
我想在 Skype 应用程序之外阅读我的 Skype 消息存档。并且能够以某种形式导出它(除了从我的消息中复制粘贴它之外),据我所知,Skype 只提供 30 天或存档。
有人使用应用程序来存档/导出 Skype 消息吗?
解决方案
您还可以查看 Skype 的个人资料数据库(%USERDIR%\Application Data\Skype\%你的个人资料名称%\main.db)这基本上是 SQLite 数据库,看看你能从中得到什么。如果您正在使用 Windows 8 及以上版本 路径是 %USERDIR%\AppData\Local\Packages\Microsoft.SkypeApp\Localstate\ %your_skype_profile_name%\main.db
我给你讲讲表格:
- “对话”——一次对话
- 通过 convo_id 字段链接到“对话”的“消息”
- “聊天”-保存的聊天列表,每个聊天都由对话组成
- “ChatMembers”- 聊天成员
这些表相当宽,某些字段的用法并不那么明显,但我想您已经明白了。
其他提示
来吧,这里是 Stackoverflow,让我们来了解一下技术,好吗?让我们抛开幼稚的 jpeg、GUI 工具和电子表格伪代码,直击问题的核心!
[拳头碰撞]
来源: https://coolaj86.com/articles/searching-skypes-sqlite-database/
查找您的 Skype 数据库
首先,您必须为您的用户找到正确的 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
然后你必须深入研究 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
指 2 个或更多方之间的消息集合。- 我认为
Chats
指的是用“昨天”、“7 天前”、“3 月 24 日”等标签分隔的逻辑时间间隔
我推荐两种方法可以做到这一点:
一个。的最简单的方法是使用 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和其他系统,您必须找到该文件)。在其他驱动器上备份该文件。
使用任何 SQL 软件(例如 SQLite 或 SQLite Expert 或其他)将文件作为数据库打开。
在“数据”菜单中,您可以在程序左侧查看历史记录的所有信息,例如消息、通话、对话以及许多详细信息。
您将在消息中找到传出和传入的 IM 消息。
单击右键并转到选择列,然后选择感兴趣的列,例如消息文本和时间戳的 ID 用户名 body-xml。
您可以通过勾选必填字段来缩短您的选择。
单击右键并选择文本编辑,然后您可以执行任何您需要的操作,添加删除等。对于选定的字段。
您无需保存任何内容,因为它会自动保存。
对于时间步非常重要,它使用不同类型的日期格式,例如您发现日期时间 23/12/2009 18:23 的时间戳 1261610607,
那么如何调整时间呢?
您只需打开 Excel 工作表并粘贴方程式即可:
=IF(H6="","",(H6/86400)+25569+(-5/24))
就这样。
现在再次打开它,查看聊天记录。
2.对于智能设备(以Ipad为例):(您必须使用台式机或笔记本电脑寻求帮助:
下载并安装 iPad 版 iExplorer 或其他一些浏览软件。
连接您的设备,您将看到大部分文件。
选择
APPs/Skype/Library/App Support/Skype/[your Skype ID]
.单击右键并导出文件将文件发送到桌面。
像桌面程序一样,重复上面所示的步骤 2 - 11。
完成编辑后关闭数据库并从 iExplorer 指向您的 Skype 用户并选择
Add File
, ,浏览到修改后的文件并将其再次发送到iPad。启动 Skype 并查看结果。