Начиная с версии 4.0 Skype изменил свой внутренний формат базы данных SQLite(по крайней мере Windows-клиента, пока не может проверить другие платформы).Кроме того, из более высокой производительности он также позволяет теперь любой любознательный человек, чтобы вырыть немного в внутренности и локальной учетной записи Skype.
Сначала вам нужно клиенту SQLite для подключения к базе данных. SQLite Database Browser является хорошим выбором для этой цели. Затем вам необходимо открыть Skype базы данных в ней. Выключить Skype (вы не сможете открыть файл, в противном случае) и загрузить файл main.db из ваших документов и настроек \ пользователь \ Application Data \ Skype \ <Skype-account> каталог. Вы можете просматривать вокруг в структуру базы данных, обратите внимание на содержимое таблиц и даже использовать SQL редактор для запроса к базе данных. Это то, что мы собираемся нужно.
Теперь начинается самое интересное:) В следующих утверждений заменить значения в угловых скобках, например. <skypeid> с соответствующим правильные значения. Предположим, вы хотите, чтобы отобразить все сообщения, которые обменялись с кем-то. Осторожно, что это работает только получает сообщения, которые обмениваются в приватном чате с кем-то и не работает на чатах с более чем двумя участниками (вы в том числе).
SELECT author, timestamp, body_xml
FROM messages
WHERE dialog_partner = '<skypename>'
=======================================================================
Или вы хотите, чтобы перечислить все чаты, там, где когда-либо были больше, чем вы и ваш собеседник. Таким образом, чтобы перечислить все группы чатов:
SELECT name, participants, posters, activemembers, last_change
FROM chats
WHERE type = 4
=======================================================================
Вы могли также быть заинтересованы во всех предыдущих тем, которые были установлены на вашем групповом чате:
SELECT chatname, timestamp, body_xml
FROM messages
WHERE chatmsg_type = 5
AND chatname = <chatname> -- get names from the previous query
=======================================================================
К этому моменту вы должны иметь признал, что временные метки и изменениезначений на самом деле не читается даты в базе данных. Не волнуйтесь, это незашифрованы. Его просто хранится в виде обычного временных меток UNIX. Вы можете легко преобразовать его читаемым время и дату с помощью, напримеронлайн Timestamp UNIX Для Стандартный калькулятор времени
Когда мы уже с временными метками, вы, возможно, также хотят знать, когда кто-то также был онлайн в последний раз, когда Вы были онлайн, а также:
SELECT skypename, given_displayname, lastonline_timestamp
FROM contacts
=======================================================================
До сих пор мы принесла немного интересной информации из базы данных. Но теперь мы хотим использовать наши l33tness бит и изменить наше настроение сообщение в наш профиль, чтобы включить некоторые форматирование:
UPDATE accounts
SET profile_timestamp = current_timestamp, rich_mood_text = 'I feel <b>bold</b> now.'
WHERE skypename = '<skypename>'
=======================================================================
Не забудьте сохранить базу данных впоследствии! Это заявление обновлений временных меток профиля с текущим временем и добавляет некоторые форматирование нашим статус-сообщение. В этом случае есть некоторые смелые внутри текста. Вы можете посмотреть еще несколько возможностей(например, смайлики, шрифт окраски и т.д.) непосредственно в документации Skype API (с). Кроме того, я обнаружил, что с помощью гиперссылок <a>-теги работ, а также изменение размера шрифта с размером атрибут <font>-тегов.
Обновление 2010-02-14: Тем временем вы можете изменить ваше настроение-сообщение более легко, используя свой интернет Skype сообщение редактору настроение.
Можно также удалить чат истории только некоторые Skype-контакты, используя следующее заявление:
DELETE FROM messages
WHERE skypename = '<skypename>'
=======================================================================
Опять же, не забудьте сохранить изменения впоследствии.
Обновление 2010-10-29: Skype упал поддержку "/ htmlhistory", так как Skype4.0.Альтернативный способ, чтобы получить все сообщения чата:
SELECT timestamp, author, chatmsg_type, body_xml
FROM messages
WHERE chatname = '<chatname>'
ORDER BY id ASC;
=======================================================================
Вы можете узнать имя чата, когда вы пишете команду "/ showname" в чат-окно.
Я буду продолжать играть с базой данных и, если я найду более интересные вещи, я буду держать объявление обновляется. Или я напишу новую в зависимости оттого, что я выкопать:)