Random plugin works
This commit is contained in:
parent
8a1f5c820f
commit
77cf9482a5
|
@ -37,30 +37,37 @@ class Plugin(plugin.Plugin):
|
|||
curlib = str(settings.get("curlib"))
|
||||
count = db.countlib(curlib)
|
||||
nxttrk = settings.get("curtrk")
|
||||
if nxttrk > count:
|
||||
if nxttrk >= (count-1):
|
||||
nxttrk = 0
|
||||
else:
|
||||
nxttrk += 1
|
||||
|
||||
sel = sql.Select("track","libtrack","library="+str(curlib))
|
||||
rows = sel.execute().fetchall()
|
||||
manager.run("next",[rows[nxttrk][0], nxttrk])
|
||||
manager.run("next",[nxttrk])
|
||||
#sel = sql.Select("track","libtrack","library="+str(curlib))
|
||||
#rows = sel.execute().fetchall()
|
||||
#manager.run("next",[rows[nxttrk][0], nxttrk])
|
||||
|
||||
|
||||
|
||||
def run(self, args=None):
|
||||
# args[0] : database track ID
|
||||
# args[1] : new current track number
|
||||
# args: new current track number
|
||||
|
||||
if args==None or len(args)==0:
|
||||
signal.emit("next")
|
||||
return
|
||||
elif len(args) == 1:
|
||||
write("Usage:" + self.usage)
|
||||
|
||||
path = db.getpath(args[0])
|
||||
nxttrk = int(args[0])
|
||||
|
||||
settings.set("curtrk",args[1])
|
||||
curlib = str( settings.get("curlib") )
|
||||
sel = sql.Select("track","libtrack","library="+curlib)
|
||||
rows = sel.execute().fetchall()
|
||||
if nxttrk >= len(rows)-1:
|
||||
nxttrk = len(rows)-1
|
||||
|
||||
next = rows[nxttrk][0]
|
||||
path = db.getpath(next)
|
||||
|
||||
settings.set("curtrk",nxttrk)
|
||||
manager.run("music",["load",path])
|
||||
manager.run("music",["play"])
|
||||
|
||||
|
|
|
@ -8,6 +8,10 @@ from bt import plugin
|
|||
from bt.message import write
|
||||
import settings
|
||||
from bt import signal
|
||||
import random
|
||||
random.seed()
|
||||
from ct import db
|
||||
import manager
|
||||
|
||||
|
||||
class Plugin(plugin.Plugin):
|
||||
|
@ -24,7 +28,22 @@ class Plugin(plugin.Plugin):
|
|||
pass
|
||||
|
||||
|
||||
def close(self):
|
||||
signal.remove("next",self.randNext)
|
||||
|
||||
|
||||
def randNext(self):
|
||||
count = db.countlib(str(settings.get("curlib")))
|
||||
curtrk = settings.get("curtrk")
|
||||
id = curtrk
|
||||
# Guarentee that we don't choose the same track twice
|
||||
while id==curtrk:
|
||||
id = random.randint(0,count)
|
||||
# Prevent infinite loop if library has size 1
|
||||
if count == 1:
|
||||
break
|
||||
manager.run("next",[id])
|
||||
signal.stop("next")
|
||||
pass
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue