Skip to content

Instantly share code, notes, and snippets.

@jpignata
Created October 31, 2009 22:14
Show Gist options
  • Save jpignata/223279 to your computer and use it in GitHub Desktop.
Save jpignata/223279 to your computer and use it in GitHub Desktop.
require 'nokogiri'
module Rack
class Geocities
UC_IMAGES = ['HeHeartlandForest8728imagesunderconstruction.gif','CoCollegePark8762construct.gif','HeHeartlandFlats7015underconstruction.gif','SunsetStripUnderground1358YellowandBlackconstructiontape.gif','AtAthensAcropolis6558underconstruction.gif','CoColosseumField1484lconstruct2.gif','CoColosseumSlope5759_themesconstruction-zonesurbhorsa.gif','AtAthensStyx4519under_construction.gif','Atlantis8384CONSTRUCTION.gif','CaCapeCanaveral3537construct_line_2.gif','Chamber6387artconstruct_line_1.gif','HeHeartland5384construct_line_bird.gif','HoHollywoodHeights8983construct_line_1.gif','HoHollywoodLot6593picturesconstruction_line.gif','ReResearchTriangleThinktank5966graphicconstruct_line_1.gif','SiSiliconValleyHeights6393construct1.gif','knknrlrthmlrmiscconstructionbanner.gif','mmmmcloggersPicturesextrasconstructionline.gif','AtAthensAcademy9957construction_line.gif','EnEnchantedForestDell2878ConstructionLine.gif','CaCapeCanaveralCampus4717construction1.gif','HoHotSprings1937construction2.gif','CaCapeCanaveralHangar7630construct31.gif','HeartlandPrairie1139notusingconstructionbar.gif','Lair2887iunderconstruction.gif','MoMotorCity5495imagesconstruction_18.gif','MoMotorCity5495imagesconstruction_19.gif','MoMotorCity5495imagesconstruction_20.gif','ninirvanatradepicsconstructiondivider.gif','svipdaagvidgameswizardconstruction.gif','HeHeartlandPark2601underconstructionbar9.gif','RaRainForest8220construction.gif','HeHeartlandGrove2575lineconstruction.gif','HoHollywoodPicture5747underconstructionbar.gif','RaRainForestCanopy4158imagenesconstruct_line_2b.gif','Tokyo6774underconstruct.gif','TokyoField2642smiley_construction.gif','ajaj0077lines_bulletsconstruction.gif','AtAthensOracle1388imagesconstruct.gif','HoHollywood3335construction.gif','ngnguyenlong311Imagesconstruction.gif','AtAthensOlympus5623instvitaconstruction.gif','Aurora9557words-construction.gif','CaCapeCanaveralGalaxy7191underconstruction4.gif','CaCapeCanaveralHall2878imagesunder_construction.gif','CoColosseumPressbox8851Construction-Bar-Line-1.gif','EnEnchantedForestMountain6559Construction_3.gif','EnchantedForestGlade3028construct_line_1.gif','FaFashionAvenueCatwalk4103imagesunder-construct.gif','HoHollywoodHills8704mconstruct2.gif','Orion6012pixunderconstruction.gif','RaRainForestAndes5470etconstruct.gif','SoSoHoBistro1459construction.gif','hehereim76constructiont-construction.gif','totomwp4underconstruction.gif','4996imgunderconstruction.gif','Hollow7752Construction.gif','ArArea51Station9771rulersconstructionconstruction_short.gif','HeHeartlandCottage5668imagesWorkConstructAnim.gif','TokyoBridge6605underconstruction.gif','dedeevatvunderconstruction.gif','tetechnokrabiimagesunderconstruction.gif','yoyosemitegorge3116Constructionbarmove33.gif','SunsetStripClub9103under_construction.gif','Area51Lair1730construction0.gif','SiliconValleyPark6123construct.gif','CoCollegeParkCampus6938construction.gif','HeHeartlandGarden5828constructionCaution4.gif','HeHeartlandGarden5828constructionCaution5.gif','HeHeartlandGarden5828constructionCaution6.gif','MoMotorCity5495imagesconstruction_21.gif','MoMotorCity5495imagesconstruction_22.gif','MoMotorCity5495imagesconstruction_23.gif','MoMotorCity5495imagesconstruction_24.gif','ReResearchTriangleLab1286underconstruction.gif','hkhkdestinyimagesconstruction_small.gif','Chamber9602construct.gif','Labyrinth4767picshomepageconstruction.gif','SoSoHoAtrium3915construction12.gif','jajasch2000construction.gif','mamayching_m06picturesconstruct.gif','1739construct.gif','3762construction.gif','ArArea51Shadowlands5031Under-Construction.gif','ArArea51Station9771rulersconstructionconstruction_2.gif','Dimension4933picsA-Hconstruction.gif','HeHeartland3460buttonsConstructani.gif','HeHeartlandPrairie6170construct1.gif','ReResearchTriangleThinktank3720uconstruct.gif','mamagnolia_acresunderconstruction.gif','sisiliconvalley2175imagesend_construction.gif','sisiliconvalley2175imagesunder_construction.gif','susunsetstripvine8672constructrib.gif','AtAthensAcropolis8837CONSTRUCT.GIF','CoColosseumBleachers1625construction.gif','HeHeartlandLane6362personalconstructionConst_a.gif','MoMotorCityDowns7590underconstruction.gif','ArArea51Shire5019construction21.gif','ArArea51Station9771rulersconstructionnetnow3.gif','AtAthensStyx2482construct.gif','CoColosseumHoop5020underconstruction_blk.gif','CoColosseumMound8220construction.gif','HeHeartlandValley9595construction1.gif','HeHeartlandVillage9748imageconstruct.GIF','HoHollywoodPicture3800construction.gif','Labyrinth6690imagesconstruction1.gif','Lair3175constructwhite.gif','MoMotorCityTrack9299hi-ficonstruction.gif','SouthBeachDunes3911under-construction.gif','SunsetStripAmphitheatre4705constructsign.gif','arartist_etcani-graphicsMiscani_Construction-Bar-Rotates_smed.gif','azazappa.geoimageslemming_construction.gif','nanatya1_98imagesunderconstruct.gif','paparisjardin8801graphicsbuttonsconstruct.gif','survivorjourneyconstruction_bar_rotate_md_wht.gif','ArArea51Station9771rulersconstructiongc_icon.gif','ArArea51Station9771rulersconstructiongeocities_static.gif','ArArea51Station9771rulersconstructionie_logo.gif','HeHeartlandShores5084Edwardsunder_construction.gif','AtAthens6321underconstruction_lemmings.gif','CaCapeCanaveral3071graphicsconstruct.gif','CaCapeCanaveral3171iconesconstruction2a.gif','Cavern7996UnderConstruct.GIF','FaFashionAvenue2583construction2.gif','HoHollywoodHeights4199Construction-Lemmings.gif','MoMotorCity4109construct.gif','NaNapaValleyVineyard9035construction.gif','RaRainForestCanopy6400iconconstruct.gif','alall_for_one_cdebtribute2001picturesconstruction.gif','ststeven_a_davisimgconstruction0a.gif','ststeven_a_davisimgconstruction1b.gif','HeHeartlandPark2686underconstructionbar.gif','AtAthensIthaca5178constructbanner.gif','AtAthensPantheon4469construction.gif','AtAthensPantheon4789constructionline.gif','AtAthensParthenon3947under_construction10.gif','HeHeartlandValley5490barsconstructionbar.gif','HeHeartlandshores3304filesconstructiontruck.gif','HoHotSpringsVilla4206constructbar.gif','HollywoodLand2970construction.gif','Labyrinth1211imagesconstruct.gif','Chamber1039under_construction.gif','CoCollegeParkClassroom5030construction.gif','CoColosseumBleachers4426construct.gif','HoHollywood1768always_under_construction.gif','MoMotorCityLane9554underconstruction.gif','microheroesunderconstruction.gif','AtAthensAcademy9957constructuion_title.gif','AtAthensParthenon4567construction3.gif','AtAthensTroy1330underconstructodoecran.gif','CoCollegeParkTheater2493under_construction.gif','HoHollywoodAcademy4771enconstruction.gif','HotSpringsVilla9446construction.gif','Nova2449construction.gif','YosemiteForest1691graphicsconstruction.gif','rarassam1999Imagesconstruction.gif','ArArea51Station9771rulersconstructionconstruction_shine.gif','ArArea51Vault9419construction.gif','CaCapeCanaveralHangar4842aconstruction.gif','CaCapitolHill1114Under_Construction.gif','CoCollegePark4929construct.gif','CoCollegeParkGym9433underconstruction.gif','CoColosseumArena5539construction.gif','Corridor4748construction_spin.gif','HeHeartland8495construct.gif','HeHeartlandRanch9218construction.gif','HoHollywoodBungalow4907imgsourcesunderconstruction.gif','HoHollywoodSet7253underconstruction.gif','Labyrinth8889CONSTRUCT.GIF','SiliconValleyHeights5444construct04.gif','wewellesleyveranda8714underconstruction.gif','ArArea51Quadrant7119construction.gif','ArArea51Vault1228underconstruction.gif','AtAthensAtrium4970construction.gif','CaCapeCanaveralCampus2712pixconstruct1.gif','CaCapeCanaveralGalaxy8999construction5.gif','CaCapeCanaveralLab6728researchprojconstruct1.gif','CaCapitolHillLobby2317Construction.gif','CapitolHill3681UnderConstruction.gif','Capsule9251construct.gif','Cavern6156construction.gif','CoCollegeParkCenter8527imagesconstruct.gif','CoCollegeParkLab4038construction.gif','CoColosseum5106construct.gif','CoColosseumField1596imageslittle_construction.gif','CoColosseumField3807construction2.gif','CoColosseumRink7021euphoriaconstruction.gif','Crater5843construction.gif','Dungeon4206underconstruction_004.gif','HeHeartlandPrairie9911under_construction.gif','HeHeartlandVillage2500imagesconstruction.GIF','HeHeartlandWoods1825imagesuconstruction2.gif','HoHollywoodBungalow1582construction.gif','HoHollywoodMakeup6271constructionsign.gif','HoHotSpringsSpa3188underconstruction.gif','HoHotSpringsSpa6918construction.gif','MoMotorCity3337resultspanelb-constructors.gif','MoMotorCity8021construct.gif','MoMotorCityGarage1709construction02.gif','MoMotorCityLane4032GIFSconstruction.gif','MoMotorCityPit7071construction.gif','NapaValley5017construct.gif','Nova8160constructor.gif','RaRainForest1154construction.gif','RaRainForestAndes9522construction.gif','RainForest6243construct.gif','ReResearchTriangleCampus5777construct_2.gif','RoRodeoDriveBoutique2425CONSTRUCT1.GIF','RodeoDrive2444construction.gif','SiSiliconValleyVista2013constructor-index.gif','SiSiliconValleyVista2013constructors.gif','alalumnetplaatjesconstruction.gif','babalu.iyergif_filesconstruction.gif','babatdevimagesconstruction.gif','gogogoochconstruction1.gif','sosouthbeachdocks4821Underconstruct.gif','totokyoteahouse8166Cool_Animationconstructionmanmovie.gif','ArArea51Portal7671construction-an.gif','AtAthens7735construct.gif','AtAthensAegean7719Imagesconstruct.GIF','AthensTroy1486construct.gif','AuAugusta1060construction.gif','CaCapeCanaveralOrbit2498underconstruction1.gif','CoCollegeParkUnion8608underconstruction.gif','CoColosseumLodge9891obrazkyconstruct2.gif','CoColosseumTrack9151imagesunderconstructionconstnew.gif','HeHeartlandPrairie7210CONSTRUCTGIF.GIF','HoHollywoodBoulevard7726underconstructionbildersida2uc7.gif','HoHollywoodBungalow6524underconstruction.gif','MoMotorCityDowns9145imagesConstructionBanner.gif','RodeoDrive4620construction.gif','WellesleyGarden3623construction.gif','mumusical-stampsgifsconstruction.gif','peachy123456iconsconstruct1.gif','picketfence5264construct.gif','7754construction.gif','ArArea519368construction.gif','ArArea519448musicconstruction.gif','ArArea51Quasar4180underconstructionsmall.gif','ArArea51Shadowlands9654imageconstruction.gif','ArArea51Station1894construction2.gif','AtAthens2281construction.gif','AtAthensAcropolis7163construction.gif','AtAthensAgora6209construction.gif','AtAthensIthaca7173photoesconstruction.gif','AtAthensPantheon7606construction.gif','AtAthensParthenon1608construct.gif','AtAthensRhodes1319bookconstruction.gif','Aurora2854imagesunderconstruction.gif','CaCapeCanaveral2816ani_underconstruction.gif','CaCapeCanaveralGalaxy8999underconstruction16.gif','CaCapeCanaveralGalaxy8999underconstruction42.gif','CaCapeCanaveralLab6369construct.gif','CaCapeCanaveralLab7772construct.gif','CaCapeCanaveralRunway1808construction.gif','CaCapeCanaveralStation2739IconsUnderConstruction.gif','CaCapitolHill5857construction.gif','CaCapitolHillSenate4820grafiekconstruction.gif','CapitolHillLobby3231imagesconstruction.gif','Capsule3915construction.gif','Cavern2628construct.gif','Cavern4979construct.gif','Chamber7160under_construction.gif','CoCollegePark4964construction.gif','CoCollegeParkDen5571constructionmonkey.gif','CoCollegeParkLab4547CONSTRUCTION.GIF','CoCollegeParkLab8589construction.gif','CoCollegeParkLibrary3939index_filesconstruction2.gif','CoCollegeParkQuad5237dbm_construction.gif','CoColosseum6956imagesunder-construction11.gif','CoColosseumField5989Construction.gif','CoColosseumPressbox4045_bordersunderconstruction_smoking.gif','CollegeParkQuad6460imagesgrconstruct_1.gif','Corridor6514PicsIconsconstruction.gif','Dimension2232iconstruct.gif','Dreamworld2399under_constructionuc3gif.gif','Dunes1021imagconstruction.gif','Dungeon5995construction.gif','EnEnchantedForest6515construction.gif','EnEnchantedForestMeadow1316imagessystemconstruction.gif','FaFashionAvenueShow5356japanunderconstruct-1.gif','FaFashionAvenueStage8740underconstruction.gif','HeHeartlandAcres6296construct.gif','HeHeartlandBluffs4964construction.gif','HeHeartlandBluffs8237Photo_2000construction5_anim.gif','HeHeartlandHills3957construction3.gif','HeHeartlandLane1617construction1.gif','HeHeartlandPines1980construct.gif','HeHeartlandPrairie6170construct.gif','HeHeartlandValley3490construct.gif','Heartland8521construction.gif','HeartlandFlats5661CONSTRUCTION.gif','HeartlandPlains9332construction.gif','HoHollywood8356underconstruction.gif','HoHollywoodLand1575graphicsmovingconstructionsign.gif','HoHollywoodMakeup9828UNDERCONSTRUCTION.GIF','HoHollywoodSet3184construction.gif','HoHotSpringsVilla3325ImagesUNDERCONSTRUCTION.GIF','Hollow1965construct.gif','Hollow5784construction.gif','HollywoodBoulevard9437construction.gif','MaMadisonAvenueBoardroom3957imagesconstruction.gif','MoMotorCity6508imagesconstruction.gif','MoMotorCityDowns5602underconstruction2.gif','MoMotorCityDowns6390construction.gif','MoMotorCityFlats1248construct.gif','MoMotorCityPit5040imagesconstruction.gif','NaNapaValleyVineyard1029construct1.gif','NaNashvilleStage9088Construction_2.gif','Orion8291Lightningunderconstruction04.gif','PicketFenceGarden7980underconstruction.gif','RaRainForestCanopy2618UnderConstruction.gif','ReResearchTriangle7590construction.gif','ReResearchTriangle7711imagesconstruction-a.gif','ReResearchTriangle7711imagesconstruction.gif','ReResearchTriangleFacility8180imagesani-construction.gif','RodeoDrive4578construct2.gif','TokyoField3715Construction.gif','TokyoTowers2020Construct.gif','YosemiteTrails4801construction.gif','anantiquity_00Under_Construction.gif','hrhrcs25graphicsneon_construction.gif','leleahcimjconstruction.gif','ltlthr_chapsIndexIndexwelcomet_filesunderconstruction.gif','mimikerdnanewericonsconstructionguy.gif','moondarlinimagesconstruction.gif','paladin956construction.gif','pipipelinehalfpipe1038CONSTRUCTION.GIF','rbrbeas41imageunder-construction.gif','susunsetstripgarage8783construction.gif','tetelevisioncitystudio9933construction.gif','totokyo3256construction1.gif','AtAthensOracle8923constructionwhite.gif','CoColosseumLoge3491construct.gif','EnEnchantedForest7685construction.gif','ArArea51Station9771rulersconstructionconstruction_3.gif','CaCapeCanaveralGalaxy8999underconstruction22.gif','Dungeon2571construct.gif','HeHeartlandLake7930Gifsconstruction.gif','HeHeartlandValley1469underconstruction2.gif','MoMotorCity5495imagesconstruction_09.gif','MoMotorCity5495imagesconstruction_10.gif','MoMotorCity5495imagesconstruction_11.gif','MoMotorCity5495imagesconstruction_12.gif','TokyoTowers5183construction.gif','CaCapeCanaveralLab4711construct.gif','CapitolHillLobby3231imagesconstruction3.gif','mhmhsgsaUNDERCONSTRUCT.gif','mimidohttcimagesunder-construction-header.ani.10.gif','AthensAcropolis3192construct21.gif','CoCollegeParkDen9002Construction.gif','CoColosseumMidfield4197constructie2.gif','Dungeon5141pixwebconstruction.gif','HoHollywoodBoulevard7726underconstructionbildersida1uc15.gif','emgraphConstruction-EM.gif','HeHeartlandRidge4086constructionCLR.gif','HoHollywoodStudio3984construct2_e0.gif','ViennaStrasse9671construction.gif','brbraindick2000construction_1_.gif','navaid99construct24.gif','nenelsoncustodioimagesconstruction.gif','ththetropicsparadise5705constructionwht.gif','Area51Lair2008a_r_cool_no_words_construction_sign_ani.gif','CaCapeCanaveral9843construction.gif','CoCollegeParkLab9998construct1.gif','CoColosseumArena9315flashConstruction.gif','CoColosseumRing1965imagesconstructionsign.gif','FaFashionAvenueShow5164underconstruction.gif','PiPipelineDropzone39523construction.gif','TimesSquare4067imagesconstruction.gif','llllookinDrawingsunderconstruction.gif','rvrvbbalzanImagesunder_construction.gif','wewesthollywoodheights8657construction.gif','Area51Shadowlands9484othersiconunderconstruction.gif','CaCapeCanaveral1224imgconstruct.gif','Chamber9602construction2.gif','CoCollegeParkGym4011Construction.gif','CoColosseumArena6627construction_filesimage002.gif','HeHeartlandLane5331underconstructionf-fun.gif','HeHeartlandWoods1825imagesconstruction.gif','HoHollywoodMansion7268Hpconstruction.gif','NaNashvilleStage7947constructiona.gif','ReResearchTriangleThinktank8356under_construction.gif','mamaqsood_anwarconstruct.gif','totokyodojo2117construct1.gif','yoyosemite3827construction.gif','CaCapitolHillLobby9252vladimir_under_construction.gif','HeHeartlandPark9227gifconstructionwomen_at_work.gif','SiSiliconValleyHaven8517Gif-Construction-Set.gif','jvjvidekiorigimagesuconstruct.gif','AtAthens7600construction.gif','AtAthensAcademy9664imagesaniconstruct.gif','AtAthensAegean7384Witchesconstruction.gif','AtAthensAtrium4933underconstruction1.gif','AtAthensThebes2838construction.gif','AtAthensTroy2292construction.gif','AthensDelphi5557construct2.gif','BaBajaMesa3235construct.gif','BaBajaTrails1608downloadconstruction13.gif','CaCapeCanaveralGalaxy8841imagesconstruction2.gif','CaCapeCanaveralHall2465graphicsconstruction.gif','CoCollegeParkCampus2836construction.gif','CoCollegeParkQuad2406Construction2.gif','CoCollegeParkUnion5391undrconstruction.gif','EnchantedForestCreek5208underconstruction.gif','EnchantedForestPalace4090imagesconstruction2.gif','HeHeartlandGarden5828constructionCAUTI2b.GIF','HeHeartlandGarden5828constructionCaution2.gif','HeHeartlandGarden5828constructionCaution3.gif','HeHeartlandRanch4242Imagesconstruction_blinkers.gif','HoHollywoodAcademy2353underconstruction.gif','HoHollywoodAcademy7277animationconstruct.gif','HoHollywoodBoulevard7726underconstructionbildersida1uc12.gif','HoHollywoodBungalow2742construction14.gif','HoHollywoodTrailer8742AniGifsConstruction-2.GIF','HoHotSpringsFalls4321linksconstruction.gif','HoHotSpringsSpa2089imagesconstruct03.gif','MoMotorCityDowns3155construction3.gif','NaNashville7034construct7.gif','RaRainForestWetlands6001construction.gif','dadawn_on_the_runmisc-imagesani-construct1.gif','eieighteen_female_howbout_uunderconstruction.gif','elainemarieslittlelanternGODSWORKIN-PROGRESS-Construction.gif','ipn_filemanagerimageneswebanimUnderConstruction_001.gif','jujulieduttaconstruction2.gif','peachy123456iconsconstruct2.gif','sosouthbeachcabana4302underconstruction.gif','susuthrncop66construction.gif','Dunes8608indexconstruction6.gif','Dungeon8807construction.gif','HeHeartlandEstates4894iconsconstruction.gif','HoHollywoodInterview9146construction.gif','HoHollywoodMovie3689under20construction2051.gif','HotSpringsSpa2552construction.gif','MoMotorCity2429constructbar.gif','RaRainForestCanopy8717construction.gif','TokyoPagoda6968UnderConstruct.gif','flfl_roadkillconstruction6.gif','mmmmcloggersPicturesextrasconstruction.gif','rarasbrianMain-Picunder_construction.gif','FaFashionAvenueShow5356japanunderconstruct-2.gif','MoMotorCity3385under_construction.gif','AtAthensAcademy2368construction4.gif','AtAthensOlympus1216construction.gif','BaBajaTrails8723construct.gif','Cavern1510construction.gif','EnchantedForestCreek5208construction.gif','HeHeartlandLake9817Construct3AVI.gif','HeHeartlandOaks4050underconstruction2.gif','HeHeartlandWoods3501Underconstruct.gif','HoHollywoodBungalow4447madonnaconstruction.gif','MoMotorCityPit9161construct16.gif','PiPipelineShore6422construction.gif','deafatlanticconstruct16.gif','wewesthollywoodstonewall5648construction.gif','AtAthensTroy2292construction1.gif','CaCapitolHillParliament9947underconstruction.gif','CoCollegeParkHall3814underconstruction.gif','EnEnchantedForestGlade6691artconstruction.gif','HeHeartlandPlains8455u-construct.gif','ArArea51Realm1492construct.gif','ColosseumStadium8141cuteconstruct.gif','HeHeartlandForest8073IMAGESrrconstruction2.gif','RoRodeoDriveMall2023construct.gif','SoSoHoCoffeehouse6074construct.gif','SunsetStripArena4994ifbgraphicsconstruction.gif','CoColosseumHoop2296construction_ani.gif','Dunes8119construction.gif','HoHotSpringsChalet3349constructionbarrier.gif','luvsisqounderconstruction_rotating_triangle.gif','mcmcantoriapicturesconstruction2.gif','HeHeartlandVillage1215imagesconstruction.gif','mamarktomerbarrelconstruct.gif','AtAthensDelphi1298construct.GIF','AtAthensForum3562construction.gif','CapitolHillSenate7861construct.gif','HeHeartlandMeadows7048construction.gif','msms-woman.geoconstruction.gif','sleepyteenzzzconstruct3.gif','CoCollegeParkQuad2644CONSTRUCTION20.GIF','HeHeartlandEstates8832underconstruction.gif','HeHeartlandRanch6270additionconstructionbanner.gif','RoRodeoDriveBoutique6075face_construction01.gif','TokyoFuji7118constructsonic.gif','anangelzrinaunderconstruction.gif','n7urunderconstruction.gif','rarajchasadudeepictureconstruction_animation.gif','reuther_2000reconstruction.gif','ruruggerwomangraphicsconstruction.gif','weskie41underconstruction.gif','ArArea51Stargate5317DJHotMoneyconstruction16.gif','HoHollywoodHeights4847picturesunderconstruction.gif','AtAthensAcademy4299construction.gif','HeHeartlandHollow7054imagesconstruction.gif','HoHollywoodHills5836under_construction.gif','MoMotorCityTrack2465construct.gif','coconrado.geoconstruct6.gif','thetropics2615construction2.gif','CoColosseumField5490slunderconstruction.gif','HeHeartlandOaks7681imagesunderconstruction.gif','SoSoHo1603construction.gif','mimikelynn2000imagesunder_construction.gif','mnmnlerner2000imageshebrew-construction.gif','susunsetstripbackstage3354underconstructionani.gif','AtAthensCrete7775viewart_al-mamun_dhali_images_reconstructed_oil_1998.gif','AtAthensCyprus1046construction.gif','CoColosseumCourt2383Omerconstruction036.gif','CoColosseumHoop8355picturesconstruction.gif','HoHollywoodBoulevard7726underconstructionbildersida1uc1.gif','HoHollywoodBoulevard7726underconstructionbildersida2uc17.gif','MoMotorCityFlats9954construct_filesimage002.gif','MotorCityTrack1523aconstruction.gif','mimini_kimiconstruction.gif','AtAthensCrete7872translationimagesunderconstruction_0045.gif','AtAthensOracle6031Construction-Man-1.gif','HeHeartlandBluffs9304underconstruction.gif','HeHeartlandForest5722imagesconstruction.gif','HeHeartlandGrove3904imagesconstruction.gif','HoHollywoodPark8042q-construction.gif','jujughead117archiveconstruction.gif','ArArea51Station9771rulersconstructionconstruction_wide.gif','AtAthensOlympus7403constructionman.gif','HeartlandFields8010under-construction.gif','SoSoHoAtrium5259underconstruction.gif','haharrisonandconstruct.gif','ththe300exhavenunderconstruction.gif','CaCapeCanaveralStation2739IconsConstruction-SpinSign.gif','CoCollegeParkBookstore2556underconstruction.gif','HoHollywoodBungalow1381construct.gif','Lair7946Imagesconstruct16.gif','RainForest2433construction.gif','ArArea51Quasar6909gif_imagesCONSTRUCTION.gif','BaBajaCliffs7400construction.gif','CaCapitolHillLobby9717construction.gif','HeHeartlandForest8728imagesunderconstruction2.gif','HeHeartlandLane5025imagesconstruction.gif','HeHeartlandRanch7219underconstruction.gif','Labyrinth6941underconstruction1.gif','RaRainForest3059constructreno2.gif','RaRainForestAndes2577movingunderconstruction.gif','RaRainForestWetlands4012loader_construction_raisingshovel_md_wht.gif','ReResearchTriangleCampus3831underconstruction.gif','AtAthensOlympus5324construction.gif','AtAthensTroy1330construction.gif','Atlantis6974construction.gif','BaBaja6951construction3.GIF','CaCapeCanaveralOrbit2413Construction2.gif','CaCapeCanaveralStation2739IconsConstructionSign.gif','CoColosseumLodge2492under_construction.gif','CoColosseumTrack9151imagesunderconstructionunder_construction2a.gif','ColosseumTrack8032under_construction2a.gif','FashionAvenue5569artunderconstruction.gif','HeHeartlandOrchard4866ConstructionWorker.gif','HeHeartlandValley8501construction-zone.gif','HoHollywoodAgency1055construction.gif','RainForestCanopy6678constructani.gif','SoSoHoDen2240construction.gif','SunsetStripPalladium4902construction2.gif','fafabjeepconstruct.gif','h2h2hwebunderconstruction.gif','jojoshiercimagesconstruction01.gif','kikidoctrgifconstruct.gif','ninicole_shearconstruction.gif','raratri28construction.gif','totoyota4bygifsconstructflash.gif','ArArea51Station9771rulersconstructionconstruction_equip.gif','BaBajaCanyon9450construct4.gif','CaCapeCanaveralCampus3278construction.gif','Dungeon2571construct1.gif','FaFashionAvenueShow5356construct.gif','HeHeartlandForest8728imagesunderconstruction3.gif','ayaylc82underconstruction.gif','CripCriminalconstruction.gif','EnEnchantedForestDell1330construct.gif','Nova2773construction.gif','babatdevimagesconstructioncrane.gif','ununi505construction2.gif','Atlantis8044constructionhammer.gif','AuAugusta5215under_construction.gif','Cavern1457Animationconstruction.gif','HeHeartlandGarden5828constructionconst2.gif','HeHeartlandGarden5828constructionconstr3.gif','HoHollywoodBoulevard7726underconstructionbildersida2uc8.gif','RoRodeoDriveBoutique8303oldsiteunderconstructionbar.gif','glglenhavenkeepconstruction1.gif','krkrusty390construction.gif','lalairofconstruction.gif','msmsmit00construct.gif','papaganbear30construct.gif','sikou_hunderconstruct.gif','AtAthensAcademy6735construction1.gif','AthensTroy9465voiceconstruct.gif','HeHeartlandForest8728imagesunderconstruction.gif','HoHollywoodAcademy8194construct.gif','HoHollywoodAgency7728construct4.gif','CoColosseumLoge4979construct.gif','HoHollywoodBoulevard7726underconstructionbildersida2uc10.gif','SoSoHoCoffeehouse1788construct.gif','4187construction.gif','pepeterlikesimagesconstruct.gif','CoColosseum1486imagesconstruct.gif','Dungeon1253imagesconstruction016.gif','EnEnchantedForestDell6623graphiciconstruction.gif','HeHeartlandForest3965AgronautesCVbanniere_en_construction.gif','HeHeartlandWoods6929flashy_under_construction_sign_md_wht.gif','HoHollywoodBoulevard7726underconstructionbildersida2uc6.gif','MoMotorCityFlats9954construct_filesimage001.gif','arartist_etcani-graphicsneutral-objectsani_Constructn-Barricade-Light_sml.gif','EnEnchantedForestPond3638construction.gif','HeHeartlandFarm6232construction.gif','Lair7946Imagesconstruct2.gif','MoMotorCity5495imagesconstruction_05.gif','MoMotorCity5495imagesconstruction_06.gif','MoMotorCity5495imagesconstruction_07.gif','MoMotorCity5495imagesconstruction_08.gif','Omega7497construction.gif','pepentagon2356underconstruction.gif','ArArea51Starship4127iconsconstruction1.GIF','AtAthensPantheon6542construct.gif','CaCapeCanaveralHall8606gifsunderconstruction.gif','CoColosseum4481construct.gif','NaNashvilleStage9088CONSTRUCT09.GIF','adadpm99imagesCMCDconstruction.gif','CoColosseumRing4333artunderconstruction.GIF','HeHeartlandLane5227Grammiecardinalsconstruction.gif','RoRodeoDriveMall9932underconstruction.gif','HeHeartlandPark5787imagesConstruction1.gif','HeHeartlandValley7159construction.gif','HoHollywoodBoulevard4772gifconstruction.gif','NaNapaValley1914construct08.gif','ararea51stargate6736construct.gif','billy_gene_frenchconstruction.gif','HeartlandPointe6070imagesconstruction.gif','HeHeartlandPointe3341construction24.gif','ReResearchTriangle9295Under_Construction.gif','mamay_may.geopicconstruction_cone.gif','TokyoDojo4561select_underconstruct.gif','ArArea51Shadowlands2297ST-underconstruction_anm.gif','BaBajaCanyon9045construct.gif','BajaOutback3287Rconstruction.gif','CoCollegeParkSquare2025imagesconstruction_d.gif','CoColosseum5999constructduke.gif','HeHeartlandGarden5828constructioncaution1.gif','HollywoodStudio2040under_construction.gif','NaNashvilleStage7947constructionb.gif','pressonwardconstructiontoon.gif','rered743gifsclunderconstruction1.gif','sosouthbeachcape3983construct5.gif','HeHeartlandRanch1506construction.gif','purpletiaracatcolorconstruction.gif','HoHollywoodBoulevard7726underconstructionbildersida1uc5.gif','purpletiaracatcatcatconstruction.gif','EnEnchantedForest6814imagesferretconstruction.gif','HeHeartlandRidge2856imagesferret_construction.gif','CoColosseumArena1604construction.gif','ColosseumField2750underconstruction.gif','HeHeartlandLake7733creation-underconstruction.gif','HeHeartlandLane6362personalconstructionConst010.gif','HeartlandRanch7324godsaidconstruction.gif','SunsetStripPalms1837Under_construction.gif','kdkdmeucarroconstruction_worker.gif','midohttcimagesunder-construction.ani.10.gif','HeHeartlandGarden5828constructionunder.gif','totokyoflats9831imageswall5construct.gif','wawarrwick_hoadimagesfamUnderConstruction.gif','MoMotorCityDowns5233construct3.gif','challengedalsconstruction4.gif','ArArea51Rampart6837picsconstruction.gif','HeHeartlandAcres5745construct.gif','crcrobergebimherbalifeimganngifconstruct.gif','CaCapeCanaveral4482construction.gif','MoMotorCitySpeedway6185construction.gif','Nova9561pirateconstruct.gif','AtAthensTroy2292construct1.gif','AtAthensTroy2292construct2.gif','AtAthensTroy2292constructlg.gif','Atlantis8044constructionheavy.gif','BaBajaDunes6616construction.gif','CaCapeCanaveralHangar1969legoimagestg_construction.gif','CaCapeCanaveralHangar1969legopicstg_construction.gif','CaCapeCanaveralHangar9299underconstruction.gif','CaCapeCanaveralRunway1118imagesUConstruction.gif','CaCapitolHillCongress3062CONSTRUCTION1.GIF','CaCapitolHillSenate7545ratingsconstruct.gif','CoCollegeParkCampus9413underconstruction_big.gif','CoCollegeParkDorm4438underconstruction.gif','CoCollegeParkSquare2025imagesconstruction.gif','CoColosseumPark7265Images_and_Midisconstruct.gif','CollegeParkGym9565songsconstruction1.gif','Colosseum5948PicturesClubsMoldovaconstructorul_chisinau.gif','Dungeon1253imagesconstruction034.gif','HeHeartlandGarden5828constructionuc3.gif','HoHollywoodChateau4647imagesunderconstruction.gif','MoMotorCitySpeedway1656construct.gif','NaNashvilleStage9198construction2.gif','Orion6882imagesUNDERCONSTRUCT.GIF','ParisCafe9362pikaconstruct.gif','PentagonQuarters8346underconstruction3.gif','RaRainForestWetlands7268construction.gif','SoSoHoCafe2018construction.gif','SoSoHoGallery7274construct.gif','SouthBeachCove7978construct.gif','YosemiteRapids2787constconstruction.gif','bababy_sportgpikaconstruction.gif','basement_182cartman_underconstruction.gif','hotsprings3485underconstruction.gif','imimthem.geoneonconstruction.gif','jsjskleeleebgbgconstruction.gif','kikingsnakesmoonMealInABowlneonconstruction.gif','mimikerdnanewericonsunderconstructionNOT.gif','ArArea51Quasar9105underconstruction1.gif','Cavern4536construction.gif','HeHeartlandPlains1574m2construct.gif','HeHeartlandVillage3603construction.gif','HeartlandCabin2481webgraphicsconstruction1.gif','HoHollywoodCinema7163under_construct.gif','Nova1466underconstruction.gif','nashville2636construct.gif','smsmoking_bitchvilleimagesunder_construction.gif','sosouthbeach2903stillunderconstruction.gif','HeHeartlandRidge1217mac_construct.gif','MaMadisonAvenue6282imagesconstruction.gif','MoMotorCityDowns5394construction17.gif','MoMotorCitySpeedway6310construct.gif','CoCollegeParkCampus2773CONSTRUCT.GIF','CoColosseumGym1060graphicsunderconstruct.gif','HoHollywoodHills6781construct.gif','MoMotorCitySpeedway7420Constructie.gif','MoMotorCityStreet2638under_construction.gif','HoHollywoodBoulevard7726underconstructionbildersida2uc11.gif','trtranstinaiconsconstruction.gif','Atlantis1366construction.gif','CaCapeCanaveralHall9551Linksconstruction.gif','CoColosseumTrack3542underconstruction.gif','Corridor9875pixani-construction.gif','HeartlandGarden8650construct.gif','CoColosseumSlope5759_themesconstruction-zonesurbtextb.gif','CaCapeCanaveralHangar2256construction.gif','HeHeartlandGarden5828constructionconstruc.gif','ArArea519268construction.gif','HeHeartlandLane7893imagesconstruction5.gif','HoHollywoodCinema6003graphicsunderconstruction.gif','PaParisBistro7538Pikachu_construction.gif','totokyoisland4174underconstruction.gif','ununpoetegraphicsconstruction.gif','AtAthensAtrium58407construction.gif','Chamber6168construct.gif','CoColosseumBase4466construct.gif','Dimension2804imagesconstruct.gif','MoMotorCityTrack6813ETERNALCONSTRUCT.GIF','Wellesley5405construction.gif','AtAthensPantheon9106crazoconstruct.gif','AuAugusta1285construction.gif','AuAugustaFairway2301construct.gif','CaCapeCanaveral8167brunounderconstruction.gif','EnEnchantedForestPalace5004under_construction_md_wht.gif','dodiemiroconstruction3.gif','seselelightpicConstruction.gif','CoColosseumLoge7378jiujitsuunderconstruction.gif','HeHeartlandShores3232mdaimagesconstruction.gif','CoCollegeParkGym9395construct23.gif','HeHeartlandHills8994construct23.gif','ArArea51Station9771rulersconstructionconstruction_tools.gif','bababyangel23_2000imagesUnderConstruction.gif','ththesims00wllimagesconstructwl.gif','ArArea51Quasar4180underconstruction.gif','HeHeartlandValley5773underconstruction.gif','Heartland7870construction_major.gif','HeHeartlandOaks9773GraphicsUnderconstruction.gif','akak99simagesunderconstruction.gif','ininterlinksyouthunder_constructionA.gif','ArArea51Station9771rulersconstructionconstruction_rope.gif','BaBajaCanyon9450construct2.gif','CoCollegeParkUnion4988construction.gif','HeHeartlandMeadows7432mikeconstruct_site.gif','pjpjdabomb_4u2cGIFSconstruction.gif','SiSiliconValleyPeaks7669construct.gif','ArArea511833PageUnderConstruction.gif','AtAthensAgora4850reelreelconstruct.gif','CoColosseumField1596imagesconstruction14.gif','HeHeartlandGarden5828constructionfly.gif','Omega5787picsholoconstruct.gif','SiSiliconValleyVista2207construction13.gif','CoColosseumDugout6041imagesconstruction.gif','thefirepoliceconstruction10.gif','HeHeartlandPark9227gifconstructionuc4.gif','thegreenknight195underconstruction.gif','AtAthensAgora5983imagesad_under_construction.gif','HeHeartlandRanch4242Imagesunderconstructionbelly.gif','LiLittleFFLionConstructionanimate.gif','HoHotSprings4674hazunderconstruct.gif','HeHeartlandPark2601under_construction.gif','HeartlandRanch5754y2kconstruction.gif','HoHollywoodHills6698construction.gif','Nebula5275_underconstructionsmall1.gif','RaRainForestCanopy4950construction2.gif','heheartlandwoods6401construction.gif','rarainbowwomen.geopicsconstruct.gif','sosouthbeachcape3983construct1.gif','CaCapitolHillSenate3964construction.gif','Crater4212construction.gif','PaParisBoutique2652construction.gif','ArArea51Cavern8080crossstitchconstruction.gif','HeHeartlandRidge4839construction.gif','fanthom_2000imagesunder_construction.gif','MoMotorCityBoulevard5828underConstruction.gif','AtAthensOlympus6328under_construction.GIF','AthensOlympus6724construction27.gif','CaCapeCanaveralGalaxy8999construction8.gif','CoColosseum6956imagesconstruction27.gif','CoColosseumMidfield7919construction.gif','EnEnchantedForestGlade5063tigger_construction2.gif','HeHeartlandAcres7021Graphicsconstruction.gif','HoHollywoodBoulevard7726underconstructionbildersida1uc3.gif','Lair7805construct.gif','amrumdalsconstruct2.gif','mikerdnanewlyiconsconstruction.gif','CaCapeCanaveralRunway8268imagesconstructsign.gif','TimesSquare1364construction.gif','CaCapeCanaveralLab8180LFA1_fileunder-construction.gif','ArArea51Rampart1262construction.gif','Dreamworld2050sub_construction.gif','anandi_moon2construction_sailorj.gif','totokyoflats2863rccarconstruction.GIF','CaCapeCanaveralGalaxy8999construction1.gif','dodiemiroconstruction5.gif','swswmusicstudio_graf_markunderconstruction.gif','HeartlandEstates7913anibusconstruction.gif','HeHeartlandLane6362personalconstructionconst.gif','PiPipelineHalfpipe4194construction2.gif','HeHeartlandPointe1144construct.gif','HeHeartlandPointe1144construct1.gif','SouthBeachShores1991construct_tigger.gif','CoColosseumField5339CONSTRUCTION.GIF','CoColosseumPark7691picsconstruction_icon.gif','HeHeartlandPond8929underconstruction.gif','ReResearchTriangleLab4670common_construct.gif','kakarin0126toolsConstructionrw.gif','AtAthensAtrium6918imagesclipartconstruction.gif','dodiemiroconstruction1.gif','ltltl_femme_nikitaD-ButnsDButn_CD-BiBlk-UnderConstruction.gif','pipipelinehalfpipe1827imagesconstruction.gif','AtAthensAgora5789construct1.gif','auaudijasonconstruct.gif','auaugusta4148construction1.gif','babajacliffs4200under_construction.gif','challengedalsconstruction6.gif','HoHotSpringsChalet6357Imagesunderconstruction2.gif','ArArea51Portal2364saab-picszconstruction.gif','AuAugustaGreen6316imagesconstruction.gif','HeHeartlandFarm5974construction_paint.gif','HoHollywoodChateau1154sorryconstruction.gif','HoHollywoodLand7027construct.gif','ReResearchTriangleStation9888underconstructio.gif','RaRainForestVines5740constructie.gif','5970siteconstruction.gif','ReResearchTriangleNode8151imagesconstruction1.gif','CoColosseumTrack9151imagesunderconstructionprogress.gif','HoHotSpringsBath9452ssunder_construction_fire.gif','TokyoTowers8973imagesunderconstruction.gif','HoHollywoodCinema9719Constructionhardhat.gif','Lair7946Imagesconstruct15.gif','TheTropicsLagoon4186Computer_construction.gif','AtAthensSparta1019Webpage_construction.gif','BaBajaTrails9945cuba2002construct.gif','CoCollegeParkCenter3660webpageconstruction.gif','FaFashionAvenueMall3265under_construction.gif','HeHeartlandPines3998graphicsconstruction4.gif','HeHeartlandPointe8782Construction.gif','HeartlandPrairie1139notusingconstructionpiclarge.gif','HoHollywoodPicture4713underconstruction.gif','Meteor5081imagesUnder_construction.gif','PicketFenceGarden6062imagesconstruct14.gif','heheyhey2kconstruct.gif','hollywoodstudio5370construction.gif','sosouthbeachcape3983construct3.gif','vovooo13gifSupercompressed_koala-construct3.GIF','EnEnchantedForestFountain4640underconunderconstruction1.gif','EnEnchantedForestFountain4640underconunderconstruction2.gif','AtAthensAcropolis4413Picturesconstruction_ant.gif','TheTropicsCabana7348UnderConstruction.gif','ColosseumField2750underconstruction2.gif','CoCollegeParkCenter6278imagesconstruction.gif','CoCollegeParkField7033construction.gif','silverstar592001construction.gif','BaBajaMesa9254construction1.gif','AtAthensAcropolis9868imageconstruct.gif','CaCapeCanaveralOrbit1801Construction.gif','HeHeartlandPrairie8897construction_bg2.gif','CoColosseumRink1025under-construction.gif','ReResearchTriangleStation7296imagesunderconstruction.gif','coco366thawShipsConstruction.gif','ArArea51Rampart8927under-construction.gif','asashleyatucsbunder-construction.gif','CaCapeCanaveralCockpit2119latestlfTransfreconstruction.gif','HoHollywoodChateau2006Construction.gif','HeHeartlandRanch4832under_construction1.gif','miamiloverfromroanokeunder_construction_sign.gif','phphatbottmdgirlunder-construction.gif','ththe_gym_junkies_chalkbinunder-construction.gif','fofoxie_tvimagesopaqueconstruction.gif','totokyoclub4112gohanconstruction.gif','CaCapeCanaveralLab3332imagesdiversconstruction4.gif','Corridor3466figconstruction4.gif','SouthBeach3730imagesconstunder_construction.gif','ababruzzofedconstruction4.gif','CoCollegeParkQuad3097Under_construction.gif','Omega1341imageconstruction.gif','AtAthensForum7099imagesunder-construction.gif','pepetergrimes2EnglishConstruction.gif','RaRainForestCanopy2850constructie.gif','ArArea511494underconstruction.gif','HeHeartlandForest8127PIXConstruction.gif','CoColosseumLoge6606Construction.gif','rzackzonepgraphicconstruction.gif','sesenshi-moonkawaii_construction.gif','Chamber4910constructionicon.gif','CoColosseumPressbox6848picsconstruction.gif','AtAthensOracle8165construct.gif','HeHeartlandForest1335construction.gif','AtAthensDelphi2923construction.gif','CaCapeCanaveralCockpit5940construction.gif','AtAthensThebes7778immaginiunder-construction.gif','pentagonbarracks1178imagesunder-construction.gif','ArArea51Shuttle1525underconstruct.gif','CoColosseum8833CONSTRUCTION.GIF','HeHeartlandPrairie8066CONSTRUCTION29.GIF','HeartlandPointe3273construction29.gif','momotorcityspeedway9770construction29.gif','HeHeartlandRidge6925construct_large.gif','bebearrex.geoconstruct.gif','CaCapeCanaveralGalaxy1508piltdown_reconstruction.gif','Nebula2595under-construction2.gif','ArArea51Shadowlands6480construction.gif','khkhanda64itkidsimagesunder_construction.gif','HoHollywoodStudio2295construction.gif','ananubiscliqimagesConstruction.gif','brbrianshouseconstructionsign.gif','ArArea51Rampart4766picturesunder_construction.GIF','thefirepoliceunder_construction2.gif']
def initialize app, options = {}
@app = app
end
def call(env)
status, @headers, @response = @app.call(env)
if html?
modify_html
@headers.delete('Content-Length')
response = Rack::Response.new([doc.to_html], status, @headers)
response.finish
response.to_a
else
[status, @headers, response]
end
@doc = nil
@response_body = nil
end
private
def html?
@headers["Content-Type"] && @headers["Content-Type"].include?("text/html")
end
def doc
@doc ||= Nokogiri::HTML(response_body)
end
def response_body
@response_body ||= @response.respond_to?(:body) ? @response.body : @response
end
def modify_html
add_under_construction_images
add_marquee_tags
add_font_tags
add_blink_tags
add_background_image
add_footer
remove_stylesheets
end
def add_under_construction_images
doc.search("img").each do |node|
node["src"] = random_under_construction_image if change_image?
node["border"] = "1"
end
end
def change_image?
rand(Time.now) % 2 == 0
end
def add_marquee_tags
doc.at_css("h1").children.wrap("<marquee behavior='alternate'></marquee>")
end
def add_font_tags
body.children.wrap("<font face='COMIC SANS MS'></font>")
end
def add_blink_tags
doc.search("b", "strong").wrap("<blink></blink>")
end
def add_background_image
body["background"] = random_background_image
end
def remove_stylesheets
doc.search("style", "link[rel='stylesheet']").remove
end
def add_footer
body << link("http://www.netscape.com") << image("http://sillydog.org/netscape/graph/ns-best.gif")
body << link("http://w2.eff.org/br/") << image("http://www.eff.org/pub/Graphics/Icons/BlueRibbon/rib_blk_brdr_sm.gif")
end
def body
doc.at_css("body")
end
def link(href)
link = node("a")
link["href"] = href
link
end
def image(src)
image = node("image")
image["src"] = src
image["border"] = "1"
image
end
def node(type)
Nokogiri::XML::Node.new(type, doc)
end
def random_under_construction_image
"http://www.textfiles.com/underconstruction/#{UC_IMAGES[rand(UC_IMAGES.size)]}"
end
def random_background_image
"http://media.bigoo.ws/content/background/animated/animated_#{rand(60)}.gif"
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment