Code Duplication    Length = 14-16 lines in 2 locations

comics.py 2 locations

@@ 5406-5421 (lines=16) @@
5403
    """Generic class to handle the logic common to comics from tapastic.com."""
5404
    _categories = ('TAPASTIC', )
5405
5406
    @classmethod
5407
    def get_comic_info(cls, soup, archive_elt):
5408
        """Get information about a particular comics."""
5409
        timestamp = int(archive_elt['publishDate']) / 1000.0
5410
        day = datetime.datetime.fromtimestamp(timestamp).date()
5411
        imgs = soup.find_all('img', class_='art-image')
5412
        if not imgs:
5413
            # print("Comic %s is being uploaded, retry later" % cls.get_url_from_archive_element(archive_elt))
5414
            return None
5415
        assert len(imgs) > 0, imgs
5416
        return {
5417
            'day': day.day,
5418
            'year': day.year,
5419
            'month': day.month,
5420
            'img': [i['src'] for i in imgs],
5421
            'title': archive_elt['title'],
5422
        }
5423
5424
    @classmethod
@@ 1042-1055 (lines=14) @@
1039
        """Get link to first comics."""
1040
        return get_soup_at_url(cls.url).find('a', class_='comic_nav_link first_comic_link')
1041
1042
    @classmethod
1043
    def get_comic_info(cls, soup, link):
1044
        """Get information about a particular comics."""
1045
        title = soup.find("h1", class_="comic_title").string
1046
        date_str = soup.find("span", class_="comic_date").string
1047
        day = string_to_date(date_str, "%B %d, %Y")
1048
        imgs = soup.find_all("img", class_="comic")
1049
        assert all(i['alt'] == i['title'] == title for i in imgs)
1050
        return {
1051
            'title': title,
1052
            'img': [i['src'] for i in imgs if i["src"]],
1053
            'day': day.day,
1054
            'month': day.month,
1055
            'year': day.year
1056
        }
1057
1058