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をご招待いただきありがとうございます



All Articles