| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- from pyquery import PyQuery
- from sites.helper.item import Item
- class Structure:
- def __init__(self, site):
- self.site = site
- self.container_path = None
- self.item_path = None
- self.item_url_path = None
- self.item_title_path = None
- self.item_duration_path = None
- self.item_size_path = None
- self.item_artist_path = None
- def set_container_path(self, path):
- self.container_path = path
- return self
- def set_item_path(self, path):
- self.item_path = path
- return self
- def set_url_path(self, path):
- self.item_url_path = path
- return self
- def set_title_path(self, path):
- self.item_title_path = path
- return self
- def set_artist_path(self, path):
- self.item_artist_path = path
- return self
- def set_duration_path(self, path):
- self.item_duration_path = path
- return self
- def set_size_path(self, path):
- self.item_size_path = path,
- return self
- def parse(self, html):
- pq = PyQuery(html)
- pq.make_links_absolute(base_url=self.site.url)
- results = pq(self.container_path).find(self.item_path)
- items = []
- for result in results:
- result = pq(result)
- title = result.find(self.item_title_path) if self.item_title_path is not None else None
- url = result.find(self.item_url_path) if self.item_url_path is not None else None
- duration = result.find(self.item_duration_path) if self.item_duration_path is not None else None
- size = result.find(self.item_size_path) if self.item_size_path is not None else None
- if title is not None and url is not None:
- items.append(Item(self.site,
- self.site.format_title(title),
- url,
- self.site.format_duration(duration),
- self.site.format_size(size),
- self.site.format_artist(title)))
- return items
|