Code Duplication    Length = 26-27 lines in 2 locations

comics.py 2 locations

@@ 1212-1238 (lines=27) @@
1209
        }
1210
1211
1212
class ToonHole(GenericNavigableComic):
1213
    """Class to retrieve Toon Holes comics."""
1214
    # Also on http://tapastic.com/series/TOONHOLE
1215
    name = 'toonhole'
1216
    long_name = 'Toon Hole'
1217
    url = 'http://www.toonhole.com'
1218
    get_first_comic_link = get_a_comicnavbase_comicnavfirst
1219
    get_navi_link = get_a_comicnavbase_comicnavnext
1220
1221
    @classmethod
1222
    def get_comic_info(cls, soup, link):
1223
        """Get information about a particular comics."""
1224
        date_str = soup.find('div', class_='entry-meta').contents[0].strip()
1225
        day = string_to_date(date_str, "%B %d, %Y")
1226
        imgs = soup.find('div', id='comic').find_all('img')
1227
        if imgs:
1228
            img = imgs[0]
1229
            title = img['alt']
1230
            assert img['title'] == title
1231
        else:
1232
            title = ""
1233
        return {
1234
            'title': title,
1235
            'month': day.month,
1236
            'year': day.year,
1237
            'day': day.day,
1238
            'img': [convert_iri_to_plain_ascii_uri(i['src']) for i in imgs],
1239
        }
1240
1241
@@ 1824-1849 (lines=26) @@
1821
        }
1822
1823
1824
class SafelyEndangered(GenericNavigableComic):
1825
    """Class to retrieve Safely Endangered comics."""
1826
    # Also on http://tumblr.safelyendangered.com
1827
    name = 'endangered'
1828
    long_name = 'Safely Endangered'
1829
    url = 'http://www.safelyendangered.com'
1830
    get_navi_link = get_link_rel_next
1831
    get_first_comic_link = simulate_first_link
1832
    first_url = 'http://www.safelyendangered.com/comic/ignored/'
1833
1834
    @classmethod
1835
    def get_comic_info(cls, soup, link):
1836
        """Get information about a particular comics."""
1837
        title = soup.find('h2', class_='post-title').string
1838
        date_str = soup.find('span', class_='post-date').string
1839
        day = string_to_date(date_str, '%B %d, %Y')
1840
        imgs = soup.find('div', id='comic').find_all('img')
1841
        alt = imgs[0]['alt']
1842
        assert all(i['alt'] == i['title'] for i in imgs)
1843
        return {
1844
            'day': day.day,
1845
            'month': day.month,
1846
            'year': day.year,
1847
            'img': [i['src'] for i in imgs],
1848
            'title': title,
1849
            'alt': alt,
1850
        }
1851
1852