def get_movies(self, page=0, limit=5, filter=None, order='m.title ASC'): sql = "select m.title, m.description, m.airdate, m.full_path, m.parent_dir, m.added, m.id, datetime(m.watched, 'localtime'), m.runtime, m.poster from movie m" if filter is not None: _f = Filter("movie", {"movie": "m"}) sql += _f.genFilter(filter) sql += " ORDER BY %s LIMIT ?, ?" % order movies = self.sql.select(sql, (page * limit, limit,)) html = [] for movie in movies: content = {} content["id"] = movie[6] content["title"] = movie[0] if movie[0] is not None else movie[4] content["desc"] = movie[1] if not movie[1] is None else "" content["path"] = "file:///opt/sybhttpd/localhost.drives/NETWORK_SHARE/mediaui/Movies/%s" % (movie[3]) content["fanart"] = movie[9] if movie[9] is not None else "movie_fanart.png" content["added"] = self.convert_date_to_dayssince(movie[5]) content["watchedicon"] = "/images/unwatched.png" if movie[7] is None else "/images/watched.png" content["watcheddate"] = self.convert_watched_to_dayssince(movie[7]) content["fulltitle"] = content["title"] content["runtime"] = self.convert_runtime_seconds(movie[8]) content["year"] = self.strip_year_from_date(movie[2]) if content["desc"].__len__() > 300: content["desc"] = content["desc"][:300] + "..." if content["title"].__len__() > 30: content["title"] = content["title"][:30] + "..." html.append(content) return html
def get_tv_shows_html(self, page=0, limit=5, f=None): sql = """ SELECT s.title, s.fanart , (select count(e.id) from episode e where e.show = s.id) , (select group_concat(distinct e2.season) from episode e2 where e2.show = s.id) , s.id , (select MAX(e3.added) from episode e3 where e3.show = s.id order by e3.added DESC) FROM show s """ if f is not None: _f = Filter("tv", {"episode": None, "show": "s"}) sql += _f.genFilter(f) sql += " ORDER BY s.title ASC LIMIT ?, ?" results = self.sql.select(sql, (page * limit, limit,)) content = { "shows": [] , "total": 0 , "page": page } for result in results: content["shows"].append( { "fulltitle": result[0] #title , "fanart": result[1] if result[1] is not None else "tv_fanart.png" #fanart , "epscount": result[2] #episode count , "shorttitle": result[0][:30] , "seasons": sorted(result[3].split(","), key=int) if result[3] is not None else "" , "id": result[4] , "lastadded": self.convert_date_to_dayssince(result[5]) } ) return content
def get_latest_tv(self, page=0, limit=5, _filter=None): sql = """ select s.title, e.season, e.episode, e.title, e.full_path, e.file_name, e.description, e.added ,s.fanart, s.banner, s.poster, datetime(e.watched, 'localtime'), e.id from episode e inner join show s on s.id = e.show """ if _filter is not None: f = Filter("tv", {"episode": "e", "show": "s"}) sql += f.genFilter(_filter) sql += """ order by added desc limit ?, ?""" episodes = self.sql.select(sql, (page * limit, limit,)) content = [] for episode in episodes: content.append( {"show": episode[0] , "season": episode[1] , "episode": episode[2] , "title": episode[3] , "full_path": episode[4] , "file_name": episode[5] , "desc": episode[6] , "added": episode[7] , "fanart": episode[8] , "banner": episode[9] , "poster": episode[10] , "watched": episode[11] , "id": episode[12] } ) return content