GMailオフラインデータベース。 輸出する

こんにちは、Habrasociety!

私は長い間、GMailからジャバーストーリーを引き出したいと思っていました(原則として、それは非常に便利ですが、追加の障壁なしで使用したいです)
トピックが目を引いたとき、 GTalkからコンピューターメッセージ履歴をダウンロードすることは嬉しかったが、抽出するために行われたかさばりと努力を見て、このゲームはろうそくに値しないと判断した。

したがって、私は別の方法で行くことに決め、Google Gears \ GMail Offlineを見つけました。


準備する


Gearsを最初に配置する必要がある

GMailにログインし、チャットにアクセスして、必要なチャットセッションをショートカット(たとえば、 export )でマークします。
次に、 Gmail Offline Settingsに移動し、( このコンピューターオフラインGmail有効にする)を選択して、ショートカットの設定を変更するリンクをクリックし、 エクスポートラベルの反対側をすべて配置します (残りはすべてダウンロードしないように[ いいえ]に設定できます)。
次に、変更保存し、 Gearsが必要なチェーンをローカルホストと同期するまで待機します

ベース


Firefoxディレクトリを歩いてみると、Google Gearsリポジトリが見つかりました。

一番下の行は、手紙とチャットがファイルにあるということです
%username% @ %servername% -GoogleMail @ %servername% #database
ここで、 %servername% -通常はgmail.comですが、ドメインのGoogleサービスの場合は、それぞれドメインになります。

注:ファイルは呼び出すことができ、...#データベース[1]および[2]または[番号]をまったく使用しないため、1つのファイルにチャットがない場合は、すべてを試す必要があります(名前に-bが付いているものを除く) 、 -t-u 、これは何らかのサービス情報であり、私たちはそれに興味はありません)

データベースファイル自体は%GearsDatabaseDir% /mail.google.com/http_80にあります
SSLを使用する場合は_80を_443にすることもでき、プラットフォームの%GearsDatabaseDir%ここにあります

判明したように、データベースはSQLite形式です。 さらに簡単です。 オフサイトからダウンロードされたsqlite3は、GMail Offlineのコアに到達するのに役立ちます。

引き出す


まず、必要なショートカットのメッセージがあるかどうかを確認します。
sqlite3 -line "user@gmail.com-GoogleMail@gmail.com#database" "SELECT l.`Label` as `label`,COUNT(*) as messages FROM `Labels` l, Messages m, MessageLabels ml WHERE ml.`LabelId`=l.`LabelId` AND m.`rowid`=ml.`MessageId` AND l.`Label`='export'"

取得するもの:
label = export
messages = 662

そのため、メッセージがあり、エクスポートを開始できます。

将来のHTMLチャットファイルのヘッダー(<html> <body>)とフッター(</ body> </ html>)を作成し、実行します。
sqlite3 -list -separator '\n\n' "user@gmail.com-GoogleMail@gmail.com#database" "SELECT '<h3>'|| datetime(m.`datems`/1000,'unixepoch','+3 hours') || '</h3>' || c.`c1Body` || '<br /><br />' FROM MessagesFT_content c, Messages m, MessageLabels ml, Labels l WHERE ml.`LabelId`=l.`labelId` AND c.`rowid`=ml.`MessageId` AND m.`MessageId`=c.`rowid` AND l.`Label`='export' ORDER BY m.`datems` ASC" > body.html

(+3時間はタイムゾーンに置き換えられます)

そして今では、ファイルを1つに「マージ」するだけです。
Windowsの場合:
copy /B header.tpl + body.html + footer.tpl history_export.html

(/ Bを配置しない場合、winxpの下には、最後に何らかのダム文字が残ります。何らかの理由でコピーします)

バッシュ:
cat header.tpl >> history_export.html
cat body.html>> history_export.html
cat footer.tpl >> history_export.html


それは簡単で、それだけです。 html2textを使用することもできます。これは、設計の量(CSSは使用されていません!)が与えられているため、少なくとも合理的です。

_________
Dreadatourをご招待いただきありがとうございます

Source: https://habr.com/ru/post/J80288/


All Articles