; > Dc@sOdkiZdkiZdkTdkiZdkiZdk i Z y@dk i i Z dki iZdkiiZdkiiZWnej o eZnXde ifdYZdeifdYZdefdYZdefd YZd efd YZd efd YZdefdYZ eZ!dZ"dS(N(s*s WebservercBsPtZdZdZdZedZdZdZdZ dZ RS(saAdd the help for "@plugin help Webserver" here This should describe *how* to use this plugin.cCsptii||t o|iidn||_tit ||_ h|_ t |_ |idS(NsTwisted is not installed.(s callbackssPlugins__init__sselfsircsreactorserrorsserversSitesHomessiteschildrensNoneslisteners_startListening(sselfsirc((s./Webserver/plugin.pys__init__3s   cCs(tii||i|idS(N(s callbackssPluginsflushsselfs_stopListenings_startListening(sself((s./Webserver/plugin.pysflush=s cCs7| o|id}nti||i|_dS(sStart the server listening.sportN(sportsselfs registryValuesreactors listenTCPssiteslistener(sselfsport((s./Webserver/plugin.pys_startListeningBscCs|io|iindS(sStop the server listening.N(sselfslisteners stopListening(sself((s./Webserver/plugin.pys_stopListeningHs cCs||i|Hello, I am a Supybot. I am currectly on the following IRC networks:s@
%s (%s)as %s
s3
%s
is(schlistsworldsircssircsappendsnetworksserversnicksstateschannelss iteritemssnameschannelsjoin(sselfsrequestsnameschlistsircschannel((s./Webserver/plugin.pys renderContents  ) )cCsdSdS(Ns Home Page((sselfsrequest((s./Webserver/plugin.pys renderHeaderscCsdSdS(Ns My Supybot((sselfsrequest((s./Webserver/plugin.pys renderTitlescCsXt}x,tiD]!}|i|jo |}PqqW|ot||i Sn|SdS(N( sNoneschildsworldsircssircsnetworkspaths NetworkPagesselfscbPlugin(sselfspathsrequestschildsirc((s./Webserver/plugin.pysgetChilds  (s__name__s __module__sFalsesisLeafs renderContents renderHeaders renderTitlesgetChild(((s./Webserver/plugin.pysHome|s    s NetworkPagecBs;tZeZdZdZdZdZdZRS(NcCsti||||_dS(N(sSBPages__init__sselfscbsirc(sselfsircscb((s./Webserver/plugin.pys__init__scCsBd|}||iiijot||i|iSn|SdS(Ns#%s(spathscnamesselfsircsstateschannelss ChannelPagescbPlugin(sselfspathsrequestscname((s./Webserver/plugin.pysgetChilds   cCsd|iiSdS(NsNetwork Page for %s(sselfsircsnetwork(sselfsrequest((s./Webserver/plugin.pys renderHeaderscCsd|iiSdS(Ns My Supybot/%s(sselfsircsnetwork(sselfsrequest((s./Webserver/plugin.pys renderTitlescCsd}d}g}x;|iiiD]*}|i||ii |d|fq"W||ii |ii |ii t |di |fSdS(Ns
Name: %s
Server: %s
Nickname: %s
Channels: (%s)
%s
s4
%s
is(sTsCsLsselfsircsstateschannelsscsappendsnetworksserversnickslensjoin(sselfsrequestsCscsLsT((s./Webserver/plugin.pys renderContents (( s__name__s __module__sFalsesisLeafs__init__sgetChilds renderHeaders renderTitles renderContent(((s./Webserver/plugin.pys NetworkPages     s ChannelPagecBs;tZeZdZdZdZdZdZRS(NcCs&ti||||_||_dS(N(sSBPages__init__sselfscbsircscnamesname(sselfscnamesircscb((s./Webserver/plugin.pys__init__s cCsB||iijo'|ii||i|i|iSn|SdS(N(spathsselfscbPluginschildrensircsname(sselfspathsrequest((s./Webserver/plugin.pysgetChilds'cCs|iii|i|_dS(N(sselfsircsstateschannelssnameschannel(sself((s./Webserver/plugin.pys refreshStatescCsd}|i||i|iit|iit|ii t|ii t|iit|ii |ii |i fSdS(Ns
Name: %s
server: %s
Ops: (%s)
Voiced: (%s)
Users: (%s)
Topic: %s

Available Sites

%s
( sTsselfs refreshStatesnamesircsserverslenschannelsopssvoicessusersstopics renderSites(sselfsrequestsT((s./Webserver/plugin.pys renderContents cCsXg}x>|iiD]0}|id|ii|id||fqWdi |SdS(Ns%
%s
is( sLsselfscbPluginschildrensksappendsircsnetworksnamesjoin(sselfsksL((s./Webserver/plugin.pys renderSitess  .( s__name__s __module__sFalsesisLeafs__init__sgetChilds refreshStates renderContents renderSites(((s./Webserver/plugin.pys ChannelPages     s PluginPagecBstZdZdZRS(NcCs/ti||||_||_||_dS(N(sSBPages__init__sselfscbsircschannelscnamescbPlugin(sselfsircschannelscb((s./Webserver/plugin.pys__init__s  cCsd|ii|idfSdS(Ns/%s/%si(sselfsircsnetworkscname(sself((s./Webserver/plugin.pys renderURLs(s__name__s __module__s__init__s renderURL(((s./Webserver/plugin.pys PluginPages sSBErrorcBstZdZdZRS(NcCsti||||_dS(N(sSBPages__init__sselfscbscode(sselfscodescb((s./Webserver/plugin.pys__init__ scCsd|iSdS(Ns%s %s(sselfscode(sselfsrequest((s./Webserver/plugin.pys renderContents(s__name__s __module__s__init__s renderContent(((s./Webserver/plugin.pysSBError s s %(title)s
%(title)s

%(heading)s

%(content)s
(#s supybot.utilssutilss supybot.worldsworldssupybot.commandsssupybot.pluginsspluginsssupybot.ircutilssircutilsssupybot.callbackss callbacksstwisted.web.serverswebsserverstwisted.web.resourcesresourcestwisted.python.htmlizerspythonshtmlizerstwisted.internet.reactorsinternetsreactors ImportErrorsNonesPlugins WebserversResourcesSBPagesHomes NetworkPages ChannelPages PluginPagesSBErrorsClasss HTML_PAGE(sSBPages NetworkPagesSBErrorsresourcesreactorshtmlizersutilss ChannelPages PluginPages HTML_PAGEsservers callbackss WebserverspluginssworldsHomesClasssircutils((s./Webserver/plugin.pys?s*      *$$/0