Posts Tagged 'set Musik statistisch in bitlbee'

Musik-Status für BitlBee

Thursday, 17. März 2011

Anzeigen

Für nahezu jede Instant Messenger in Linux gibt es ein Plugin oder die Fähigkeit, Ihren Status auf den aktuell abgespielten Song gesetzt. Ich war überrascht zu erfahren, dass nichts dergleichen vorhanden war für Irssi und BitlBee though. Also entschied ich mich, um zu sehen, ob ich etwas dagegen tun konnte. Es stellte sich heraus, viel schwerer, als ich dachte, es wäre, diese zum Laufen zu bringen, aber schließlich nach viel Bastelei und Hilfe von der # irssi Kanal auf irc.freenode.net sowie die E-Mail info Irssi Liste, es ist lebendig !
Erstens, lassen Sie uns alles eingerichtet. Sie benötigen das cron-Skript für Irssi. Speichern Sie das Skript in die Datei ~ / .irssi / scripts Verzeichnis. Möglicherweise müssen Sie das Script-Verzeichnis erstellen. Dann erstellen Sie eine SimLink aus dem ~ / .irssi / scripts / autorun / Verzeichnis cron.pl. die Autorun-Verzeichnis kann auch erstellt werden müssen. die SimLink machen:
ln-s ~ / .irssi / scripts / cron.pl ~ / .irssi / scripts / autorun / cron.pl
Dies bewirkt, dass die cron.pl Skript mit Irssi starten. Für dieses Beispiel habe ich beschlossen, verwenden Pianobar , Konsole Pandora basierte Player. Sie können ein Skript Datei namens eventcmd.sh in ~ / .config / Pianobar / um Pianobar tun einige ziemlich nette Dinge entfernt. Teil dessen, was mir tut wird der Status für Pidgin Instant Messenger eingestellt und auch schreiben, eine Datei in / tmp / irssistatus, die ein kleines Skript von bitlbee Status an den aktuell abgespielten Song eingestellt enthält. Hier ist meine Datei, die aus dem Beispiel-Datei mit Pianobar enthalten beruht:
#! / Bin / bash
# Variablen erstellen
while read L; tun
k = "` echo "$ L" | cut-d '='-f 1 `"
v = "` echo "$ L" | cut-d '='-f 2 `"
exportieren "$ k = $ v"
getan << (grep-e / Dev / stdin) # nicht überschreiben 1 Dollar ...
album = $ (echo "$ album" | sed 's / (Explicit) / / g')
case "$ 1" in
"Songstart")
/ Usr / bin / purple-remote "setstatus? Status = verfügbar & message = Hören $ title $ durch Künstler aus $ album" &> / dev / null
irssiStatus = "#! / bin / bash
echo \ "set status 'Listening to $ title $ durch Künstler aus $ album' \"
exit 0 "
irssiStatus = $ (echo "$ irssiStatus" | sed 's / \ & / und / g')
irssiStatus = $ (echo "$ irssiStatus" | sed "s / '/ \ \' / g")
echo "$ irssiStatus"> / tmp / irssistatus
chmod 700 / tmp / irssistatus
;;

"Songfinish")
if [-n "$ songDuration"] && [$ (echo "scale = 4; ($ songPlayed / $ songDuration * 100)> 50" | bc)-eq 1] && ["$ rating"-ne 2], dann
/ Usr / lib / lastfmsubmitd / lastfmsubmit - Künstler "$ artist" - title "$ title" - Album "$ album" - length "$ ((songDuration/1000))"
fi
;;
"Songlove")
statusText = "# nowplaying \" $ title \ "von \" $ artist \ "von \" $ Album \ ""
ttytter-readline = 0-silent-status = "$ statusText"
;;
*)
if ["$ Pret"-ne 1], dann
echo "naughty.notify ({title = \" Pianobar \ ", text = \" $ 1 fehlgeschlagen: $ pRetStr \ "})" | awesome-Client -
elif ["$ wret"-ne 1], dann
echo "naughty.notify ({title = \" Pianobar \ ", text = \" $ 1 fehlgeschlagen: Netzwerk-Fehler: $ wRetStr \ "})" | awesome-Client -
fi
;;
esac
exit 0
# End eventcmd.sh
Wenn Sie die Datei in ~ / .config / Pianobar / eventcmd.sh, setzen Sie ihn auf ausführbare haben createdd, und es scheint nicht zu umgehen, bearbeiten Sie die Datei ~ / .config / Pianobar / config und fügen Sie die Zeile:
event_command = / home / user / .config / Pianobar / eventcmd.sh
Sie können Ihre Pandora-Benutzernamen und das Kennwort ein, wenn Sie wollen:
user = Ihre Email-Adresse
password = IhrKennwort
Dies ermöglicht es Ihnen, automatisch, ohne zu Ihrer Information jedes Mal aufgefordert, sich anzumelden.
Das obige Skript auch nach Songs, die Sie lieben, indem Sie die +-Taste, um mit Twitter ttytter. Es scrobbelt zu Last.fm mit lastfmsubmitd:
sudo apt-get installieren lastfmsubmitd
Dann bearbeiten Sie die Datei:
/ Etc / lastfmsubmitd.conf
und fügen Sie die folgenden drei Zeilen:
[Account]
password = yourLast.fmPassword
user = Last.fmUserName
Ihr Benutzername ist Ihr Konto Benutzername nicht Ihre E-Mail-Adresse ein.
Wenn dich permission denied Fehler für / var / spool / lastfmsubmit ... Dateien kann der folgende Code das Problem zu beheben:
for i in / var / log / var / run / var / spool; tun sudo chown lastfm: lastfm $ i / lastfm; sudo chmod 775 $ i / lastfm; getan
Und nun, wieder auf die ursprüngliche Idee zu diesem Artikel. Sie haben Ihr neues eventcmd.sh Datei im Ort, haben Sie Ihre cron.pl Skript in der Datei ~ / .irssi / scripts Verzeichnis gesetzt und haben es zu starten, wenn Irssi tut. So, jetzt beginnen irssi und geben Sie die folgende Zeile ein:
/ Jobadd-Server localhost ***** / exec-msg & bitlbee / tmp / irssistatus
Um es für die zukünftige Verwendung Typ sparen:
/ Jobssave
Dann wird das nächste Mal starten und sich anmelden, um Irssi Typ bitlbee:
/ Jobsload
um es zu bekommen und wieder zum Laufen. Und dort haben Sie es, Ihre ganz eigenen musikalischen Status für BitlBee. Wenn Sie nicht über BitlBee installiert, aber einen öffentlichen Installation müssen Sie den Server-Bit in der / jobadd Linie zu ändern, um Ihren öffentlichen Server. Es gibt ein kleines Problem aber. In Ihrem & bitlbee Steuerkanal behalten Sie dabei Ihre Botschaften, um den Status zu setzen und dann die Wurzel bestätigt wurde eingestellt. Ich habe es geschafft, loszuwerden, die Bestätigung aber die tatsächliche Menge von Ihrem Status nick noch zeigen. Zu blockieren, die Bestätigung:
/ Ignore-regexp-Muster "(Set status | status =)" *
Es ist wahrscheinlich ein besserer Weg, aber regexps sind nicht meine Stärke, so Anregungen sind willkommen.
Wenn Sie nicht hören, alles und das Verzeichnis / tmp / irssistatus Datei nicht existiert, wird eine Fehlermeldung erhalten. der einfachste Weg, dies zu korrigieren ist, um den / tmp / irssi Datei von Hand mit Ihrem gewählten Status schreiben:
#! / Bin / bash
echo 'Status setzen "GRÜN! wie ein Popel!"'
exit 0
Dass man auf jeden Fall erhalten Sie einige ims der Regel bestehend aus Dinge wie "Was zum Teufel?". Wenn Sie ein bisschen mehr von einem zufälligen Status möchten können Sie dies stattdessen:
#! / Bin / bash
status = $ (fortune-s | sed "s / '/ \ \' / g")
status = $ (echo "$ status" | tr "[: space:]" "")
if [$ (echo "$ status" | wc-l)-eq "1"], dann
echo "set status '$ status'"
fi
exit 0
Das obige Skript gibt einen Fehler, wenn das Vermögen nicht in englischer Sprache. In der Musik-Skript, können einige Songs mit seltsame Dinge in ihrem Namen zu Fehlern führen. das ist selten so weit ich das beurteilen kann. Ich glaube, ich habe die meisten, wenn nicht alle von ihnen festgelegt.

Hilfe Leistung meiner Blog-Einträge, halten mein Koffein buzz going strong!