mirror of
https://github.com/simplex-chat/simplex-chat.git
synced 2024-12-17 17:20:21 +01:00
2.5 KiB
2.5 KiB
| Zaktualizowano 31.01.2023 | Języki: PL, EN, FR, CZ |
Dostęp do wiadomości w bazie danych
Odszyfrowywanie baz danych
Aby zobaczyć dane z bazy danych musisz je najpierw odszyfrować. Zainstaluj sqlcipher za pomocą swojego ulubionego menedżera pakietów i uruchom następujące polecenia w katalogu z bazami danych:
sqlcipher files_chat.db
pragma key="youDecryptionPassphrase";
# Upewnij się, że działa dobrze
select * from users;
Jeśli zobaczysz Parse error: no such table: users, upewnij się, że wpisałeś poprawne hasło i zmieniłeś hasło z losowego w aplikacji na Androida (jeśli oczywiście masz tę bazę z urządzenia z Androidem).
Zapytania SQL
Możesz wykonywać zapytania do direct_messages, group_messages i all_messages (lub ich prostszych odpowiedników direct_messages_plain, group_messages_plain i all_messages_plain), na przykład:
-- możesz umieścić te lub preferowane ustawienia w ~/.sqliterc
-- aby zachować ciągłość sesji klienta sqlite3
.mode column
.headers on
.nullvalue NULL
-- proste podglądy na wiadomości bezpośrednie, grupowe i all_messages
-- z deduplikacją wiadomości użytkownika dla grupy i all_messages;
-- tylko obsługa zdarzeń czatu "x.msg.new" ("nowa wiadomość") - filtruje zdarzenia serwisowe;
-- msg_sent ma wartość 0 dla odebranych, 1 dla wysłanych
select * from direct_messages_plain;
select * from group_messages_plain;
select * from all_messages_plain;
-- zapytanie o inne szczegóły historii czatu za pomocą zwykłego SQL, na przykład:
-- pliki, które zaoferowałeś do wysłania
select * from direct_messages where msg_sent = 1 and chat_msg_event = 'x.file';
-- wszystko co catherine wysłała związane z kotami
select * from direct_messages where msg_sent = 0 and contact = 'catherine' and msg_body like '%cats%';
-- cała korespondencja z Alice w #team
select * from group_messages where group_name = 'team' and contact = 'alice';
-- zbieranie danych z czatu
select contact_or_group, num_messages from (
select
contact as contact_or_group, count(1) as num_messages
from direct_messages_plain group by contact
union
select
group_name as contact_or_group, count(1) as num_messages
from group_messages_plain group by group_name
)
order by num_messages desc;