O ...

Memot to działający w sieci gadu-gadu programik, zajmujący się wysyłaniem powiadomień, które mu dodasz. Zasada działania jest prosta - pod numer gg memota (10579849) wysyłasz wiadomość, która zawiera: treść powiadomienia oraz czas, kiedy chcesz je dostać.
Dla przykładu, po wysłaniu: 23:15 idź spać (oczywiście bez kolorów :)), o godzinie 23:15 dostaniesz od memota wiadomość "idź spać".

Powiadomienia zwykłe

yyyy-mm-dd hh:mm treść - podana data: rok, miesiąc, dzień, godzina i minuta, np.
2008-7-15 8:00 wyjazd na wakacje
mm-dd hh:mm treść - podana data: miesiąc, dzień, godzina i minuta, np. 6-20 12:00 urodziny
dd hh:mm treść - podana data: dzień, godzina i minuta, np. 10 9:00 jest 10. dzień miesiąca
hh:mm treść - dzisiaj, na podana godzina, np. 15:59 zaraz koniec pracy!
+hh:mm treść - za "hh" godzin i "mm" minut od teraz, np. +2:15 minęły 2h i 15m
+mm treść - za "mm" minut od teraz, np. +15 minęło 15m
uz numer przypomnienia uzyskany poleceniem lista - usuwa powiadomienie

Powiadomienia cykliczne

Format czasu dla tych powiadomień jest (prawie) taki sam, jakiego używa program cron, który pewnie znany jest każdemu, kto korzysa z linuxa.
Jeżeli ktoś nigdy się z nim nie spotkał - poniżej wyjaśnienie.

Na początek proste przykłady:
0 * * * * - każda pełna godzina, codziennie
30 8 * * * - 8:30, codziennie
0 20 * * czw - 8:00, w każdy czwartek

Jak widać mamy tutaj 5 pól, które stanowią opis czasu. Ich znaczenie to:
[minuta] [godzina] [dzień miesiąca] [miesiąc] [dzień tygodnia]

Każde pole może przyjmować wartości:
- * (gwiazdka), oznacza, że wartość może być dowolna
- normalna liczba, np. 30 - oznacza, że wartość musi być dokładanie taka, jak podana
- przedział, np. 10-30 - oznacza, że wartość musi mieścić się w podanym przedziale
- lista, np. 1,2,3,4,5 - oznacza, że wartość musi być zawarta na liście
- podzielnik, np. */5 - oznacza, że wartość musi być podzielna przez 5
- przedział + podzielnik, np. 10-30/5 - to kombinacja dwóch ww.
- dodatkowo, pola "miesiąć" i "dzień tygodnia" można wypełnić używająć nazw (mogą one być również użyte w ww. konstrukcjach, np. lista dni: pon,wto,czw,pia)

Konkretne przykłady:
0-5 20 * * czw - w każdy czwartkowy wieczór przypomnienie co minutę 20:00-20:05
0 10 12 maj * - co roku, 12 maja, godzina 10:00 (np. do opisu urodzin)
30 19 * * pon-pia - od poniedziałku do piątku, godz. 19:30
0 8-12 * * * - każda pełna godzina, od 8 do 12
*/20 8-12 * * * - przypomnienie codziennie, co 20 minut, w godzinach od 8 do 12
15 10,14 * * * - przypomnienie codziennie o 10:15 i 14:15
0 8 1 * * - przypomnienie 1 dnia każdego miesiąca, o 8:00 (np. o jakiejś płatności)

Poza podaniem czasu trzeba podać także treść powiadomienia, np.
0 8 1 * * zapłacić na internet, itp.

Dni można podawać w postaci: liczby / skrótu polskiego / skróto angielskiego:
1/nie/sun, 2/pon/mon, 3/wto/tue, 4/sro/wed, 5/czw/thu, 6/pia/fri, 7/sob/sat.

Miesiące na tej samej zasadzie:
1/sty/jan, 2/lut/feb, 3/mar/mar, 4/kwi/apr, 5/maj/may, 6/cze/jun, 7/lip/jul, 8/sie/aug, 9/wrz/sep, 10/paz/oct, 11/lis/nov, 12/gru/dec.

uc numer przypomnienia uzyskany poleceniem lista - usuwa powiadomienie

Inne polecenia

p lub pomoc - wyświetla listę poleceń z krótkim opisem
l lub lista - wyśietla wszystkie twoje powiadomienia
u wszystko lub usun wszystko - usuwa wszystkie powiadomienia
w lub wiadomosc treść - jeżeli chcesz mi coś przekazać, np. w pozdrowienia :)
czy pytanie - zadaj pytanie, a memot Ci odpowie :) np. czy wgram dzisiaj w lotto?

Historia

2011 X
W końcu dodałem obsługę nowych (dużych) numerów gg, które od dłuższego już czasu są przedzielane przy rejestracji nowego konta. Dotychczas wiadomości z tych numerów były po cichu ignorowane, przez co użytkownik słusznie mógł się zniechęcić...
2009 VI
Dodana obsługa powiadomień cyklicznych.
2007 IX
W wyniku pewnych problemów technicznych memot nie dziłał ostatnio za dobrze, ale wszystko wróciło już do normy.

Info

Jeżeli znalazłeś/są błąd, masz jakieś uwagi i sugestie na temat działania memota lub też masz pomysł na nową funkcjonalność, która byłaby przydatna - napisz i zobaczymy co da się zrobić :)
Memot jest w całości napisany w c++, uruchomiony jest na linuxie i korzysta z bibliotek libgadu oraz pcre.