diff --git a/dosagelib/plugins/old.py b/dosagelib/plugins/old.py index 22e3ddcb5..8c2dd93a1 100644 --- a/dosagelib/plugins/old.py +++ b/dosagelib/plugins/old.py @@ -1,7 +1,7 @@ # SPDX-License-Identifier: MIT # Copyright (C) 2004-2008 Tristan Seligmann and Jonathan Jacobs # Copyright (C) 2012-2014 Bastian Kleineidam -# Copyright (C) 2015-2020 Tobias Gruetzmacher +# Copyright (C) 2015-2021 Tobias Gruetzmacher # Copyright (C) 2019-2020 Daniel Ring from ..scraper import Scraper @@ -651,6 +651,568 @@ class Removed(Scraper): cls('GoComics/UncleArtsFunland'), cls('GoComics/USAcres'), 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('VictimsOfTheSystem'), cls('WebDesignerCOTW'), diff --git a/dosagelib/plugins/smackjeeves.py b/dosagelib/plugins/smackjeeves.py deleted file mode 100644 index fccd50bf2..000000000 --- a/dosagelib/plugins/smackjeeves.py +++ /dev/null @@ -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), - ) diff --git a/scripts/arcamax.py b/scripts/arcamax.py index cf16f996b..e50bd46bd 100755 --- a/scripts/arcamax.py +++ b/scripts/arcamax.py @@ -2,7 +2,7 @@ # SPDX-License-Identifier: MIT # Copyright (C) 2004-2008 Tristan Seligmann and Jonathan Jacobs # 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 processing. @@ -13,7 +13,7 @@ from scriptutil import ComicListUpdater class ArcamaxUpdater(ComicListUpdater): dup_templates = ("Creators/%s", "DrunkDuck/%s", "GoComics/%s", - "KeenSpot/%s", "ComicGenesis/%s", "SmackJeeves/%s") + "KeenSpot/%s", "ComicGenesis/%s") # names of comics to exclude excluded_comics = ( diff --git a/scripts/comicskingdom.py b/scripts/comicskingdom.py index 56706691a..ffec36f6b 100755 --- a/scripts/comicskingdom.py +++ b/scripts/comicskingdom.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # SPDX-License-Identifier: MIT -# Copyright (C) 2019 Tobias Gruetzmacher +# Copyright (C) 2019-2021 Tobias Gruetzmacher # Copyright (C) 2019 Thomas W. Littauer """ 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): dup_templates = ("Creators/%s", "DrunkDuck/%s", "GoComics/%s", - "KeenSpot/%s", "ComicGenesis/%s", "SmackJeeves/%s") + "KeenSpot/%s", "ComicGenesis/%s") # names of comics to exclude excluded_comics = ( diff --git a/tests/test_modules.py b/tests/test_modules.py index 78cc9181a..a79c9f066 100644 --- a/tests/test_modules.py +++ b/tests/test_modules.py @@ -1,5 +1,5 @@ # SPDX-License-Identifier: MIT -# Copyright (C) 2019-2020 Tobias Gruetzmacher +# Copyright (C) 2019-2021 Tobias Gruetzmacher import re import pytest @@ -8,7 +8,6 @@ import responses import dosagelib.cmd import httpmocks from dosagelib.plugins.s import SoloLeveling -from dosagelib.plugins.smackjeeves import SmackJeeves from dosagelib.scraper import GeoblockedException @@ -43,14 +42,6 @@ class TestModules(object): cmd('--basepath', str(tmpdir), 'CalvinAndHobbesEnEspanol') 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 def test_sololeveling_geoblock(self, tmpdir): responses.add(responses.GET, 'https://w1.sololeveling.net/',