Signal-Desktop:メッセージをエクスポートする方法は?

Signal-Desktop:メッセージをエクスポートする方法は?

メッセージをエクスポートするにはsignal-desktop

メールをバックアップしたい。

可能ですか?

ベストアンサー1

はい、可能です。

ファイルに保存するだけです<yourFilename>

sigBase="${HOME}/.config/Signal/";
key=$( /usr/bin/jq -r '."key"' ${sigBase}config.json );
db="${HOME}/.config/Signal/sql/db.sqlite";
clearTextMsgs="${sigBase}clearTextMsgs.csv";

/usr/bin/sqlcipher -list -noheader "$db" "PRAGMA key = \"x'"$key"'\";select json from messages;" > "$clearTextMsgs";

そしてそれを呼び出すことによってbash <yourFilename>。または実行可能にしてchmod 700 <yourFilename>直接呼び出します。./<yourFilename>

このスクリプトは、signal-desktopのデータベースキーを使用してsqlcipherすべてのjqメッセージを開き、復号化し、signal-desktopフォルダJSONに抽出します。clearTextMsgs.csv~/.config/Signal

jqキーを抽出するためにJSONをフィルタリングすることに加えて、~/.config/Signal/config.json重要な部分はここで発生します。

sqlcipher -list -noheader <DB> <SQL>

これには、定義と実際のSQL文()が<SQL>含まれています。PRAGMA keySELECT json FROM messages;

その後、人々はそれを使用してjqメッセージバックアップのすべてのキー/値にアクセスできます。

sqlcipherこれを行うには、次のものをインストールする必要がありますjq

sudo apt install sqlcipher jq

メモ:

allこれがすべてのメッセージを抽出している間、signal-desktopの「」が「」の意味を持つように指定する必要がありますall messages actually loaded。したがって、各メッセージを抽出するには、アクティブな連絡先のスライダを上に移動する必要があります。その後、Signalデスクトップは以前に利用できなかったメッセージをロードします(満足するまでバブリンスを繰り返します)。読み込むメッセージをできるだけ早く読み込みます。これはすぐに退屈することができます。すべての連絡先履歴に対してこれを行うことを忘れないでください。

しかし、メッセージ履歴をバックアップすることは技術的に可能ですが、実際には手動操作です。この問題に対する解決策は、クローン操作を使用して1日に1回、すべての最近のメッセージをバックアップすることです。これにより、重複した内容がここに含まれ、シグナルデスクトップを再起動するとメッセージが失われる可能性があります。

とにかく、プログラムで時々(それほど遠くはありませんが、読む:数ヶ月程度)、レコードを検索したい場合は、このアプローチは正しく機能します。

おすすめ記事