Package appModules :: Module foobar2000
[hide private]
[frames] | no frames]

Source Code for Module appModules.foobar2000

 1  import appModuleHandler 
 2  import api 
 3  import ui 
 4  import time 
 5  import calendar 
 6   
7 -def getFormat(s):
8 s=s.split(":") 9 if len(s) ==1: 10 return "%S" 11 elif len(s)==2: 12 return "%M:%S" 13 else: return "%H:%M:%S"
14
15 -def getOutputFormat(t):
16 if t<60: 17 return "%S" 18 elif t<3600: 19 return "%M:%S" 20 else: 21 return "%H:%M:%S"
22
23 -class AppModule(appModuleHandler.AppModule):
24 statusBar=None 25
26 - def event_gainFocus(self, obj, nextHandler):
27 if not self.statusBar: self.statusBar=api.getStatusBar() 28 nextHandler()
29
30 - def getElapsedAndTotal(self):
31 if not self.statusBar: return None 32 text = self.statusBar.firstChild.name 33 try: 34 ltime = text.split("|")[4].split(" / ") 35 except IndexError: 36 return None 37 elapsedTime = calendar.timegm(time.strptime(ltime[0].strip(),getFormat(ltime[0]))) 38 totalTime = calendar.timegm(time.strptime(ltime[1].strip(),getFormat(ltime[1]))) 39 return elapsedTime,totalTime
40
41 - def script_reportRemainingTime(self,gesture):
42 times=self.getElapsedAndTotal() 43 if times is None: 44 ui.message(_("No track playing")) 45 return 46 elapsedTime,totalTime = times 47 remainingTime = totalTime-elapsedTime 48 msg = time.strftime(getOutputFormat(remainingTime),time.gmtime(remainingTime)) 49 ui.message(msg)
50 script_reportRemainingTime.__doc__ = _("Reports the remaining time of the currently playing track, if any") 51 52 __gestures = { 53 "kb:control+shift+r": "reportRemainingTime", 54 }
55