Skip to content

Instantly share code, notes, and snippets.

@sahib
Created April 7, 2015 18:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sahib/3137975700ac9a701410 to your computer and use it in GitHub Desktop.
Save sahib/3137975700ac9a701410 to your computer and use it in GitHub Desktop.
#!/usr/bin/env python
# encoding: utf-8
from gi.repository import Moose
from gi.repository import GLib
import sys
def zeroconf_state_changed(browser):
state = browser.get_state()
if state is Moose.ZeroconfState.CHANGED:
print('-- SERVER LIST --')
print()
for server in browser:
for attr, value in server:
print('{:>10} : {}'.format(attr, value))
print()
elif state is Moose.ZeroconfState.ERROR:
print('Error', browser.get_error())
elif state is Moose.ZeroconfState.ALL_FOR_NOW:
print('---ALL FOUND FOR NOW --')
elif state is Moose.ZeroconfState.UNCONNECTED:
print('-- CONNECTION LOST --')
else:
print('Unknown state. ZeroconfBrowser, you\'re drunk, go home.')
if __name__ == '__main__':
browser = Moose.ZeroconfBrowser()
if browser.get_state() is not Moose.ZeroconfState.CONNECTED:
print('No avahi running, eh?')
sys.exit(0)
browser.connect('state-changed', zeroconf_state_changed)
try:
loop = GLib.MainLoop()
GLib.timeout_add(10 * 1000, loop.quit)
loop.run()
except KeyboardInterrupt:
print('[Ctrl-C]')
-- SERVER LIST --
name : sleipnir
protocol : _mpd._tcp
domain : local
addr : 192.168.23.30
host : sleipnir.local
port : 6600
name : werkstatt
protocol : _mpd._tcp
domain : local
addr : 192.168.23.9
host : werkstatt.local
port : 6600
name : Music Player
protocol : _mpd._tcp
domain : local
addr : 192.168.23.9
host : werkstatt.local
port : 6666
name : RuneAudio
protocol : _mpd._tcp
domain : local
addr : 192.168.23.20
host : helgrind.local
port : 6600
name : werkstatt
protocol : _mpd._tcp
domain : local
addr : 192.168.122.1
host : werkstatt.local
port : 6600
name : Music Player
protocol : _mpd._tcp
domain : local
addr : 192.168.122.1
host : werkstatt.local
port : 6666
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment