Plugin: logsqlite

Wstęp

Plugin ten służy do zapisywania informacji o otrzymanych i wysłanych wiadomo¶ciach, a także opcjonalnie zmianach statusu użytkowników z listy kontaktów.

Sposób użycia

Aby skorzystać z pluginu, należy ustawić zmienn± logsqlite:log na 1. Dane będ± logowane do pliku, który jest okre¶lony przez zmienn± logsqlite:path - domy¶lnie ~/.ekg2/logsqlite.db. Je¶li ten plik nie istnieje, to zostanie stworzony, razem z odpowiedni± struktur±. Po ustawieniu opcji logsqlite:log_status logowane będ± także zmiany statusów osób z listy użytkowników.

Odpowiednie ustawienie zmiennej logsqlite:path pozwala na logowanie do różnych plików zależnie od daty i od sesji. Jest to przydatna opcja, ponieważ baza może szybko urosn±ć, spowalniaj±c działanie pluginu. W ¶cieżce wystarczy umie¶cić odpowiednie znaki, które zostan± podmienione na generowane na bież±co warto¶ci. %S zostanie podmienione na nazwę sesji, a %Y, %M i %D zostanie podmienione na odpowiednio rok, miesi±c i dzień odebrania wiadomo¶ci lub statusu.

Przykład 2.1. Przykłady ustawień zmiennej logsqlite:path

~/.ekg2/logsqlite/%S.db
np. /home/users/leafnode/.ekg/logsqlite/gg:123.db
~/.ekg2/logsqlite/%S/%Y-%M-%D.db
np. /home/users/leafnode/.ekg2/logsqlite/jid:fr@h.pl/2004-05-31.db
/tmp/%S-%Y.%M.%D.db
np. /tmp/gg:31337-2004.05.31.db

ekg2 nie zapewnia możliwo¶ci przeszukiwania stworzonej bazy danych, oprócz polecenia logsqlite:last. Wy¶wietla ono ostatnio zalogowane wiadomo¶ci - domy¶ln± ilo¶ć wy¶wietlanych wiadomo¶ci okre¶la zmienna logsqlite:last_limit. Opcjonalnie, do polecenia można podać parametr -n [liczba] okre¶laj±cy na bież±co ile wierszy ma być wy¶wietlone. Drugi opcjonalny parametr to identyfikator użytkownika lub nazwa użytkownika z bież±cej sesji, którego wiadomo¶ci maj± być wy¶wietlane.

Domy¶lnie polecenie logsqlite:last wy¶wietla wiadomo¶ci w bież±cym oknie. Można to zmienić przez ustawienie opcji logsqlite:last_in_window i logsqlite:last_open_window. Pierwsza z tych zmienny okre¶la, czy wiadomo¶ci wy¶wietlane przez logsqlite:last maj± być wy¶wietlane w okienku z rozmow± z danym użytkownikiem (wiadomo¶ci bez wskazania użytkownika będ± wy¶wietlane w oknie statusu). Po ustawieniu drugiej zmiennej na 1 ekg2 będzie otwierało okno z rozmow± z danym użytkownikiem je¶li ono nie istnieje.

Struktura bazy danych

Tabela log_msg


   session text - nazwa sesji
   uid text - id użytkownika, który wysłał wiadomo¶ć b±dĽ j± odbierze
   nick text - pseudonim
   type text - typ wiadomo¶ci ("chat", "msg", "sys")
   sent boolean - czy wiadomo¶ć jest wysyłana czy odbierana
   ts timestamp - czas odebrania wiadomo¶ci
   sentts timestamp - czas wysłania wiadomo¶ci
   body text - tre¶ć wiadomo¶ci

         

Tabela log_status


   session text - nazwa sesji
   uid text - id użytkownika zmieniaj±cego stan
   nick text - pseudonim
   ts timestamp - czas zaj¶cia zmiany stanu
   status text - stan
   desc text - opis


      

Polecenia

last

Parametry.  [opcje] [uid]

KrĂłtki opis.  wyĹ›wietla ostatnie zalogowane wiadomoĹ›ci

  -n, --number <liczba>  Ilość wiadomości do wyświetlenia

  -s, --search <tekst>   Wyświetl tylko wiadomości zawierające podany
                         tekst
  
  <uid>                  UID użytkownika którego wiadomości mają być
                         wyświetlone

laststatus

Parametry.  [opcje] [uid]

KrĂłtki opis.  wyĹ›wietla ostatnie zalogowane zmiany statusĂłw

  -n, --number <liczba>  Ilość statusów do wyświetlenia

  -s, --search <tekst>   Wyświetl tylko statusy zawierające podany
                         tekst
  
  <uid>                  UID użytkownika którego statusy mają być
                         wyświetlone


Zmienne

log

Typ.  liczba

DomyĹ›lna wartość.  0

określa, czy plugin loguje wiadomości

log_ignored

Typ.  bool

DomyĹ›lna wartość.  0

określa, czy logujemy ignorowane wiadomości (NFY).

log_status

Typ.  bool

DomyĹ›lna wartość.  0

określa, czy będą logowane zmiany stanu ludzi z listy (zmienna
,,log'' musi być różna od 0)

path

Typ.  tekst

DomyĹ›lna wartość.  ~/.ekg2/logsqlite.db

ścieżka do pliku z bazą danych. Jeśli plik nie istnieje, to zostanie stworzony.
Rozpoznawane znaki:
* %S - sesja nasza
* %Y, %M, %D - rok, miesiąc, dzień
Przykłady:
- logowanie do katalogĂłw wg. sesji:
    log_path = "~/.ekg2/logsqlite/%S.db"
  np. /home/users/leafnode/.ekg/logsqlite/gg:123.db
- logowanie do katalogow wg. sesji (katalog) i daty (plik):
    log_path = "~/.ekg2/logsqlite/%S/%Y-%M-%D.db"
  np. /home/users/leafnode/.ekg2/logsqlite/jid:fr@h.pl/2004-05-31.db
- logowanie do /tmp z sesjÄ… i datÄ…:
    log_path = "/tmp/%S-%Y.%M.%D.db"
  np. /tmp/gg:31337-2004.05.31.db

last_limit_msg

Typ.  liczba

DomyĹ›lna wartość.  10

maksymalna ilość wiadomości wyświetlanych przez polecenie
logsqlite:last

last_limit_status

Typ.  liczba

DomyĹ›lna wartość.  10

maksymalna ilość wiadomości wyświetlanych przez polecenie
logsqlite:laststatus

last_in_window

Typ.  bool

DomyĹ›lna wartość.  0

określa czy wiadomości wyświetlane przez polecenie będą wyświetlane w
oknie rozmowy z daną osobą. To, czy nieistniejące okienko będzie
otwierane, określa zmienna logsqlite:last_open_window

last_open_window

Typ.  bool

DomyĹ›lna wartość.  0

określa czy w przypadku wyświetlania wiadomości danej osoby przez
lastlog w okienku rozmowy z nią, to okienko będzie otwierane jeśli
jeszcze nie istnieje (ktoś zrozumiał co tu napisałem?)

last_print_on_open

Typ.  bool

DomyĹ›lna wartość.  0

określa, czy po otwarciu nowego okna rozmowy, logsqlite wypisze w nim
last_limit ostatnich wiadomości powiązanych z rozmówcą