Remove SmackJeeves

It was closed at the end of 2020...
This commit is contained in:
Tobias Gruetzmacher 2021-01-10 19:18:45 +01:00
parent 110b0e02b1
commit 890f116179
5 changed files with 568 additions and 655 deletions

View file

@ -1,7 +1,7 @@
# SPDX-License-Identifier: MIT # SPDX-License-Identifier: MIT
# Copyright (C) 2004-2008 Tristan Seligmann and Jonathan Jacobs # Copyright (C) 2004-2008 Tristan Seligmann and Jonathan Jacobs
# Copyright (C) 2012-2014 Bastian Kleineidam # Copyright (C) 2012-2014 Bastian Kleineidam
# Copyright (C) 2015-2020 Tobias Gruetzmacher # Copyright (C) 2015-2021 Tobias Gruetzmacher
# Copyright (C) 2019-2020 Daniel Ring # Copyright (C) 2019-2020 Daniel Ring
from ..scraper import Scraper from ..scraper import Scraper
@ -651,6 +651,568 @@ class Removed(Scraper):
cls('GoComics/UncleArtsFunland'), cls('GoComics/UncleArtsFunland'),
cls('GoComics/USAcres'), cls('GoComics/USAcres'),
cls('GoComics/WorldOfWonder'), cls('GoComics/WorldOfWonder'),
cls('SmackJeeves/20TimesKirby'),
cls('SmackJeeves/2Kingdoms'),
cls('SmackJeeves/355Days'),
cls('SmackJeeves/AB'),
cls('SmackJeeves/ADoodleADay'),
cls('SmackJeeves/AGirlOnTheServer'),
cls('SmackJeeves/AKirbyKomic'),
cls('SmackJeeves/ALaMode'),
cls('SmackJeeves/ANGELOU'),
cls('SmackJeeves/APTComic'),
cls('SmackJeeves/AQuestionOfCharacter'),
cls('SmackJeeves/ASongforElise'),
cls('SmackJeeves/AYuriCollab'),
cls('SmackJeeves/AceOfHearts'),
cls('SmackJeeves/AcidMonday'),
cls('SmackJeeves/Adalsysla'),
cls('SmackJeeves/AdventuresOfLumAndFriends'),
cls('SmackJeeves/AdventuresoftheWeird'),
cls('SmackJeeves/AetherTheories'),
cls('SmackJeeves/AgeOfTheGray'),
cls('SmackJeeves/AllInLOVE'),
cls('SmackJeeves/AllStarHeroes'),
cls('SmackJeeves/AlmostTouching'),
cls('SmackJeeves/AlwaysDamnedWebcomic'),
cls('SmackJeeves/AlwaysRainingHere'),
cls('SmackJeeves/Amaravati'),
cls('SmackJeeves/AmorVincitOmnia'),
cls('SmackJeeves/AmsdenEstate'),
cls('SmackJeeves/AngelGuardian'),
cls('SmackJeeves/AnimalAdventures'),
cls('SmackJeeves/Animayhem'),
cls('SmackJeeves/AnythingAboutNothing'),
cls('SmackJeeves/Area9'),
cls('SmackJeeves/AroundTheBlock'),
cls('SmackJeeves/ArtOfAFantasy'),
cls('SmackJeeves/AtArmsLength'),
cls('SmackJeeves/Atlaswebcomic'),
cls('SmackJeeves/Autophobia'),
cls('SmackJeeves/AyaTakeo'),
cls('SmackJeeves/BabysittingFourDemons'),
cls('SmackJeeves/BadassRiz'),
cls('SmackJeeves/BallandChain'),
cls('SmackJeeves/Bard'),
cls('SmackJeeves/BassComicAdventures'),
cls('SmackJeeves/BattleSequence'),
cls('SmackJeeves/BeTwin'),
cls('SmackJeeves/Bearhoney'),
cls('SmackJeeves/BearlyAbel'),
cls('SmackJeeves/BeautifulLies'),
cls('SmackJeeves/BehindTheGlassCurtain'),
cls('SmackJeeves/BehindTheObsidianMirror'),
cls('SmackJeeves/BeretCatComics'),
cls('SmackJeeves/Bestbrosforever'),
cls('SmackJeeves/Betovering'),
cls('SmackJeeves/BettencourtHotel'),
cls('SmackJeeves/BeyondTheOrdinary'),
cls('SmackJeeves/BioRevelation'),
cls('SmackJeeves/Bl3'),
cls('SmackJeeves/BlackAndBlue'),
cls('SmackJeeves/BlackDragon'),
cls('SmackJeeves/BlackFridayRule'),
cls('SmackJeeves/BlackSheepcomic'),
cls('SmackJeeves/Blackdemon'),
cls('SmackJeeves/BleachRedux'),
cls('SmackJeeves/BlindandBlue'),
cls('SmackJeeves/BloodhuntersBirthOfAVampire'),
cls('SmackJeeves/BloomAPokemonConquestComic'),
cls('SmackJeeves/BlueHair'),
cls('SmackJeeves/BoilingPointofBrain'),
cls('SmackJeeves/BoogeyDancingMonkeyPot'),
cls('SmackJeeves/BreachOfAgency'),
cls('SmackJeeves/Burn'),
cls('SmackJeeves/ByTheBook'),
cls('SmackJeeves/CafeSuada'),
cls('SmackJeeves/Cambion'),
cls('SmackJeeves/CaptiveSoul'),
cls('SmackJeeves/Captured'),
cls('SmackJeeves/CaravanaTaleofGodsandMen'),
cls('SmackJeeves/Cataclysm'),
cls('SmackJeeves/Catnip'),
cls('SmackJeeves/Cerintha'),
cls('SmackJeeves/ChampionofChampions'),
cls('SmackJeeves/ChampionsAndHeroesAgeOfDragons'),
cls('SmackJeeves/ChannelDDDNews'),
cls('SmackJeeves/ChaosAdventuresII'),
cls('SmackJeeves/ChaoticNation'),
cls('SmackJeeves/Charaktermaske'),
cls('SmackJeeves/Chatuplines'),
cls('SmackJeeves/CheneysGotaGun'),
cls('SmackJeeves/ChickenScratches'),
cls('SmackJeeves/ChildrenOfTheNight'),
cls('SmackJeeves/ChimiMouryou'),
cls('SmackJeeves/ChocolatewithPepper'),
cls('SmackJeeves/ClairetheFlare'),
cls('SmackJeeves/ClockworkAtrium'),
cls('SmackJeeves/CloeRemembrance'),
cls('SmackJeeves/CockroachTheater'),
cls('SmackJeeves/Cogs'),
cls('SmackJeeves/ColorBlind'),
cls('SmackJeeves/ConventionalWisdom'),
cls('SmackJeeves/CosmicDash'),
cls('SmackJeeves/Cramberries'),
cls('SmackJeeves/CrimsonWings'),
cls('SmackJeeves/CrocodileTears'),
cls('SmackJeeves/CupOfOlea'),
cls('SmackJeeves/CurseLineage'),
cls('SmackJeeves/DBON'),
cls('SmackJeeves/DEGAF'),
cls('SmackJeeves/DEMENTED'),
cls('SmackJeeves/DanielleDark'),
cls('SmackJeeves/Dasien'),
cls('SmackJeeves/DavidDoesntGetIt'),
cls('SmackJeeves/DeathNoteIridescent'),
cls('SmackJeeves/DemonBattles'),
cls('SmackJeeves/DemonCat'),
cls('SmackJeeves/DemonEater'),
cls('SmackJeeves/DenizensAttention'),
cls('SmackJeeves/DevilsCake'),
cls('SmackJeeves/DevotoMusicinHell'),
cls('SmackJeeves/Diaz'),
cls('SmackJeeves/DigimonSaviors'),
cls('SmackJeeves/DigimonTamersMiraiProject'),
cls('SmackJeeves/DigitalInsanity'),
cls('SmackJeeves/DoItYourself'),
cls('SmackJeeves/DoodleBeans'),
cls('SmackJeeves/DoodlingAround'),
cls('SmackJeeves/DragonKid'),
cls('SmackJeeves/Dragonet'),
cls('SmackJeeves/DreamCatcher'),
cls('SmackJeeves/DumpofManyPeople'),
cls('SmackJeeves/DungeonHordes'),
cls('SmackJeeves/EATATAU'),
cls('SmackJeeves/EDepthAngel'),
cls('SmackJeeves/ERAConvergence'),
cls('SmackJeeves/ERAIbuki'),
cls('SmackJeeves/ERRORERROR'),
cls('SmackJeeves/EidolonWhispersOfEternity'),
cls('SmackJeeves/ElementalSpirits'),
cls('SmackJeeves/EnkeltenKentta'),
cls('SmackJeeves/Enthrall'),
cls('SmackJeeves/EntreEuxDeux'),
cls('SmackJeeves/Eorah'),
cls('SmackJeeves/Equsopia'),
cls('SmackJeeves/EuphemisticEephus'),
cls('SmackJeeves/EvilPlan'),
cls('SmackJeeves/ExperimentalMegaman'),
cls('SmackJeeves/EyesOfADigimon'),
cls('SmackJeeves/FailureConfetti'),
cls('SmackJeeves/FairyTaleRejects'),
cls('SmackJeeves/FaithlessDigitals'),
cls('SmackJeeves/FalconersDailyStrips'),
cls('SmackJeeves/FallenAngelslove'),
cls('SmackJeeves/FarOutMantic'),
cls('SmackJeeves/FarOutThere'),
cls('SmackJeeves/FeralGentry'),
cls('SmackJeeves/FinalArcanum'),
cls('SmackJeeves/FireredLisasReise'),
cls('SmackJeeves/FlyorFail'),
cls('SmackJeeves/ForcedSeduction'),
cls('SmackJeeves/ForgetTheDistance'),
cls('SmackJeeves/Fortheloveofabrokenstring'),
cls('SmackJeeves/FramebyFrame'),
cls('SmackJeeves/FrobertTheDemon'),
cls('SmackJeeves/FromnowonImagirl'),
cls('SmackJeeves/FruitloopAndMrDownbeat'),
cls('SmackJeeves/FullSpectrumTherapy'),
cls('SmackJeeves/GamerCafe'),
cls('SmackJeeves/GamesPeoplePlayUpdatedWeekly'),
cls('SmackJeeves/GardenofHearts'),
cls('SmackJeeves/GayBacon'),
cls('SmackJeeves/GayTimesWithRyanAndJay'),
cls('SmackJeeves/GetUpAndGo'),
cls('SmackJeeves/GigisNuzlockeRuns'),
cls('SmackJeeves/Gloomverse'),
cls('SmackJeeves/Gnoph'),
cls('SmackJeeves/GoodGame'),
cls('SmackJeeves/GoodnightMrsGoose'),
cls('SmackJeeves/Grayscale'),
cls('SmackJeeves/GuardiansoftheGalaxialSpaceways'),
cls('SmackJeeves/Habibahssong'),
cls('SmackJeeves/HarvestMoonParadiseFound'),
cls('SmackJeeves/HatShop'),
cls('SmackJeeves/HateThePlayer'),
cls('SmackJeeves/Helix'),
cls('SmackJeeves/HeltonShelton'),
cls('SmackJeeves/Hephaestus'),
cls('SmackJeeves/HereBeVoodoo'),
cls('SmackJeeves/HiddenStrengthAWhiteNuzlocke'),
cls('SmackJeeves/Hinata'),
cls('SmackJeeves/Holocrash'),
cls('SmackJeeves/HolyBlasphemy'),
cls('SmackJeeves/HolyCrap'),
cls('SmackJeeves/HopeForABreeze'),
cls('SmackJeeves/HouseOfCraziness'),
cls('SmackJeeves/HurrocksFardel'),
cls('SmackJeeves/IWishIggysWish'),
cls('SmackJeeves/IciVontLesMorts'),
cls('SmackJeeves/InHouseHumor'),
cls('SmackJeeves/Inchoatica'),
cls('SmackJeeves/Ingloriousbasterds'),
cls('SmackJeeves/Inhuman'),
cls('SmackJeeves/InsideOuTAYuriTale'),
cls('SmackJeeves/InspiredByADream'),
cls('SmackJeeves/ItsAn8BitWorldBlankWorld'),
cls('SmackJeeves/JackiesStory'),
cls('SmackJeeves/Jantar'),
cls('SmackJeeves/Jason'),
cls('SmackJeeves/JoeysAdventure'),
cls('SmackJeeves/JourneyMan'),
cls('SmackJeeves/JoyToTheWorld'),
cls('SmackJeeves/June'),
cls('SmackJeeves/JustAnotherLife'),
cls('SmackJeeves/JustCrazy'),
cls('SmackJeeves/Justmyluck'),
cls('SmackJeeves/KCNO'),
cls('SmackJeeves/KaitoShuno'),
cls('SmackJeeves/KasaKeira'),
cls('SmackJeeves/KazanatoFuneralPlanningService'),
cls('SmackJeeves/KezroChroniclesPhantomOps'),
cls('SmackJeeves/Kirbandfriendsshowcase'),
cls('SmackJeeves/KirbiesoftheAlternateDimension'),
cls('SmackJeeves/KirbyAdventure'),
cls('SmackJeeves/KirbyDreamTeam'),
cls('SmackJeeves/KirbyFunfestTheOriginals'),
cls('SmackJeeves/KirbyTheDeeArmy'),
cls('SmackJeeves/KirbysDreamAdventure'),
cls('SmackJeeves/KirbysDreamlandAdventures'),
cls('SmackJeeves/KissmeSnow'),
cls('SmackJeeves/KissoftheDevil'),
cls('SmackJeeves/Knightface'),
cls('SmackJeeves/KnightsRequiem'),
cls('SmackJeeves/KojiX5'),
cls('SmackJeeves/Kreetor'),
cls('SmackJeeves/Kruptos'),
cls('SmackJeeves/KuronaFlutterandLylaSpamTime'),
cls('SmackJeeves/LOGOS'),
cls('SmackJeeves/LOKI'),
cls('SmackJeeves/LastBlockStanding'),
cls('SmackJeeves/LavenderLegend'),
cls('SmackJeeves/LeCirquedObscure'),
cls('SmackJeeves/LedbyaMadMan'),
cls('SmackJeeves/LegendOfZeldaAHerosStory'),
cls('SmackJeeves/LegendOfZeldaStaffOfPower'),
cls('SmackJeeves/LegendOfZeldaTheEdgeAndTheLight'),
cls('SmackJeeves/LegendOfZeldaTheWindWaker'),
cls('SmackJeeves/Lemongrass'),
cls('SmackJeeves/LesCendresdelHiver'),
cls('SmackJeeves/LetLoveRule'),
cls('SmackJeeves/LethalDose'),
cls('SmackJeeves/LicensedHeroes'),
cls('SmackJeeves/LifeAsACutOut'),
cls('SmackJeeves/LifeAsItWas'),
cls('SmackJeeves/LifeLessOrdinary'),
cls('SmackJeeves/Lifeonpaper'),
cls('SmackJeeves/LightLovers'),
cls('SmackJeeves/LightwithinShadow'),
cls('SmackJeeves/LilLevi'),
cls('SmackJeeves/LondonUnderworld'),
cls('SmackJeeves/LostNova'),
cls('SmackJeeves/LoveHarbor'),
cls('SmackJeeves/LoveMeLoveMyTeddyBear'),
cls('SmackJeeves/LoveandIcecream'),
cls('SmackJeeves/LoveroftheSunandMoon'),
cls('SmackJeeves/LsEmpire'),
cls('SmackJeeves/LuffinpuffandEric'),
cls('SmackJeeves/LumasParadise'),
cls('SmackJeeves/MYth'),
cls('SmackJeeves/MagicalMisfits'),
cls('SmackJeeves/Magipunk'),
cls('SmackJeeves/Manifestedpart1'),
cls('SmackJeeves/MarXistemTWC'),
cls('SmackJeeves/MarioVsSonicVsMegaMan'),
cls('SmackJeeves/MarioandLuigiMisadventures'),
cls('SmackJeeves/MariosDayJob'),
cls('SmackJeeves/MarsMind'),
cls('SmackJeeves/Mascara'),
cls('SmackJeeves/MatildasSweetCakeCafe'),
cls('SmackJeeves/MayTheRainCome'),
cls('SmackJeeves/Mazscara'),
cls('SmackJeeves/MegaManTales'),
cls('SmackJeeves/MegaPain'),
cls('SmackJeeves/MelodyAndMacabre'),
cls('SmackJeeves/MetroJack'),
cls('SmackJeeves/MidnightPrince'),
cls('SmackJeeves/MineS'),
cls('SmackJeeves/Minibot'),
cls('SmackJeeves/MinorActsOfHeroism'),
cls('SmackJeeves/Missing'),
cls('SmackJeeves/Missingversionfrancaise'),
cls('SmackJeeves/MobianChaos'),
cls('SmackJeeves/Mokepon'),
cls('SmackJeeves/Monstar'),
cls('SmackJeeves/MoonValley'),
cls('SmackJeeves/MorphE'),
cls('SmackJeeves/Mortifer'),
cls('SmackJeeves/MrFactory'),
cls('SmackJeeves/MyFakeHeart'),
cls('SmackJeeves/MySisterTheDragon'),
cls('SmackJeeves/MySparklingPrincesama'),
cls('SmackJeeves/MyStereoBot'),
cls('SmackJeeves/MysticanDreams'),
cls('SmackJeeves/MythsOfUnovaAWhiteNuzlockeRunHardMode'),
cls('SmackJeeves/NIK'),
cls('SmackJeeves/Nah'),
cls('SmackJeeves/Negligence'),
cls('SmackJeeves/NeonGlow'),
cls('SmackJeeves/NeverTheHero'),
cls('SmackJeeves/Nexus'),
cls('SmackJeeves/NiceKitty'),
cls('SmackJeeves/NighHeavenandHell'),
cls('SmackJeeves/NightSpace'),
cls('SmackJeeves/NissiesDragonPrincess'),
cls('SmackJeeves/NixsFireRedNuzlocke'),
cls('SmackJeeves/NoEnd'),
cls('SmackJeeves/NobleHeartsHiruandMerroug'),
cls('SmackJeeves/NormalcyisforWimps'),
cls('SmackJeeves/NotyoursamI'),
cls('SmackJeeves/ObnoxiousHerokun'),
cls('SmackJeeves/ObsidianHeart'),
cls('SmackJeeves/October20th'),
cls('SmackJeeves/OddPlaceOddTime'),
cls('SmackJeeves/OldElastikid'),
cls('SmackJeeves/OneRainyDay'),
cls('SmackJeeves/Onlyonelovesong'),
cls('SmackJeeves/OperationTheater'),
cls('SmackJeeves/OriginBook1Codearth'),
cls('SmackJeeves/OurTimeInEden'),
cls('SmackJeeves/Outbreak'),
cls('SmackJeeves/OutofKey'),
cls('SmackJeeves/OverSync'),
cls('SmackJeeves/PMDExplorersOfHeart'),
cls('SmackJeeves/PMDTeamFirefox'),
cls('SmackJeeves/PMDVictoryFire'),
cls('SmackJeeves/PTO'),
cls('SmackJeeves/Panacea'),
cls('SmackJeeves/PantsParty'),
cls('SmackJeeves/PanzerDragonandEnigmaCompleteEdition'),
cls('SmackJeeves/Pause'),
cls('SmackJeeves/PencilviewUpdatesMondayscough'),
cls('SmackJeeves/PeterPan'),
cls('SmackJeeves/Phantomland'),
cls('SmackJeeves/PhotoShootNarusasuDoujinshi'),
cls('SmackJeeves/PlasticKings'),
cls('SmackJeeves/PlayTime'),
cls('SmackJeeves/PleaseBeMyBoytoy'),
cls('SmackJeeves/PokemonBeta'),
cls('SmackJeeves/PokemonCrystalDoubleNuzlockeChallenge'),
cls('SmackJeeves/PokemonLANDSKY'),
cls('SmackJeeves/PokemonNoRakuen'),
cls('SmackJeeves/PokemonParallel'),
cls('SmackJeeves/PokemonSAKOHJU'),
cls('SmackJeeves/Pokeventurous'),
cls('SmackJeeves/Ponzi'),
cls('SmackJeeves/PrettyMouth'),
cls('SmackJeeves/PrincessChroma'),
cls('SmackJeeves/ProfessorDolphinpresentsPokemon'),
cls('SmackJeeves/ProjectCAPLimit'),
cls('SmackJeeves/Puck'),
cls('SmackJeeves/PullingYouUnder'),
cls('SmackJeeves/PulseandBolt'),
cls('SmackJeeves/PurpureaNoxa'),
cls('SmackJeeves/QueerQueen'),
cls('SmackJeeves/RANDOM'),
cls('SmackJeeves/ROSIER'),
cls('SmackJeeves/RUScrewed'),
cls('SmackJeeves/RainLGBT'),
cls('SmackJeeves/RainbowMansion'),
cls('SmackJeeves/RainxSasori'),
cls('SmackJeeves/RareCandyTreatment'),
cls('SmackJeeves/RavenWolf'),
cls('SmackJeeves/Regina'),
cls('SmackJeeves/ReidyAndFriendsShowcase'),
cls('SmackJeeves/RemoteAngel'),
cls('SmackJeeves/Replica'),
cls('SmackJeeves/Respectable'),
cls('SmackJeeves/ReturntoEden'),
cls('SmackJeeves/RottenApple'),
cls('SmackJeeves/RoyalIcing'),
cls('SmackJeeves/RubyNation'),
cls('SmackJeeves/RuneSpark'),
cls('SmackJeeves/RyuManwebcomicVersion'),
cls('SmackJeeves/SChIzO'),
cls('SmackJeeves/SFCBlackjackBay'),
cls('SmackJeeves/SFCForestofDreams'),
cls('SmackJeeves/SLightlyAbOVeAvErage'),
cls('SmackJeeves/SOSRadio'),
cls('SmackJeeves/SPRITEDHeroesofDobalia'),
cls('SmackJeeves/SUNRISESTORY'),
cls('SmackJeeves/SabishiiGhost'),
cls('SmackJeeves/SaintforRent'),
cls('SmackJeeves/SakuraDAY'),
cls('SmackJeeves/SakuraMishzo'),
cls('SmackJeeves/SalemUncommons'),
cls('SmackJeeves/SallySprocketAndPistonPete'),
cls('SmackJeeves/SaltyKiss'),
cls('SmackJeeves/SayWhatYouMean'),
cls('SmackJeeves/SchoolOfRejectsSoRe'),
cls('SmackJeeves/ScionsoftheSeraph'),
cls('SmackJeeves/ScrappedProject'),
cls('SmackJeeves/SecretPowerbk1'),
cls('SmackJeeves/SecretPowerbk2'),
cls('SmackJeeves/Seki'),
cls('SmackJeeves/SeriousTimes'),
cls('SmackJeeves/Shameless'),
cls('SmackJeeves/ShamelessAdvertisements'),
cls('SmackJeeves/ShotoutofCanon'),
cls('SmackJeeves/ShroudofLight'),
cls('SmackJeeves/Signifikat'),
cls('SmackJeeves/SimpleBear'),
cls('SmackJeeves/Sire'),
cls('SmackJeeves/Skeptical'),
cls('SmackJeeves/Slackmatic'),
cls('SmackJeeves/SlipstreamSingularity'),
cls('SmackJeeves/SmallPressAdventures'),
cls('SmackJeeves/SocksMittensandScarfs'),
cls('SmackJeeves/SomethingLikeaPhenomenon'),
cls('SmackJeeves/SonicAuthorAdventII'),
cls('SmackJeeves/SonicBoom'),
cls('SmackJeeves/SonicClub'),
cls('SmackJeeves/SonicDashly'),
cls('SmackJeeves/SonicFuture'),
cls('SmackJeeves/SonicSchoolRedo'),
cls('SmackJeeves/SouthernCross'),
cls('SmackJeeves/SovereignTheMostAmazingComicEver'),
cls('SmackJeeves/SparElricsExtras'),
cls('SmackJeeves/Spellcross'),
cls('SmackJeeves/SpiderWings'),
cls('SmackJeeves/SplitScreen'),
cls('SmackJeeves/Spriterschaos'),
cls('SmackJeeves/Sprytts'),
cls('SmackJeeves/Stay'),
cls('SmackJeeves/StellaInChrome'),
cls('SmackJeeves/Stereophonic'),
cls('SmackJeeves/StolenGeneration'),
cls('SmackJeeves/Storyofadamnedlove'),
cls('SmackJeeves/StrangersandFriends'),
cls('SmackJeeves/Striped'),
cls('SmackJeeves/StuntRayWalterswish'),
cls('SmackJeeves/SubjecttoChangeCollegeWoes'),
cls('SmackJeeves/Sunfall'),
cls('SmackJeeves/SunmeetsMoon'),
cls('SmackJeeves/SuperDimensionAfterTheHero'),
cls('SmackJeeves/SuperMarioBros3'),
cls('SmackJeeves/SuperMarjoBros'),
cls('SmackJeeves/SupermassiveBlackHoleA'),
cls('SmackJeeves/SurvivorFanCharacters'),
cls('SmackJeeves/SweetestPoison'),
cls('SmackJeeves/SwitchMechanism'),
cls('SmackJeeves/TEN'),
cls('SmackJeeves/TLAAOK'),
cls('SmackJeeves/TPTruePower'),
cls('SmackJeeves/TaikiTheWebcomic'),
cls('SmackJeeves/TailsAdventureThroughTimeandOtherWorlds'),
cls('SmackJeeves/TakingPicturesofStrangers'),
cls('SmackJeeves/TalesFromAaronsWings'),
cls('SmackJeeves/ThatWasntThereYesterday'),
cls('SmackJeeves/The13thWorld'),
cls('SmackJeeves/TheAdventuresOfBanjoZ'),
cls('SmackJeeves/TheAntihero'),
cls('SmackJeeves/TheArchipelago'),
cls('SmackJeeves/TheBattleInTheSky'),
cls('SmackJeeves/TheBookOfNosferatu'),
cls('SmackJeeves/TheBrideoftheShark'),
cls('SmackJeeves/TheBucket'),
cls('SmackJeeves/TheCafedAlizee'),
cls('SmackJeeves/TheCavernOfSecrets'),
cls('SmackJeeves/TheColony'),
cls('SmackJeeves/TheContract'),
cls('SmackJeeves/TheCrawl'),
cls('SmackJeeves/TheDarkLegacy'),
cls('SmackJeeves/TheDemonicAdventuresOfAngelWitchPita'),
cls('SmackJeeves/TheDestroyer'),
cls('SmackJeeves/TheDragonAndTheLemur'),
cls('SmackJeeves/TheDreaming'),
cls('SmackJeeves/TheDrifter'),
cls('SmackJeeves/TheElectricRose'),
cls('SmackJeeves/TheForestofWhispers'),
cls('SmackJeeves/TheGhostWithTheMost'),
cls('SmackJeeves/TheGoldRiderofPern'),
cls('SmackJeeves/TheGrayZone'),
cls('SmackJeeves/TheHeadhunters'),
cls('SmackJeeves/TheHeartofEarth'),
cls('SmackJeeves/TheJosephComics'),
cls('SmackJeeves/TheKeyHotelEnding'),
cls('SmackJeeves/TheKwiddexProtocol'),
cls('SmackJeeves/TheLastBloodCafe'),
cls('SmackJeeves/TheLegendaryQueen'),
cls('SmackJeeves/TheLifeofMagFlamequill'),
cls('SmackJeeves/TheLoneSwordsman'),
cls('SmackJeeves/TheMadMan'),
cls('SmackJeeves/TheMegaManandSonicSpriteShowcase'),
cls('SmackJeeves/TheNOMEDSEGA'),
cls('SmackJeeves/TheNightSurfers'),
cls('SmackJeeves/TheNocheComicSeries'),
cls('SmackJeeves/ThePirateBalthasar'),
cls('SmackJeeves/ThePremise'),
cls('SmackJeeves/ThePrincessAndTheGiant'),
cls('SmackJeeves/ThePropertyofHate'),
cls('SmackJeeves/TheReborn'),
cls('SmackJeeves/TheSearchForHenryJekyll'),
cls('SmackJeeves/TheSilverLeague'),
cls('SmackJeeves/TheSummerofBlakeSinclair'),
cls('SmackJeeves/TheTimeDog'),
cls('SmackJeeves/TheTytonNuzlockeChallengeEmeraldEdition'),
cls('SmackJeeves/TheWhiteTower'),
cls('SmackJeeves/TheWinterCampaign'),
cls('SmackJeeves/TheYoshiHerd'),
cls('SmackJeeves/Theatrics'),
cls('SmackJeeves/TheiaMania'),
cls('SmackJeeves/ThelaughingDeath'),
cls('SmackJeeves/Theswordsmanandtheamnesiac'),
cls('SmackJeeves/ThiefCatcherRingTail'),
cls('SmackJeeves/ThornTopia'),
cls('SmackJeeves/ThornsComic'),
cls('SmackJeeves/ToddAllisonAndThePetuniaViolet'),
cls('SmackJeeves/TosiHuonoYaoiSarjis'),
cls('SmackJeeves/TotallyCrossover'),
cls('SmackJeeves/TrainerWantsToFight'),
cls('SmackJeeves/TransUMan'),
cls('SmackJeeves/Transfusions'),
cls('SmackJeeves/TroubleNextDoor'),
cls('SmackJeeves/UglyBoysLove'),
cls('SmackJeeves/Uglygame'),
cls('SmackJeeves/UnderTheDeadSkies'),
cls('SmackJeeves/UnicampaLapis'),
cls('SmackJeeves/UpDown'),
cls('SmackJeeves/UshalaatWorldsEnd'),
cls('SmackJeeves/VACANT'),
cls('SmackJeeves/Vacan7'),
cls('SmackJeeves/VerloreGeleentheid'),
cls('SmackJeeves/VoidMisadventures'),
cls('SmackJeeves/VoyageoftheBrokenPromise'),
cls('SmackJeeves/WHATAboutSHADOWS'),
cls('SmackJeeves/WakeEcho'),
cls('SmackJeeves/Wander'),
cls('SmackJeeves/WantedDeadorDead'),
cls('SmackJeeves/Wayfar'),
cls('SmackJeeves/Waysoftheheart'),
cls('SmackJeeves/WeAreGolden'),
cls('SmackJeeves/WelcomeToFreakshow'),
cls('SmackJeeves/WelcomeToThePCA'),
cls('SmackJeeves/WhatAboutLove'),
cls('SmackJeeves/WhatIsDeepInOnesHeart'),
cls('SmackJeeves/WhatWeRememberTheMost'),
cls('SmackJeeves/WhenSheWasBad'),
cls('SmackJeeves/Whenweweresilent'),
cls('SmackJeeves/WhereaboutsOfTime'),
cls('SmackJeeves/WhiteHeart'),
cls('SmackJeeves/WhiteNoise'),
cls('SmackJeeves/WildWingBoys'),
cls('SmackJeeves/WildWingBoysKoathArc'),
cls('SmackJeeves/Wildflowers'),
cls('SmackJeeves/WingsOverEthereal'),
cls('SmackJeeves/WingsTurnedtoDust'),
cls('SmackJeeves/Wootlabs'),
cls('SmackJeeves/XXMoralityXx'),
cls('SmackJeeves/YadotCakeShop'),
cls('SmackJeeves/YamanaokiHighSchool'),
cls('SmackJeeves/YoungCannibals'),
cls('SmackJeeves/ZaenWell'),
cls('SmackJeeves/ZeldaTheNewAdventureofLinkIIMajorasMask'),
cls('SmackJeeves/_A_'),
cls('StuffNoOneToldMe'), cls('StuffNoOneToldMe'),
cls('VictimsOfTheSystem'), cls('VictimsOfTheSystem'),
cls('WebDesignerCOTW'), cls('WebDesignerCOTW'),

View file

@ -1,640 +0,0 @@
# SPDX-License-Identifier: MIT
# Copyright (C) 2015-2020 Tobias Gruetzmacher
# Copyright (C) 2019-2020 Daniel Ring
import re
from ..scraper import _ParserScraper
class SmackJeeves(_ParserScraper):
baseUrl = 'https://www.smackjeeves.com/discover/'
apiBase = 'https://www.smackjeeves.com/api/discover/'
prevSearch = '//a[i[d:class("i-arrow-double-left-black")]]'
imageSearch = re.compile("comicData:[^']*'([^']*)'", re.DOTALL)
help = 'Index format: n'
def __init__(self, name, id, adult=False, endOfLife=False, last=None):
super(SmackJeeves, self).__init__('SmackJeeves/' + name)
self._comicid = id
self.url = self.baseUrl + 'articleList?titleNo={}'.format(id)
self.stripUrl = self.baseUrl + 'detail?titleNo={}&articleNo=%s'.format(id)
self.firstStripUrl = self.stripUrl % 1
self.adult = adult
self.endOfLife = endOfLife or last
self.lastid = (last or 0) - 1
if name == 'VerloreGeleentheid':
self.textSearch = True
def starter(self):
response = self.session.post(self.apiBase + 'articleList',
params={'titleNo': self._comicid})
response.raise_for_status()
if ('text/html' in response.headers['content-type'] and
'available in your area' in response.text):
self.geoblocked()
return response.json()['result']['list'][self.lastid]['articleUrl']
def fetchUrls(self, url, data, urlsearch):
if urlsearch != self.imageSearch:
return super(SmackJeeves, self).fetchUrls(url, data, urlsearch)
# Find image URL in JavaScript
datatag = data.xpath('//script[contains(text(), "comicData")]')
if not datatag:
return ()
datamatch = self.imageSearch.search(datatag[0].text)
if not datamatch:
return ()
return (datamatch.group(1),)
def link_modifier(self, fromurl, tourl):
# All links redirect to /discover/ - so fix it to save a request
return tourl.replace('com/detail', 'com/discover/detail')
def namer(self, image_url, page_url):
articleNo = int(page_url.rsplit('=', 1)[1])
return '{:04}'.format(articleNo)
def fetchText(self, url, data, textSearch, optional):
if 'VerloreGeleentheid' in self.name:
response = self.session.post('https://www.smackjeeves.com/api/comments/get', params={
'titleNo': self._comicid,
'articleNo': url.rsplit('=', 1)[1],
'page': 1,
'order': 'new',
})
response.raise_for_status()
comments = response.json()['result']['list']
for comment in reversed(comments):
if comment['nickname'] == 'Wolfie_Inu':
return comment['commentText']
return None
else:
return super().fetchText(url, data, textSearch, optional)
@classmethod
def getmodules(cls): # noqa: Allowed to be long
return (
cls('20TimesKirby', 91583),
cls('2Kingdoms', 112096, endOfLife=True),
cls('355Days', 114138),
cls('_A_', 130892, endOfLife=True),
cls('AB', 110961, adult=True),
cls('AceOfHearts', 155154),
cls('AcidMonday', 30447, adult=True),
cls('Adalsysla', 96496, endOfLife=True),
cls('ADoodleADay', 141301),
cls('AdventuresOfLumAndFriends', 122193),
cls('AdventuresoftheWeird', 4430),
cls('AetherTheories', 116164),
cls('AgeOfTheGray', 132378),
cls('AGirlOnTheServer', 44252),
cls('AKirbyKomic', 25724),
cls('ALaMode', 35776),
cls('AllInLOVE', 6639),
cls('AllStarHeroes', 127874),
cls('AlmostTouching', 140881, adult=True),
cls('AlwaysDamnedWebcomic', 21652, adult=True),
cls('AlwaysRainingHere', 96902),
cls('Amaravati', 49250),
cls('AmorVincitOmnia', 66370, adult=True),
cls('AmsdenEstate', 105458),
cls('AngelGuardian', 72720),
cls('ANGELOU', 21129),
cls('AnimalAdventures', 125930),
cls('Animayhem', 53122),
cls('AnythingAboutNothing', 50399),
cls('APTComic', 71310),
cls('AQuestionOfCharacter', 70161),
cls('Area9', 108861),
cls('AroundTheBlock', 125385),
cls('ArtOfAFantasy', 92258, adult=True),
cls('ASongforElise', 45895, adult=True),
cls('AtArmsLength', 39242),
cls('Atlaswebcomic', 140920),
cls('Autophobia', 82522),
cls('AyaTakeo', 60325),
cls('AYuriCollab', 126727, adult=True),
cls('BabysittingFourDemons', 5992),
cls('BadassRiz', 130263),
cls('BallandChain', 99503),
cls('Bard', 51147),
cls('BassComicAdventures', 131900),
cls('BattleSequence', 132075),
cls('Bearhoney', 111843),
cls('BearlyAbel', 41761),
cls('BeautifulLies', 130068),
cls('BehindTheGlassCurtain', 54480, endOfLife=True),
cls('BehindTheObsidianMirror', 94375, adult=True),
cls('BeretCatComics', 136026),
cls('Bestbrosforever', 132559),
cls('Betovering', 127694, adult=True),
cls('BettencourtHotel', 98760, endOfLife=True),
cls('BeTwin', 97886, endOfLife=True),
cls('BeyondTheOrdinary', 129233),
cls('BioRevelation', 121142),
cls('Bl3', 131849, endOfLife=True),
cls('BlackAndBlue', 63275, endOfLife=True),
cls('Blackdemon', 117183),
cls('BlackDragon', 131654),
cls('BlackFridayRule', 94517),
cls('BlackSheepcomic', 91663),
cls('BleachRedux', 94169),
cls('BlindandBlue', 110850),
cls('BloodhuntersBirthOfAVampire', 92969, endOfLife=True),
cls('BloomAPokemonConquestComic', 122439),
cls('BlueHair', 119037),
cls('BoilingPointofBrain', 122291),
cls('BoogeyDancingMonkeyPot', 128196),
cls('BreachOfAgency', 82923, endOfLife=True),
cls('Burn', 93761),
cls('ByTheBook', 98401, adult=True),
cls('CafeSuada', 80707),
cls('Cambion', 112560, adult=True),
cls('CaptiveSoul', 115786),
cls('Captured', 135452, adult=True),
cls('CaravanaTaleofGodsandMen', 129824),
cls('Cataclysm', 98815, adult=True),
cls('Catnip', 108592, adult=True),
cls('Cerintha', 117941),
cls('ChampionofChampions', 103159),
cls('ChampionsAndHeroesAgeOfDragons', 98261),
cls('ChannelDDDNews', 120506),
cls('ChaosAdventuresII', 64827),
cls('ChaoticNation', 108410, adult=True),
cls('Charaktermaske', 118975),
cls('Chatuplines', 84863),
cls('CheneysGotaGun', 75737),
cls('ChickenScratches', 90898),
cls('ChildrenOfTheNight', 52560),
cls('ChimiMouryou', 108675),
cls('ChocolatewithPepper', 132832),
cls('ClairetheFlare', 121081),
cls('ClockworkAtrium', 3048),
cls('CloeRemembrance', 9150, endOfLife=True),
cls('CockroachTheater', 138343),
cls('Cogs', 130634),
cls('ColorBlind', 118617),
cls('ConventionalWisdom', 89324),
cls('CosmicDash', 4584),
cls('Cramberries', 82134),
cls('CrimsonWings', 113469),
cls('CrocodileTears', 85055, adult=True),
cls('CupOfOlea', 130678),
cls('CurseLineage', 86745),
cls('DanielleDark', 9257),
cls('Dasien', 1779, adult=True),
cls('DavidDoesntGetIt', 115176),
cls('DBON', 76205),
cls('DeathNoteIridescent', 87149),
cls('DEGAF', 120316),
cls('DEMENTED', 104334, adult=True),
cls('DemonBattles', 145936),
cls('DemonCat', 105404),
cls('DemonEater', 125937, adult=True),
cls('DenizensAttention', 56481),
cls('DevilsCake', 26927),
cls('DevotoMusicinHell', 114862, adult=True),
cls('Diaz', 129935),
cls('DigimonSaviors', 43521),
cls('DigimonTamersMiraiProject', 119257),
cls('DigitalInsanity', 144866),
cls('DoItYourself', 103195),
cls('DoodleBeans', 17473, adult=True),
cls('DoodlingAround', 117225),
cls('Dragonet', 119508),
cls('DragonKid', 96550),
cls('DreamCatcher', 23687),
cls('DumpofManyPeople', 138063),
cls('DungeonHordes', 94210),
cls('EATATAU', 64889),
cls('EDepthAngel', 98932),
cls('EidolonWhispersOfEternity', 136262),
cls('ElementalSpirits', 18192),
cls('EnkeltenKentta', 78834, adult=True),
cls('Enthrall', 113047, adult=True),
cls('EntreEuxDeux', 97894, endOfLife=True),
cls('Eorah', 135499, adult=True),
cls('Equsopia', 127680),
cls('ERAConvergence', 63750, endOfLife=True),
cls('ERAIbuki', 129506, endOfLife=True),
cls('ERRORERROR', 113481),
cls('EuphemisticEephus', 127121),
cls('EvilPlan', 19063),
cls('ExperimentalMegaman', 75706),
cls('EyesOfADigimon', 97117),
cls('FailureConfetti', 69275),
cls('FairyTaleRejects', 99139, adult=True),
cls('FaithlessDigitals', 137288),
cls('FalconersDailyStrips', 124329),
cls('FallenAngelslove', 113208),
cls('FarOutMantic', 48658),
cls('FarOutThere', 89199),
cls('FeralGentry', 119912),
cls('FinalArcanum', 51191),
cls('FireredLisasReise', 109151),
cls('FlyorFail', 104604),
cls('ForcedSeduction', 61407),
cls('ForgetTheDistance', 80429, adult=True),
cls('Fortheloveofabrokenstring', 116411),
cls('FramebyFrame', 71042, adult=True),
cls('FrobertTheDemon', 26586),
cls('FromnowonImagirl', 99018),
cls('FruitloopAndMrDownbeat', 82798),
cls('FullSpectrumTherapy', 156285),
cls('GamerCafe', 138841),
cls('GamesPeoplePlayUpdatedWeekly', 72207),
cls('GardenofHearts', 106504),
cls('GayBacon', 104466),
cls('GayTimesWithRyanAndJay', 121095),
cls('GetUpAndGo', 42180, adult=True),
cls('GigisNuzlockeRuns', 157589),
cls('Gloomverse', 75498),
cls('Gnoph', 138286, endOfLife=True),
cls('GoodGame', 48048, endOfLife=True),
cls('GoodnightMrsGoose', 73655),
cls('Grayscale', 100295, adult=True),
cls('GuardiansoftheGalaxialSpaceways', 70286),
cls('Habibahssong', 137453),
cls('HarvestMoonParadiseFound', 105422, endOfLife=True),
cls('HateThePlayer', 118599),
cls('HatShop', 71816),
cls('Helix', 121066),
cls('HeltonShelton', 124804),
cls('Hephaestus', 79909),
cls('HereBeVoodoo', 133691, adult=True),
cls('HiddenStrengthAWhiteNuzlocke', 116170),
cls('Hinata', 134703),
cls('Holocrash', 64113, endOfLife=True),
cls('HolyBlasphemy', 91250),
cls('HolyCrap', 13235),
cls('HopeForABreeze', 40188),
cls('HouseOfCraziness', 171040),
cls('HurrocksFardel', 1488),
cls('IciVontLesMorts', 133719, adult=True),
cls('Inchoatica', 138342),
cls('Ingloriousbasterds', 139586),
cls('InHouseHumor', 108681),
cls('Inhuman', 108969),
cls('InsideOuTAYuriTale', 50590),
cls('InspiredByADream', 48419),
cls('ItsAn8BitWorldBlankWorld', 88082),
cls('IWishIggysWish', 107290),
cls('JackiesStory', 108822),
cls('Jantar', 134338),
cls('Jason', 139878),
cls('JoeysAdventure', 142807),
cls('JourneyMan', 129303),
cls('JoyToTheWorld', 129685),
cls('June', 90624),
cls('JustAnotherLife', 128013),
cls('JustCrazy', 84007),
cls('Justmyluck', 169106),
cls('KaitoShuno', 100498, adult=True),
cls('KasaKeira', 78059),
cls('KazanatoFuneralPlanningService', 24026),
cls('KCNO', 103010, endOfLife=True),
cls('KezroChroniclesPhantomOps', 104447),
cls('Kirbandfriendsshowcase', 85495),
cls('KirbiesoftheAlternateDimension', 108771),
cls('KirbyAdventure', 77366),
cls('KirbyDreamTeam', 112273),
cls('KirbyFunfestTheOriginals', 90652),
cls('KirbysDreamAdventure', 69796),
cls('KirbysDreamlandAdventures', 46154),
cls('KirbyTheDeeArmy', 115693, endOfLife=True),
cls('KissmeSnow', 125812),
cls('KissoftheDevil', 64006),
cls('Knightface', 97596, adult=True),
cls('KnightsRequiem', 68098),
cls('KojiX5', 108937, endOfLife=True),
cls('Kreetor', 80871),
cls('Kruptos', 99200, endOfLife=True),
cls('KuronaFlutterandLylaSpamTime', 124636),
cls('LastBlockStanding', 125034),
cls('LavenderLegend', 107018),
cls('LeCirquedObscure', 103647),
cls('LedbyaMadMan', 111999),
cls('LegendOfZeldaAHerosStory', 118155),
cls('LegendOfZeldaStaffOfPower', 112732),
cls('LegendOfZeldaTheEdgeAndTheLight', 126345, endOfLife=True),
cls('LegendOfZeldaTheWindWaker', 49542),
cls('Lemongrass', 131786),
cls('LesCendresdelHiver', 131767),
cls('LethalDose', 115067, adult=True),
cls('LetLoveRule', 177216),
cls('LicensedHeroes', 123974),
cls('LifeAsACutOut', 86222),
cls('LifeAsItWas', 117747),
cls('LifeLessOrdinary', 63169, adult=True),
cls('Lifeonpaper', 126099),
cls('LightLovers', 135581, adult=True),
cls('LightwithinShadow', 47016),
cls('LilLevi', 134946),
cls('LOGOS', 93415, adult=True),
cls('LOKI', 93990),
cls('LondonUnderworld', 45699),
cls('LostNova', 84173),
cls('LoveandIcecream', 112872),
cls('LoveHarbor', 130349),
cls('LoveMeLoveMyTeddyBear', 50359),
cls('LoveroftheSunandMoon', 121615),
cls('LsEmpire', 33751),
cls('LuffinpuffandEric', 83450),
cls('LumasParadise', 46770, last=174),
cls('MagicalMisfits', 138166),
cls('Magipunk', 131204),
cls('Manifestedpart1', 140208),
cls('MarioandLuigiMisadventures', 4806),
cls('MariosDayJob', 2330),
cls('MarioVsSonicVsMegaMan', 14122, endOfLife=True),
cls('MarsMind', 129347),
cls('MarXistemTWC', 100651),
cls('Mascara', 59912),
cls('MatildasSweetCakeCafe', 115251, adult=True),
cls('MayTheRainCome', 119715, endOfLife=True),
cls('Mazscara', 12456),
cls('MegaManTales', 6516),
cls('MegaPain', 88178),
cls('MelodyAndMacabre', 28408),
cls('MetroJack', 61376, adult=True),
cls('MidnightPrince', 106681, adult=True),
cls('MineS', 139112),
cls('Minibot', 18129),
cls('MinorActsOfHeroism', 78356),
cls('Missing', 118871),
cls('Missingversionfrancaise', 126329),
cls('MobianChaos', 49021),
cls('Mokepon', 42705),
cls('Monstar', 141569),
cls('MoonValley', 157462),
cls('MorphE', 122406),
cls('Mortifer', 17271),
cls('MrFactory', 119931),
cls('MyFakeHeart', 19105),
cls('MySisterTheDragon', 9612, endOfLife=True),
cls('MySparklingPrincesama', 105626),
cls('MyStereoBot', 133633),
cls('MysticanDreams', 130154),
cls('MythsOfUnovaAWhiteNuzlockeRunHardMode', 101385),
cls('MYth', 36430),
cls('Nah', 88350),
cls('Negligence', 66718),
cls('NeonGlow', 63747),
cls('NeverTheHero', 132200),
cls('Nexus', 115357),
cls('NiceKitty', 75854),
cls('NighHeavenandHell', 72209, adult=True),
cls('NightSpace', 142396),
cls('NIK', 83716),
cls('NissiesDragonPrincess', 112655),
cls('NixsFireRedNuzlocke', 127939),
cls('NobleHeartsHiruandMerroug', 138690, adult=True),
cls('NoEnd', 138812),
cls('NormalcyisforWimps', 23862),
cls('NotyoursamI', 63700, adult=True),
cls('ObnoxiousHerokun', 146954, adult=True),
cls('ObsidianHeart', 130610),
cls('October20th', 122344),
cls('OddPlaceOddTime', 60037),
cls('OldElastikid', 97110),
cls('OneRainyDay', 111352, adult=True),
cls('Onlyonelovesong', 86555),
cls('OperationTheater', 97500),
cls('OriginBook1Codearth', 124751),
cls('OurTimeInEden', 27011),
cls('Outbreak', 134869),
cls('OutofKey', 123152),
cls('OverSync', 114781),
cls('Panacea', 79601, adult=True),
cls('PantsParty', 70630),
cls('PanzerDragonandEnigmaCompleteEdition', 20039),
cls('Pause', 135615),
cls('PencilviewUpdatesMondayscough', 33041),
cls('PeterPan', 119991),
cls('Phantomland', 106943),
cls('PhotoShootNarusasuDoujinshi', 110984, adult=True, last=187),
cls('PlasticKings', 132377),
cls('PlayTime', 68440),
cls('PleaseBeMyBoytoy', 26922),
cls('PMDExplorersOfHeart', 121563),
cls('PMDTeamFirefox', 103870),
cls('PMDVictoryFire', 116780),
cls('PokemonBeta', 76962, endOfLife=True),
cls('PokemonCrystalDoubleNuzlockeChallenge', 102420, endOfLife=True),
cls('PokemonLANDSKY', 120046),
cls('PokemonNoRakuen', 22822),
cls('PokemonParallel', 86143),
cls('PokemonSAKOHJU', 120395),
cls('Pokeventurous', 98420),
cls('Ponzi', 85187),
cls('PrettyMouth', 131442),
cls('PrincessChroma', 106726),
cls('ProfessorDolphinpresentsPokemon', 81880),
cls('ProjectCAPLimit', 137000),
cls('PTO', 43363, adult=True),
cls('Puck', 100566),
cls('PullingYouUnder', 155504, adult=True),
cls('PulseandBolt', 86022),
cls('PurpureaNoxa', 103522, adult=True),
cls('QueerQueen', 130802),
cls('RainbowMansion', 140231, adult=True),
cls('RainLGBT', 90588),
cls('RainxSasori', 108131, adult=True, endOfLife=True),
cls('RANDOM', 99296),
cls('RareCandyTreatment', 83853),
cls('RavenWolf', 97826),
cls('Regina', 129902),
cls('ReidyAndFriendsShowcase', 45097),
cls('RemoteAngel', 46191),
cls('Replica', 123116, adult=True, endOfLife=True),
cls('Respectable', 128996, adult=True, endOfLife=True),
cls('ReturntoEden', 15691),
cls('ROSIER', 54232),
cls('RottenApple', 133069),
cls('RoyalIcing', 81321),
cls('RubyNation', 107039),
cls('RuneSpark', 140886),
cls('RUScrewed', 144524),
cls('RyuManwebcomicVersion', 135497, endOfLife=True),
cls('SabishiiGhost', 136824),
cls('SaintforRent', 123862),
cls('SakuraDAY', 135342),
cls('SakuraMishzo', 58018, adult=True),
cls('SalemUncommons', 70211),
cls('SallySprocketAndPistonPete', 58930),
cls('SaltyKiss', 104227),
cls('SayWhatYouMean', 82290),
cls('SChIzO', 94872),
cls('SchoolOfRejectsSoRe', 37768),
cls('ScionsoftheSeraph', 43320, adult=True),
cls('ScrappedProject', 73142),
cls('SecretPowerbk1', 117146),
cls('SecretPowerbk2', 117458),
cls('Seki', 123118, adult=True),
cls('SeriousTimes', 73090),
cls('SFCBlackjackBay', 123799),
cls('SFCForestofDreams', 88943),
cls('ShamelessAdvertisements', 51975),
cls('Shameless', 130592),
cls('ShotoutofCanon', 18876),
cls('ShroudofLight', 121119),
cls('Signifikat', 12217, adult=True),
cls('SimpleBear', 120596),
cls('Sire', 58167),
cls('Skeptical', 108904),
cls('Slackmatic', 144286),
cls('SLightlyAbOVeAvErage', 117203, adult=True),
cls('SlipstreamSingularity', 66132),
cls('SmallPressAdventures', 70273),
cls('SocksMittensandScarfs', 132813),
cls('SomethingLikeaPhenomenon', 176182, adult=True),
cls('SonicAuthorAdventII', 5867),
cls('SonicBoom', 111375),
cls('SonicClub', 5638),
cls('SonicDashly', 87024),
cls('SonicFuture', 30809),
cls('SonicSchoolRedo', 110100),
cls('SOSRadio', 107498),
cls('SouthernCross', 94541),
cls('SovereignTheMostAmazingComicEver', 129062),
cls('SparElricsExtras', 125431),
cls('Spellcross', 125055),
cls('SpiderWings', 36314),
cls('SplitScreen', 125293, adult=True, endOfLife=True),
cls('SPRITEDHeroesofDobalia', 109013),
cls('Spriterschaos', 11126),
cls('Sprytts', 70422),
cls('Stay', 102560, adult=True),
cls('StellaInChrome', 70107),
cls('Stereophonic', 129406),
cls('StolenGeneration', 20901, adult=True, endOfLife=True),
cls('Storyofadamnedlove', 107702),
cls('StrangersandFriends', 94050),
cls('Striped', 79896, adult=True),
cls('StuntRayWalterswish', 73075),
cls('SubjecttoChangeCollegeWoes', 48759),
cls('Sunfall', 133465),
cls('SunmeetsMoon', 62545),
cls('SUNRISESTORY', 127611),
cls('SuperDimensionAfterTheHero', 98885),
cls('SuperMarioBros3', 18739, endOfLife=True),
cls('SuperMarjoBros', 136454),
cls('SupermassiveBlackHoleA', 59625),
cls('SurvivorFanCharacters', 24928),
cls('SweetestPoison', 142001),
cls('SwitchMechanism', 121604, endOfLife=True),
cls('TaikiTheWebcomic', 87240),
cls('TailsAdventureThroughTimeandOtherWorlds', 116964),
cls('TakingPicturesofStrangers', 71337, adult=True),
cls('TalesFromAaronsWings', 142272, endOfLife=True),
cls('TEN', 96475),
cls('ThatWasntThereYesterday', 85420),
cls('The13thWorld', 108420),
cls('TheAdventuresOfBanjoZ', 136763, adult=True, endOfLife=True),
cls('TheAntihero', 64167),
cls('TheArchipelago', 142266),
cls('Theatrics', 93578),
cls('TheBattleInTheSky', 143006),
cls('TheBookOfNosferatu', 97421),
cls('TheBrideoftheShark', 61393, adult=True),
cls('TheBucket', 124197),
cls('TheCafedAlizee', 80009),
cls('TheCavernOfSecrets', 126366),
cls('TheColony', 70272, adult=True),
cls('TheContract', 121955),
cls('TheCrawl', 124962),
cls('TheDarkLegacy', 83199),
cls('TheDemonicAdventuresOfAngelWitchPita', 105060, adult=True),
cls('TheDestroyer', 79216, adult=True),
cls('TheDragonAndTheLemur', 91259, adult=True),
cls('TheDreaming', 142053, endOfLife=True),
cls('TheDrifter', 137597, adult=True),
cls('TheElectricRose', 133024),
cls('TheForestofWhispers', 123645),
cls('TheGhostWithTheMost', 125332),
cls('TheGoldRiderofPern', 30008),
cls('TheGrayZone', 116458),
cls('TheHeadhunters', 105336),
cls('TheHeartofEarth', 113048),
cls('TheiaMania', 115095),
cls('TheJosephComics', 19785, endOfLife=True),
cls('TheKeyHotelEnding', 106307, endOfLife=True),
cls('TheKwiddexProtocol', 70268),
cls('TheLastBloodCafe', 136484),
cls('ThelaughingDeath', 129212),
cls('TheLegendaryQueen', 17122, adult=True),
cls('TheLifeofMagFlamequill', 51697),
cls('TheLoneSwordsman', 18218),
cls('TheMadMan', 83928),
cls('TheMegaManandSonicSpriteShowcase', 75689),
cls('TheNightSurfers', 120705),
cls('TheNocheComicSeries', 133439, adult=True),
cls('TheNOMEDSEGA', 127642),
cls('ThePirateBalthasar', 73113),
cls('ThePremise', 118125),
cls('ThePrincessAndTheGiant', 59629, endOfLife=True),
cls('ThePropertyofHate', 117970),
cls('TheReborn', 1898),
cls('TheSearchForHenryJekyll', 139257),
cls('TheSilverLeague', 110008),
cls('TheSummerofBlakeSinclair', 95648),
cls('Theswordsmanandtheamnesiac', 74220, adult=True),
cls('TheTimeDog', 97194),
cls('TheTytonNuzlockeChallengeEmeraldEdition', 115517),
cls('TheWhiteTower', 123161, endOfLife=True),
cls('TheWinterCampaign', 80021),
cls('TheYoshiHerd', 5814),
cls('ThiefCatcherRingTail', 112115),
cls('ThornsComic', 131578),
cls('ThornTopia', 54482),
cls('TLAAOK', 92316, adult=True),
cls('ToddAllisonAndThePetuniaViolet', 50018),
cls('TosiHuonoYaoiSarjis', 141725, adult=True),
cls('TotallyCrossover', 73445),
cls('TPTruePower', 13199),
cls('TrainerWantsToFight', 134083),
cls('Transfusions', 77588, adult=True),
cls('TransUMan', 107514, adult=True, endOfLife=True),
cls('TroubleNextDoor', 114482, endOfLife=True),
cls('UglyBoysLove', 102165),
cls('Uglygame', 61960),
cls('UnderTheDeadSkies', 114107),
cls('UnicampaLapis', 111371),
cls('UpDown', 140374, adult=True),
cls('UshalaatWorldsEnd', 130596, adult=True),
cls('Vacan7', 63460, adult=True),
cls('VACANT', 127276),
cls('VerloreGeleentheid', 80604, endOfLife=True),
cls('VoidMisadventures', 129134),
cls('VoyageoftheBrokenPromise', 137418, adult=True),
cls('WakeEcho', 70945),
cls('Wander', 118109),
cls('WantedDeadorDead', 68540),
cls('Wayfar', 95839),
cls('Waysoftheheart', 91122),
cls('WeAreGolden', 72590, adult=True),
cls('WelcomeToFreakshow', 72225),
cls('WelcomeToThePCA', 127811, endOfLife=True),
cls('WhatAboutLove', 74057, adult=True),
cls('WHATAboutSHADOWS', 109321, endOfLife=True),
cls('WhatIsDeepInOnesHeart', 130798),
cls('WhatWeRememberTheMost', 162746),
cls('WhenSheWasBad', 12859),
cls('Whenweweresilent', 156839),
cls('WhereaboutsOfTime', 133530),
cls('WhiteHeart', 124545, adult=True),
cls('WhiteNoise', 63110),
cls('Wildflowers', 125360),
cls('WildWingBoysKoathArc', 50240),
cls('WildWingBoys', 203574),
cls('WingsOverEthereal', 37417),
cls('WingsTurnedtoDust', 113033, last=417),
cls('Wootlabs', 101636),
cls('XXMoralityXx', 132016),
cls('YadotCakeShop', 106995, adult=True),
cls('YamanaokiHighSchool', 82468),
cls('YoungCannibals', 8027),
cls('ZaenWell', 111081),
cls('ZeldaTheNewAdventureofLinkIIMajorasMask', 43724),
)

View file

@ -2,7 +2,7 @@
# SPDX-License-Identifier: MIT # SPDX-License-Identifier: MIT
# Copyright (C) 2004-2008 Tristan Seligmann and Jonathan Jacobs # Copyright (C) 2004-2008 Tristan Seligmann and Jonathan Jacobs
# Copyright (C) 2012-2014 Bastian Kleineidam # Copyright (C) 2012-2014 Bastian Kleineidam
# Copyright (C) 2015-2016 Tobias Gruetzmacher # Copyright (C) 2015-2021 Tobias Gruetzmacher
""" """
Script to get arcamax comics and save the info in a JSON file for further Script to get arcamax comics and save the info in a JSON file for further
processing. processing.
@ -13,7 +13,7 @@ from scriptutil import ComicListUpdater
class ArcamaxUpdater(ComicListUpdater): class ArcamaxUpdater(ComicListUpdater):
dup_templates = ("Creators/%s", "DrunkDuck/%s", "GoComics/%s", dup_templates = ("Creators/%s", "DrunkDuck/%s", "GoComics/%s",
"KeenSpot/%s", "ComicGenesis/%s", "SmackJeeves/%s") "KeenSpot/%s", "ComicGenesis/%s")
# names of comics to exclude # names of comics to exclude
excluded_comics = ( excluded_comics = (

View file

@ -1,6 +1,6 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
# SPDX-License-Identifier: MIT # SPDX-License-Identifier: MIT
# Copyright (C) 2019 Tobias Gruetzmacher # Copyright (C) 2019-2021 Tobias Gruetzmacher
# Copyright (C) 2019 Thomas W. Littauer # Copyright (C) 2019 Thomas W. Littauer
""" """
Script to get a list of comicskingdom.com comics and save the info in a JSON Script to get a list of comicskingdom.com comics and save the info in a JSON
@ -12,7 +12,7 @@ from scriptutil import ComicListUpdater
class ComicsKingdomUpdater(ComicListUpdater): class ComicsKingdomUpdater(ComicListUpdater):
dup_templates = ("Creators/%s", "DrunkDuck/%s", "GoComics/%s", dup_templates = ("Creators/%s", "DrunkDuck/%s", "GoComics/%s",
"KeenSpot/%s", "ComicGenesis/%s", "SmackJeeves/%s") "KeenSpot/%s", "ComicGenesis/%s")
# names of comics to exclude # names of comics to exclude
excluded_comics = ( excluded_comics = (

View file

@ -1,5 +1,5 @@
# SPDX-License-Identifier: MIT # SPDX-License-Identifier: MIT
# Copyright (C) 2019-2020 Tobias Gruetzmacher # Copyright (C) 2019-2021 Tobias Gruetzmacher
import re import re
import pytest import pytest
@ -8,7 +8,6 @@ import responses
import dosagelib.cmd import dosagelib.cmd
import httpmocks import httpmocks
from dosagelib.plugins.s import SoloLeveling from dosagelib.plugins.s import SoloLeveling
from dosagelib.plugins.smackjeeves import SmackJeeves
from dosagelib.scraper import GeoblockedException from dosagelib.scraper import GeoblockedException
@ -43,14 +42,6 @@ class TestModules(object):
cmd('--basepath', str(tmpdir), 'CalvinAndHobbesEnEspanol') cmd('--basepath', str(tmpdir), 'CalvinAndHobbesEnEspanol')
cmd('--basepath', str(tmpdir), 'CalvinAndHobbesEnEspanol:2012/07/22') cmd('--basepath', str(tmpdir), 'CalvinAndHobbesEnEspanol:2012/07/22')
@responses.activate
def test_smackjeeves_geoblock(self, tmpdir):
responses.add(responses.POST, re.compile('https://www.smackjeeves.com/api/.*'),
'is not currently available in your area', content_type='text/html')
with pytest.raises(GeoblockedException):
next(SmackJeeves.getmodules()[0].getStrips(1))
@responses.activate @responses.activate
def test_sololeveling_geoblock(self, tmpdir): def test_sololeveling_geoblock(self, tmpdir):
responses.add(responses.GET, 'https://w1.sololeveling.net/', responses.add(responses.GET, 'https://w1.sololeveling.net/',