database - 可以将某个人的 Skype 聊天日志从他们的应用程序数据中提取到我的中吗?

标签 database chat history skype

我刚刚意识到我在格式化电脑时没有备份我的 Skype 应用程序数据文件夹。有一个我很喜欢的人的聊天记录,现在已经丢失了。我知道有一些方法可以通过数据库查看器检查聊天日志(例如: Is there a way to access Skype IM logs? ),但这不是我想要的。

相关人员是否可以与我分享我们的聊天记录,以便我可以将其插入我的 Skype 应用程序数据文件夹,以便我可以在 Skype 中恢复我们的历史记录?

感谢任何帮助。

编辑:以我有限的数据库知识,我正在思考这样的事情:按联系人对其他人的 main.db 文件(消息)进行排序,过滤掉我的名字,提取它们并以某种方式将这些记录插入我自己的 main.db文件。但当然,记录会被逆转。

最佳答案

Skype DB 文件位置取决于您使用的操作系统和 Skype 版本,但您始终可以搜索您知道必须位于 DB 文件内的消息部分。

例如,我有 Windows 10,我知道在数据库中必须有一个字符串“all that we can use one fresh Droplet”,所以我使用 TotalCommander ALT+F7(在下方勾选“查找文本”并输入字符串) 。但您也可以在 Windows fileseek.ca 或任何其他工具中使用。在 Linux 中 grep -rnw '/' -e 'your string here'(以及其他操作系统 Google)。

From here我们得到了很多有用的信息,例如旧版 Skype 版本的默认位置是:C:\Users\Admin\AppData\Roaming\Skype\yourname 而我最新的 Skype 版本的数据库文件位于:C :\Users\MYNAME\AppData\Local\Packages\Microsoft.SkypeApp_kzf8qxf38zg5c\LocalState\s4l-myusername.db

然后获取 SQLite 浏览器 - 例如 sqlitebrowser.org 并打开该文件。在旧版 Skype 中,您需要浏览表“消息”,在新版 Skype 中,您需要浏览表 "messagesv12" 。您可以导出所需的聊天并将其导入到另一个数据库文件中。您需要的大多数有用数据可能位于 JSON 格式的第二列“nsp_data”中。您可以在该列过滤区域的顶部键入您想要聊天历史记录的 Skype 用户名。使用此工具,您可以导出并导入到另一个数据库文件。

我个人更喜欢将所有数据获取到 MySQL,这样我就有单独的日期/时间、消息作者、对话伙伴和消息内容列。 In this answer ,我获得了用于更新的 Skype 聊天历史记录的 PHP 代码,但由于我还有一些旧的 Skype 数据库格式,我还编写了一个代码来从那里获取数据:

$db = new SQLite3('db/main.db');
$results = $db->query('SELECT id, chatname, author, from_dispname, timestamp, body_xml FROM Messages');
while ($row = $results->fetchArray()) {
    if (strpos($row[5], $row[1]) !== false) $empty = 1; //In Skype there's many body XML's that just contain chat name. Maybe just adding contact or call?
    else {
        $empty = 0;
        $datetime = date("Y-m-d H:i:s", $row[4]); //I need date/time instead timestamp
        echo 'ID: ' . $row[0] . ', Chatname: ' . $row[1] . ', Author: ' . $row[2] . ', From displayname: ' . $row[3] . ', Date/time: ' . $datetime . ', Message: ' . $row[5] . '<br>---------<br>';

        //var_dump($row);
    }
}

关于database - 可以将某个人的 Skype 聊天日志从他们的应用程序数据中提取到我的中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40038676/

相关文章:

android - 需要为 iOS 和 Android 实现即时消息?

delphi - 如何在两台计算机之间发送字符串?

testing - "history"和 "retries"在 Allure 中到底意味着什么?

search - eshell 搜索历史

google-chrome - 是否可以查看Chrome历史记录的ip地址而不是url?

mysql - 是否可以从 Electron 应用程序将查询发送到在线数据库?

python - 为什么聊天应用程序必须是异步的?

php - Zend 子查询参数

node.js - 使用 sequelize 和 node js 自动生成 CRUD

mysql - 为 MySQL 选择数据类型?