Rád chodím na fórum, ale hledal jsem nějaký způsob, jak být upozorňován na nové příspěvky, které mě zajímají, ale zároveň abych si nemusel stahovat upozornění přes poštu nebo obnovovat stránku s nepřečtenými tématy. Prostě někdy dělám na počítači něco jiného a chci se fóru věnovat jen tehdy, když se něco zajímavého děje.
Níže uvádím postup, jak jsem to (částečně) vyřešil. Budu rád za připomínky nebo nápady, jak to udělat jinak (líp).
Upozorňování na nové příspěvky na forum.ubuntu.cz-----------------------------------------------------------------------------
Tento systém využívá možnosti nechat si posílat upozornění z fóra na svou emailovou schránku. Ty automaticky stahuje, vyfiltruje z nich odkazy na témata a zobrazí zprávu v upozorňovací oblasti. Kliknutím na vykřičník se témata otevřou ve Firefoxu.
1. Nastavení schránky pro zprávy z fóraVytvořte si emailovou schránku u svého oblíbeného poskytovatele. Já používám centrum.cz.
Založíme si např. schránku zbuntuj@centrum.cz. Nastavíme filtry tak, aby všechny zprávy kromě ty z ubuntu.cz zahazovaly. Na centru to vypadá takto:
2. Instalace a nastavení getmailuVybral jsem getmail, protože je pro mě jednodušší. Můžete zvolit jiný nástroj na stahování pošty.
Nainstalujte getmail:
sudo apt-get install getmail4Do domovského adresáře vytvořte složku .getmail:
mkdir ~/.getmailV ní vytvoříme konfigurační soubor pro getmail:
gedit ~/.getmail/getmail_zbuntuj.confDo něho vložíme tento kód
[retriever]
type = SimplePOP3Retriever
server = pop3.centrum.cz
username = zbuntuj
password = <heslo>
[destination]
type = Mboxrd
path = ~/.getmail/zbuntuj.mbox
[options]
# ukecanost: 0 - jen chyby, 2 - nejvyšší
verbose = 0
# kam ukládat log
message_log = ~/.getmail/zbuntuj.log
# mazat zprávy po stáhnutí
delete = true
Doplníte jen název schránky (zde zbuntuj) a heslo (password).
3. Nastavení upozorňování na forum.ubuntu.czVe svém profilu na fóru v sekci Upozorňování a email nastavte co si chcete nechat posílat. Já to mám nastavené např. takto
Pokud vás pak nějaké téma zaujme, klikněte na "Upozornění". Při odpovídání v tématu se upozornění přidá automaticky.
4. Skript na automatické stahováníOtevřete si soubor, např. takto
gedit ~/zbuntuj.shVložte tam kód
#! /bin/bash
# Skript automaticky stahuje upozornění na nové příspěvky, které přišly mailem z forum.ubuntu.cz.
# Pokud nějaké jsou, zobrazí výstražný vykřičník v "oznamovací oblasti" (systray).
# Kliknutím na tuto ikonu se všechny nové příspěvky otevřou v tabech ve FF.
# Po otevření odkazů jsou všechny zprávy z pomocných souborů vymazány.
# "Závislosti":
# getmail4 s nastaveným conf souborem v ~/.getmail/getmail_zpravyzubuntu.conf
# nastavení zasílání upozornění na email ve forum.ubuntu.cz
# firefox
StahniZpravy(){
#Stáhne zprávy pomocí getmail4 a vypreparuje z nich odkazy do souboru /tmp/linky.
getmail -r ~/.getmail/getmail_zpravyzubuntu.conf
grep topicseen ~/.getmail/zpravyzubuntu.mbox | sed 's/^.*http/http/' > /tmp/linky
}
#Jak často stahovat zprávy (v sekundách)?
FrekvenceStahovani=300
#Kolik maximálně najednou otevírat tabů ve Firefoxu?
MaxPocetTabu=30
while true
do
#Stáhnout zprávy. Pokud jsou nějaké nové, vypsat upozornění.
#Pokud ne, čekej danou dobu a zkus stáhnout znova.
ChceVidet=false
until $ChceVidet
do
StahniZpravy
if [[ -s /tmp/linky ]]
then
zenity --notification --text="Nové zprávy z forum.ubuntu!"
ChceVidet=true
else
sleep $FrekvenceStahovani
fi
done
#Pokud není spuštěný FF, spusť ho.
#Je ale potřeba počkat, než je ve stavu Sleep, jinak háže chybu, že jiné okno FF už běží.
if [[ `ps x | grep -c firefox` -eq 0 ]]
then
i=0
firefox &> /dev/null &
until [[ $i -gt 10 ]]
do
if [[ `ps --no-headers -C firefox o s` = S ]]
then let i++
else i=0
fi
sleep 0.2
done
# Otevřít nejdřív nepřečtená témata, jinak se automaticky označí jako přečtená a pak už se nezobrazí.
firefox -new-tab http://forum.ubuntu.cz/index.php?action=unread
fi
i=0
# radši znovu, jestli nepřibyly nějaké nové..
StahniZpravy
# Dva řádky pro ladění. Možno zakomentovat, nejsou nutné.
cat /tmp/linky >> /tmp/linky_debug
cat ~/.getmail/zpravyzubuntu.mbox >> /tmp/zpravyzubuntu.mbox_backup
# Otevřít odkazy ve FF, ale jen maximálně MaxPocetTabu najednou, ať se nezahltí systém.
while read rdk
do
firefox -new-tab $rdk &> /dev/null &
let i++
if [[ $i -gt $MaxPocetTabu ]]; then break; fi
done < /tmp/linky
# odkazy jsou otevřené, zprávy možno vymazat
cat /dev/null > ~/.getmail/zpravyzubuntu.mbox
done
exit 0
Uložte a nastavte, aby byl spustitelný, třeba pomocí
chmod +x ~/zbuntuj.sh5. Přidat skript do SezeníSystém → Nastavení → Sezení → Přidat, v řádku příkaz
~/zbuntuj.sh. Zbytek dle uvážení. Tím se skript automaticky spustí při spuštění systému.
Hotovo.
Technické detailyMožné problémy:
- pokud si téma přečtete dřív, než se stáhne z mailu, stejně se zobrazí upozornění, že máte nové zprávy. Skript nepozná, že jste to už četli;
- skript filtruje odkazy podle klíčového slova 'topicseen'. Pokud webmaster fóra změní syntax stránek, emailových zpráv či odkazů, pak skript přestane pravděpodobně fungovat a bude se muset předělat;
- jakékoliv jiné zprávy, které vám někdo z fóra pošle na nastavenou adresu, se přesunou do složky spam, takže si je asi nevšimnete. Skript by se musel upravit tak, aby stahoval jen maily s upozorněním.
- skript není určitě blbuvzdorný. Pokud nastanou problémy, vždy ho můžete zabít pomocí Alt+F2 → killall zbuntuj.sh
Ve výchozím nastavení skript kontroluje poštu co 5 min. Je možno změnit - viz poznámky ve skriptu.
Skript nezanechává žádné stopy. Pomocné soubory jsou uloženy v /tmp, zprávy se po stáhnutí mažou.
Odinstalace: vymazat adresář .getmail a soubor zbuntuj.sh. Odinstalovat getmail4. Zrušit upozornění (bod 3) a řádek v Sezení (bod 5).