lRem's blog


Eksportowanie historii z Gajima

Wpis na 0. poziomie, wysłany 26 stycznia 2010 o 20:57:52

Mój ulubiony klient Jabbera trzyma logi w SQL. To raczej dobrze niż źle. Jednak w tym układzie nie można po prostu przekazać komuś pliku z jego historią. Nie będzie to prosty grep. Jeśli chcemy poratować kogoś częścią swojej historii rozmów, trzeba użyć czegoś w stylu poniższego:

sqlite3 logs.db 'select strftime("%Y/%m/%d %H:%M:%S", m.time, "unixepoch"), kind, message from logs m join jids j on m.jid_id==j.jid_id where jid like "Ty@Twoja.domena" and m.time > 1234567890 and m.time < 1325476870;' | sed -e 's/|4|/ <Ty>/' | sed -e 's/|0|/ *Ty* /' | sed -e 's/|6|/ <ja>/' > logi.txt

Oczywiście wypada podmienić Ty@Twoja.domena na JID rozmówcy, Ty na jego nicka, ja na swojego i obie duże liczby na odpowiednie timestampy.


Komentarze do notki Eksportowanie historii z Gajima

  1. 26 stycznia 2010 o 21:23:04

    nie jestem pewien ale chyba wersja beta tlena na linuxa też ma archiwum w sql... ?

  2. 26 stycznia 2010 o 21:23:42

    Nie wiem, nie mam Linuksa chwilowo ;)

  3. 27 stycznia 2010 o 13:36:59

    Tych trzech sedów nie da się zamienić na jednego? Na oko:

    sed -e 's/|[46]|/ /;s/|0|/ *Ty* /'

    Ale nie mam żadnego pliku źródłowego by móc potwierdzić.

  4. 27 stycznia 2010 o 13:43:52

    LoL, nie zauważyłem wcześniej, że wcięło mi kawałek kodu. Teraz widać, że nie aż tak prosto. Ale owszem, można to sprowadzić do jednego. Tylko ja wolę konstruować rurki krok po kroku, więc w tej wklejce widać kolejność w jakiej interpretowałem komunikaty ;)

    Jak by już to optymalizować, to wypadałoby zacząć od SQL-a.

Dodaj komentarz: