Esempio n. 1
0
    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
Esempio n. 2
0
    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
Esempio n. 3
0
    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