Created
June 2, 2011 15:13
-
-
Save EntityReborn/1004616 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from socbot.pluginbase import Base | |
from twisted.application import internet | |
from twisted.web import resource, server | |
class Plugin(Base): | |
class Simple(resource.Resource): | |
isLeaf = True | |
def render_GET(self, request): | |
line = "<html><head><title>Ohai2</title></head><body>Hello, world 2!</body></html>" | |
self.log.info(line) | |
return line | |
def initialize(self, *args, **kwargs): | |
self.running = False | |
self.startServer() | |
def cleanup(self, *args): | |
self.log.info("Cleaning up") | |
del self.simple | |
del self.site | |
del self.server | |
def startServer(self): | |
if self.running: | |
self.log.error("Tried to run again.") | |
return | |
self.simple = self.Simple() | |
self.simple.log = self.log | |
self.site = server.Site(self.simple) | |
self.server = internet.TCPServer(8080, self.site) | |
self.server.startService() | |
self.running = True | |
def stopServer(self): | |
if not self.running: | |
self.log.error("Tried to stop what is already stopped.") | |
return | |
retn = self.server.stopService() | |
self.running = False | |
if retn: | |
self.log.info("adding callback") | |
retn.addCallback(self.cleanup) | |
return retn | |
@Base.trigger("WEBDOWN") | |
def on_down(self, *args): | |
if self.running: | |
self.stopServer() | |
return True | |
return "Not running." | |
@Base.trigger("WEBUP") | |
def on_up(self, *args): | |
if not self.running: | |
self.startServer() | |
return True | |
return "Already running." | |
def disabling(self, *args, **kwargs): | |
if self.running: | |
return self.stopServer() | |
def beforeReload(self, *args, **kwargs): | |
if self.running: | |
return self.stopServer() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment