def __init__(self, username=None, password=None, passkey=None): j = None self.cookies_file = os.path.expanduser( config.get('Main', 'cookiesFile')) LOGGER.info("Initiating login sequence.") password = (password or config.get('PTP', 'password')) username = (username or config.get('PTP', 'username')) passkey = (passkey or config.get('PTP', 'passkey')) if os.path.isfile(self.cookies_file): self.__load_cookies() # A really crude test to see if we're logged in session.max_redirects = 1 try: req = session.base_get('torrents.php') except requests.exceptions.TooManyRedirects: if os.path.isfile(self.cookies_file): os.remove(self.cookies_file) session.cookies = requests.cookies.RequestsCookieJar() session.max_redirects = 3 if not os.path.isfile(self.cookies_file): if not password or not passkey or not username: raise PTPAPIException("Not enough info provided to log in.") try: req = session.base_post('ajax.php?action=login', data={ "username": username, "password": password, "passkey": passkey }) j = req.json() except ValueError: if req.status_code == 200: raise PTPAPIException( "Could not parse returned json data.") else: if req.status_code == 429: LOGGER.critical(req.text.strip()) req.raise_for_status() if j["Result"] != "Ok": raise PTPAPIException( "Failed to log in. Please check the username, password and passkey. Response: %s" % j) self.__save_cookie() # Get some information that will be useful for later req = session.base_get('index.php') Util.raise_for_cloudflare(req.text) LOGGER.info("Login successful.") self.current_user_id = re.search(r'user.php\?id=(\d+)', req.text).group(1) self.auth_key = re.search(r'auth=([0-9a-f]{32})', req.text).group(1)
def __init__(self, username=None, password=None, passkey=None): json = None self.cookies_file = os.path.expanduser(config.get('Main', 'cookiesFile')) LOGGER.info("Initiating login sequence.") password = (password or config.get('PTP', 'password')) username = (username or config.get('PTP', 'username')) passkey = (passkey or config.get('PTP', 'passkey')) if os.path.isfile(self.cookies_file): # If cookies exists (a crude test to see if we're logged in) self.__loadCookies() session.max_redirects = 1 try: req = session.base_get('torrents.php') except requests.exceptions.TooManyRedirects: if os.path.isfile(self.cookies_file): os.remove(self.cookies_file) # Delete the cookies session.cookies = requests.cookies.RequestsCookieJar() session.max_redirects = 3 if not os.path.isfile(self.cookies_file): if not password or not passkey or not username: print("Not enough info provided to login! Exiting...") exit(0) try: req = session.base_post('ajax.php?action=login', data = {'username': username, 'password': password, 'passkey' : passkey}) json = req.json() except ValueError: if req.status_code == 200: print("Could not parse returned JSON data. Exiting...") exit(0) else: if req.status_code == 429: LOGGER.critical(req.text.strip()) req.raise_for_status() if json['Result'] != 'Ok': print("Failed to login. Please check the username, password, and passkey. Response: {0}".format(json)) self.__saveCookies() req = session.base_get('index.php') print("Login successful!") self.current_user_id = re.search(r'user.php\?id=(\d+)', req.text).group(1) # regex to capture user id that is all digits self.auth_key = re.search(r'auth=([0-9a-f]{32})', req.text).group(1) # regex to capture hex auth key that is 32 digits long
def __init__(self, username=None, password=None, passkey=None): j = None self.cookies_file = os.path.expanduser(config.get('Main', 'cookiesFile')) LOGGER.info("Initiating login sequence.") password = (password or config.get('PTP', 'password')) username = (username or config.get('PTP', 'username')) passkey = (passkey or config.get('PTP', 'passkey')) if os.path.isfile(self.cookies_file): self.__load_cookies() # A really crude test to see if we're logged in session.max_redirects = 1 try: req = session.base_get('torrents.php') except requests.exceptions.TooManyRedirects: if os.path.isfile(self.cookies_file): os.remove(self.cookies_file) session.cookies = requests.cookies.RequestsCookieJar() session.max_redirects = 3 if not os.path.isfile(self.cookies_file): if not password or not passkey or not username: raise PTPAPIException("Not enough info provided to log in.") try: req = session.base_post('ajax.php?action=login', data={"username": username, "password": password, "passkey": passkey}) j = req.json() except ValueError: if req.status_code == 200: raise PTPAPIException("Could not parse returned json data.") else: if req.status_code == 429: LOGGER.critical(req.text.strip()) req.raise_for_status() if j["Result"] != "Ok": raise PTPAPIException("Failed to log in. Please check the username, password and passkey. Response: %s" % j) self.__save_cookie() # Get some information that will be useful for later req = session.base_get('index.php') Util.raise_for_cloudflare(req.text) LOGGER.info("Login successful.") self.current_user_id = re.search(r'user.php\?id=(\d+)', req.text).group(1) self.auth_key = re.search(r'auth=([0-9a-f]{32})', req.text).group(1)
def remove_uploaded_bookmarks(self): """Remove uploads bookmarks""" session.base_post("bookmarks.php", data={'action': 'remove_uploaded'})
def remove_seen_bookmarks(self): """Remove seen bookmarks""" session.base_post("bookmarks.php", data={'action': 'remove_seen'})
def remove_snatched_bookmarks(self): """Remove snatched bookmarks""" session.base_post("bookmarks.php", data={'action': 'remove_snatched'})
def remove_uploaded_bookmarks(self): """Remove uploads bookmarks""" session.base_post("bookmarks.php", data={"action": "remove_uploaded"})
def remove_seen_bookmarks(self): """Remove seen bookmarks""" session.base_post("bookmarks.php", data={"action": "remove_seen"})
def remove_snatched_bookmarks(self): """Remove snatched bookmarks""" session.base_post("bookmarks.php", data={"action": "remove_snatched"})