mirror of
https://github.com/JimmXinu/FanFicFare.git
synced 2025-12-06 17:02:43 +01:00
py2/py3 transition code
This commit is contained in:
parent
5aaf15c8b4
commit
b8aa3e9a48
153 changed files with 904 additions and 698 deletions
|
|
@ -19,6 +19,9 @@ from __future__ import absolute_import
|
||||||
import os, re, sys, glob, types
|
import os, re, sys, glob, types
|
||||||
from os.path import dirname, basename, normpath
|
from os.path import dirname, basename, normpath
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
from ..six.moves.urllib.parse import urlparse
|
from ..six.moves.urllib.parse import urlparse
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
@ -31,154 +34,154 @@ from .. import configurable as configurable
|
||||||
from . import base_efiction_adapter
|
from . import base_efiction_adapter
|
||||||
from . import adapter_test1
|
from . import adapter_test1
|
||||||
from . import adapter_fanfictionnet
|
from . import adapter_fanfictionnet
|
||||||
# from . import adapter_fanficcastletvnet
|
from . import adapter_fanficcastletvnet
|
||||||
# from . import adapter_fictionalleyorg
|
from . import adapter_fictionalleyorg
|
||||||
# from . import adapter_fictionpresscom
|
from . import adapter_fictionpresscom
|
||||||
# from . import adapter_ficwadcom
|
from . import adapter_ficwadcom
|
||||||
# from . import adapter_fimfictionnet
|
from . import adapter_fimfictionnet
|
||||||
# from . import adapter_mediaminerorg
|
from . import adapter_mediaminerorg
|
||||||
# from . import adapter_potionsandsnitches
|
from . import adapter_potionsandsnitches
|
||||||
# from . import adapter_tenhawkpresentscom
|
from . import adapter_tenhawkpresentscom
|
||||||
# from . import adapter_adastrafanficcom
|
from . import adapter_adastrafanficcom
|
||||||
# from . import adapter_tthfanficorg
|
from . import adapter_tthfanficorg
|
||||||
# from . import adapter_twilightednet
|
from . import adapter_twilightednet
|
||||||
# from . import adapter_whoficcom
|
from . import adapter_whoficcom
|
||||||
# from . import adapter_siyecouk
|
from . import adapter_siyecouk
|
||||||
# from . import adapter_archiveofourownorg
|
from . import adapter_archiveofourownorg
|
||||||
# from . import adapter_ficbooknet
|
from . import adapter_ficbooknet
|
||||||
# from . import adapter_nfacommunitycom
|
from . import adapter_nfacommunitycom
|
||||||
# from . import adapter_midnightwhispers
|
from . import adapter_midnightwhispers
|
||||||
# from . import adapter_ksarchivecom
|
from . import adapter_ksarchivecom
|
||||||
# from . import adapter_archiveskyehawkecom
|
from . import adapter_archiveskyehawkecom
|
||||||
# from . import adapter_squidgeorgpeja
|
from . import adapter_squidgeorgpeja
|
||||||
# from . import adapter_libraryofmoriacom
|
from . import adapter_libraryofmoriacom
|
||||||
# from . import adapter_wraithbaitcom
|
from . import adapter_wraithbaitcom
|
||||||
# from . import adapter_dramioneorg
|
from . import adapter_dramioneorg
|
||||||
# from . import adapter_ashwindersycophanthexcom
|
from . import adapter_ashwindersycophanthexcom
|
||||||
# from . import adapter_chaossycophanthexcom
|
from . import adapter_chaossycophanthexcom
|
||||||
# from . import adapter_erosnsapphosycophanthexcom
|
from . import adapter_erosnsapphosycophanthexcom
|
||||||
# from . import adapter_lumossycophanthexcom
|
from . import adapter_lumossycophanthexcom
|
||||||
# from . import adapter_occlumencysycophanthexcom
|
from . import adapter_occlumencysycophanthexcom
|
||||||
# from . import adapter_phoenixsongnet
|
from . import adapter_phoenixsongnet
|
||||||
# from . import adapter_walkingtheplankorg
|
from . import adapter_walkingtheplankorg
|
||||||
# from . import adapter_dokugacom
|
from . import adapter_dokugacom
|
||||||
# from . import adapter_iketernalnet
|
from . import adapter_iketernalnet
|
||||||
# from . import adapter_storiesofardacom
|
from . import adapter_storiesofardacom
|
||||||
# from . import adapter_destinysgatewaycom
|
from . import adapter_destinysgatewaycom
|
||||||
# from . import adapter_ncisfictioncom
|
from . import adapter_ncisfictioncom
|
||||||
# from . import adapter_fanfiktionde
|
from . import adapter_fanfiktionde
|
||||||
# from . import adapter_ponyfictionarchivenet
|
from . import adapter_ponyfictionarchivenet
|
||||||
# from . import adapter_ncisficcom
|
from . import adapter_ncisficcom
|
||||||
# from . import adapter_nationallibrarynet
|
from . import adapter_nationallibrarynet
|
||||||
# from . import adapter_themasquenet
|
from . import adapter_themasquenet
|
||||||
# from . import adapter_pretendercentrecom
|
from . import adapter_pretendercentrecom
|
||||||
# from . import adapter_darksolaceorg
|
from . import adapter_darksolaceorg
|
||||||
# from . import adapter_finestoriescom
|
from . import adapter_finestoriescom
|
||||||
# from . import adapter_hpfanficarchivecom
|
from . import adapter_hpfanficarchivecom
|
||||||
# from . import adapter_twilightarchivescom
|
from . import adapter_twilightarchivescom
|
||||||
# from . import adapter_nhamagicalworldsus
|
from . import adapter_nhamagicalworldsus
|
||||||
# from . import adapter_hlfictionnet
|
from . import adapter_hlfictionnet
|
||||||
# from . import adapter_dracoandginnycom
|
from . import adapter_dracoandginnycom
|
||||||
# from . import adapter_scarvesandcoffeenet
|
from . import adapter_scarvesandcoffeenet
|
||||||
# from . import adapter_thepetulantpoetesscom
|
from . import adapter_thepetulantpoetesscom
|
||||||
# from . import adapter_wolverineandroguecom
|
from . import adapter_wolverineandroguecom
|
||||||
# from . import adapter_merlinficdtwinscouk
|
from . import adapter_merlinficdtwinscouk
|
||||||
# from . import adapter_thehookupzonenet
|
from . import adapter_thehookupzonenet
|
||||||
# from . import adapter_bloodtiesfancom
|
from . import adapter_bloodtiesfancom
|
||||||
# from . import adapter_qafficcom
|
from . import adapter_qafficcom
|
||||||
# from . import adapter_efpfanficnet
|
from . import adapter_efpfanficnet
|
||||||
# from . import adapter_potterficscom
|
from . import adapter_potterficscom
|
||||||
# from . import adapter_efictionestelielde
|
from . import adapter_efictionestelielde
|
||||||
# from . import adapter_imagineeficcom
|
from . import adapter_imagineeficcom
|
||||||
# from . import adapter_asr3slashzoneorg
|
from . import adapter_asr3slashzoneorg
|
||||||
# from . import adapter_potterheadsanonymouscom
|
from . import adapter_potterheadsanonymouscom
|
||||||
# from . import adapter_fictionpadcom
|
from . import adapter_fictionpadcom
|
||||||
# from . import adapter_storiesonlinenet
|
from . import adapter_storiesonlinenet
|
||||||
# from . import adapter_trekiverseorg
|
from . import adapter_trekiverseorg
|
||||||
# from . import adapter_literotica
|
from . import adapter_literotica
|
||||||
# from . import adapter_voracity2eficcom
|
from . import adapter_voracity2eficcom
|
||||||
# from . import adapter_spikeluvercom
|
from . import adapter_spikeluvercom
|
||||||
# from . import adapter_bloodshedversecom
|
from . import adapter_bloodshedversecom
|
||||||
# from . import adapter_nocturnallightnet
|
from . import adapter_nocturnallightnet
|
||||||
# from . import adapter_fanfichu
|
from . import adapter_fanfichu
|
||||||
# from . import adapter_fictionmaniatv
|
from . import adapter_fictionmaniatv
|
||||||
# from . import adapter_tolkienfanfiction
|
from . import adapter_tolkienfanfiction
|
||||||
# from . import adapter_themaplebookshelf
|
from . import adapter_themaplebookshelf
|
||||||
# from . import adapter_fannation
|
from . import adapter_fannation
|
||||||
# from . import adapter_sheppardweircom
|
from . import adapter_sheppardweircom
|
||||||
# from . import adapter_samandjacknet
|
from . import adapter_samandjacknet
|
||||||
# from . import adapter_csiforensicscom
|
from . import adapter_csiforensicscom
|
||||||
# from . import adapter_lotrfanfictioncom
|
from . import adapter_lotrfanfictioncom
|
||||||
# from . import adapter_fhsarchivecom
|
from . import adapter_fhsarchivecom
|
||||||
# from . import adapter_fanfictionjunkiesde
|
from . import adapter_fanfictionjunkiesde
|
||||||
# from . import adapter_tgstorytimecom
|
from . import adapter_tgstorytimecom
|
||||||
# from . import adapter_itcouldhappennet
|
from . import adapter_itcouldhappennet
|
||||||
from . import adapter_forumsspacebattlescom
|
from . import adapter_forumsspacebattlescom
|
||||||
# from . import adapter_forumssufficientvelocitycom
|
from . import adapter_forumssufficientvelocitycom
|
||||||
# from . import adapter_forumquestionablequestingcom
|
from . import adapter_forumquestionablequestingcom
|
||||||
# from . import adapter_ninelivesarchivecom
|
from . import adapter_ninelivesarchivecom
|
||||||
# from . import adapter_masseffect2in
|
from . import adapter_masseffect2in
|
||||||
# from . import adapter_quotevcom
|
from . import adapter_quotevcom
|
||||||
# from . import adapter_mcstoriescom
|
from . import adapter_mcstoriescom
|
||||||
# from . import adapter_buffygilescom
|
from . import adapter_buffygilescom
|
||||||
# from . import adapter_andromedawebcom
|
from . import adapter_andromedawebcom
|
||||||
# from . import adapter_artemisfowlcom
|
from . import adapter_artemisfowlcom
|
||||||
# from . import adapter_naiceanilmenet
|
from . import adapter_naiceanilmenet
|
||||||
# from . import adapter_deepinmysoulnet
|
from . import adapter_deepinmysoulnet
|
||||||
# from . import adapter_kiarepositorymujajinet
|
from . import adapter_kiarepositorymujajinet
|
||||||
# from . import adapter_adultfanfictionorg
|
from . import adapter_adultfanfictionorg
|
||||||
# from . import adapter_fictionhuntcom
|
from . import adapter_fictionhuntcom
|
||||||
# from . import adapter_royalroadl
|
from . import adapter_royalroadl
|
||||||
# from . import adapter_chosentwofanficcom
|
from . import adapter_chosentwofanficcom
|
||||||
# from . import adapter_bdsmlibrarycom
|
from . import adapter_bdsmlibrarycom
|
||||||
# from . import adapter_asexstoriescom
|
from . import adapter_asexstoriescom
|
||||||
# from . import adapter_gluttonyfictioncom
|
from . import adapter_gluttonyfictioncom
|
||||||
# from . import adapter_valentchambercom
|
from . import adapter_valentchambercom
|
||||||
# from . import adapter_looselugscom
|
from . import adapter_looselugscom
|
||||||
# from . import adapter_wwwgiantessworldnet
|
from . import adapter_wwwgiantessworldnet
|
||||||
# from . import adapter_lotrgficcom
|
from . import adapter_lotrgficcom
|
||||||
# from . import adapter_tomparisdormcom
|
from . import adapter_tomparisdormcom
|
||||||
# from . import adapter_writingwhimsicalwanderingsnet
|
from . import adapter_writingwhimsicalwanderingsnet
|
||||||
# from . import adapter_sugarquillnet
|
from . import adapter_sugarquillnet
|
||||||
# from . import adapter_wwwarea52hkhnet
|
from . import adapter_wwwarea52hkhnet
|
||||||
# from . import adapter_starslibrarynet
|
from . import adapter_starslibrarynet
|
||||||
# from . import adapter_fanficauthorsnet
|
from . import adapter_fanficauthorsnet
|
||||||
# from . import adapter_fireflyfansnet
|
from . import adapter_fireflyfansnet
|
||||||
# from . import adapter_fireflypopulliorg
|
from . import adapter_fireflypopulliorg
|
||||||
# from . import adapter_sebklainenet
|
from . import adapter_sebklainenet
|
||||||
# from . import adapter_shriftweborgbfa
|
from . import adapter_shriftweborgbfa
|
||||||
# from . import adapter_trekfanfictionnet
|
from . import adapter_trekfanfictionnet
|
||||||
# from . import adapter_wuxiaworldcom
|
from . import adapter_wuxiaworldcom
|
||||||
# from . import adapter_wwwlushstoriescom
|
from . import adapter_wwwlushstoriescom
|
||||||
# from . import adapter_wwwutopiastoriescom
|
from . import adapter_wwwutopiastoriescom
|
||||||
# from . import adapter_sinfuldreamscomunicornfic
|
from . import adapter_sinfuldreamscomunicornfic
|
||||||
# from . import adapter_sinfuldreamscomwhisperedmuse
|
from . import adapter_sinfuldreamscomwhisperedmuse
|
||||||
# from . import adapter_sinfuldreamscomwickedtemptation
|
from . import adapter_sinfuldreamscomwickedtemptation
|
||||||
# from . import adapter_asianfanficscom
|
from . import adapter_asianfanficscom
|
||||||
# from . import adapter_webnovelcom
|
from . import adapter_webnovelcom
|
||||||
# from . import adapter_deandamagecom
|
from . import adapter_deandamagecom
|
||||||
# from . import adapter_imrightbehindyoucom
|
from . import adapter_imrightbehindyoucom
|
||||||
# from . import adapter_mttjustoncenet
|
from . import adapter_mttjustoncenet
|
||||||
# from . import adapter_narutoficorg
|
from . import adapter_narutoficorg
|
||||||
# from . import adapter_starskyhutcharchivenet
|
from . import adapter_starskyhutcharchivenet
|
||||||
# from . import adapter_swordborderlineangelcom
|
from . import adapter_swordborderlineangelcom
|
||||||
# from . import adapter_tasteofpoisoninkubationnet
|
from . import adapter_tasteofpoisoninkubationnet
|
||||||
# from . import adapter_thebrokenworldorg
|
from . import adapter_thebrokenworldorg
|
||||||
# from . import adapter_thedelphicexpansecom
|
from . import adapter_thedelphicexpansecom
|
||||||
# from . import adapter_thundercatsfansorg
|
from . import adapter_thundercatsfansorg
|
||||||
# from . import adapter_unknowableroomorg
|
from . import adapter_unknowableroomorg
|
||||||
# from . import adapter_www13hoursorg
|
from . import adapter_www13hoursorg
|
||||||
# from . import adapter_wwwaneroticstorycom
|
from . import adapter_wwwaneroticstorycom
|
||||||
# from . import adapter_gravitytalescom
|
from . import adapter_gravitytalescom
|
||||||
# from . import adapter_lcfanficcom
|
from . import adapter_lcfanficcom
|
||||||
# from . import adapter_noveltrovecom
|
from . import adapter_noveltrovecom
|
||||||
# from . import adapter_inkbunnynet
|
from . import adapter_inkbunnynet
|
||||||
# from . import adapter_alternatehistorycom
|
from . import adapter_alternatehistorycom
|
||||||
# from . import adapter_wattpadcom
|
from . import adapter_wattpadcom
|
||||||
# from . import adapter_lightnovelgatecom
|
from . import adapter_lightnovelgatecom
|
||||||
# from . import adapter_wwwnovelallcom
|
from . import adapter_wwwnovelallcom
|
||||||
# from . import adapter_wuxiaworldco
|
from . import adapter_wuxiaworldco
|
||||||
# from . import adapter_harrypotterfanfictioncom
|
from . import adapter_harrypotterfanfictioncom
|
||||||
|
|
||||||
## This bit of complexity allows adapters to be added by just adding
|
## This bit of complexity allows adapters to be added by just adding
|
||||||
## importing. It eliminates the long if/else clauses we used to need
|
## importing. It eliminates the long if/else clauses we used to need
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2011 Fanficdownloader team, 2017 FanFicFare team
|
# Copyright 2011 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -20,12 +20,15 @@ from __future__ import absolute_import
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
import re
|
import re
|
||||||
import urllib
|
|
||||||
import urllib2
|
|
||||||
|
|
||||||
from ..htmlcleanup import stripHTML
|
from ..htmlcleanup import stripHTML
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six import string_types as basestring
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
class AdAstraFanficComSiteAdapter(BaseSiteAdapter):
|
class AdAstraFanficComSiteAdapter(BaseSiteAdapter):
|
||||||
|
|
@ -73,7 +76,7 @@ class AdAstraFanficComSiteAdapter(BaseSiteAdapter):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# -- coding: utf-8 --
|
# -- coding: utf-8 --
|
||||||
# Copyright 2013 Fanficdownloader team, 2017 FanFicFare team
|
# Copyright 2013 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -23,12 +23,15 @@ import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
import re
|
import re
|
||||||
import sys
|
import sys
|
||||||
import urllib2
|
|
||||||
from bs4 import UnicodeDammit
|
from bs4 import UnicodeDammit
|
||||||
|
|
||||||
from ..htmlcleanup import stripHTML
|
from ..htmlcleanup import stripHTML
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
@ -199,7 +202,7 @@ class AdultFanFictionOrgAdapter(BaseSiteAdapter):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist("Code: 404. {0}".format(url))
|
raise exceptions.StoryDoesNotExist("Code: 404. {0}".format(url))
|
||||||
elif e.code == 410:
|
elif e.code == 410:
|
||||||
|
|
@ -265,7 +268,7 @@ class AdultFanFictionOrgAdapter(BaseSiteAdapter):
|
||||||
logger.debug('Getting the author page: {0}'.format(author_Url))
|
logger.debug('Getting the author page: {0}'.format(author_Url))
|
||||||
try:
|
try:
|
||||||
adata = self._fetchUrl(author_Url)
|
adata = self._fetchUrl(author_Url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code in 404:
|
if e.code in 404:
|
||||||
raise exceptions.StoryDoesNotExist("Author Page: Code: 404. {0}".format(author_Url))
|
raise exceptions.StoryDoesNotExist("Author Page: Code: 404. {0}".format(author_Url))
|
||||||
elif e.code == 410:
|
elif e.code == 410:
|
||||||
|
|
@ -303,7 +306,7 @@ class AdultFanFictionOrgAdapter(BaseSiteAdapter):
|
||||||
logger.debug('Getting the author page: {0}'.format(author_Url))
|
logger.debug('Getting the author page: {0}'.format(author_Url))
|
||||||
try:
|
try:
|
||||||
adata = self._fetchUrl(author_Url)
|
adata = self._fetchUrl(author_Url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code in 404:
|
if e.code in 404:
|
||||||
raise exceptions.StoryDoesNotExist("Author Page: Code: 404. {0}".format(author_Url))
|
raise exceptions.StoryDoesNotExist("Author Page: Code: 404. {0}".format(author_Url))
|
||||||
elif e.code == 410:
|
elif e.code == 410:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2017 FanFicFare team
|
# Copyright 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
from __future__ import absolute_import
|
from __future__ import absolute_import
|
||||||
from adapter_forumquestionablequestingcom import QuestionablequestingComAdapter
|
from .adapter_forumquestionablequestingcom import QuestionablequestingComAdapter
|
||||||
|
|
||||||
def getClass():
|
def getClass():
|
||||||
return WWWAlternatehistoryComAdapter
|
return WWWAlternatehistoryComAdapter
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2017 FanFicFare team
|
# Copyright 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -22,12 +22,13 @@ from __future__ import absolute_import
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
import re
|
import re
|
||||||
import urllib2
|
|
||||||
|
|
||||||
|
|
||||||
from ..htmlcleanup import stripHTML
|
from ..htmlcleanup import stripHTML
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
def getClass():
|
def getClass():
|
||||||
|
|
@ -125,7 +126,7 @@ class AndromedaWebComAdapter(BaseSiteAdapter): # XXX
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
@ -159,7 +160,7 @@ class AndromedaWebComAdapter(BaseSiteAdapter): # XXX
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2014 Fanficdownloader team, 2017 FanFicFare team
|
# Copyright 2014 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -19,12 +19,15 @@ from __future__ import absolute_import
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
import re
|
import re
|
||||||
import urllib2
|
|
||||||
import json
|
import json
|
||||||
|
|
||||||
from ..htmlcleanup import stripHTML
|
from ..htmlcleanup import stripHTML
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
def getClass():
|
def getClass():
|
||||||
|
|
@ -155,7 +158,7 @@ class ArchiveOfOurOwnOrgAdapter(BaseSiteAdapter):
|
||||||
if "This work could have adult content. If you proceed you have agreed that you are willing to see such content." in meta:
|
if "This work could have adult content. If you proceed you have agreed that you are willing to see such content." in meta:
|
||||||
raise exceptions.AdultCheckRequired(self.url)
|
raise exceptions.AdultCheckRequired(self.url)
|
||||||
|
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2011 Fanficdownloader team, 2017 FanFicFare team
|
# Copyright 2011 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -19,12 +19,13 @@ from __future__ import absolute_import
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
import re
|
import re
|
||||||
import urllib2
|
|
||||||
|
|
||||||
|
|
||||||
from ..htmlcleanup import stripHTML
|
from ..htmlcleanup import stripHTML
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -80,7 +81,7 @@ class ArchiveSkyeHawkeComAdapter(BaseSiteAdapter):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2017 FanFicFare team
|
# Copyright 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -22,12 +22,13 @@ from __future__ import absolute_import
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
import re
|
import re
|
||||||
import urllib2
|
|
||||||
|
|
||||||
|
|
||||||
from ..htmlcleanup import stripHTML
|
from ..htmlcleanup import stripHTML
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
def getClass():
|
def getClass():
|
||||||
|
|
@ -125,7 +126,7 @@ class ArtemisFowlComAdapter(BaseSiteAdapter): # XXX
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
@ -159,7 +160,7 @@ class ArtemisFowlComAdapter(BaseSiteAdapter): # XXX
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2013 Fanficdownloader team, 2017 FanFicFare team
|
# Copyright 2013 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -19,8 +19,6 @@ from __future__ import absolute_import
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
import re
|
import re
|
||||||
import urllib2
|
|
||||||
import urlparse
|
|
||||||
import os
|
import os
|
||||||
|
|
||||||
from bs4.element import Comment
|
from bs4.element import Comment
|
||||||
|
|
@ -28,6 +26,11 @@ from ..htmlcleanup import stripHTML
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib import parse as urlparse
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
def getClass():
|
def getClass():
|
||||||
|
|
@ -83,7 +86,7 @@ class ASexStoriesComAdapter(BaseSiteAdapter):
|
||||||
soup1 = self.make_soup(data1)
|
soup1 = self.make_soup(data1)
|
||||||
#strip comments from soup
|
#strip comments from soup
|
||||||
[comment.extract() for comment in soup1.find_all(text=lambda text:isinstance(text, Comment))]
|
[comment.extract() for comment in soup1.find_all(text=lambda text:isinstance(text, Comment))]
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2011 Fanficdownloader team, 2017 FanFicFare team
|
# Copyright 2011 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -20,12 +20,13 @@ from __future__ import absolute_import
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
import re
|
import re
|
||||||
import urllib2
|
|
||||||
|
|
||||||
|
|
||||||
from ..htmlcleanup import stripHTML
|
from ..htmlcleanup import stripHTML
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
def getClass():
|
def getClass():
|
||||||
|
|
@ -115,7 +116,7 @@ class AshwinderSycophantHexComAdapter(BaseSiteAdapter):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -4,11 +4,13 @@ from __future__ import absolute_import
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
import re
|
import re
|
||||||
import urllib2
|
|
||||||
|
|
||||||
from ..htmlcleanup import stripHTML
|
from ..htmlcleanup import stripHTML
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
def getClass():
|
def getClass():
|
||||||
|
|
@ -125,7 +127,7 @@ class AsianFanFicsComAdapter(BaseSiteAdapter):
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
|
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2013 Fanficdownloader team, 2017 FanFicFare team
|
# Copyright 2013 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -20,12 +20,13 @@ from __future__ import absolute_import
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
import re
|
import re
|
||||||
import urllib2
|
|
||||||
|
|
||||||
|
|
||||||
from ..htmlcleanup import stripHTML
|
from ..htmlcleanup import stripHTML
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
def getClass():
|
def getClass():
|
||||||
|
|
@ -85,7 +86,7 @@ class Asr3SlashzoneOrgAdapter(BaseSiteAdapter):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
@ -105,7 +106,7 @@ class Asr3SlashzoneOrgAdapter(BaseSiteAdapter):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2011 Fanficdownloader team, 2017 FanFicFare team
|
# Copyright 2011 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -51,14 +51,16 @@ import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
import re
|
import re
|
||||||
import urllib
|
import urllib
|
||||||
import urllib2
|
|
||||||
import sys
|
import sys
|
||||||
import urlparse
|
|
||||||
|
|
||||||
from bs4 import Comment
|
from bs4 import Comment
|
||||||
from ..htmlcleanup import stripHTML
|
from ..htmlcleanup import stripHTML
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib import parse as urlparse
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
def getClass():
|
def getClass():
|
||||||
|
|
@ -111,7 +113,7 @@ class BDSMLibraryComSiteAdapter(BaseSiteAdapter):
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(self.url)
|
data = self._fetchUrl(self.url)
|
||||||
soup = self.make_soup(data)
|
soup = self.make_soup(data)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
@ -133,7 +135,7 @@ class BDSMLibraryComSiteAdapter(BaseSiteAdapter):
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(self.url)
|
data = self._fetchUrl(self.url)
|
||||||
soup = self.make_soup(data)
|
soup = self.make_soup(data)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,6 @@
|
||||||
from __future__ import absolute_import
|
from __future__ import absolute_import
|
||||||
from datetime import timedelta
|
from datetime import timedelta
|
||||||
import re
|
import re
|
||||||
import urllib2
|
|
||||||
import urlparse
|
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
@ -10,6 +8,11 @@ logger = logging.getLogger(__name__)
|
||||||
from bs4 import BeautifulSoup
|
from bs4 import BeautifulSoup
|
||||||
from ..htmlcleanup import stripHTML
|
from ..htmlcleanup import stripHTML
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib import parse as urlparse
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
from .. import exceptions
|
from .. import exceptions
|
||||||
|
|
||||||
|
|
@ -48,7 +51,7 @@ class BloodshedverseComAdapter(BaseSiteAdapter):
|
||||||
if exception:
|
if exception:
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url, parameters)
|
data = self._fetchUrl(url, parameters)
|
||||||
except urllib2.HTTPError:
|
except HTTPError:
|
||||||
raise exception(self.url)
|
raise exception(self.url)
|
||||||
# Just let self._fetchUrl throw the exception, don't catch and
|
# Just let self._fetchUrl throw the exception, don't catch and
|
||||||
# customize it.
|
# customize it.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2011 Fanficdownloader team, 2017 FanFicFare team
|
# Copyright 2011 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -20,12 +20,14 @@ from __future__ import absolute_import
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
import re
|
import re
|
||||||
import urllib2
|
|
||||||
|
|
||||||
from bs4.element import Tag
|
from bs4.element import Tag
|
||||||
from ..htmlcleanup import stripHTML
|
from ..htmlcleanup import stripHTML
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
# By virtue of being recent and requiring both is_adult and user/pass,
|
# By virtue of being recent and requiring both is_adult and user/pass,
|
||||||
|
|
@ -150,7 +152,7 @@ class BloodTiesFansComAdapter(BaseSiteAdapter): # XXX
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
@ -184,7 +186,7 @@ class BloodTiesFansComAdapter(BaseSiteAdapter): # XXX
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2017 FanFicFare team
|
# Copyright 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -20,12 +20,13 @@ from __future__ import absolute_import
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
import re
|
import re
|
||||||
import urllib2
|
|
||||||
|
|
||||||
|
|
||||||
from ..htmlcleanup import stripHTML
|
from ..htmlcleanup import stripHTML
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
def getClass():
|
def getClass():
|
||||||
|
|
@ -123,7 +124,7 @@ class BuffyGilesComAdapter(BaseSiteAdapter):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
@ -157,7 +158,7 @@ class BuffyGilesComAdapter(BaseSiteAdapter):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2011 Fanficdownloader team, 2017 FanFicFare team
|
# Copyright 2011 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -20,12 +20,13 @@ from __future__ import absolute_import
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
import re
|
import re
|
||||||
import urllib2
|
|
||||||
|
|
||||||
|
|
||||||
from ..htmlcleanup import stripHTML
|
from ..htmlcleanup import stripHTML
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
def getClass():
|
def getClass():
|
||||||
|
|
@ -88,7 +89,7 @@ class ChaosSycophantHexComAdapter(BaseSiteAdapter):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2012 Fanficdownloader team, 2017 FanFicFare team
|
# Copyright 2012 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -20,13 +20,16 @@ from __future__ import absolute_import
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
import re
|
import re
|
||||||
import urllib2
|
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
from bs4.element import Comment
|
from bs4.element import Comment
|
||||||
from ..htmlcleanup import stripHTML
|
from ..htmlcleanup import stripHTML
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
def getClass():
|
def getClass():
|
||||||
|
|
@ -85,7 +88,7 @@ class ChosenTwoFanFicArchiveAdapter(BaseSiteAdapter):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2011 Fanficdownloader team, 2017 FanFicFare team
|
# Copyright 2011 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -19,12 +19,13 @@ from __future__ import absolute_import
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
import re
|
import re
|
||||||
import urllib2
|
|
||||||
|
|
||||||
|
|
||||||
from ..htmlcleanup import stripHTML
|
from ..htmlcleanup import stripHTML
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -87,7 +88,7 @@ class CSIForensicsComAdapter(BaseSiteAdapter):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2011 Fanficdownloader team, 2015 FanFicFare team
|
# Copyright 2011 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2011 Fanficdownloader team, 2017 FanFicFare team
|
# Copyright 2011 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2013 Fanficdownloader team, 2017 FanFicFare team
|
# Copyright 2013 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -20,12 +20,13 @@ from __future__ import absolute_import
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
import re
|
import re
|
||||||
import urllib2
|
|
||||||
|
|
||||||
|
|
||||||
from ..htmlcleanup import stripHTML
|
from ..htmlcleanup import stripHTML
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
def getClass():
|
def getClass():
|
||||||
|
|
@ -123,7 +124,7 @@ class DeepInMySoulNetAdapter(BaseSiteAdapter): # XXX
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
@ -157,7 +158,7 @@ class DeepInMySoulNetAdapter(BaseSiteAdapter): # XXX
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2012 Fanficdownloader team, 2017 FanFicFare team
|
# Copyright 2012 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -20,12 +20,13 @@ from __future__ import absolute_import
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
import re
|
import re
|
||||||
import urllib2
|
|
||||||
|
|
||||||
|
|
||||||
from ..htmlcleanup import stripHTML
|
from ..htmlcleanup import stripHTML
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
def getClass():
|
def getClass():
|
||||||
|
|
@ -88,7 +89,7 @@ class DestinysGatewayComAdapter(BaseSiteAdapter):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
@ -108,7 +109,7 @@ class DestinysGatewayComAdapter(BaseSiteAdapter):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2011 Fanficdownloader team, 2017 FanFicFare team
|
# Copyright 2011 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -19,12 +19,13 @@ from __future__ import absolute_import
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
import re
|
import re
|
||||||
import urllib2
|
|
||||||
|
|
||||||
|
|
||||||
from ..htmlcleanup import stripHTML
|
from ..htmlcleanup import stripHTML
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
def getClass():
|
def getClass():
|
||||||
|
|
@ -126,7 +127,7 @@ class DokugaComAdapter(BaseSiteAdapter):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2012 Fanficdownloader team, 2017 FanFicFare team
|
# Copyright 2012 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -20,12 +20,13 @@ from __future__ import absolute_import
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
import re
|
import re
|
||||||
import urllib2
|
|
||||||
|
|
||||||
|
|
||||||
from ..htmlcleanup import stripHTML
|
from ..htmlcleanup import stripHTML
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
def getClass():
|
def getClass():
|
||||||
|
|
@ -122,7 +123,7 @@ class DracoAndGinnyComAdapter(BaseSiteAdapter):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
@ -147,7 +148,7 @@ class DracoAndGinnyComAdapter(BaseSiteAdapter):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2011 Fanficdownloader team, 2017 FanFicFare team
|
# Copyright 2011 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -20,12 +20,14 @@ from __future__ import absolute_import
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
import re
|
import re
|
||||||
import urllib2
|
|
||||||
|
|
||||||
from bs4.element import Tag
|
from bs4.element import Tag
|
||||||
from ..htmlcleanup import stripHTML
|
from ..htmlcleanup import stripHTML
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
def getClass():
|
def getClass():
|
||||||
|
|
@ -122,7 +124,7 @@ class DramioneOrgAdapter(BaseSiteAdapter):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2013 Fanficdownloader team, 2017 FanFicFare team
|
# Copyright 2013 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -20,12 +20,13 @@ from __future__ import absolute_import
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
import re
|
import re
|
||||||
import urllib2
|
|
||||||
|
|
||||||
|
|
||||||
from ..htmlcleanup import stripHTML
|
from ..htmlcleanup import stripHTML
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
def getClass():
|
def getClass():
|
||||||
|
|
@ -79,7 +80,7 @@ class EfictionEstelielDeAdapter(BaseSiteAdapter):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2012 Fanficdownloader team, 2017 FanFicFare team
|
# Copyright 2012 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -20,12 +20,13 @@ from __future__ import absolute_import
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
import re
|
import re
|
||||||
import urllib2
|
|
||||||
|
|
||||||
|
|
||||||
from ..htmlcleanup import stripHTML
|
from ..htmlcleanup import stripHTML
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
def getClass():
|
def getClass():
|
||||||
|
|
@ -110,7 +111,7 @@ class EFPFanFicNet(BaseSiteAdapter):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2011 Fanficdownloader team, 2017 FanFicFare team
|
# Copyright 2011 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -20,12 +20,13 @@ from __future__ import absolute_import
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
import re
|
import re
|
||||||
import urllib2
|
|
||||||
|
|
||||||
|
|
||||||
from ..htmlcleanup import stripHTML
|
from ..htmlcleanup import stripHTML
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
def getClass():
|
def getClass():
|
||||||
|
|
@ -88,7 +89,7 @@ class ErosnSapphoSycophantHexComAdapter(BaseSiteAdapter):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
@ -108,7 +109,7 @@ class ErosnSapphoSycophantHexComAdapter(BaseSiteAdapter):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# -- coding: utf-8 --
|
# -- coding: utf-8 --
|
||||||
# Copyright 2013 Fanficdownloader team, 2017 FanFicFare team
|
# Copyright 2013 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -24,12 +24,15 @@ import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
import re
|
import re
|
||||||
import sys
|
import sys
|
||||||
import urllib2
|
|
||||||
from bs4 import UnicodeDammit, Comment
|
from bs4 import UnicodeDammit, Comment
|
||||||
|
|
||||||
from ..htmlcleanup import stripHTML
|
from ..htmlcleanup import stripHTML
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
####################################################################################################
|
####################################################################################################
|
||||||
|
|
@ -157,7 +160,7 @@ class FanficAuthorsNetAdapter(BaseSiteAdapter):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url+'index/', params, usecache=False)
|
data = self._fetchUrl(url+'index/', params, usecache=False)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist("Code: 404. {0}".format(url))
|
raise exceptions.StoryDoesNotExist("Code: 404. {0}".format(url))
|
||||||
elif e.code == 410:
|
elif e.code == 410:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2014 Fanficdownloader team, 2017 FanFicFare team
|
# Copyright 2014 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -20,12 +20,13 @@ from __future__ import absolute_import
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
import re
|
import re
|
||||||
import urllib2
|
|
||||||
|
|
||||||
|
|
||||||
from ..htmlcleanup import stripHTML
|
from ..htmlcleanup import stripHTML
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
# In general an 'adapter' needs to do these five things:
|
# In general an 'adapter' needs to do these five things:
|
||||||
|
|
@ -138,7 +139,7 @@ class FanficCastleTVNetAdapter(BaseSiteAdapter): # XXX
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
@ -163,7 +164,7 @@ class FanficCastleTVNetAdapter(BaseSiteAdapter): # XXX
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# coding=utf-8
|
# coding=utf-8
|
||||||
|
|
||||||
# Copyright 2014 Fanficdownloader team, 2017 FanFicFare team
|
# Copyright 2014 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -17,8 +17,10 @@
|
||||||
|
|
||||||
from __future__ import absolute_import
|
from __future__ import absolute_import
|
||||||
import re
|
import re
|
||||||
import urllib2
|
# py2 vs py3 transition
|
||||||
import urlparse
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib import parse as urlparse
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
from .. import exceptions
|
from .. import exceptions
|
||||||
|
|
@ -62,7 +64,7 @@ class FanficHuAdapter(BaseSiteAdapter):
|
||||||
if exception:
|
if exception:
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url, parameters)
|
data = self._fetchUrl(url, parameters)
|
||||||
except urllib2.HTTPError:
|
except HTTPError:
|
||||||
raise exception(self.url)
|
raise exception(self.url)
|
||||||
# Just let self._fetchUrl throw the exception, don't catch and
|
# Just let self._fetchUrl throw the exception, don't catch and
|
||||||
# customize it.
|
# customize it.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2011 Fanficdownloader team, 2017 FanFicFare team
|
# Copyright 2011 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -20,12 +20,13 @@ from __future__ import absolute_import
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
import re
|
import re
|
||||||
import urllib2
|
|
||||||
|
|
||||||
|
|
||||||
from ..htmlcleanup import stripHTML
|
from ..htmlcleanup import stripHTML
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
# By virtue of being recent and requiring both is_adult and user/pass,
|
# By virtue of being recent and requiring both is_adult and user/pass,
|
||||||
|
|
@ -147,7 +148,7 @@ class FanfictionJunkiesDeAdapter(BaseSiteAdapter): # XXX
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2012 Fanficdownloader team, 2017 FanFicFare team
|
# Copyright 2012 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -21,13 +21,14 @@ import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
import re
|
import re
|
||||||
import urllib
|
import urllib
|
||||||
import urllib2
|
|
||||||
|
|
||||||
|
|
||||||
from ..htmlcleanup import stripHTML
|
from ..htmlcleanup import stripHTML
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
|
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
def getClass():
|
def getClass():
|
||||||
|
|
@ -119,7 +120,7 @@ class FanFiktionDeAdapter(BaseSiteAdapter):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2014 Fanficdownloader team, 2015 FanFicFare team
|
# Copyright 2014 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2014 Fanficdownloader team, 2015 FanFicFare team
|
# Copyright 2014 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2011 Fanficdownloader team, 2017 FanFicFare team
|
# Copyright 2011 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -20,13 +20,16 @@ import datetime
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
import re
|
import re
|
||||||
import urllib2
|
|
||||||
from .. import translit
|
from .. import translit
|
||||||
|
|
||||||
|
|
||||||
from ..htmlcleanup import stripHTML
|
from ..htmlcleanup import stripHTML
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -77,7 +80,7 @@ class FicBookNetAdapter(BaseSiteAdapter):
|
||||||
logger.debug("URL: "+url)
|
logger.debug("URL: "+url)
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2011 Fanficdownloader team, 2017 FanFicFare team
|
# Copyright 2011 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -20,12 +20,13 @@ import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
import re
|
import re
|
||||||
import urllib
|
import urllib
|
||||||
import urllib2
|
|
||||||
|
|
||||||
|
|
||||||
from ..htmlcleanup import stripHTML
|
from ..htmlcleanup import stripHTML
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
class FictionAlleyOrgSiteAdapter(BaseSiteAdapter):
|
class FictionAlleyOrgSiteAdapter(BaseSiteAdapter):
|
||||||
|
|
@ -80,7 +81,7 @@ class FictionAlleyOrgSiteAdapter(BaseSiteAdapter):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._postFetchWithIAmOld(url)
|
data = self._postFetchWithIAmOld(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2016 FanFicFare team
|
# Copyright 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -19,11 +19,13 @@ from __future__ import absolute_import
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
import re
|
import re
|
||||||
import urllib2
|
|
||||||
|
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
from ..htmlcleanup import stripHTML
|
from ..htmlcleanup import stripHTML
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
class FictionHuntComSiteAdapter(BaseSiteAdapter):
|
class FictionHuntComSiteAdapter(BaseSiteAdapter):
|
||||||
|
|
@ -69,7 +71,7 @@ class FictionHuntComSiteAdapter(BaseSiteAdapter):
|
||||||
url = self.url
|
url = self.url
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.meta)
|
raise exceptions.StoryDoesNotExist(self.meta)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,9 @@
|
||||||
from __future__ import absolute_import
|
from __future__ import absolute_import
|
||||||
import re
|
import re
|
||||||
import urllib2
|
# py2 vs py3 transition
|
||||||
import urlparse
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib import parse as urlparse
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
|
|
@ -45,7 +47,7 @@ class FictionManiaTVAdapter(BaseSiteAdapter):
|
||||||
if exception:
|
if exception:
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url, parameters)
|
data = self._fetchUrl(url, parameters)
|
||||||
except urllib2.HTTPError:
|
except HTTPError:
|
||||||
raise exception(self.url)
|
raise exception(self.url)
|
||||||
# Just let self._fetchUrl throw the exception, don't catch and
|
# Just let self._fetchUrl throw the exception, don't catch and
|
||||||
# customize it.
|
# customize it.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2013 Fanficdownloader team, 2015 FanFicFare team
|
# Copyright 2013 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -19,13 +19,16 @@ from __future__ import absolute_import
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
import re
|
import re
|
||||||
import urllib2
|
|
||||||
import json
|
import json
|
||||||
|
|
||||||
|
|
||||||
#from ..htmlcleanup import stripHTML
|
#from ..htmlcleanup import stripHTML
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
class FictionPadSiteAdapter(BaseSiteAdapter):
|
class FictionPadSiteAdapter(BaseSiteAdapter):
|
||||||
|
|
@ -122,7 +125,7 @@ class FictionPadSiteAdapter(BaseSiteAdapter):
|
||||||
data = data[:data.rindex(";")]
|
data = data[:data.rindex(";")]
|
||||||
data = data.replace('tables:','"tables":')
|
data = data.replace('tables:','"tables":')
|
||||||
tables = json.loads(data)['tables']
|
tables = json.loads(data)['tables']
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(url)
|
raise exceptions.StoryDoesNotExist(url)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2011 Fanficdownloader team, 2015 FanFicFare team
|
# Copyright 2011 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -19,9 +19,12 @@ from __future__ import absolute_import
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
import re
|
import re
|
||||||
import urllib2
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
|
||||||
## They're from the same people and pretty much identical.
|
## They're from the same people and pretty much identical.
|
||||||
from adapter_fanfictionnet import FanFictionNetSiteAdapter
|
from .adapter_fanfictionnet import FanFictionNetSiteAdapter
|
||||||
|
|
||||||
class FictionPressComSiteAdapter(FanFictionNetSiteAdapter):
|
class FictionPressComSiteAdapter(FanFictionNetSiteAdapter):
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2011 Fanficdownloader team, 2015 FanFicFare team
|
# Copyright 2011 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -19,12 +19,14 @@ from __future__ import absolute_import
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
import re
|
import re
|
||||||
import urllib2
|
|
||||||
import httplib, urllib
|
|
||||||
|
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
from ..htmlcleanup import stripHTML
|
from ..htmlcleanup import stripHTML
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
class FicwadComSiteAdapter(BaseSiteAdapter):
|
class FicwadComSiteAdapter(BaseSiteAdapter):
|
||||||
|
|
@ -95,7 +97,7 @@ class FicwadComSiteAdapter(BaseSiteAdapter):
|
||||||
if "<h4>Featured Story</h4>" in data:
|
if "<h4>Featured Story</h4>" in data:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
soup = self.make_soup(data)
|
soup = self.make_soup(data)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
@ -117,7 +119,7 @@ class FicwadComSiteAdapter(BaseSiteAdapter):
|
||||||
self._setURL(url)
|
self._setURL(url)
|
||||||
try:
|
try:
|
||||||
soup = self.make_soup(self._fetchUrl(url))
|
soup = self.make_soup(self._fetchUrl(url))
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2011 Fanficdownloader team, 2017 FanFicFare team
|
# Copyright 2011 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -21,13 +21,16 @@ from datetime import date, datetime
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
import re
|
import re
|
||||||
import urllib2
|
|
||||||
import cookielib as cl
|
|
||||||
import json
|
import json
|
||||||
|
|
||||||
from ..htmlcleanup import stripHTML
|
from ..htmlcleanup import stripHTML
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
from ..six.moves import http_cookiejar as cl
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
def getClass():
|
def getClass():
|
||||||
|
|
@ -98,7 +101,7 @@ class FimFictionNetSiteAdapter(BaseSiteAdapter):
|
||||||
data = self.do_fix_blockquotes(self._fetchUrl(self.url,
|
data = self.do_fix_blockquotes(self._fetchUrl(self.url,
|
||||||
usecache=(not self.is_adult)))
|
usecache=(not self.is_adult)))
|
||||||
soup = self.make_soup(data)
|
soup = self.make_soup(data)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2013 Fanficdownloader team, 2015 FanFicFare team
|
# Copyright 2013 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -18,7 +18,11 @@
|
||||||
from __future__ import absolute_import
|
from __future__ import absolute_import
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
from adapter_storiesonlinenet import StoriesOnlineNetAdapter
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
|
||||||
|
from .adapter_storiesonlinenet import StoriesOnlineNetAdapter
|
||||||
|
|
||||||
def getClass():
|
def getClass():
|
||||||
return FineStoriesComAdapter
|
return FineStoriesComAdapter
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2011 Fanficdownloader team, 2017 FanFicFare team
|
# Copyright 2011 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -22,7 +22,9 @@ from __future__ import absolute_import
|
||||||
import logging
|
import logging
|
||||||
import re
|
import re
|
||||||
import sys
|
import sys
|
||||||
import urllib2
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
|
|
@ -79,7 +81,7 @@ class FireFlyFansNetSiteAdapter(BaseSiteAdapter):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# Copyright 2017 FanFicFare team
|
# Copyright 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -25,9 +25,12 @@ from __future__ import absolute_import
|
||||||
''' This adapter scrapes the metadata and chapter text from stories on firefly.populli.org '''
|
''' This adapter scrapes the metadata and chapter text from stories on firefly.populli.org '''
|
||||||
import logging
|
import logging
|
||||||
import re
|
import re
|
||||||
import urllib2
|
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
|
|
@ -98,7 +101,7 @@ class FireflyPopulliOrgSiteAdapter(BaseSiteAdapter):
|
||||||
'''
|
'''
|
||||||
try:
|
try:
|
||||||
page_data = self._fetchUrl(page)
|
page_data = self._fetchUrl(page)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist('404 error: {}'.format(page))
|
raise exceptions.StoryDoesNotExist('404 error: {}'.format(page))
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2017 FanFicFare team
|
# Copyright 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2015 FanFicFare team
|
# Copyright 2018 FanFicFare team
|
||||||
# Copyright 2016 FanFicFare team
|
# Copyright 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2014 Fanficdownloader team, 2017 FanFicFare team
|
# Copyright 2014 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -21,7 +21,6 @@
|
||||||
from __future__ import absolute_import
|
from __future__ import absolute_import
|
||||||
import logging
|
import logging
|
||||||
import re
|
import re
|
||||||
import urllib2
|
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
@ -37,6 +36,10 @@ except ImportError:
|
||||||
# logger.warn('No version of feedparser module available, falling back to naive published and updated date')
|
# logger.warn('No version of feedparser module available, falling back to naive published and updated date')
|
||||||
feedparser = None
|
feedparser = None
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter
|
from .base_adapter import BaseSiteAdapter
|
||||||
|
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
|
|
@ -93,7 +96,7 @@ class GravityTalesComSiteAdapter(BaseSiteAdapter):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist('Error 404: {0}'.format(self.url))
|
raise exceptions.StoryDoesNotExist('Error 404: {0}'.format(self.url))
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2011 Fanficdownloader team, 2017 FanFicFare team
|
# Copyright 2011 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -19,12 +19,13 @@ from __future__ import absolute_import
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
import re
|
import re
|
||||||
import urllib2
|
|
||||||
|
|
||||||
|
|
||||||
from ..htmlcleanup import stripHTML
|
from ..htmlcleanup import stripHTML
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
class HarryPotterFanFictionComSiteAdapter(BaseSiteAdapter):
|
class HarryPotterFanFictionComSiteAdapter(BaseSiteAdapter):
|
||||||
|
|
@ -70,7 +71,7 @@ class HarryPotterFanFictionComSiteAdapter(BaseSiteAdapter):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2012 Fanficdownloader team, 2017 FanFicFare team
|
# Copyright 2012 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -20,12 +20,13 @@ from __future__ import absolute_import
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
import re
|
import re
|
||||||
import urllib2
|
|
||||||
|
|
||||||
|
|
||||||
from ..htmlcleanup import stripHTML
|
from ..htmlcleanup import stripHTML
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
def getClass():
|
def getClass():
|
||||||
|
|
@ -78,7 +79,7 @@ class HLFictionNetAdapter(BaseSiteAdapter):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2012 Fanficdownloader team, 2017 FanFicFare team
|
# Copyright 2012 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -20,12 +20,14 @@ from __future__ import absolute_import
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
import re
|
import re
|
||||||
import urllib2
|
|
||||||
|
|
||||||
from bs4.element import Comment
|
from bs4.element import Comment
|
||||||
from ..htmlcleanup import stripHTML
|
from ..htmlcleanup import stripHTML
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
def getClass():
|
def getClass():
|
||||||
|
|
@ -78,7 +80,7 @@ class HPFanficArchiveComAdapter(BaseSiteAdapter):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2011 Fanficdownloader team, 2017 FanFicFare team
|
# Copyright 2011 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -20,11 +20,13 @@ from __future__ import absolute_import
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
import re
|
import re
|
||||||
import urllib2
|
|
||||||
|
|
||||||
from ..htmlcleanup import stripHTML
|
from ..htmlcleanup import stripHTML
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
def getClass():
|
def getClass():
|
||||||
|
|
@ -121,7 +123,7 @@ class IkEternalNetAdapter(BaseSiteAdapter):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
@ -159,7 +161,7 @@ class IkEternalNetAdapter(BaseSiteAdapter):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2013 Fanficdownloader team, 2017 FanFicFare team
|
# Copyright 2013 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -20,12 +20,13 @@ from __future__ import absolute_import
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
import re
|
import re
|
||||||
import urllib2
|
|
||||||
|
|
||||||
|
|
||||||
from ..htmlcleanup import stripHTML
|
from ..htmlcleanup import stripHTML
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
def getClass():
|
def getClass():
|
||||||
|
|
@ -122,7 +123,7 @@ class ImagineEFicComAdapter(BaseSiteAdapter):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
@ -147,7 +148,7 @@ class ImagineEFicComAdapter(BaseSiteAdapter):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2011 Fanficdownloader team, 2017 FanFicFare team
|
# Copyright 2011 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
|
||||||
|
|
@ -22,14 +22,17 @@ from __future__ import absolute_import
|
||||||
import logging
|
import logging
|
||||||
import re
|
import re
|
||||||
import sys
|
import sys
|
||||||
import urllib2
|
|
||||||
from datetime import datetime, timedelta
|
from datetime import datetime, timedelta
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
from ..htmlcleanup import stripHTML
|
from ..htmlcleanup import stripHTML
|
||||||
|
|
||||||
UNIX_EPOCHE = datetime.fromtimestamp(0)
|
UNIX_EPOCHE = datetime.fromtimestamp(86400)
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -123,7 +126,7 @@ class InkBunnyNetSiteAdapter(BaseSiteAdapter):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist('Error 404: {0}'.format(self.url))
|
raise exceptions.StoryDoesNotExist('Error 404: {0}'.format(self.url))
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2015 FanFicFare team
|
# Copyright 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2013 Fanficdownloader team, 2017 FanFicFare team
|
# Copyright 2013 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -20,12 +20,13 @@ from __future__ import absolute_import
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
import re
|
import re
|
||||||
import urllib2
|
|
||||||
|
|
||||||
|
|
||||||
from ..htmlcleanup import stripHTML
|
from ..htmlcleanup import stripHTML
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
def getClass():
|
def getClass():
|
||||||
|
|
@ -123,7 +124,7 @@ class KiaRepositoryMujajiNetAdapter(BaseSiteAdapter): # XXX
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
@ -157,7 +158,7 @@ class KiaRepositoryMujajiNetAdapter(BaseSiteAdapter): # XXX
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2011 Fanficdownloader team, 2017 FanFicFare team
|
# Copyright 2011 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -20,12 +20,13 @@ from __future__ import absolute_import
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
import re
|
import re
|
||||||
import urllib2
|
|
||||||
|
|
||||||
|
|
||||||
from ..htmlcleanup import stripHTML
|
from ..htmlcleanup import stripHTML
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
# Search for XXX comments--that's where things are most likely to need changing.
|
# Search for XXX comments--that's where things are most likely to need changing.
|
||||||
|
|
@ -101,7 +102,7 @@ class KSArchiveComAdapter(BaseSiteAdapter): # XXX
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
@ -134,7 +135,7 @@ class KSArchiveComAdapter(BaseSiteAdapter): # XXX
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2014 Fanficdownloader team, 2015 FanFicFare team
|
# Copyright 2014 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -23,9 +23,12 @@ import logging
|
||||||
import json
|
import json
|
||||||
import re
|
import re
|
||||||
import sys # ## used for debug purposes
|
import sys # ## used for debug purposes
|
||||||
import urllib2
|
|
||||||
import datetime
|
import datetime
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
|
|
@ -96,7 +99,7 @@ class LCFanFicComSiteAdapter(BaseSiteAdapter):
|
||||||
url = self.url
|
url = self.url
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist('Error 404: {0}'.format(self.url))
|
raise exceptions.StoryDoesNotExist('Error 404: {0}'.format(self.url))
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2011 Fanficdownloader team, 2015 FanFicFare team
|
# Copyright 2011 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
|
||||||
|
|
@ -22,8 +22,10 @@
|
||||||
from __future__ import absolute_import
|
from __future__ import absolute_import
|
||||||
import logging
|
import logging
|
||||||
import re
|
import re
|
||||||
import urllib2
|
# py2 vs py3 transition
|
||||||
import urlparse
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib import parse as urlparse
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
|
|
@ -96,7 +98,7 @@ class LightNovelGateSiteAdapter(BaseSiteAdapter):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist('404 error: {}'.format(url))
|
raise exceptions.StoryDoesNotExist('404 error: {}'.format(url))
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2013 Fanficdownloader team, 2017 FanFicFare team
|
# Copyright 2013 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -19,13 +19,16 @@ from __future__ import absolute_import
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
import re
|
import re
|
||||||
import urllib2
|
|
||||||
import urlparse
|
|
||||||
|
|
||||||
from bs4.element import Comment
|
from bs4.element import Comment
|
||||||
from ..htmlcleanup import stripHTML
|
from ..htmlcleanup import stripHTML
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib import parse as urlparse
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
class LiteroticaSiteAdapter(BaseSiteAdapter):
|
class LiteroticaSiteAdapter(BaseSiteAdapter):
|
||||||
|
|
@ -132,7 +135,7 @@ class LiteroticaSiteAdapter(BaseSiteAdapter):
|
||||||
soup1 = self.make_soup(data1)
|
soup1 = self.make_soup(data1)
|
||||||
#strip comments from soup
|
#strip comments from soup
|
||||||
[comment.extract() for comment in soup1.findAll(text=lambda text:isinstance(text, Comment))]
|
[comment.extract() for comment in soup1.findAll(text=lambda text:isinstance(text, Comment))]
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code in [404, 410]:
|
if e.code in [404, 410]:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
@ -157,7 +160,7 @@ class LiteroticaSiteAdapter(BaseSiteAdapter):
|
||||||
#strip comments from soup
|
#strip comments from soup
|
||||||
[comment.extract() for comment in soupAuth.findAll(text=lambda text:isinstance(text, Comment))]
|
[comment.extract() for comment in soupAuth.findAll(text=lambda text:isinstance(text, Comment))]
|
||||||
# logger.debug(soupAuth)
|
# logger.debug(soupAuth)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code in [404, 410]:
|
if e.code in [404, 410]:
|
||||||
raise exceptions.StoryDoesNotExist(authorurl)
|
raise exceptions.StoryDoesNotExist(authorurl)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2015 FanFicFare team
|
# Copyright 2018 FanFicFare team
|
||||||
# Copyright 2016 FanFicFare team
|
# Copyright 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2014 Fanficdownloader team, 2015 FanFicFare team
|
# Copyright 2014 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2011 Fanficdownloader team, 2017 FanFicFare team
|
# Copyright 2011 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -23,11 +23,13 @@ import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
import re
|
import re
|
||||||
import urllib
|
import urllib
|
||||||
import urllib2
|
|
||||||
|
|
||||||
from ..htmlcleanup import stripHTML
|
from ..htmlcleanup import stripHTML
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
class LOTRgficComAdapter(BaseSiteAdapter):
|
class LOTRgficComAdapter(BaseSiteAdapter):
|
||||||
|
|
@ -79,7 +81,7 @@ class LOTRgficComAdapter(BaseSiteAdapter):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2011 Fanficdownloader team, 2017 FanFicFare team
|
# Copyright 2011 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -20,12 +20,13 @@ from __future__ import absolute_import
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
import re
|
import re
|
||||||
import urllib2
|
|
||||||
|
|
||||||
|
|
||||||
from ..htmlcleanup import stripHTML
|
from ..htmlcleanup import stripHTML
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
def getClass():
|
def getClass():
|
||||||
|
|
@ -88,7 +89,7 @@ class LumosSycophantHexComAdapter(BaseSiteAdapter):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2017 FanFicFare team
|
# Copyright 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -20,10 +20,12 @@ import bs4
|
||||||
import datetime
|
import datetime
|
||||||
import logging
|
import logging
|
||||||
import re
|
import re
|
||||||
import urllib2
|
|
||||||
|
|
||||||
from ..htmlcleanup import removeEntities, stripHTML
|
from ..htmlcleanup import removeEntities, stripHTML
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -115,7 +117,7 @@ class MassEffect2InAdapter(BaseSiteAdapter):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
startingChapter = self._makeChapter(self.url)
|
startingChapter = self._makeChapter(self.url)
|
||||||
except urllib2.HTTPError, error:
|
except HTTPError as error:
|
||||||
if error.code == 404:
|
if error.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
raise
|
raise
|
||||||
|
|
@ -199,7 +201,7 @@ class MassEffect2InAdapter(BaseSiteAdapter):
|
||||||
|
|
||||||
chapterTitle = re.sub(garbagePattern, u'', chapter.getHeading()[chapterTitleStart:])
|
chapterTitle = re.sub(garbagePattern, u'', chapter.getHeading()[chapterTitleStart:])
|
||||||
self.add_chapter(chapterTitle, url)
|
self.add_chapter(chapterTitle, url)
|
||||||
except ParsingError, error:
|
except ParsingError as error:
|
||||||
raise exceptions.FailedToDownload(u"Failed to download chapter `%s': %s" % (url, error))
|
raise exceptions.FailedToDownload(u"Failed to download chapter `%s': %s" % (url, error))
|
||||||
|
|
||||||
# Some metadata are handled separately due to format conversions.
|
# Some metadata are handled separately due to format conversions.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2013 Fanficdownloader team, 2017 FanFicFare team
|
# Copyright 2013 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -19,14 +19,17 @@ from __future__ import absolute_import
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
import re
|
import re
|
||||||
import urllib2
|
|
||||||
import urlparse
|
|
||||||
import os
|
import os
|
||||||
|
|
||||||
from bs4.element import Comment
|
from bs4.element import Comment
|
||||||
from ..htmlcleanup import stripHTML
|
from ..htmlcleanup import stripHTML
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib import parse as urlparse
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
class MCStoriesComSiteAdapter(BaseSiteAdapter):
|
class MCStoriesComSiteAdapter(BaseSiteAdapter):
|
||||||
|
|
@ -85,7 +88,7 @@ class MCStoriesComSiteAdapter(BaseSiteAdapter):
|
||||||
soup1 = self.make_soup(data1)
|
soup1 = self.make_soup(data1)
|
||||||
#strip comments from soup
|
#strip comments from soup
|
||||||
[comment.extract() for comment in soup1.find_all(text=lambda text:isinstance(text, Comment))]
|
[comment.extract() for comment in soup1.find_all(text=lambda text:isinstance(text, Comment))]
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2011 Fanficdownloader team, 2017 FanFicFare team
|
# Copyright 2011 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -20,11 +20,13 @@ import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
import re
|
import re
|
||||||
import urllib
|
import urllib
|
||||||
import urllib2
|
|
||||||
|
|
||||||
from ..htmlcleanup import stripHTML
|
from ..htmlcleanup import stripHTML
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
class MediaMinerOrgSiteAdapter(BaseSiteAdapter):
|
class MediaMinerOrgSiteAdapter(BaseSiteAdapter):
|
||||||
|
|
@ -108,7 +110,7 @@ class MediaMinerOrgSiteAdapter(BaseSiteAdapter):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url) # w/o trailing / gets 'chapter list' page even for one-shots.
|
data = self._fetchUrl(url) # w/o trailing / gets 'chapter list' page even for one-shots.
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
logger.error("404 on %s"%url)
|
logger.error("404 on %s"%url)
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2012 Fanficdownloader team, 2017 FanFicFare team
|
# Copyright 2012 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -20,12 +20,13 @@ from __future__ import absolute_import
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
import re
|
import re
|
||||||
import urllib2
|
|
||||||
|
|
||||||
|
|
||||||
from ..htmlcleanup import stripHTML
|
from ..htmlcleanup import stripHTML
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
def getClass():
|
def getClass():
|
||||||
|
|
@ -122,7 +123,7 @@ class MerlinFicDtwinsCoUk(BaseSiteAdapter):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
@ -147,7 +148,7 @@ class MerlinFicDtwinsCoUk(BaseSiteAdapter):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2011 Fanficdownloader team, 2017 FanFicFare team
|
# Copyright 2011 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -20,12 +20,13 @@ from __future__ import absolute_import
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
import re
|
import re
|
||||||
import urllib2
|
|
||||||
|
|
||||||
|
|
||||||
from ..htmlcleanup import stripHTML
|
from ..htmlcleanup import stripHTML
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
# Search for XXX comments--that's where things are most likely to need changing.
|
# Search for XXX comments--that's where things are most likely to need changing.
|
||||||
|
|
@ -106,7 +107,7 @@ class MidnightwhispersAdapter(BaseSiteAdapter): # XXX
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
@ -139,7 +140,7 @@ class MidnightwhispersAdapter(BaseSiteAdapter): # XXX
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2011 Fanficdownloader team, 2017 FanFicFare team
|
# Copyright 2011 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2016 FanFicFare team
|
# Copyright 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2011 Fanficdownloader team, 2017 FanFicFare team
|
# Copyright 2011 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2012 Fanficdownloader team, 2017 FanFicFare team
|
# Copyright 2012 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -20,12 +20,13 @@ from __future__ import absolute_import
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
import re
|
import re
|
||||||
import urllib2
|
|
||||||
|
|
||||||
|
|
||||||
from ..htmlcleanup import stripHTML
|
from ..htmlcleanup import stripHTML
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
def getClass():
|
def getClass():
|
||||||
|
|
@ -83,7 +84,7 @@ class NationalLibraryNetAdapter(BaseSiteAdapter):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2012 Fanficdownloader team, 2017 FanFicFare team
|
# Copyright 2012 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -20,12 +20,13 @@ from __future__ import absolute_import
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
import re
|
import re
|
||||||
import urllib2
|
|
||||||
|
|
||||||
|
|
||||||
from ..htmlcleanup import stripHTML
|
from ..htmlcleanup import stripHTML
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
def getClass():
|
def getClass():
|
||||||
|
|
@ -82,7 +83,7 @@ class NCISFicComAdapter(BaseSiteAdapter):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2012 Fanficdownloader team, 2017 FanFicFare team
|
# Copyright 2012 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2011 Fanficdownloader team, 2017 FanFicFare team
|
# Copyright 2011 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -20,12 +20,13 @@ from __future__ import absolute_import
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
import re
|
import re
|
||||||
import urllib2
|
|
||||||
|
|
||||||
|
|
||||||
from ..htmlcleanup import stripHTML
|
from ..htmlcleanup import stripHTML
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
# Search for XXX comments--that's where things are most likely to need changing.
|
# Search for XXX comments--that's where things are most likely to need changing.
|
||||||
|
|
@ -101,7 +102,7 @@ class NfaCommunityComAdapter(BaseSiteAdapter): # XXX
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
@ -134,7 +135,7 @@ class NfaCommunityComAdapter(BaseSiteAdapter): # XXX
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2012 Fanficdownloader team, 2015 FanFicFare team
|
# Copyright 2012 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2015 Fanficdownloader team, 2015 FanFicFare team
|
# Copyright 2015 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
|
||||||
|
|
@ -2,11 +2,13 @@
|
||||||
|
|
||||||
from __future__ import absolute_import
|
from __future__ import absolute_import
|
||||||
import re
|
import re
|
||||||
import urllib2
|
|
||||||
import urlparse
|
|
||||||
|
|
||||||
from bs4.element import Tag
|
from bs4.element import Tag
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib import parse as urlparse
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
from .. import exceptions
|
from .. import exceptions
|
||||||
|
|
||||||
|
|
@ -48,7 +50,7 @@ class NocturnalLightNetAdapter(BaseSiteAdapter):
|
||||||
if exception:
|
if exception:
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url, parameters)
|
data = self._fetchUrl(url, parameters)
|
||||||
except urllib2.HTTPError:
|
except HTTPError:
|
||||||
raise exception(self.url)
|
raise exception(self.url)
|
||||||
# Just let self._fetchUrl throw the exception, don't catch and
|
# Just let self._fetchUrl throw the exception, don't catch and
|
||||||
# customize it.
|
# customize it.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2014 Fanficdownloader team, 2017 FanFicFare team
|
# Copyright 2014 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -23,9 +23,12 @@ import logging
|
||||||
import json
|
import json
|
||||||
import re
|
import re
|
||||||
import sys # ## used for debug purposes
|
import sys # ## used for debug purposes
|
||||||
import urllib2
|
|
||||||
import datetime
|
import datetime
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
|
|
@ -88,7 +91,7 @@ class NovelTroveComSiteAdapter(BaseSiteAdapter):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist('Error 404: {0}'.format(self.url))
|
raise exceptions.StoryDoesNotExist('Error 404: {0}'.format(self.url))
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2011 Fanficdownloader team, 2017 FanFicFare team
|
# Copyright 2011 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -20,12 +20,13 @@ from __future__ import absolute_import
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
import re
|
import re
|
||||||
import urllib2
|
|
||||||
|
|
||||||
|
|
||||||
from ..htmlcleanup import stripHTML
|
from ..htmlcleanup import stripHTML
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
def getClass():
|
def getClass():
|
||||||
|
|
@ -114,7 +115,7 @@ class OcclumencySycophantHexComAdapter(BaseSiteAdapter):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2011 Fanficdownloader team, 2017 FanFicFare team
|
# Copyright 2011 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -19,12 +19,14 @@ from __future__ import absolute_import
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
import re
|
import re
|
||||||
import urllib2, urllib, cookielib
|
|
||||||
|
|
||||||
|
|
||||||
from ..htmlcleanup import stripHTML
|
from ..htmlcleanup import stripHTML
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
def getClass():
|
def getClass():
|
||||||
|
|
@ -111,7 +113,7 @@ class PhoenixSongNetAdapter(BaseSiteAdapter):
|
||||||
if self.getConfig('force_login'):
|
if self.getConfig('force_login'):
|
||||||
self.performLogin(url)
|
self.performLogin(url)
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2012 Fanficdownloader team, 2017 FanFicFare team
|
# Copyright 2012 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -20,12 +20,13 @@ from __future__ import absolute_import
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
import re
|
import re
|
||||||
import urllib2
|
|
||||||
|
|
||||||
|
|
||||||
from ..htmlcleanup import stripHTML
|
from ..htmlcleanup import stripHTML
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
def getClass():
|
def getClass():
|
||||||
|
|
@ -92,7 +93,7 @@ class PonyFictionArchiveNetAdapter(BaseSiteAdapter):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
@ -113,7 +114,7 @@ class PonyFictionArchiveNetAdapter(BaseSiteAdapter):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2011 Fanficdownloader team, 2017 FanFicFare team
|
# Copyright 2011 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -21,12 +21,13 @@ import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
import re
|
import re
|
||||||
import urllib
|
import urllib
|
||||||
import urllib2
|
|
||||||
|
|
||||||
|
|
||||||
from ..htmlcleanup import stripHTML
|
from ..htmlcleanup import stripHTML
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
class PotionsAndSnitchesOrgSiteAdapter(BaseSiteAdapter):
|
class PotionsAndSnitchesOrgSiteAdapter(BaseSiteAdapter):
|
||||||
|
|
@ -65,7 +66,7 @@ class PotionsAndSnitchesOrgSiteAdapter(BaseSiteAdapter):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2013 Fanficdownloader team, 2017 FanFicFare team
|
# Copyright 2013 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -20,12 +20,13 @@ import datetime
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
import re
|
import re
|
||||||
import urllib2
|
|
||||||
|
|
||||||
|
|
||||||
from ..htmlcleanup import stripHTML
|
from ..htmlcleanup import stripHTML
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter
|
from .base_adapter import BaseSiteAdapter
|
||||||
|
|
||||||
# This function is called by the downloader in all adapter_*.py files
|
# This function is called by the downloader in all adapter_*.py files
|
||||||
|
|
@ -145,7 +146,7 @@ class PotterFicsComAdapter(BaseSiteAdapter):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2013 Fanficdownloader team, 2017 FanFicFare team
|
# Copyright 2013 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -20,12 +20,13 @@ from __future__ import absolute_import
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
import re
|
import re
|
||||||
import urllib2
|
|
||||||
|
|
||||||
|
|
||||||
from ..htmlcleanup import stripHTML
|
from ..htmlcleanup import stripHTML
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
def getClass():
|
def getClass():
|
||||||
|
|
@ -122,7 +123,7 @@ class PotterHeadsAnonymousComAdapter(BaseSiteAdapter):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
@ -156,7 +157,7 @@ class PotterHeadsAnonymousComAdapter(BaseSiteAdapter):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2012 Fanficdownloader team, 2017 FanFicFare team
|
# Copyright 2012 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -20,12 +20,13 @@ from __future__ import absolute_import
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
import re
|
import re
|
||||||
import urllib2
|
|
||||||
|
|
||||||
|
|
||||||
from ..htmlcleanup import stripHTML
|
from ..htmlcleanup import stripHTML
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
def getClass():
|
def getClass():
|
||||||
|
|
@ -91,7 +92,7 @@ class PretenderCenterComAdapter(BaseSiteAdapter):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
@ -111,7 +112,7 @@ class PretenderCenterComAdapter(BaseSiteAdapter):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2012 Fanficdownloader team, 2017 FanFicFare team
|
# Copyright 2012 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -20,12 +20,13 @@ from __future__ import absolute_import
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
import re
|
import re
|
||||||
import urllib2
|
|
||||||
|
|
||||||
|
|
||||||
from ..htmlcleanup import stripHTML
|
from ..htmlcleanup import stripHTML
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
def getClass():
|
def getClass():
|
||||||
|
|
@ -88,7 +89,7 @@ class QafFicComAdapter(BaseSiteAdapter):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
@ -108,7 +109,7 @@ class QafFicComAdapter(BaseSiteAdapter):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -2,11 +2,14 @@
|
||||||
|
|
||||||
from __future__ import absolute_import
|
from __future__ import absolute_import
|
||||||
import re
|
import re
|
||||||
import urlparse
|
|
||||||
import urllib2
|
|
||||||
import datetime
|
import datetime
|
||||||
|
|
||||||
from .. import exceptions
|
from .. import exceptions
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib import parse as urlparse
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter
|
from .base_adapter import BaseSiteAdapter
|
||||||
from ..htmlcleanup import stripHTML
|
from ..htmlcleanup import stripHTML
|
||||||
|
|
||||||
|
|
@ -52,7 +55,7 @@ class QuotevComAdapter(BaseSiteAdapter):
|
||||||
def extractChapterUrlsAndMetadata(self):
|
def extractChapterUrlsAndMetadata(self):
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(self.url)
|
data = self._fetchUrl(self.url)
|
||||||
except urllib2.HTTPError as e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist("Code: %s: %s"%(e.code,self.url))
|
raise exceptions.StoryDoesNotExist("Code: %s: %s"%(e.code,self.url))
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -18,14 +18,17 @@
|
||||||
from __future__ import absolute_import
|
from __future__ import absolute_import
|
||||||
import contextlib
|
import contextlib
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
import httplib
|
|
||||||
import logging
|
import logging
|
||||||
import re
|
import re
|
||||||
import urllib2
|
|
||||||
|
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
from ..dateutils import parse_relative_date_string
|
from ..dateutils import parse_relative_date_string
|
||||||
from ..htmlcleanup import stripHTML
|
from ..htmlcleanup import stripHTML
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves import http_client as httplib
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter
|
from .base_adapter import BaseSiteAdapter
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
@ -143,7 +146,7 @@ class RoyalRoadAdapter(BaseSiteAdapter):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2011 Fanficdownloader team, 2017 FanFicFare team
|
# Copyright 2011 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -19,12 +19,13 @@ from __future__ import absolute_import
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
import re
|
import re
|
||||||
import urllib2
|
|
||||||
|
|
||||||
|
|
||||||
from ..htmlcleanup import stripHTML
|
from ..htmlcleanup import stripHTML
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
# By virtue of being recent and requiring both is_adult and user/pass,
|
# By virtue of being recent and requiring both is_adult and user/pass,
|
||||||
|
|
@ -151,7 +152,7 @@ class SamAndJackNetAdapter(BaseSiteAdapter): # XXX
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
@ -184,7 +185,7 @@ class SamAndJackNetAdapter(BaseSiteAdapter): # XXX
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2012 Fanficdownloader team, 2017 FanFicFare team
|
# Copyright 2012 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -20,12 +20,13 @@ from __future__ import absolute_import
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
import re
|
import re
|
||||||
import urllib2
|
|
||||||
|
|
||||||
|
|
||||||
from ..htmlcleanup import stripHTML
|
from ..htmlcleanup import stripHTML
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
def getClass():
|
def getClass():
|
||||||
|
|
@ -96,7 +97,7 @@ class ScarvesAndCoffeeNetAdapter(BaseSiteAdapter):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
@ -116,7 +117,7 @@ class ScarvesAndCoffeeNetAdapter(BaseSiteAdapter):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2011 Fanficdownloader team, 2015 FanFicFare team
|
# Copyright 2011 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2011 Fanficdownloader team, 2017 FanFicFare team
|
# Copyright 2011 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -19,12 +19,13 @@ from __future__ import absolute_import
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
import re
|
import re
|
||||||
import urllib2
|
|
||||||
|
|
||||||
|
|
||||||
from ..htmlcleanup import stripHTML
|
from ..htmlcleanup import stripHTML
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
# By virtue of being recent and requiring both is_adult and user/pass,
|
# By virtue of being recent and requiring both is_adult and user/pass,
|
||||||
|
|
@ -146,7 +147,7 @@ class SheppardWeirComAdapter(BaseSiteAdapter): # XXX
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist(self.url)
|
raise exceptions.StoryDoesNotExist(self.url)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# Copyright 2017 FanFicFare team
|
# Copyright 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -25,9 +25,12 @@ from __future__ import absolute_import
|
||||||
''' This adapter scrapes the metadata and chapter text from stories on archive.shriftweb.org '''
|
''' This adapter scrapes the metadata and chapter text from stories on archive.shriftweb.org '''
|
||||||
import logging
|
import logging
|
||||||
import re
|
import re
|
||||||
import urllib2
|
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
|
# py2 vs py3 transition
|
||||||
|
from ..six import text_type as unicode
|
||||||
|
from ..six.moves.urllib.error import HTTPError
|
||||||
|
|
||||||
from .base_adapter import BaseSiteAdapter, makeDate
|
from .base_adapter import BaseSiteAdapter, makeDate
|
||||||
|
|
||||||
from .. import exceptions as exceptions
|
from .. import exceptions as exceptions
|
||||||
|
|
@ -98,7 +101,7 @@ class BFAArchiveShriftwebOrgSiteAdapter(BaseSiteAdapter):
|
||||||
'''
|
'''
|
||||||
try:
|
try:
|
||||||
page_data = self._fetchUrl(page)
|
page_data = self._fetchUrl(page)
|
||||||
except urllib2.HTTPError, e:
|
except HTTPError as e:
|
||||||
if e.code == 404:
|
if e.code == 404:
|
||||||
raise exceptions.StoryDoesNotExist('404 error: {}'.format(page))
|
raise exceptions.StoryDoesNotExist('404 error: {}'.format(page))
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2011 Fanficdownloader team, 2017 FanFicFare team
|
# Copyright 2011 Fanficdownloader team, 2018 FanFicFare team
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
|
||||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue