def build_bilibili_genre(bilibili, genre_name): genre = Alnilam.get_first_genre(genre_name) if genre is None: genre = model.Genre.create(name=genre_name) bilibili_genre = model.BilibiliGenre.create(bilibili=bilibili, genre=genre) else: bilibili_genre = model.BilibiliGenre.select().where(model.BilibiliGenre.bilibili == bilibili, model.BilibiliGenre.genre == genre).limit(1).first() if bilibili_genre is None: bilibili_genre = model.BilibiliGenre.create(bilibili=bilibili, genre=genre)
def get_movie_detail(): meissa = Meissa() alnilam = Alnilam() while True: available = model.MovieQueue.select().where(model.MovieQueue.state == 0).count() if available > 0: prepare_movies = model.MovieQueue.select().where(model.MovieQueue.state == 0).limit(100) for m in prepare_movies: detail = meissa.get_detail(m.douban_id) with model.database.atomic() as txn: try: alnilam.generate_movie(detail) m.state = 1 m.save() log.logger().info(detail.id + " " + detail.title) except Exception as e: log.logger().error(e) txn.rollback() sleep(2) else: sleep(2)
def get_movie_url_from_bilibili(): betelgeuse = Betelgeuse() bellatrix = Bellatrix(options.appkey, options.appsecret) while True: available = model.MovieQueue.select().where(model.MovieQueue.state == 1).count() if available > 0: prepare_movies = model.MovieQueue.select().where(model.MovieQueue.state == 1).limit(100) for m in prepare_movies: movie = Alnilam.get_first_movie(m.douban_id) try: search_reault = bellatrix.search(movie.title) if search_reault.is_done: match_movie = False for sr in search_reault.result: if allow_type(sr["typename"]): match_movie = True detail = bellatrix.view(sr["aid"]) pages = detail.pages for page in range(1, pages+1): if hasattr(detail, 'cid'): detail.download, detail.expires = bellatrix.build_download_url(detail.cid) with model.database.atomic() as txn: try: betelgeuse.build_bilibili(sr, m.douban_id) betelgeuse.replenish_bilibili(sr["aid"], detail) m.state = 2 m.save() except Exception as e: log.logger().error(e) txn.rollback() detail = bellatrix.view(sr["aid"], page + 1) sleep(2) sleep(2) if not match_movie: m.state = 3 m.save() sleep(2) except Exception as e: log.logger().error(e) else: sleep(2)