Posts Tagged 'gesetzt Musik statistisch in bitlbee'

Musik-Status für BitlBee

Thursday, 17. März 2011

Anzeigen

Für fast jeden Instant Messenger in Linux gibt es ein Plugin oder die Möglichkeit, Ihren Status auf den aktuell abgespielten Song gesetzt. Ich war überrascht, dass nichts dergleichen war vorhanden Irssi und BitlBee aber. Also entschied ich mich, um zu sehen, ob ich etwas dagegen zu tun. Es erwies sich als viel schwieriger als ich dachte, es wäre, diese Funktion zu erhalten, aber schließlich nach viel Bastelei und Hilfe von der # irssi Kanal auf irc.freenode.net sowie die E-Mail-Liste Irssi info, es ist lebendig !
Zunächst lassen Sie uns alles eingerichtet. Sie werden die benötigen cron-Skript für Irssi. Speichern Sie das Skript an Ihre ~ / .irssi / scripts. Möglicherweise müssen Sie das Skript-Verzeichnis erstellen. Dann erstellen Sie eine SimLink aus der ~ / .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 das Skript mit cron.pl Irssi starten. Für dieses Beispiel habe ich beschlossen, Pianobar , Konsolen Pandora-Player. Sie können ein Skript Datei namens eventcmd.sh in ~ / .config / Pianobar / befindet, um Pianobar tun einige ziemlich nette Dinge verwenden. Teil dessen, was mir tut, ist Status für Pidgin Instant-Messenger eingestellt und schreiben auch eine Datei in / tmp / irssistatus, die ein kleines Skript von bitlbee Status an den aktuell abgespielten Song-Set beinhaltet. Hier ist meine Datei, die aus dem Beispiel-Datei mit Pianobar enthalten basiert:
#! / Bin / bash
# Variablen erstellen
lesen, während L; do
k = "` echo "$ L" | cut-d '='-f 1 `"
v = "` echo "$ L" | cut-d '='-f 2 `"
export "$ k = $ v"
done << (grep-e '^\(title\|artist\|album\|stationName\|pRet\|pRetStr\|wRet\|wRetStr\|songDuration\|songPlayed\|rating\|coverArt\|stationCount\|station[0-9]*\)=' / Dev / stdin) # 1 Dollar nicht überschreiben ...
album = $ (echo "$ Album" | sed 's / (Explicit) / / g')
case "$ 1" in
"Songstart")
/ Usr / bin / purple-remote "SetStatus? Status = verfügbar & message = Hören von $ $ title Künstler aus $ Album" &> / dev / null
irssiStatus = "#! / bin / bash
echo \ "Status setzen" Listening to $ titel von $ 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" - Titel "$ title" - Album "$ album" - Länge "$ ((songDuration/1000))"
fi
;;
"Songlove")
status = "# nowplaying \" $ title \ "von \" $ Künstler \ "von \" $ Album \ ""
ttytter-readline = 0-silent-Status = "$ status"
;;
*)
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: Netzwerkfehler: $ wRetStr \ "})" | awesome-Client -
fi
;;
esac
exit 0
# End eventcmd.sh
Wenn Sie die Datei in ~ / .config / Pianobar / eventcmd.sh createdd haben, setzen Sie ihn auf ausführbar, 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 E-Mail-Adresse
password = IhrKennwort
Dies ermöglicht es Ihnen, automatisch, ohne zu Ihrer Information jedes Mal aufgefordert, sich anzumelden.
Das obige Skript zu schreiben wird auch die Songs, die Sie durch Drücken der Taste + Twitter mit ttytter lieben. Es scrobbelt auf Last.fm mit lastfmsubmitd:
sudo apt-get install 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 Ihre Benutzerkontoname nicht Ihre E-Mail-Adresse.
Wenn Sie die Erlaubnis verweigert 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; done
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 ~ / .irssi / scripts gesetzt und haben es zu starten, wenn Irssi tut. So, jetzt, irssi und geben Sie die folgende Zeile:
/ Jobadd-Server localhost ***** / exec-msg & bitlbee / tmp / irssistatus
Um es für die zukünftige Verwendung speichern Typ:
/ Jobssave
Dann das nächste Mal Irssi beginnen und sich anmelden, um BitlBee Typ:
/ Jobsload
um es zum Laufen zu bekommen wieder. Und dort haben Sie es, Ihre ganz eigenen musikalischen Status für BitlBee. Wenn Sie nicht über BitlBee installiert, sondern verwenden eine öffentliche Installation, müssen Sie die Server-Bit in der / jobadd Linie zu Ihrem öffentlichen Server ändern. Es gibt ein kleines Problem aber. In Ihrer & bitlbee Steuerkanal halten Sie immer Ihre Nachricht, um den Status zu setzen und dann die Wurzel bestätigt er eingestellt wurde. Ich habe es geschafft, von der Bestätigungsmeldung loszuwerden, aber die eigentliche Set-Status von deinen Nick noch zeigen. Zu blockieren, die Bestätigung:
/ Ignore-regexp-Muster "(Set-Status | Status =)" *
Es gibt wohl einen besseren Weg, aber regexps sind nicht meine Stärke, so Anregungen sind willkommen.
Wenn Sie sich nicht, etwas zu hören, und die Datei / tmp / irssistatus nicht vorhanden ist, wird eine Fehlermeldung. der einfachste Weg, dies zu korrigieren, ist die Datei / tmp / irssi von Hand mit dem 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ögen, können Sie diese stattdessen verwenden:
#! / Bin / bash
status = $ (Glück-s | sed "s / '/ \ \' / g")
status = $ (echo "$ status" | tr "[: space:]" "")
if [$ (echo "$ status" | wc-l)-eq "1"], dann
echo "Status setzen" $ 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 fixiert, wenn nicht alle von ihnen.

Schalten Sie Hilfe meiner Blog-Einträge, halten meine Koffein Summen gehen stark!