Ejemplo n.º 1
0
	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)
Ejemplo n.º 2
0
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)
Ejemplo n.º 3
0
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)