def parse_dict_to_showfilm(data: dict):
    return ShowFilm(
        id=data['id'],
        title=data['title'],
        description=data['overview'],
        original_language=data['original_language'],
        popularity=data['popularity'],
        poster=data['poster_path'],
        release_date=data['release_date'],
        show_type=1,
        genres=data['genre_ids']
    )
 async def get_popular_films_by_date(cls,
                                     date: datetime) -> List["ShowFilm"]:
     rows = await cls.pool.fetch(cls.GET_POPULAR_FILM_BY_DATE, date)
     return [ShowFilm(*(row)) for row in rows] if rows else []
 async def get_shows(cls, date: datetime, limit: int) -> List["ShowFilm"]:
     rows = await cls.pool.fetch(cls.GET_SHOWS, date, limit)
     return [ShowFilm(*(row)) for row in rows] if rows else []
 async def get_shows_filter_date(cls, date_start: datetime,
                                 date_end: datetime,
                                 limit: int) -> List["ShowFilm"]:
     rows = await cls.pool.fetch(cls.GET_SHOWS_FILTER_DATE, date_start,
                                 date_end, limit)
     return [ShowFilm(*(row)) for row in rows] if rows else []
 async def get_random_show_full(cls) -> Optional["ShowFilm"]:
     row = await cls.pool.fetch(cls.GET_RANDOM_FILM)
     return ShowFilm(*(row[0])) if row else None
 async def get_show_by_id_full(cls, pk: int) -> Optional["ShowFilm"]:
     row = await cls.pool.fetch(cls.GET_SHOW_BY_ID_FULL, pk)
     return ShowFilm(*(row[0])) if row else None
 async def get_show_by_name(cls, title: str) -> Optional["ShowFilm"]:
     row = await cls.pool.fetch(cls.GET_SHOW_BY_NAME, title)
     return ShowFilm(*(row[0])) if row else None
 async def get_show(cls, date: datetime) -> Optional["ShowFilm"]:
     row = await cls.pool.fetch(cls.GET_SHOW, date)
     return ShowFilm(*(row[0])) if row else None
示例#9
0
async def load():
    await prepare_db()
    df = pd.read_csv("../data/movies.csv", sep=',', quotechar="\"")
    df = df.fillna("")
    df = df.drop_duplicates(subset=['id'])

    gg = df['original_language'].unique()
    df = df[['id', 'genres']]

    # print(gg)

    df1 = pd.read_csv("../data/serials.csv", sep=',', quotechar="\"")
    gg1 = df1['original_language'].unique()
    df1 = df1.fillna("")
    df1 = df1.drop_duplicates(subset=['id'])

    df1 = df1[['id', 'genres']]
    # print(gg1)
    gg = list(gg)
    gg.extend(gg1)
    gg = set(gg)
    langs = sorted(gg)
    print(len(langs))

    # lang find langs
    for index, row in df.iterrows():
        original = langs.index(row['original_language'])
        tt = row['genres']
        genres = str(tt).replace("\"", "").replace("nan", "").split(",")

        def xoo(genres):
            new_genres = []
            for t in genres:
                if len(t) > 1:
                    new_genres.append(int(t))
                else:
                    pass
            return new_genres

        genres = xoo(genres)
        if row['description'] is None or str(row['description']) == "nan":
            descr = ""
        else:
            descr = row['description']

        if len(row['poster']) < 1 or len(
                descr) < 1 or row['poster'] is None or len(str(
                    row['poster'])) < 6:
            continue

        if len(row['release_date']) > 1:
            try:
                date = datetime.datetime.strptime(row['release_date'],
                                                  "%Y-%m-%d")
            except:
                date = None
                pass
        else:
            date = None

        show = ShowFilm(id=row['id'],
                        title=row['title'],
                        show_type=1,
                        poster=row['poster'],
                        release_date=date,
                        description=descr,
                        popularity=row['popularity'],
                        original_language=original,
                        genres=genres)
        try:
            await ShowFilmDB.create(show)
        except Exception as e:
            print(show.id)
            print(e)

    pass