Киби.ru

Живой сайт об актуальных проектах

User Tools

Site Tools


notes:skype

Skype - чтение логов

По материалам заметки на Хабре

Задача: найти в логах скайпа нужные сообщения.

Решение: Скайп хранит свои логи в базе формата SQLite, файл базы main.db находится в папке c:\Users\<Username>\Application Data\Skype\<Skype Login>\. Базу можно скопировать при выключенном Скайпе и открыть с помощью DB Browser for SQLite.

В таблице Contacts находятся все контакты, причем даже те, что были удалены, и уже не показываются в клиенте:

SELECT skypename, 
       fullname, 
       given_displayname, 
       birthday, 
       CASE gender WHEN 1 THEN 'Мужской' WHEN 2 THEN 'Женский' ELSE 'Не указан' END AS "Пол", 
       CASE availability WHEN 0 THEN 'Удален' WHEN 8 THEN 'Не предоставил данные' ELSE '' END AS "Доступность",
       strftime('%d.%m.%Y %H:%M:%S',lastonline_timestamp, 'unixepoch', 'localtime') AS "Последний раз был в сети"
  FROM contacts

В таблицах Calls и CallMembers содержатся, соответственно, история звонков и их участников:

SELECT calls.id AS "ID разговора",
       COALESCE(contacts.displayname, accounts.fullname) AS "Инициатор",
       strftime('%d.%m.%Y %H:%M:%S',calls.begin_timestamp, 'unixepoch', 'localtime') AS "Дата начала",
       TIME(calls.duration, 'unixepoch') AS "Длительность",
       callmembers.dispname AS "Подключенный участник",
       strftime('%d.%m.%Y %H:%M:%S',callmembers.start_timestamp, 'unixepoch', 'localtime') AS "Дата подключения",
       TIME(callmembers.call_duration, 'unixepoch') AS "Длительность подключения"
  FROM calls
       INNER JOIN callmembers ON calls.id = callmembers.call_db_id
       LEFT  JOIN contacts ON calls.host_identity = contacts.skypename
       LEFT  JOIN accounts ON calls.host_identity = accounts.skypename

И, наконец, в таблицах Conversations и Messages содержатся данные переписки и сами сообщения:

SELECT conversations.id AS "ID переписки", 
       conversations.displayname AS "Участники переписки", 
       messages.from_dispname AS "Автор сообщения",  
       strftime('%d.%m.%Y %H:%M:%S',messages.timestamp, 'unixepoch', 'localtime') AS "Время сообщения", 
       messages.body_xml AS "Текст сообщения"
  FROM conversations
       INNER JOIN messages ON conversations.id = messages.convo_id
ORDER BY messages.timestamp
You could leave a comment if you were logged in.
notes/skype.txt · Last modified: 2016/07/04 17:40 by kibi

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki