Guest User

Untitled

a guest
Oct 20th, 2017
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.99 KB | None | 0 0
  1. from twisted.internet import reactor
  2. from twisted.web import server, resource
  3. from twisted.internet import threads
  4. import os
  5.  
  6.  
  7. class WoWAPI(object):
  8. def lookup_character(self, name, realm):
  9. return ":("
  10.  
  11. def concurrentify(fn):
  12. def decorator(self, request):
  13. def callback(data):
  14. request.write(data)
  15. request.finish()
  16. def errback(data):
  17. request.write("error: " + str(data))
  18. request.finish()
  19.  
  20. threads.deferToThread(fn, self, request).addCallbacks(callback, errback)
  21. return server.NOT_DONE_YET
  22. return decorator
  23.  
  24. class CharacterResource(resource.Resource):
  25. isLeaf = True
  26. def __init__(self, api):
  27. self.__api = api
  28.  
  29. @concurrentify
  30. def render_GET(self, request):
  31. return self.__api.lookup_character(request.args["name"][0], request.args["realm"][0])
  32.  
  33. wowapi = WoWAPI()
  34. root = resource.Resource()
  35. root.putChild("character", CharacterResource(wowapi))
  36. site = server.Site(root)
  37. reactor.listenTCP(8080, site)
  38. reactor.run()
Add Comment
Please, Sign In to add comment