1# -*- coding: utf-8 -*- 2# Copyright (C) 2019-2020 Tobias Gruetzmacher 3# Copyright (C) 2019-2020 Daniel Ring 4 5from __future__ import absolute_import, division, print_function 6 7from ..scraper import _ParserScraper 8 9 10class WebToons(_ParserScraper): 11 imageSearch = '//img[contains(@class, "_images")]/@data-url' 12 prevSearch = '//a[contains(@class, "_prevEpisode")]' 13 multipleImagesPerStrip = True 14 15 def __init__(self, name, url, titlenum): 16 super(WebToons, self).__init__('WebToons/' + name) 17 18 baseUrl = 'https://www.webtoons.com/en/' 19 self.url = baseUrl + url + '/episode/viewer?title_no=' + str(titlenum) 20 self.listUrl = baseUrl + url + '/list?title_no=' + str(titlenum) 21 self.stripUrl = self.url + '&episode_no=%s' 22 self.firstStripUrl = self.stripUrl % '1' 23 24 def starter(self): 25 # Set age-check cookie 26 self.session.cookies.set('ageGatePass', 'true', domain='webtoons.com') 27 # Find current episode number 28 listPage = self.getPage(self.listUrl) 29 currentEpisode = listPage.xpath('//div[@class="detail_lst"]/ul/li')[0].attrib['data-episode-no'] 30 # Check for completed tag 31 self.endOfLife = (listPage.xpath('//span[@class="txt_ico_completed2"]') != []) 32 return self.stripUrl % currentEpisode 33 34 def fetchUrls(self, url, data, urlSearch): 35 # Save link order for position-based filenames 36 self.imageUrls = super(WebToons, self).fetchUrls(url, data, urlSearch) 37 # Update firstStripUrl with the correct episode title 38 if url.rsplit('=', 1)[-1] == '1': 39 self.firstStripUrl = url 40 return self.imageUrls 41 42 def namer(self, imageUrl, pageUrl): 43 # Construct filename from episode number and image position on page 44 episodeNum = pageUrl.rsplit('=', 1)[-1] 45 imageNum = self.imageUrls.index(imageUrl) 46 imageExt = pageUrl.rsplit('.', 1)[-1].split('?', 1)[0] 47 return "%s-%02d.%s" % (episodeNum, imageNum, imageExt) 48 49 @classmethod 50 def getmodules(cls): 51 return ( 52 # WebToons Canvas comics 53 cls('Anthronauts', 'challenge/anthronauts', 358917), 54 cls('Debunkers', 'challenge/debunkers', 148475), 55 cls('InternetExplorer', 'challenge/internet-explorer', 219164), 56 cls('PinchPoint', 'challenge/pinch-point-reborn', 334640), 57 cls('SpaceVixen', 'challenge/space-vixen-deep-space-k9', 207049), 58 59 # Unicode title 60 cls('Lozolz', 'tiptoon/lozolz', 1268), 61 62 # START AUTOUPDATE 63 cls('1000', 'action/one-thousand', 1217), 64 cls('10thDimensionBoys', 'comedy/10th-dimension-boys', 71), 65 cls('1111Animals', 'comedy/1111-animals', 437), 66 cls('2015SpaceSeries', 'sf/2015-space-series', 391), 67 cls('3SecondStrip', 'comedy/3-second-strip', 380), 68 cls('ABittersweetLife', 'slice-of-life/a-bittersweet-life', 294), 69 cls('AboutDeath', 'drama/about-death', 82), 70 cls('ABudgiesLife', 'slice-of-life/its-a-budgies-life', 985), 71 cls('Acception', 'drama/acception', 1513), 72 cls('Acursian', 'fantasy/acursian', 1452), 73 cls('Adamsville', 'thriller/adamsville', 502), 74 cls('AdventuresOfGod', 'comedy/adventures-of-god', 853), 75 cls('AerialMagic', 'drama/aerial-magic', 1358), 76 cls('AgeMatters', 'romance/age-matters', 1364), 77 cls('AGoodDayToBeADog', 'drama/a-good-day-tobe-a-dog', 1390), 78 cls('Aisopos', 'drama/aisopos', 76), 79 cls('AliceElise', 'fantasy/alice-elise', 1481), 80 cls('AllThatWeHopeToBe', 'slice-of-life/all-that-we-hope-to-be', 470), 81 cls('AllThatYouAre', 'drama/all-that-you-are', 403), 82 cls('AlwaysHuman', 'romance/always-human', 557), 83 cls('Annarasumanara', 'drama/annarasumanara', 77), 84 cls('AphroditeIX', 'sf/aphroditeix', 1451), 85 cls('ApocalypticHorseplay', 'fantasy/apocalyptic-horseplay', 635), 86 cls('AprilFlowers', 'fantasy/april-flowers', 1363), 87 cls('Arma', 'action/arma', 1640), 88 cls('AsPerUsual', 'comedy/as-per-usual', 599), 89 cls('AssassinRoommate', 'romance/assassin-roommate', 1050), 90 cls('AthenaComplex', 'fantasy/athena-complex', 867), 91 cls('AuraFromAnotherPlanet', 'comedy/aura-from-another-planet', 369), 92 cls('AverageAdventuresOfAnAverageGirl', 'slice-of-life/average-adventures-of-an-average-girl', 401), 93 cls('AXED', 'comedy/axed', 1558), 94 cls('Backchannel', 'super-hero/backchannel', 1456), 95 cls('BadSigns', 'comedy/bad-signs', 1623), 96 cls('Bastard', 'thriller/bastard', 485), 97 cls('BehindTheGIFs', 'comedy/behind-the-gifs', 658), 98 cls('BigJo', 'drama/big-jo', 854), 99 cls('BiteMe', 'drama/bite-me', 1019), 100 cls('Blessed', 'drama/blessed', 1193), 101 cls('BloodInk', 'action/blood-ink', 1490), 102 cls('BloodlessWars', 'action/bloodless-wars', 1622), 103 cls('Bluechair', 'comedy/bluechair', 199), 104 cls('BOOItsSex', 'slice-of-life/boo-its-sex', 1413), 105 cls('BoyfriendOfTheDead', 'comedy/boyfriend-of-the-dead', 1102), 106 cls('BrassAndSass', 'romance/brass-and-sass', 1652), 107 cls('BrimstoneAndRoses', 'romance/brimstone-and-roses', 1758), 108 cls('BrothersBond', 'action/brothersbond', 1458), 109 cls('BrutallyHonest', 'comedy/brutally-honest', 799), 110 cls('BuzzFeedComics', 'comedy/buzzfeed-comics', 585), 111 cls('CapeOfSpirits', 'fantasy/cape-of-spirits', 1559), 112 cls('CARL', 'comedy/carl', 1216), 113 cls('Caster', 'action/caster', 1461), 114 cls('CastleSwimmer', 'fantasy/castle-swimmer', 1499), 115 cls('Catharsis', 'fantasy/catharsis', 396), 116 cls('CatLoafAdventures', 'slice-of-life/cat-loaf-adventures', 1381), 117 cls('CheeseInTheTrap', 'romance/cheese-in-the-trap', 99), 118 cls('CherryBlossoms', 'romance/cherry-blossoms', 1005), 119 cls('Chiller', 'thriller/chiller', 536), 120 cls('ChocoLatte', 'romance/choco-latte', 1691), 121 cls('CityOfWalls', 'action/city-of-wall', 505), 122 cls('ClusterFudge', 'slice-of-life/cluster-fudge', 355), 123 cls('CodeAdam', 'action/code-adam', 1657), 124 cls('CookingComically', 'slice-of-life/cooking-comically', 622), 125 cls('Crumbs', 'romance/crumbs', 1648), 126 cls('CupidsArrows', 'romance/cupids-arrows', 1538), 127 cls('CursedPrincessClub', 'comedy/cursed-princess-club', 1537), 128 cls('Cyberbunk', 'sf/cyberbunk', 466), 129 cls('Cyberforce', 'super-hero/cyberforce', 531), 130 cls('CykoKO', 'comedy/cyko-ko', 560), 131 cls('Darbi', 'action/darbi', 1098), 132 cls('Davinchibi', 'drama/davinchibi', 1190), 133 cls('DaYomanvilleGang', 'drama/da-yomanville-gang', 1578), 134 cls('DaysOfHana', 'romance/days-of-hana', 1246), 135 cls('DEADDAYS', 'thriller/dead-days', 293), 136 cls('DEEP', 'thriller/deep', 364), 137 cls('Denma', 'sf/denma', 921), 138 cls('Dents', 'sf/dents', 671), 139 cls('Deor', 'fantasy/deor', 1663), 140 cls('DevilNumber4', 'romance/devil-no-4', 1695), 141 cls('DICE', 'fantasy/dice', 64), 142 cls('DistantSky', 'thriller/distant-sky', 75), 143 cls('DONTHATE', 'comedy/dont-hate', 1574), 144 cls('DoodleForFood', 'slice-of-life/doodle-for-food', 487), 145 cls('Dragnarok', 'fantasy/dragnarok', 1018), 146 cls('DragnarokDescendants', 'fantasy/dragnarok-descendants', 1433), 147 cls('DrFrost', 'drama/dr-frost', 371), 148 cls('Dustinteractive', 'comedy/dustinteractive', 907), 149 cls('DutyAfterSchool', 'drama/duty-after-school', 370), 150 cls('EatFighter', 'comedy/eat-fighter', 1460), 151 cls('EcstasyHearts', 'romance/ecstasy-hearts', 604), 152 cls('Edith', 'romance/edith', 1536), 153 cls('Eggnoid', 'romance/eggnoid', 1229), 154 cls('Eleceed', 'fantasy/eleceed', 1571), 155 cls('Elena', 'thriller/elena', 484), 156 cls('ElfAndWarrior', 'fantasy/elf-and-warrior', 908), 157 cls('EMPYREA', 'fantasy/empyrea', 1407), 158 cls('EpicV', 'comedy/epic-v', 353), 159 cls('EverywhereAndNowhere', 'comedy/everywhere-and-nowhere', 1598), 160 cls('FAMILYMAN', 'drama/family-man', 85), 161 cls('FantasySketchTheGame', 'fantasy/fantasy-sketch', 1020), 162 cls('Faust', 'fantasy/faust', 522), 163 cls('FINALITY', 'thriller/finality', 1457), 164 cls('Firebrand', 'fantasy/firebrand', 877), 165 cls('Flow', 'fantasy/flow', 101), 166 cls('FluffyBoyfriend', 'drama/fluffy-boyfriend', 1164), 167 cls('ForTheSakeOfSita', 'romance/for-the-sake-of-sita', 349), 168 cls('FourLeaf', 'fantasy/four-leaf', 1454), 169 cls('FreakingRomance', 'romance/freaking-romance', 1467), 170 cls('FridayForbiddenTales', 'thriller/friday', 388), 171 cls('Gepetto', 'sf/gepetto', 81), 172 cls('GhostsAmongTheWildFlowers', 'fantasy/ghosts-over-wild-flowers', 718), 173 cls('GhostTeller', 'horror/ghost-teller', 1307), 174 cls('GhostWife', 'romance/ghost-wife', 1471), 175 cls('GirlsHaveABlog', 'slice-of-life/girls-have-a-blog', 1052), 176 cls('GirlsOfTheWilds', 'action/girls-of-the-wilds', 93), 177 cls('GodOfBath', 'comedy/god-of-bath', 91), 178 cls('GOSU', 'action/gosu', 1099), 179 cls('GourmetHound', 'drama/gourmet-hound', 1245), 180 cls('GuardiansOfTheVideoGame', 'fantasy/guardians-of-the-video-game', 368), 181 cls('HAPIBUNI', 'comedy/hapi-buni', 362), 182 cls('HardcoreLevelingWarrior', 'action/hardcore-leveling-warrior', 1221), 183 cls('HaveYouAnyFear', 'horror/have-you-any-fear', 1197), 184 cls('Haxor', 'drama/haxor', 1325), 185 cls('Heartwired', 'sf/heartwired', 1539), 186 cls('HeirsGame', 'drama/heirs-game', 1445), 187 cls('HeliosFemina', 'fantasy/helios-femina', 638), 188 cls('HelloWorld', 'slice-of-life/hello-world', 827), 189 cls('Hellper', 'action/hellper', 185), 190 cls('HeroineChic', 'drama/heroine-chic', 561), 191 cls('HIVE', 'thriller/hive', 65), 192 cls('Hooky', 'fantasy/hooky', 425), 193 cls('HoovesOfDeath', 'action/hooves-of-death', 1535), 194 cls('HouseOfStars', 'fantasy/house-of-stars', 1620), 195 cls('HowToLove', 'slice-of-life/how-to-love', 472), 196 cls('IDontWantThisKindOfHero', 'fantasy/i-dont-want-this-kind-of-hero', 98), 197 cls('IllusionsOfAdulting', 'drama/illusions-of-adulting', 922), 198 cls('IllustratedInternet', 'comedy/illustrated-internet', 750), 199 cls('ILoveYoo', 'romance/i-love-yoo', 986), 200 cls('ImmortalNerd', 'comedy/immortal-nerd', 579), 201 cls('ImTheGrimReaper', 'thriller/im-the-grim-reaper', 1697), 202 cls('Inarime', 'fantasy/inarime', 675), 203 cls('JackieRose', 'action/jackie-rose', 613), 204 cls('JingleJungle', 'slice-of-life/jingle-jungle', 282), 205 cls('JustAskYuli', 'slice-of-life/just-ask-yuli', 402), 206 cls('JustForKicks', 'slice-of-life/just-for-kicks', 1152), 207 cls('JustPancakes', 'comedy/just-pancakes', 1651), 208 cls('KidsAreAllRight', 'drama/kids-are-all-right', 283), 209 cls('KindOfConfidential', 'romance/kind-of-confidential', 663), 210 cls('KnightRun', 'fantasy/knight-run', 67), 211 cls('Kubera', 'fantasy/kubera', 83), 212 cls('LalinsCurse', 'drama/lalins-curse', 1601), 213 cls('Lars', 'slice-of-life/lars', 358), 214 cls('LateBloomer', 'romance/late-bloomer', 988), 215 cls('LavenderJack', 'thriller/lavender-jack', 1410), 216 cls('LESSA', 'fantasy/lessa', 89), 217 cls('LESSA2TheCrimsonKnight', 'fantasy/lessa-2', 507), 218 cls('LetsPlay', 'romance/letsplay', 1218), 219 cls('LibraryGhost', 'slice-of-life/library-ghost', 220), 220 cls('LifeOutsideTheCircle', 'romance/life-outside-the-circle', 1260), 221 cls('LittleMatchaGirl', 'fantasy/little-matcha-girl', 1665), 222 cls('LiveForever', 'drama/live-forever', 1312), 223 cls('LiveWithYourself', 'comedy/live-with-yourself', 919), 224 cls('Lookism', 'drama/lookism', 1049), 225 cls('LoreOlympus', 'romance/lore-olympus', 1320), 226 cls('Lorna', 'slice-of-life/lorna', 1284), 227 cls('LoveAdviceFromTheGreatDukeOfHell', 'comedy/love-advice', 1498), 228 cls('LUFF', 'romance/luff', 1489), 229 cls('Luggage', 'fantasy/luggage', 1642), 230 cls('LUMINE', 'drama/lumine', 1022), 231 cls('Lunarbaboon', 'slice-of-life/lunarbaboon', 523), 232 cls('MageAndDemonQueen', 'fantasy/mage-and-demon-queen', 1438), 233 cls('Magical12thGraders', 'fantasy/magical-12th-graders', 90), 234 cls('Magician', 'fantasy/magician', 70), 235 cls('MatchmakerHero', 'sf/matchmaker-hero', 1569), 236 cls('MelvinasTherapy', 'horror/melvinas-therapy', 1021), 237 cls('MeowMan', 'comedy/meow-man', 1677), 238 cls('MercWorks', 'comedy/mercworks', 426), 239 cls('Messenger', 'fantasy/messenger', 1382), 240 cls('MetaphoricalHER', 'drama/metaphorical-her', 1475), 241 cls('MidnightRhapsody', 'slice-of-life/midnight-rhapsody', 116), 242 cls('MidnightRhapsodySeason2', 'slice-of-life/midnight-rhapsody-season2', 365), 243 cls('MissAbbottAndTheDoctor', 'romance/miss-abbott-and-the-doctor', 707), 244 cls('MOONBEARD', 'comedy/moon-beard', 471), 245 cls('MoonYou', 'sf/moonyou', 1340), 246 cls('Murrz', 'slice-of-life/murrz', 1281), 247 cls('Muted', 'drama/muted', 1566), 248 cls('MyBoo', 'drama/my-boo', 1185), 249 cls('MyDearColdBloodedKing', 'romance/my-dear-cold-blooded-king', 961), 250 cls('MyDeepestSecret', 'drama/my-deepest-secret', 1580), 251 cls('MyDictatorBoyfriend', 'comedy/my-dictator-boyfriend', 1391), 252 cls('MyGiantNerdBoyfriend', 'slice-of-life/my-giant-nerd-boyfriend', 958), 253 cls('MyKittyAndOldDog', 'slice-of-life/my-kitty-and-old-dog', 184), 254 cls('MyNameIsBenny', 'slice-of-life/my-name-is-benny', 1279), 255 cls('NanoList', 'sf/nano-list', 700), 256 cls('NationalDogDay2016', 'slice-of-life/national-dog-day', 747), 257 cls('NewLifeProject', 'comedy/new-life-project', 279), 258 cls('Newman', 'fantasy/newman', 405), 259 cls('NewNormalClass8', 'comedy/new-normal-class-8', 100), 260 cls('Nicholalala', 'slice-of-life/nicholalala', 418), 261 cls('NightmareFactory', 'fantasy/nightmare-factory', 616), 262 cls('Noblesse', 'fantasy/noblesse', 87), 263 cls('NoblesseRaisAdventure', 'fantasy/noblesse-spin-off', 608), 264 cls('NoScope', 'action/no-scope', 1572), 265 cls('NotEvenBones', 'thriller/not-even-bones', 1756), 266 cls('NothingSpecial', 'fantasy/nothing-special', 1188), 267 cls('OddGirlOut', 'drama/odd-girl-out', 1420), 268 cls('OhHoly', 'romance/oh-holy', 809), 269 cls('ORANGEMARMALADE', 'romance/orange-marmalade', 97), 270 cls('Outrage', 'super-hero/outrage', 1450), 271 cls('PacificRimAmara', 'sf/pacific-rim-amara', 1327), 272 cls('PenguinLovesMev', 'slice-of-life/penguin-loves-mev', 86), 273 cls('PhantomParadise', 'fantasy/phantom-paradise', 1250), 274 cls('Pigminted', 'slice-of-life/pigminted', 482), 275 cls('Plum', 'sports/plum', 1605), 276 cls('Polidiocy', 'comedy/polidiocy', 676), 277 cls('Pound', 'action/pound', 1496), 278 cls('PowerBallad', 'drama/power-ballad', 987), 279 cls('PurpleHyacinth', 'drama/purple-hyacinth', 1621), 280 cls('RandomChat', 'drama/random-chat', 1669), 281 cls('RANDOMPHILIA', 'comedy/randomphilia', 386), 282 cls('Rebirth', 'fantasy/rebirth', 1412), 283 cls('RefundHighSchool', 'drama/refundhighschool', 1360), 284 cls('RiseFromAshes', 'fantasy/rise-from-ashes', 959), 285 cls('RoarStreetJournal', 'slice-of-life/roar-street-journal', 397), 286 cls('RoomOfSwords', 'sf/room-of-swords', 1261), 287 cls('SafelyEndangered', 'comedy/safely-endangered', 352), 288 cls('SaltyStudio', 'romance/salty-studio', 74), 289 cls('SaphieTheOneEyedCat', 'slice-of-life/saphie-one-eyed-cat', 670), 290 cls('SAVEME', 'drama/bts-save-me', 1514), 291 cls('ScorchingRomance', 'drama/scorching-romance', 1662), 292 cls('Seed', 'sf/seed', 1480), 293 cls('SHADOW', 'fantasy/shadow', 281), 294 cls('ShadowPirates', 'fantasy/shadow-pirates', 1455), 295 cls('Shard', 'drama/shard', 960), 296 cls('Shiloh', 'thriller/shiloh', 1649), 297 cls('ShootAround', 'drama/shoot-around', 399), 298 cls('Shriek', 'thriller/shriek', 772), 299 cls('SID', 'fantasy/sid', 497), 300 cls('SIDEKICKS', 'super-hero/sidekicks', 92), 301 cls('SimonSues', 'thriller/simon-sues', 1619), 302 cls('SirensLament', 'romance/sirens-lament', 632), 303 cls('Sithrah', 'fantasy/sithrah', 524), 304 cls('SkateFire100', 'fantasy/skate-fire-100', 1674), 305 cls('SmallWorld', 'slice-of-life/small-world', 1159), 306 cls('SmileBrush', 'slice-of-life/smile-brush', 94), 307 cls('SmileBrushMyOldPictures', 'slice-of-life/smile-brush-my-old-pictures', 302), 308 cls('Snailogy', 'slice-of-life/snailogy', 387), 309 cls('SOULCARTEL', 'fantasy/soul-cartel', 72), 310 cls('SoulOnHold', 'fantasy/soul-on-hold', 1701), 311 cls('SpaceBoy', 'drama/space-boy', 400), 312 cls('SpiritFingers', 'drama/spirit-fingers', 1577), 313 cls('Spirits', 'fantasy/spirits-re', 1348), 314 cls('STARCROSS', 'super-hero/star-cross', 1599), 315 cls('StarWars', 'sf/starwars', 544), 316 cls('StrawberrySeafoam', 'drama/strawberry-seafoam', 1248), 317 cls('SubtleDisaster', 'drama/subtle-disaster', 350), 318 cls('SubZero', 'romance/subzero', 1468), 319 cls('SuperSecret', 'romance/super-secret', 666), 320 cls('SupersonicGirl', 'super-hero/supersonic-girl', 633), 321 cls('SweetHome', 'thriller/sweethome', 1285), 322 cls('SwordInterval', 'fantasy/sword-interval', 486), 323 cls('TalesOfTheUnusual', 'thriller/tales-of-the-unusual', 68), 324 cls('TheBadguys', 'super-hero/the-bad-guys', 701), 325 cls('TheBrooklynite', 'super-hero/the-brooklynite', 813), 326 cls('TheCliff', 'thriller/the-cliff', 80), 327 cls('TheCroaking', 'fantasy/the-croaking', 1494), 328 cls('TheDaneMen', 'comedy/the-danemen', 395), 329 cls('TheDevilIsAHandsomeMan', 'romance/the-devil-is-a-handsome-man', 1311), 330 cls('TheFeverKing', 'fantasy/the-fever-king', 1659), 331 cls('TheFourOfThem', 'drama/the-four-of-them', 1524), 332 cls('TheGamer', 'fantasy/the-gamer', 88), 333 cls('TheGentlemansArmchair', 'comedy/the-gentlemans-armchair', 469), 334 cls('THEGIRLFROMCLASS', 'drama/the-girl-from-class', 73), 335 cls('TheGodOfHighSchool', 'action/the-god-of-high-school', 66), 336 cls('TheKissBet', 'romance/the-kiss-bet', 1617), 337 cls('TheLifeOfTheThreeBears', 'slice-of-life/the-life-of-the-three-bears', 390), 338 cls('ThePurpleHeart', 'super-hero/the-purple-heart', 723), 339 cls('TheRedBook', 'thriller/the-red-book', 467), 340 cls('TheRedHook', 'super-hero/the-red-hook', 643), 341 cls('TheRedKing', 'fantasy/the-red-king', 1687), 342 cls('TheSoundOfYourHeart', 'comedy/the-sound-of-your-heart', 269), 343 cls('TheSteamDragonExpress', 'fantasy/steam-dragon-express', 1270), 344 cls('TheStoriesOfThoseAroundMe', 'romance/the-stories-of-those-around-me', 96), 345 cls('TheStrangeTalesOfOscarZahn', 'fantasy/the-strange-tales-of-oscar-zahn', 685), 346 cls('TheVaultOfHorrorACollectionOfNightmares', 'thriller/the-vault-of-horror-a-collection-of-nightmares', 295), 347 cls('TheWeightOfOurSky', 'drama/the-weight-of-our-sky', 1739), 348 cls('TheWorldWhereIBelong', 'drama/the-world-where-i-belong', 1318), 349 cls('ThirdShiftSociety', 'thriller/third-shift-society', 1703), 350 cls('Thornstone', 'fantasy/thornstone', 1612), 351 cls('TickleTown', 'comedy/tickle-town', 428), 352 cls('TowerOfGod', 'fantasy/tower-of-god', 95), 353 cls('TrailerParkWarlock', 'fantasy/trailer-park-warlock', 1512), 354 cls('TrashBird', 'comedy/trash-bird', 473), 355 cls('TrueBeauty', 'drama/truebeauty', 1436), 356 cls('Trump', 'fantasy/trump', 84), 357 cls('UndeadEd', 'comedy/undeaded', 468), 358 cls('UnderPrin', 'fantasy/underprin', 78), 359 cls('UnderTheAegis', 'fantasy/under-the-aegis', 436), 360 cls('UnknownCaller', 'thriller/ar-toon', 775), 361 cls('UnluckyIsAsLuckyDoes', 'comedy/unlucky-is-as-lucky-does', 1554), 362 cls('UnOrdinary', 'fantasy/unordinary', 679), 363 cls('UnTouchable', 'romance/untouchable', 79), 364 cls('UpAndOut', 'slice-of-life/up-and-out', 488), 365 cls('UrbanAnimal', 'action/urban-animal', 1483), 366 cls('Uriah', 'thriller/uriah', 1607), 367 cls('VarsityNoir', 'drama/varsity-noir', 1613), 368 cls('WafflesAndPancakes', 'slice-of-life/waffles-and-pancakes', 1310), 369 cls('WarCry', 'super-hero/war-cry', 1247), 370 cls('WarningLabel', 'romance/warning-label', 1051), 371 cls('Watermelon', 'drama/watermelon', 1435), 372 cls('WeakHero', 'drama/weakhero', 1726), 373 cls('WestwoodVibrato', 'drama/westwood-vibrato', 537), 374 cls('WhereTangentsMeet', 'romance/where-tangents-meet', 421), 375 cls('WindBreaker', 'action/wind-breaker', 372), 376 cls('WinterMoon', 'fantasy/winter-moon', 1093), 377 cls('WinterWoods', 'romance/winter-woods', 344), 378 cls('WitchCreekRoad', 'horror/witch-creek-road', 1453), 379 cls('WitchHunt', 'drama/witch-hunt', 363), 380 cls('XINK3R', 'super-hero/xinker', 541), 381 cls('YourAdventure', 'comedy/your-adventure', 506), 382 cls('YourLetter', 'drama/your-letter', 1540), 383 cls('YumisCells', 'romance/yumi-cell', 478), 384 cls('ZeroGame', 'action/zero-game', 1704), 385 # END AUTOUPDATE 386 ) 387