[youporn] rewrite with Browser 2
This commit is contained in:
parent
83fe30af8b
commit
2d0df1b37a
5 changed files with 59 additions and 170 deletions
|
|
@ -18,51 +18,35 @@
|
|||
# along with weboob. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
import datetime
|
||||
|
||||
from weboob.browser.pages import HTMLPage
|
||||
from weboob.browser.elements import ItemElement, ListElement, method
|
||||
from weboob.browser.filters.html import Attr, CSS
|
||||
from weboob.browser.filters.standard import CleanText, Duration, Regexp, Type
|
||||
from weboob.capabilities.base import NotAvailable
|
||||
from weboob.capabilities.image import BaseImage
|
||||
|
||||
from .base import PornPage
|
||||
from ..video import YoupornVideo
|
||||
|
||||
|
||||
class IndexPage(PornPage):
|
||||
def iter_videos(self):
|
||||
for li in self.document.getroot().xpath('//ul/li[@class="videoBox"]'):
|
||||
a = li.find('div').find('a')
|
||||
if a is None or a.find('img') is None:
|
||||
continue
|
||||
class IndexPage(HTMLPage):
|
||||
@method
|
||||
class iter_videos(ListElement):
|
||||
item_xpath = '//div[@id="content"]/div/div/ul/li/div/a'
|
||||
|
||||
thumbnail_url = a.find('img').attrib['src']
|
||||
class item(ItemElement):
|
||||
klass = YoupornVideo
|
||||
|
||||
a = self.parser.select(li, './/a[@class="videoTitle"]', 1, 'xpath')
|
||||
def obj_thumbnail(self):
|
||||
thumbnail_url = Attr('./img', 'src')(self)
|
||||
thumbnail = BaseImage(thumbnail_url)
|
||||
thumbnail.url = thumbnail.id
|
||||
return thumbnail
|
||||
|
||||
url = a.attrib['href']
|
||||
_id = url[len('/watch/'):]
|
||||
_id = _id[:_id.find('/')]
|
||||
|
||||
video = YoupornVideo(int(_id))
|
||||
video.title = unicode(a.text.strip())
|
||||
video.thumbnail = BaseImage(thumbnail_url)
|
||||
video.thumbnail.url = video.thumbnail.id
|
||||
|
||||
hours = minutes = seconds = 0
|
||||
div = li.cssselect('div.duration')
|
||||
if len(div) > 0:
|
||||
pack = [int(s) for s in div[0].text.strip().split(':')]
|
||||
if len(pack) == 3:
|
||||
hours, minutes, seconds = pack
|
||||
elif len(pack) == 2:
|
||||
minutes, seconds = pack
|
||||
|
||||
video.duration = datetime.timedelta(hours=hours, minutes=minutes, seconds=seconds)
|
||||
|
||||
div = li.cssselect('div.rating')
|
||||
if div:
|
||||
video.rating = int(div[0].text.strip('% '))
|
||||
video.rating_max = 100
|
||||
|
||||
video.set_empty_fields(NotAvailable, ('url', 'author'))
|
||||
|
||||
yield video
|
||||
obj_author = NotAvailable
|
||||
obj_duration = CSS('span.duration') & CleanText() & Duration()
|
||||
obj_id = Attr('../..', 'data-video-id')
|
||||
obj_rating = CleanText('./span/i') & Regexp(pattern=r'(..)%') & Type(type=int)
|
||||
obj_rating_max = 100
|
||||
obj_title = CleanText('./p')
|
||||
obj_url = NotAvailable
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue