| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- 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
- 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:
- 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
|