def index(action=None): quote = urllib.quote basename = os.path.basename root = request.GET.get('root', player.params.location) root = os.path.realpath(root) player.params.location = root title = '%s/' % os.path.basename(root) msg = '' dirnames = [] filenames = [] for root, dirnames, filenames in os.walk(root): break dirnames = [os.path.join(root, d) for d in dirnames \ if not d.startswith('.')] filenames = [os.path.join(root, d) for d in sorted(filenames) \ if not d.startswith('.') and d.lower()[-4:] in exts] if action == 'favorite': items = config.lists.favorites.as_list('\n') name = os.path.basename(root) if root not in items: items.append(root) msg = '%s added to favorites' % name else: items = [i for i in items if i != root] msg = '%s removed from favorites' % name config.lists.favorites = items config.write() if action == 'mark_as_unread': for f in filenames: m = Media(filename=f) m.data.update(times=0, time=0) m.write() if action == 'mark_as_read': infos = player.infos if infos.state == 'playing': player.call('stop') m = Media(filename=player.params.latest) m.data.update(times=1, time=0) m.write() control = Control() control.star = '/browser?root=%s' % quote(os.path.dirname(root)) control.rec = '/browser/mark_as_unread' control.red = '/browser/favorite' control.pip = '/lists/favorites' page = batch(control, dirnames + filenames) filenames = [] for p in page.items: if os.path.isdir(p): filenames.append(Dir(p)) elif os.path.isfile(p): filenames.append(Media(p)) return dict(locals(), title=title, msg=msg, basename=basename)
def lists(type): msg = '' title = type.title() control = Control() control.star = '/browser' items = config.lists[type].as_list('\n') page = batch(control, list(reversed(items)), path_info='/lists/%s' % type) filenames = [] for i in page.items: if os.path.isdir(i): filenames.append(Dir(i)) elif os.path.isfile(i): filenames.append(Media(filename=i)) return dict(locals(), title=title, msg=msg)
def keys(): control = Control() control.star = '/browser' control.finalize() return locals()