;ò > ÄDc@sldkZdkZdkiZdkTdkiZdkiZdk i Z de i fd„ƒYZ e Z dS(N(s*s GeekquotecBsútZeZdgZdgZd„Zd„ZdZdZ hde i de i e i Bƒ<d e i e e i e i Bƒ#\d*?.*?

(?P.*?)

sbash.orgs

(?P.*?)

sqdb.uscCs | o d}nt}d}|djoªttiƒƒ|i}|i |o|i |i ƒ}qç|djottiƒƒ|idjo#dt i it|iƒƒ}n|i||dtƒ}n|i||ƒ}|i|i|iƒd|iƒdS(Nsrandomssqdb.usiZs browse=%ssjoiner(sidsTrues fetchDatasquotesintstimesselfslastqdbRandomTimes timeRemainings randomDatassitespopsutilssiterschoicesxranges maxqdbPagess _gkFetchDatasircsrepliesssplits_joiner(sselfsircsmsgssitesids timeRemainingsquotes fetchData((s./Geekquote/plugin.pys _gkBackendBs  -#cCsCd}y tiid||fƒ}Wn=tiij o+}|i i d|tii |ƒƒnXt }x—|i|i|ƒD]}|iƒd}|ii|iƒƒ}tii|ƒ}|o|o0||i|jo|i|i|ƒqqƒPqƒW| otd|ƒSn!|o|i|iƒn|SdS(Nss http://%s/?%ss %u server returned the error: %sstexts!Could not find a quote for id %i.(shtmlsutilsswebsgetUrlssitesidsErrorsesselfslogsinfosstrErrorsNonesss _gkREDictsfinditersitems groupdicts_joinersjoins splitliness htmlToTextsrandoms randomDatasappendsformatspop(sselfssitesidsrandomsesitemssshtml((s./Geekquote/plugin.pys _gkFetchDataUs*  cCss|id|idƒ odSn|iƒd}|iƒd}|ii d||ƒ|i ||||ƒdS(s;http://(?:www\.)?(?Pbash\.org|qdb\.us)/\??(?P\d+)s geekSnarferiNsidssitesSnarfing geekquote %i from %s.( sselfs registryValuesmsgsargssmatchs groupdictsidssiteslogsinfos _gkBackendsirc(sselfsircsmsgsmatchssitesid((s./Geekquote/plugin.pys geekSnarfernscCs d}|i||||ƒdS(s‰[] Returns a random geek quote from bash.org; the optional argument specifies which quote to retrieve. sbash.orgN(ssitesselfs _gkBackendsircsmsgsid(sselfsircsmsgsargssidssite((s./Geekquote/plugin.pys geekquotexssids geekquotecCs d}|i||||ƒdS(s‡[] Returns a random geek quote from qdb.us; the optional argument specifies which quote to retrieve. sqdb.usN(ssitesselfs _gkBackendsircsmsgsid(sselfsircsmsgsargssidssite((s./Geekquote/plugin.pysqdb‚ssqdb(s__name__s __module__sTruesthreadeds callBeforesregexpss__init__s callCommands_joiners _qdbReStringsrescompilesMsDOTALLs _gkREDicts _gkBackendsFalses _gkFetchDatas geekSnarfers urlSnarfers geekquoteswraps additionalsqdb(((s./Geekquote/plugin.pys Geekquote(s"   4      (srestimes supybot.utilssutilsssupybot.commandsssupybot.pluginsspluginsssupybot.ircutilssircutilsssupybot.callbackss callbackss PluginRegexps GeekquotesClass(s callbackssutilsstimesres GeekquotespluginssClasssircutils((s./Geekquote/plugin.pys?s      e