Ejemplo n.º 1
0
Archivo: api.py Proyecto: mza921/PTPAPI
 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)
Ejemplo n.º 2
0
    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
Ejemplo n.º 3
0
 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)
Ejemplo n.º 4
0
 def remove_uploaded_bookmarks(self):
     """Remove uploads bookmarks"""
     session.base_post("bookmarks.php", data={'action': 'remove_uploaded'})
Ejemplo n.º 5
0
 def remove_seen_bookmarks(self):
     """Remove seen bookmarks"""
     session.base_post("bookmarks.php", data={'action': 'remove_seen'})
Ejemplo n.º 6
0
 def remove_snatched_bookmarks(self):
     """Remove snatched bookmarks"""
     session.base_post("bookmarks.php", data={'action': 'remove_snatched'})
Ejemplo n.º 7
0
 def remove_uploaded_bookmarks(self):
     """Remove uploads bookmarks"""
     session.base_post("bookmarks.php", data={"action": "remove_uploaded"})
Ejemplo n.º 8
0
 def remove_seen_bookmarks(self):
     """Remove seen bookmarks"""
     session.base_post("bookmarks.php", data={"action": "remove_seen"})
Ejemplo n.º 9
0
 def remove_snatched_bookmarks(self):
     """Remove snatched bookmarks"""
     session.base_post("bookmarks.php", data={"action": "remove_snatched"})