コード例 #1
0
    def parse_thumbs_json(self, fldata: FLData):
        data = loads(fldata.text)
        if type(data) == dict:
            page = data['1']
        elif type(data) == list:
            page = data[0]
        else:
            page = None

        try:
            items = page['items']
            for item in items:
                href = URL(item['video_link'], base_url=fldata.url)
                label = item['title_long']
                dur_time = item['duration']
                thumb_url = URL(item['thumb_url'], base_url=fldata.url)

                self.add_thumb(thumb_url=thumb_url,
                               href=href,
                               popup=label,
                               labels=[{
                                   'text': dur_time,
                                   'align': 'top right'
                               }, {
                                   'text': label,
                                   'align': 'bottom center'
                               }])

            # create pagination
            navigation = page['navigation']
            last_page = navigation['lastPage']
            current = navigation['currentPage']
            pattern = navigation['urlPattern'].replace('[%pageId%]', '{0}')

            for page_no in range(current - 5, current + 5):

                if page_no == current: continue
                if page_no < 3: continue
                if page_no > last_page: continue

                page_url = URL(fldata.url.any_data['first_page_url'].get())
                page_url.any_data = dict(json_file_url=URL(
                    pattern.format(page_no), base_url=fldata.url))

                self.add_page(str(page_no), page_url)

            # add last page
            page_url = URL(fldata.url.any_data['first_page_url'].get())
            page_url.any_data = dict(json_file_url=URL(
                pattern.format(last_page), base_url=fldata.url))

            self.add_page(str(last_page), page_url)

        except TypeError as err:
            print(dumps(data, sort_keys=True, indent=4))
            print('Error:', err)

        self.waiting_data = False
        self.generate_thumb_view()
コード例 #2
0
ファイル: pervertslut.py プロジェクト: vit-001/fget3
    def _parse_pagination(self, soup: BeautifulSoup, url: URL):
        container = soup.find('div', {'class': 'pagination-holder'})
        if container:
            for page in _iter(container.find_all('a', {'href': True})):
                if not page.attrs['href'].startswith('#'):
                    self.add_page(page.string, URL(page.attrs['href'], base_url=url))
                else:
                    pair_list=[('mode','async'),
                               ('function','get_block'),
                               ('block_id', page.attrs['data-block-id'])]
                    parameters=page.attrs['data-parameters'].split(';')
                    for item in parameters:
                        key,unused,value=item.partition(':')
                        pair_list.append(tuple([key,value]))

                    xhr_url=URL(url.get())
                    xhr_url.add_query(pair_list)
                    page_url=URL(url.get())
                    page_url.any_data=dict(xhr=xhr_url)

                    self.add_page(page.string, page_url)