web-dev-qa-db-ja.com

すべてのSkype履歴から検索

すべてのチャット履歴で特定の文字列を検索する方法は?
СTRL+ F-1つのチャット内を検索しますが、たくさんあるので、保存されているすべてのチャットで何かを見つけたいですか?

20
coms

連絡先リストまたは最近のリストで、会話履歴を表示する連絡先またはグループをクリックするだけで、会話履歴が表示されます。

すべてのチャット履歴が保存されるmain.dbデータベースファイル。 main.dbは標準のSQLiteデータベースファイルであり、任意のSQLiteブラウザアプリケーションを使用して開くことができます。ただし、無料のアプリケーションがあり、Skypeのチャットを読み、データを呼び出すように特別に設計されています– SkypeLogView

Main.dbファイルは、次のいずれかに保存されます(OSによって異なります)。

Windows 7以降:C:\Users\%USERNAME%\AppData\Roaming\Skype\[Skype User Name]

Windows XPの場合:C:\Documents and Settings\%USERNAME%\Application Data\Skype\[Skype User Name]

以下はすべてのバージョンのWindowsで機能するはずです。それを実行プロンプトにコピーできます。

%APPDATA%\Skype\[Skype User Name]

Mac OS Xの場合:Library/Application Support/Skype/[Skype User Name]

将来的には、検討することをお勧めします SkyHistory

24
Dave

を使用して独自のSQLクエリを記述します。 SqliteBrowserは、Skypeデータベースを検索するため、サードパーティのSkype固有のツールを使用するよりも柔軟性と機能性に優れています。

たとえば、このクエリはすべてのチャットでテキスト文字列を検索し、メッセージが投稿された(ローカル)時間、メッセージ自体、チャットの名前(名前がある場合)、および誰がチャット。

select DISTINCT datetime(m.timestamp, 'unixepoch', 'localtime') as postedon, c.displayname as chatname, m.from_dispname as fromuser, m.body_xml as msgtext
from Messages m
INNER JOIN Conversations c ON m.convo_id = c.id
where m.body_xml LIKE '%my text%' --case insensitive
order by m.timestamp DESC
7
twasbrillig

Skyperious もチェックする価値があるかもしれません。 SkypeLogViewを介していくつかの機能があります。

  • CSVファイルからSkype連絡先に連絡先をインポートする
  • データベーステーブルを表示し、そのデータをエクスポートする
  • 任意のテーブルのデータを変更、追加、または削除する
  • 直接SQLクエリを実行する
  • 2つのSkypeデータベースのメッセージを同期する:異なるコンピューターでチャットの履歴を最新に保つか、欠落したメッセージを古いファイルから現在のファイルに復元します
  • チャット統計
7
Keegan

私は最近、Skypeの履歴を閲覧するための素晴らしいオンラインツールを見つけました: http://www.skypebrowser.com

プライバシーの問題を心配していない場合は、最善の解決策のようです。

3
holdenmcgrohen

Main.dbに対する次のクエリは私にとってはうまくいきます:

グループチャットを検索します

SELECT DISTINCT datetime(m.timestamp, 'unixepoch', 'localtime'), c.id, m.author, m.body_xml FROM
messages m
JOIN conversations c ON c.id = m.convo_id
WHERE c.type = 2 AND
m.body_xml NOT NULL
ORDER BY m.timestamp ASC

友達とのプライベートチャットを見つけます

SELECT DISTINCT datetime(m.timestamp, 'unixepoch', 'localtime'), m.author, m.body_xml FROM
messages m
JOIN conversations c ON c.id = m.convo_id
WHERE m.body_xml NOT NULL AND
c.identity LIKE '%YOUR.BUDDY.NAME.HERE%' --case insensitive
ORDER BY m.timestamp ASC

友だちとのプライベートチャットで特定の単語が見つかります

SELECT DISTINCT datetime(m.timestamp, 'unixepoch', 'localtime'), m.author, m.body_xml FROM
messages m
JOIN conversations c ON c.id = m.convo_id
WHERE c.identity = 'YOUR.BUDDY.NAME.HERE' AND
m.body_xml NOT NULL AND
m.body_xml LIKE '%YOUR.SEARCHED.Word.HERE%' --case insensitive
ORDER BY m.timestamp ASC

PS:あなたのバディ名はスカイプに表示されるものと異なる場合があるので、最初にこれをチェックしてください:

SELECT identity, displayname FROM conversations

identity列から1つ選択します

1
Wakan Tanka

SkyHistoryが機能しませんでした-68MBのSkypeログ用に設計されていないようです:)

最も強力なアプローチの1つは非常にシンプルでもあり、SQLiteクライアントを使用するだけです。ここに私は簡単なマニュアルを書きました: http://jehy.ru/articles/2014/05/26/searching-through-skype-history/

300を超える連絡先があり、それらの会話が重複している場合、単純なCtrl + Fアプローチでは何も見つけることが不可能であることを理解しています。

さいわい、SkypeはSQLiteデータベースを使用しており、Skypeに直接接続して直接検索することができます。したがって、次のことを行う必要があります。

1)SQLiteクライアントをダウンロードします(私は http://sqlitebrowser.org/ を使用しましたが、好きなクライアントをインストールできます)2)スカイプWebサイトに記述されている履歴ファイルを見つけます:

Windowsキーを押したままキーボードのWindowsキーを押し、Rキーを押して実行ウィンドウを表示します。 Windows 8でタッチスクリーンデバイスを使用している場合は、検索チャームから実行ウィンドウを表示できます。実行ウィンドウに%appdata%\ Skypeと入力し、Enterキーを押します。 Skype名にちなんで名付けられたフォルダを開きます。フォルダーでmain.dbファイルを探します。このファイルはチャットの履歴です。

3)SQLiteクライアントを使用してこのファイルを開きます。 4)データベーステーブル「メッセージ」を開く5)必要なメッセージを検索するSQLクエリを使用します。以下は、会話で「git」という単語を検索する例ですが、検索と順序付けに使用できるフィールドはたくさんあります。