Canto on uusi RSS-lukijani

Kun Google hieman odottamatta ilmoitti vetävänsä Readerin pois valikoimastaan, alkoi verkkainen etsintä uudelle RSS-aggregaatille. Vaikka Reader on käytettävyydeltään ihan kohtuullinen, oli pääasiallisena tavoitteena saada jonkinlainen ncurses-ratkaisu kuntoon säädettävyyden ja etäkäytön takia. (Huomio: tämä juttu ja konffausvinkit koskevat vain vanhentunutta Canto 0.7.10 -versiota. Suosittelen kokeilemaan uudempaa 0.8-sarjaa omiin kokeiluihinne.)

Newsbeuter oli ensimmäisenä pinnalla ilmoittaen olevansa RSS-lukijoiden "mutt". Asiahan kuulostaa hyvältä, mutta mutt ei ole koskaan ollutkaan kovin mieleinen ainakaan omaan makuuni. Siitä puuttuu olennainen säätövara ja lisäksi on kovin hidas.

Tämän jälkeen taas pientä hiljaiseloa vietettyäni jaksoin googlailla hyvän listan sopivia ehdokkaita komentoriville ja terminaalikäyttöön löytyviä RSS-lukijoita. Listahan on ikivanha, mutta näissä softissa ei yleensä ole montaa liikkuvaa osaa ja RSS-parserointikin on ulkoistettu. Canto osui silmään kuvaruutukaappausten perusteella hyvänä ehdokkaana, ja asentamisen jälkeen tämä vaikutelma vahvistui entisestään.

Puhdasta Pythonia

Canto konfiguroidaan monien muiden kovien ohjelmien tapaan kunnollisella ohjelmointikielellä ja konfiguraatiossa saakin nyt kirjoittaa kovaa Pythonia mielinmäärin. Ohjelma tukee täysin muokattavia näppäimiä. Värejäkin saa säädellä. Sisäänrakennettu lukija on kohtuullinen, vaikka itse keskitynkin ampumaan selaimeen niitä osoitteita. Esimerkiksi näin säädetään näppäimiä ja värejä asetuksissa:

never_discard("unread")
link_handler("firefox \"%u\"")

keys['C-h'] = "help"
keys['h'] = "prev_tag"
keys['\n'] = "goto"

colors[0] = 15 # default
colors[1] = 214 # unread
colors[2] = 138 # read

Canto tarjoaa pari moduulia, jotka voi importata mukaan ja kirjoittaa vaikka funktioita uusiksi. Tarjolla on esimerkiksi näppäinsarjoja, jotka kirjoitetaan tavallisina python-listoina konffiin.

Feedit konffissa

Feedit lisätään erityisen add()-kutsun avulla, ja halutut tagit ja lisäasetukset kutsun valinnaisten argumenttien kanssa. Hieman työlästä, ehkä, mutta kirjoitetaan simppelisti muutama for-silmukka ja homma alkaa sujua. Canto tarjoaa talon puolesta OPML- ja tekstitiedostoparsimista.

Superjoustava

Tageilla voi ryhmitellä feedejä samoihin kuosiin, jolloin esimerkiksi kaikki päivittäiset sarjakuvat saa samasta ryhmästä noukittua. Kukin feedi voi luonnollisesti kuulua useaan ryhmään. Ja ryhmiäkin voi tietenkin filtteröidä ja lajitella omiksi näkymikseen. Oletuksena näkymiä ei ole, vaan kaikki – sekä luetut että lukemattomat – ovat samassa. Vähintäänkin kannattaa lisätä canto.extra.show_unread -funktio filters-listalle, jotta voi keskittyä uusiin artikkeleihin. Konfiguraatiota voi jatkaa edelleen vieläkin puhtaammalla pythonilla, johon ei ole minulla ainakaan välitöntä tarvetta.

Päivitykset crontabin tai demonin kautta

Unix-hengen mukaisesti päivitykset voi hoitaa erillisen canto-fetch-ohjelman avulla. Sen voi huoletta laittaa ajamaan vaikka minuutin välein, sillä konffissa voi määritellä kullekin feedille omat intervallit.

Tämä on vanha Canto.

Nyt tätä juttua kirjoittaessani huomasin, että asentamani Canto 0.7.10 on vanhaa sorttia, ja uusi Canto-ng on syrjäyttänyt vanhan. Epäilemättä sen konffiminen sujuu samalla tavalla kuin vanhan, mutta en nyt ihan heti aio siirtyä. Tai ehkäpä siirrynkin. Sitten palaan muutosten kera tähän juttuun.


Kommentit, kehitysehdotukset ja keskustelunavaukset ovat tervetulleita sähköpostitse.