LINUX.ORG.RU

[Хочется странного] Консольная морда к mpd с notify-osd

 


0

1

Сабж. Я понимаю, что идея абсолютно бредовая, но вот мне например нравится использовать ncmpcpp, выбирая песни клавиатурой, а не мышкой. Но при этом я бы хотел видеть уведомление о смене песни, выводимое через notify-osd, что несколько противоречит идее консольного приложения. Есть ли способ реализовать это без лишних костылей (например запуска в фоне gmpc, который умеет это делать плагином)?

Ответ на: комментарий от Spectator

Быдло:

mpc *** > music.now
if diff music.old music.now
notify-send
cat music.now > music.old

Tanger ★★★★★
()

А когда тебе попу надо будет вытереть, тоже на лор пойдёшь за помощью?

#!/usr/bin/env python

HOST = 'localhost'
PORT = 6600

import os
import pynotify
import mpd


def notify(song):
    notification_parts = []
    if 'artist' in song:
        notification_parts.append(u'{artist} - '.format(**song))
    if 'title' in song:
        notification_parts.append(song['title'])
    elif 'file' in song:
        notification_parts.append(os.path.basename(song['file']))
    else:
        notification_parts.append('<untitled>')
    notification_text = ''.join(notification_parts)
    notification = pynotify.Notification('Now playing:', notification_text)
    notification.show()


def watch():
    pynotify.init('mpd-pynotify')

    client = mpd.MPDClient()
    client.connect(HOST, PORT)

    current_song = None
    while True:
        client.send_idle()
        changed = client.fetch_idle()
        if 'player' in changed:
            client.send_currentsong()
            song = client.fetch_currentsong()
            if song != current_song:
                notify(song)
                current_song = song


if __name__ == '__main__':
    watch()
vasilenko ★★
()
Ответ на: комментарий от Spectator

>> обязательно

Тебе тут очень много полезного насоветуют...
можно гланды через жопу вырезать, а можно наоборот..

Tanger ★★★★★
()
Ответ на: комментарий от Shlyapa

Это, конечно, было бы лучше. Если настройка встроенных событий (libnotify, scrobbler, что-то ещё) вполне понятна, то к hook'ам я даже не знаю с какой стороны подступиться %)

GotF ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.