def episode(web, site, id, mode, errors=[]): try: # FIXME wrap db queries into one episode = Episode.find().filter_by(link = id).one() files = File.find().filter_by(episode = episode.id).all() links = Link.find().filter_by(episode = episode.id).all() comments = Comment.find().filter_by(episode = episode.id).\ order_by(Comment.date).all() ratings = Rating.find().filter_by(episode = episode.id).all() trackbacks = Trackback.find().filter_by(episode = episode.id).\ order_by(Trackback.date).all() except Exception as e: return notfound(str(e)) if mode is None: mode = "" if len(mode): mode = mode[1:] opts = {} opts.update(create_session(web, mode)) opts.update(do_the_comments(web, mode, comments)) opts.update(do_the_ratings(web, mode, ratings)) return template("episode.tpl", errors = errors, css = "episode", episode = episode, episodes = {episode.id: episode}, site = site, trackbacks = trackbacks, files = files, links = links, csss = [ "../lib/audio-js/audio-js", "../lib/audio-js/skins/vim", "vim"], **opts )
def feed_all_comments(web, mode): # FIXME wrap db queries into one episodes = Episode.find().all() comments = Comment.find().all() trackbacks = Trackback.find().all() if mode == "atom": entries = comments + trackbacks entries.sort(key=lambda e: e.date) entries.reverse() id_episodes = {} for episode in episodes: id_episodes[episode.id] = episode return template_atom( title = "Pentamedia-Portal // Comments", episodes = id_episodes, comments = entries ) elif mode == "json": return template_json(web, { "comments": list(map(comment_to_json, comments)), "trackbacks": list(map(trackback_to_json, trackbacks)) }) else: return notfound("Type not supported.")
def datenspur_file(web, id, filename, mode, errors=[]): try: # FIXME wrap db queries into one episode = Episode.find().filter_by(link = filename).\ filter(Episode.category.endswith(id)).\ order_by(Episode.date).one() comments = Comment.find().filter_by(episode = episode.id).all() files = File.find().filter_by(episode = episode.id).all() ratings = Rating.find().filter_by(episode = episode.id).all() previews = Preview.find().filter_by(episode = episode.id).all() trackbacks = Trackback.find().filter_by(episode = episode.id).\ order_by(Trackback.date).all() except Exception as e: return notfound(str(e)) episode.files = files if mode is None: mode = "" if len(mode): mode = mode[1:] opts = {} opts.update(create_session(web, mode)) opts.update(do_the_comments(web, mode, comments)) opts.update(do_the_ratings(web, mode, ratings)) preview = get_preview(previews, files) csss = [ "../lib/video-js/video-js", "../lib/video-js/skins/vim", "vim"] if episode.isaudio(): csss = list(map(lambda s:s.replace("video", "audio"), csss)) return template("datenspur.tpl", errors = errors, css = "episode", episode = episode, episodes = {episode.id: episode}, site = "datenspuren", full_site = "datenspuren/" + id, trackbacks = trackbacks, files = files, preview = preview, csss = csss, **opts )