aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatt <32886639+mattlyon93@users.noreply.github.com>2020-08-29 22:00:56 +1000
committerGitHub <noreply@github.com>2020-08-29 22:00:56 +1000
commit85f34f8a5b15bfbe6510358d76b903baa33f4fc2 (patch)
tree6dc3e4ad3bd76f3678a5d6b3bedb48e9ae215aab
parentcab856e292d96f8ae3686b0d25a778d1682691ae (diff)
parent47bcaca5004b08667368cd3d9d4e01f1ef998343 (diff)
downloadtpb-lite-85f34f8a5b15bfbe6510358d76b903baa33f4fc2.tar.gz
tpb-lite-85f34f8a5b15bfbe6510358d76b903baa33f4fc2.tar.bz2
tpb-lite-85f34f8a5b15bfbe6510358d76b903baa33f4fc2.zip
Merge pull request #4 from loiccoyle/url
Adds a url attribute to the Torrent class
-rw-r--r--README.md1
-rw-r--r--tpblite/__init__.py2
-rw-r--r--tpblite/models/constants.py23
-rw-r--r--tpblite/models/torrents.py16
-rw-r--r--tpblite/tpblite.py5
5 files changed, 31 insertions, 16 deletions
diff --git a/README.md b/README.md
index bb4ad7c..84ec85c 100644
--- a/README.md
+++ b/README.md
@@ -98,6 +98,7 @@ You can see how many `Torrent` objects your query has returned, by using the `le
- `Torrent.filesize` - The filesize in *iB format, eg. 5 GiB (str)
- `Torrent.byte_size` - The filesize in bytes of the torrent (int)
- `Torrent.magnetlink` - magnetlink of the torrent (str)
+- `Torrent.url` - url of the torrent page (str)
Example Workflow
==========
diff --git a/tpblite/__init__.py b/tpblite/__init__.py
index 6a397d1..47116c6 100644
--- a/tpblite/__init__.py
+++ b/tpblite/__init__.py
@@ -1,2 +1,2 @@
from tpblite.tpblite import TPB
-from tpblite.models.constants import ORDERS, CATEGORIES \ No newline at end of file
+from tpblite.models.constants import ORDERS, CATEGORIES
diff --git a/tpblite/models/constants.py b/tpblite/models/constants.py
index 214b379..be65286 100644
--- a/tpblite/models/constants.py
+++ b/tpblite/models/constants.py
@@ -1,16 +1,23 @@
-
class OPTION:
@classmethod
def printOptions(cls):
- for opt in [x for x in cls.__dict__.keys() if not (x.startswith('__') or x.startswith('printOptions'))]:
- if hasattr(getattr(cls,opt),'__dict__'):
- for sub_opt in [y for y in getattr(cls,opt).__dict__.keys() if not (y.startswith('__') or y.startswith('printOptions'))]:
- print('{}.{}'.format(opt,sub_opt))
+ for opt in [
+ x
+ for x in cls.__dict__.keys()
+ if not (x.startswith("__") or x.startswith("printOptions"))
+ ]:
+ if hasattr(getattr(cls, opt), "__dict__"):
+ for sub_opt in [
+ y
+ for y in getattr(cls, opt).__dict__.keys()
+ if not (y.startswith("__") or y.startswith("printOptions"))
+ ]:
+ print("{}.{}".format(opt, sub_opt))
else:
print(opt)
-class ORDERS(OPTION):
+class ORDERS(OPTION):
class NAME(OPTION):
DES = 1
ASC = 2
@@ -42,7 +49,7 @@ class ORDERS(OPTION):
class CATEGORIES(OPTION):
ALL = 0
-
+
class AUDIO(OPTION):
ALL = 100
MUSIC = 101
@@ -102,4 +109,4 @@ class CATEGORIES(OPTION):
PICTURES = 603
COVERS = 604
PHYSIBLES = 605
- OTHER = 699 \ No newline at end of file
+ OTHER = 699
diff --git a/tpblite/models/torrents.py b/tpblite/models/torrents.py
index ada282f..2a9bffb 100644
--- a/tpblite/models/torrents.py
+++ b/tpblite/models/torrents.py
@@ -29,10 +29,14 @@ class Torrent:
self.html_row = html_row
self.title = self._getTitle()
self.seeds, self.leeches = self._getPeers()
- self.upload_date, self.filesize, self.byte_size, self.uploader = (
- self._getFileInfo()
- )
+ (
+ self.upload_date,
+ self.filesize,
+ self.byte_size,
+ self.uploader,
+ ) = self._getFileInfo()
self.magnetlink = self._getMagnetLink()
+ self.url = self._getUrl()
def __str__(self):
return "{0}, S: {1}, L: {2}, {3}".format(
@@ -63,10 +67,14 @@ class Torrent:
uploader = unicodedata.normalize("NFKD", t[2].replace("ULed by ", "").strip())
return uptime, size, byte_size, uploader
+ def _getUrl(self):
+ tag = self.html_row.find("a", class_="detLink")
+ return tag.get("href")
+
class Torrents:
"""
- Torrent object, takes query response and parses into
+ Torrent object, takes query response and parses into
torrent list or dict. Has methods to select items from
torrent list.
"""
diff --git a/tpblite/tpblite.py b/tpblite/tpblite.py
index b4028b6..00c3849 100644
--- a/tpblite/tpblite.py
+++ b/tpblite/tpblite.py
@@ -61,7 +61,7 @@ class TPB:
self._search_url = q.url
return Torrents(q.html_source)
- def top(self, category: int = 0, last_48: bool = False):
+ def top(self, category: int = 0, last_48: bool = False) -> Torrents:
"""Get the top torrents of a category and return a list of Torrents
Args:
@@ -70,9 +70,8 @@ class TPB:
last_48: wether to fetch the top torrent in the last 48 hours or the overall top
Return:
- Torrent object
+ Torrents object
"""
q = QueryParser.top(self.base_url, category, last_48)
self._search_url = q.url
return Torrents(q.html_source)
-