rendered paste body#!/usr/bin/env python
import curses, commands
from time import sleep
from sys import exit
stdscr = curses.initscr()
curses.noecho()
curses.cbreak()
stdscr.keypad(1)
curses.curs_set(0)
def ak_basic(doit, return_status=0):
dcop = 'dcop --user synan amarok player ' + doit
ret_val = commands.getoutput(dcop).split(' ')
if ret_val[0] in ('ERROR:','call','object'):
return 0
elif return_status == 1:
return ret_val
else:
return 1
def statuswin(message):
global y, x
win = curses.newwin(3, len(message)+4, y/2, x/2-len(message)+4/2)
win.clear()
win.border()
win.addstr(1, 2, message)
win.refresh()
sleep(1)
win.erase()
y, x = stdscr.getmaxyx()
ver = ak_basic('version', 1)
if ver == 0:
err = 1
statuswin('Amarok not running?')
curses.curs_set(1); curses.nocbreak(); stdscr.keypad(0); curses.echo()
curses.endwin()
exit()
else:
version = 'Amarok ' + ver[0]
statuswin(version)
while(1):
y, x = stdscr.getmaxyx()
stdscr.clear()
stdscr.border()
stdscr.addstr(0, x/2-3, "amaroNC",curses.A_BOLD);
stdscr.refresh()
c = stdscr.getch()
if c == ord('q'): err=0; break
elif c == ord('n'):
ret = ak_basic('next')
if ret == 0:
err = 1
break
statuswin('Next track')
elif c == ord('p'):
ret = ak_basic('prev')
if ret == 0:
err = 1
break
statuswin('Previous track')
else: continue
curses.curs_set(1); curses.nocbreak(); stdscr.keypad(0); curses.echo()
curses.endwin()
if err == 1:
print "Amarok not running"
else:
print "Exiting.."