2016-11-22 11 views
0

Я хочу организовать альбом со всеми фотографиями из группы Whatsapp. С корневым телефоном я загрузил незашифрованные базы данных whatsapp на свой компьютер.Где ссылки на каждый медиафайл в базе данных whatsapp

С Sqliteman на Ubuntu Я огляделся вокруг, особенно в msgstore.db и не мог найти все ссылки на изображения определенной группы.

С таблицей «chat_list» я увидел, что конкретное значение «key_remote_jid» соответствует группе, которую я хотел, и в базе данных «сообщений» я мог бы использовать этот «key_remote_jid», чтобы получить все сообщения, связанные с этой группой, с чем-то как:

select * from messages where key_remote_jid="[email protected]"; 

Кроме того, я могу отказаться от текстовых сообщений для того, чтобы сосредоточить внимание на средствах массовой информации, я хочу (фото и видео в основном) по

select * from messages where key_remote_jid="[email protected]" and not media_wa_type = 0; 

и некоторые из изображений, там есть имя файла в столбце «media_name», но они только те Я отправил.

Существует еще одна таблица под названием «media_refs», которая содержит много путей к изображениям и видео, но, похоже, включает только файлы, которые были перенаправлены на несколько чатов, и имеет ключ, который я не нашел, как относиться к таблица «сообщений».

Группа довольно старая (начиная с 2013 года), и представляется вероятным, что whatsapp обрабатывает свою базу данных с течением лет, поскольку есть несколько столбцов, которые последовательно {null} в прошлом, а не в последних сообщения (например, member_hash), а значение key_id, похоже, в какой-то момент изменит формат.

Однако у приложения Whatsapp нет проблем показывать мне файл с любого момента в прошлом и предоставить мне возможность открыть фактический файл с помощью программного обеспечения «Галерея», поэтому информация находится в моем телефоне где-то ,

Суть всего в том, что в основном у меня есть резервная копия, с которой я могу работать и уметь удалять изображения с моего телефона, и по-прежнему организовывать их так же, как и в этой группе.

ответ

2

Я нашел ссылку Whatsapp Images в колонке thumb_image таблицы messages как blob. Вы можете просмотреть blob в шестнадцатеричном формате и искать строки, которые могут выглядеть так: Whatsapp Images\IMG-20130101-WA0001.jpg. Я точно не знаю, где Whatsapp правильно хранит ссылки, но это работает для меня.

Вот как мне удалось извлечь ссылки:

select 
    _id, 
    media_mime_type, 
    substr(
     substr(thumb_image,instr(thumb_image,'IMG'),60) 
     ,instr(substr(thumb_image,instr(thumb_image,'IMG'),23),'IMG') 
     ,23) 
from `messages` 
where 
    `key_remote_jid` like '%<your desired contact>%' 
    and `media_mime_type` like '%image%'; 

я использую DB Browser for SQLite сделать это в Windows.

+0

Вау! спасибо, я думаю, что это так, я почти дал надежду. Тем не менее, я запускаю sqlite 3.7.9 и 3.7.13 на нескольких компьютерах, которые еще не имеют функции «instr». Поэтому я пытаюсь адаптировать скрипт, как это объясняется в нижней части этого: https://www.techonthenet.com/sqlite/functions/instr.php (но я получаю синтаксическую ошибку при первой замене instr для «где», я пытаюсь это понять лучше) – JunCTionS

+0

Хорошо, отказался от этого. Просто скачал предварительно скомпилированный двоичный файл: https://sqlite.org/download.html, и он работал красиво! Большое спасибо! – JunCTionS

+0

О, и в случае, если кому-то еще интересно, для видео будет выглядеть команда: выберите _id, media_mime_type, substr (substr (thumb_image, instr (thumb_image, 'VID), 60), instr (substr (thumb_image, instr) (thumb_image, 'VID'), 23), 'VID'), 23) из 'сообщений', где' key_remote_jid' как '% <ваш желаемый контакт>%' и 'media_mime_type' как%% видео%; – JunCTionS