| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- from pyquery import PyQuery
- from sites.helper.item import Item, Empty
- 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
- self.item_cover_path = None
- self.item_album_path = None
- self.item_genre_path = None
- self.item_label_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 set_cover_path(self, path):
- self.item_cover_path = path
- return self
- def set_album_path(self, path):
- self.item_album_path = path
- return self
- def set_genre_path(self, path):
- self.item_genre_path = path
- return self
- def set_label_path(self, path):
- self.item_label_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:
- item = Item(self.site)
- item.set_title(self.site.format_title(title))
- item.set_artist(self.site.format_artist(title))
- item.set_original_url(url)
- item.set_duration_string(self.site.format_duration(duration))
- item.set_size_string(self.site.format_size(size))
- items.append(item)
- return items
|