from cache import cacheFolder, cached cacheFile = join(cacheFolder, hash) try: data = urlopen(item.url).read() open(cacheFile, "wb").write(data) cached(item) except URLError: item.failed = True item.save() def postProcessItem(self, item): from rpc.globals import next_track, player from rpc.player import play_current, get_status current = QueueItem.current().what if item.failed: print "item failed", item char = ChatItem(what="failed", info=item) char.save() if current == item: next_track() elif current == item and get_status() == Status.idle: play_current(player) def downloads(self): with self.queueCondition: ret = list(self.queue) return ret downloader = registerStartupTask(Downloader)
continue if len(resolved) < len(url): # up link, skip logger.debug("skipping %s %s", resolved, url) continue if resolved[-1] == "/": # directory if WebPath.objects.filter(url=resolved).count() == 0: child = current.add_child(url=resolved) self.add(child) else: # file? (_, ext) = splitext(resolved) ext = ext.lower() if ext in known_extensions: if MusicFile.objects.filter(url=resolved).count() == 0: mf = MusicFile(parent=current, url=resolved) mf.save() else: logger.debug("can't handle %s %s %s", resolved, ext, len(ext)) current.checked = True current.save() except ObjectDoesNotExist: # we got deleted current.delete() if settings.TESTING: spider = Spider() spider.setDaemon(True) else: spider = registerStartupTask(Spider)
from cache import cacheFolder, cached cacheFile = join(cacheFolder, hash) try: data = urlopen(item.url).read() open(cacheFile, "wb").write(data) cached(item) except URLError: item.failed = True item.save() def postProcessItem(self, item): from rpc.globals import next_track, player from rpc.player import play_current, get_status current = QueueItem.current().what if item.failed: print "item failed", item char = ChatItem(what="failed", info = item) char.save() if current == item: next_track() elif current == item and get_status() == Status.idle: play_current(player) def downloads(self): with self.queueCondition: ret = list(self.queue) return ret downloader = registerStartupTask(Downloader)
from threading import Thread import gobject from utils import registerStartupTask # The methods exposed via JSON RPC are imported here: from rpc.search import search, randomtracks from rpc.misc import get_username, set_username, get_version from rpc.queue import enqueue, dequeue, clear_queue, get_queue, reorder from rpc.volume import get_volume, set_volume from rpc.chat import chat, get_history from rpc.player import skip, pause from rpc.globals import site, player class Looper(Thread): def run(self): loop = gobject.MainLoop() loop.run() gobject.threads_init() registerStartupTask(Looper)
for link in soup.findAll("a"): try: resolved = urljoin(url, link["href"]) except KeyError: print "skipping due to lack of href", link continue if len(resolved) < len(url): # up link, skip print "skipping",resolved, url continue if resolved[-1] == "/": # directory if WebPath.objects.filter(url=resolved).count() == 0: child = current.add_child(url=resolved) self.add(child) else: # file? (_, ext) = splitext(resolved) ext = ext.lower() if ext in known_extensions: if MusicFile.objects.filter(url=resolved).count() == 0: mf = MusicFile(parent=current, url = resolved) mf.save() else: print "Can't handle", resolved, ext, len(ext) current.checked = True current.save() except ObjectDoesNotExist: # we got deleted current.delete() spider = registerStartupTask(Spider)