Ne znam gdje bih ovo stavio, uglavnom, na desktopu bi htio imati notifikaciju kad netko pošalje poruku na LZS forumu. To obično zatreba kad netko ima neki problem, pa postovi slijede jedan za drugim a ja baš nemam stalno otvoren browser samo zbog toga.
Zato sam napravio skriptu koja obavještava putem standardne desktop notifikacije kad dođe do promjene postova u "Aktivnim temama" na LZS forumu. Zauzima vrlo malo računalnih resursa i bandwitha. Treba napraviti (skriveni) folder ".lzs" i u njega staviti skriptu. Posebni folder zato što ima logove i par pomoćnih datoteka.
- Kod: Označi sve
#!/bin/bash
# Provjerava LZS forum - Aktivne teme i javlja standardnom notifikacijom kod promjene
# Napravi skriveni folder ".lzs" u svom $HOME i spremi ovu skriptu u njega
# Postavi dozvolu za izvršavanje
# cd u taj folder i pokreni skriptu iz njega sa
# nohup ./provjeri_lzs.sh & (a onda ctrl-C)
# ili stavi "$HOME/.lzs/provjeri_lzs.sh" liniju u autostart
# INTERVAL obavezno staviti s, m ili h (sekunde, minute ili sati)
# TRAJANJE_NOTIFIKACIJE u sekundama ili 0 da stoji sve dok se na nju ne klikne.
# URL je od početne stranice (znači lovi postove u svim temama) ali normalno da se može promijeniti
INTERVAL_SKENIRANJA=3m
TRAJANJE_NOTIFIKACIJE=0
MOJ_URL="http://www.linuxzasve.com/forum/index.php"
function setup {
cd $HOME/.lzs
if [ ! -f stari_grepfajl ]; then
wget $MOJ_URL -nv -O temp_file \
&& cat temp_file | grep "ib posts vat" > stari_grepfajl
fi
if [ -f lzs.log ]; then
mv lzs.log lzs_bckp.log #Spremi bckp i započni novi log
else touch lzs.log
fi
}
function poziv {
while true; do
wget $MOJ_URL -nv -O temp_file \
&& cat temp_file | grep "ib posts vat" > novi_grepfajl
grep -vf stari_grepfajl novi_grepfajl > razlika.txt
if [ -s razlika.txt ]; then
while read linija ; do
grep 'temp_file' -e "forumtitle topic_citan" -e "$linija" | grep -e "$linija" -B1 \
|head -1| cut -d'>' -f2; done < razlika.txt > popis_tema.txt
echo '<a href="http://www.linuxzasve.com/forum/search.php?search_id=active_topics">Odi na forum.</a>' >> popis_tema.txt
notify-send 'Linuxzasve - nove poruke' \
"$(cat popis_tema.txt)" \
--icon=contact-new -t $(($TRAJANJE_NOTIFIKACIJE*1000));
fi
mv novi_grepfajl stari_grepfajl
sleep "$INTERVAL_SKENIRANJA"
done
}
#### main ####
setup
poziv > lzs.log 2>&1 #pokreni sken i log
Edit: Ispričavam se, zaboravio sam pretvoriti sekunde u milisekunde (jer i tako koristim samo 0). Ispravljeno.
Edit2: I stavio sam početnu stranicu umjesto Aktivnih tema, tako da lovi i nove postove u "Razno" i sl.
Edit3: dodana lista podforuma s novim postovima u notifikaciju.
Gotovi gzip: