Guest User

Untitled

a guest
Oct 20th, 2017
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.36 KB | None | 0 0
  1. #!/usr/bin/python
  2.  
  3. from twisted.internet import reactor
  4. from twisted.web import server, resource
  5. from twisted.internet import threads
  6. import os
  7. #import battlenet
  8. #import eventlet
  9. #from battlenet import Realm
  10. #from battlenet import Character
  11.  
  12.  
  13. class WoWAPI(object):
  14. def lookup_character(self, name, realm):
  15. return ":("
  16. character = Character(battlenet.EUROPE, realm, name, fields=[Character.GUILD, Character.STATS])
  17. strength = character.stats.strength
  18. attackpower = character.stats.attack_power
  19. return "%s %s %d %d" % (name, realm, strength, attackpower)
  20.  
  21. def concurrentify(fn):
  22. def decorator(self, request):
  23. def callback(data):
  24. request.write(data)
  25. request.finish()
  26. def errback(data):
  27. request.write("error: " + str(data))
  28. request.finish()
  29.  
  30. threads.deferToThread(fn, self, request).addCallbacks(callback, errback)
  31. return server.NOT_DONE_YET
  32. return decorator
  33.  
  34. class CharacterResource(resource.Resource):
  35. isLeaf = True
  36. def __init__(self, api):
  37. self.__api = api
  38.  
  39. @concurrentify
  40. def render_GET(self, request):
  41. return self.__api.lookup_character(request.args["name"][0], request.args["realm"][0])
  42.  
  43. wowapi = WoWAPI()
  44. root = resource.Resource()
  45. root.putChild("character", CharacterResource(wowapi))
  46. site = server.Site(root)
  47. reactor.listenTCP(8080, site)
  48. reactor.run()
Add Comment
Please, Sign In to add comment