Exemple #1
0
def add(**kwargs):
    logger = logging.getLogger('app')

    torrent_id = kwargs['torrent_id']
    start = kwargs['start']
    download = kwargs['download']

    try:
        torrent = Torrent.query.filter(Torrent.id == torrent_id).one()
    except NoResultFound:
        logger.warning('Torrent does not exists')
        return

    if download:
        parser = RutrackerParser(login='******', password='******')
        parser.authenticate()

        torrent.get_from_tracker(parser)

    if start:
        tc = transmissionrpc.Client('192.168.1.2', port=9091, user='******',
                                    password='******')

        trnt = tc.add_torrent(torrent.get_absolute_url())
        tc.stop_torrent(trnt.id)
        print trnt, trnt.id, trnt.status
Exemple #2
0
def find_torrents(**kwargs):
    user_id = kwargs.get('user_id')
    logger = kwargs.get('logger')

    today = datetime.today()
    params = [
        Watchlist.user_id == user_id,
        Watchlist.status == Watchlist.PENDING_MOVIE,
        Movie.is_series == False,
        Movie.status == Movie.ACTIVE_STATUS,
        Movie.world_premiere_date <= today
    ]

    torrent_alias = aliased(Torrent)
    movies = db.session.query(Movie).join(Watchlist)\
        .outerjoin(Movie.torrents)\
        .outerjoin(torrent_alias)\
        .filter(*params)\
        .having(func.count(Torrent.id) == 0)\
        .group_by(Movie.id).all()

    parser = RutrackerParser(login='******', password='******')
    parser.authenticate()

    for movie in movies:
        torrents = []
        for result in parser.find_movie(movie.title.encode('utf-8')):
            if result['year'] == movie.year and movie.title in result['title']:
                torrent = Torrent(
                    tracker={
                        'id': result['id'],
                        'type': parser.PARSER_TYPE,
                        'status': result['type'],
                        'size': result['size'],
                        'original': result['original'],
                        'quality': result['quality'],
                        'extra': result['extra']
                    }
                )
                torrents.append(torrent)
        try:
            db.session.add_all(torrents)
            db.session.commit()
        except IntegrityError:
            db.session.rollback()

        if torrents:
            try:
                movie.torrents = torrents
                db.session.commit()
            except IntegrityError:
                db.session.rollback()
Exemple #3
0
def find(**kwargs):
    # logger = logging.getLogger('app')

    parser = RutrackerParser(login='******', password='******')
    parser.authenticate()

    for result in parser.find_movie(kwargs['name']):
        if '1080p' in result['quality'] and 'BDRip' in result['quality']:
            parser.download(result['id'])