Skip to content

Instantly share code, notes, and snippets.

@EntityReborn
Created June 2, 2011 15:51
Show Gist options
  • Save EntityReborn/1004669 to your computer and use it in GitHub Desktop.
Save EntityReborn/1004669 to your computer and use it in GitHub Desktop.
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.simple = self.Simple()
self.simple.log = self.log
self.site = server.Site(self.simple)
self.server = internet.TCPServer(8080, self.site)
self.startServer()
def startServer(self):
if self.running:
self.log.error("Tried to run again.")
return
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
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