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

  • Rebel (2010-01-26 21:23:04): nie jestem pewien ale chyba wersja beta tlena na linuxa też ma archiwum w sql… ?
  • Remigiusz ‘lRem’ Modrzejewski (2010-01-26 21:23:42): Nie wiem, nie mam Linuksa chwilowo ;)
  • Minio (2010-01-27 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ć.
  • Remigiusz ‘lRem’ Modrzejewski (2010-01-27 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.