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
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()
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'])