Poslednjih par dana razmišljam o
Last.fm servisu i onome što čini za nas. Poprilično je zanimljivo ponekad pogledati statistiku naših navika i pesama koje puštamo iznova i iznova... No budući da
neki ljudi ne vole Last.fm, odlučio sam da napravim skriptu koja će da sakuplja podatke na vašem računaru.
Prvo ću da vam dam da vidite rezultat onoga što sam danas radio:
/pub/ostalo/local.fm-stat.html. Simpatično zar ne?
Želim da objasnim da pod
"sakuplja podatke" mislim na to da se prilikom promene pesme, u vašem programu za puštanje pesama (u bilo kom formatu),
lokalno čuva informacija o pesmi koju ste preslušali. Evo i logike same skripte:
- skripta ima opciju za prikupljanje informacija o pesmama koje slušate (
local.fm.sh -c). Ukoliko vaš program za puštanje muzike to podržava, dodajete skriptu sa -c parametrom da se izvršava prilikom svake promene pesme. Postoje načini da se utvrdi da li je pesma odslušana do kraja međutim to nije poenta moje skripte i neću da se zamlaćujem sa time trenutno (možda u budućnosti) - kada se pesma pusti, skripta upisuje ime izvođača, koje dobija od samog programa, u
~/.last.fm_stat datoteku - kada se skripta pokrene sa parametrom
-g onda se izveštaj o pesmama izvozi u HTML datoteku čiju putanju sami određujete (predefinisana datoteka je ~/local.fm-stat). ! Note:Opcije za menjanje stila će biti dodate kasnije.
Jednostavno deluje zar ne? Naravno, postoje začkoljice u celom procesu. Ja trenutno razvijam skriptu koristeći
music on console (mocp) program međutim treba dodati parametre za druge programe takođe. Verujem da ovo neće biti teško zato što se sve svodi na jednostavne upite, koje šaljemo programu, i filtriranje istih. Evo primera za
mocp koji se nalazi u samoj
local.fm.sh skripti:
sleep 2 && mocp --info | grep "Title:" | grep -v "SongTitle" | cut -c8- >> "$STAT_FILE"
Čekamo 2s da pesma počne pa onda puštamo skriptu da ubaci ime izvođača u
~/.local.fm_stat. Jednostavno je kao što se vidi no teži deo posla je prikupljanje opcija sa više programa i filtriranje njihovih izlaza.
Inače, ako se pitate zašto se izlaz tako filtrira, evo vam primer izlaznih informacija za
mocp --info komandu:
State: PLAY
File: /home/djura-san/podaci/muzika/techno_i_trance/marc_simz_-_forbidden_city.mp3
Title: Marc Simz - Forbidden City
Artist: Marc Simz
SongTitle: Forbidden City
Album:
TotalTime: 09:18
TimeLeft: 00:03
TotalSec: 558
CurrentTime: 09:15
CurrentSec: 555
Bitrate: 320kbps
AvgBitrate: 325kbps
Rate: 44kHz
Haos kao što se da videti.
Elem pogledaću za druge aplikacije i programe kako da izvedem ovo što sam izveo sa
mocp programom a zatim ću da kačim ažuriranu verziju skripte na:
p.s. Ukoliko pišete lepše skripte, drago mi je zbog vas ali ne osuđujte moj prvi pokušaj da napišem skriptu od nule nakon toliko meseci. Iovako su sve moje skripte "skrnave" i poprilično nikakve ali rade posao u 99% slučajeva :