예제 #1
0
from aesop.processor import catalog_videos
from aesop import events
from aesop.utils import setup_logging

log = logbook.Logger('aesop.processor')

parser = argparse.ArgumentParser()
parser.add_argument(
    '--log-level',
    default='INFO',
    help="Log Level. Must be one of CRITICAL, ERROR, WARNING, INFO or DEBUG")

options = parser.parse_args()

try:
    setup_logging('aesop.processor', 'INFO')
except LookupError:
    parser.error("--log-level must be one of CRITICAL, ERROR, WARNING, INFO or DEBUG")

init()

max_lookups = int(Config.get('processor', 'concurrency', default=50))

sources = list(Source.select(Source.path, Source.type))

events.info.blocking("Starting scan")
log.info("Starting scan")

total = unscanned = removed = 0
for source in sources:
    t, u, r = catalog_videos(database_proxy, source, max_lookups)
예제 #2
0
파일: player.py 프로젝트: johslarsen/aesop
                append = True
                first = False
            else:
                self.player.play(path, append=append)

    @asyncio.coroutine
    def ws_queue_season(self, id, season):
        return self.ws_play_season(id, season, append=True)


def get_movie_or_tv_show(path):
    try:
        media = TVShowEpisode.select().where(TVShowEpisode.path == path).get()
    except TVShowEpisode.DoesNotExist:
        media = Movie.select().where(Movie.path == path).get()
    return media


@asyncio.coroutine
def broadcast_player_property(attribute, value):
    yield from events.broadcast(type="player", attribute=attribute, value=value)


if __name__ == "__main__":
    setup_logging("aesop.player", "INFO")
    init()
    server = Server()
    asyncio.get_event_loop().run_until_complete(server.start())
    log.info("Player started on port 5002")
    asyncio.get_event_loop().run_forever()
예제 #3
0
            log.exception("Could not write to {}", path)
            continue

        log.info("Downloaded {} subtitle for {} to {}", nicename, path, subpath)
        return subpath


def main():
    listener = events.listener('download-subtitle', 'list-subtitles')

    while True:
        event = yield from listener.wait()

        if event is None:
            break

        if event.type == 'list-subtitles':
            subtitles = yield from from_opensubtitles(event.path)
            languages = sorted(set(s.lang for s in subtitles))
            log.info("Available languages for {}: {}", event.path, languages)
            yield from events.broadcast('available-subtitles', path=event.path, languages=languages)
        else:
            result = yield from download_subtitles(event.path, event.language)
            if result:
                yield from events.broadcast('subtitle-downloaded', path=str(result), video_path=event.path, language=event.language)

if __name__ == '__main__':
    setup_logging('aesop.ui', 'INFO')
    loop = asyncio.get_event_loop()
    loop.run_until_complete(main())
예제 #4
0
파일: events.py 프로젝트: johslarsen/aesop
def main():
    setup_logging('aesop.events', 'INFO')
    loop = asyncio.get_event_loop()
    loop.run_until_complete(websockets.serve(server, '0.0.0.0', 5001))
    log.info("Client event server started on port 5001")
    loop.run_forever()