Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/python
- from twisted.internet import reactor
- from twisted.web import server, resource
- from twisted.internet import threads
- import os
- #import battlenet
- #import eventlet
- #from battlenet import Realm
- #from battlenet import Character
- class WoWAPI(object):
- def lookup_character(self, name, realm):
- return ":("
- character = Character(battlenet.EUROPE, realm, name, fields=[Character.GUILD, Character.STATS])
- strength = character.stats.strength
- attackpower = character.stats.attack_power
- return "%s %s %d %d" % (name, realm, strength, attackpower)
- def concurrentify(fn):
- def decorator(self, request):
- def callback(data):
- request.write(data)
- request.finish()
- def errback(data):
- request.write("error: " + str(data))
- request.finish()
- threads.deferToThread(fn, self, request).addCallbacks(callback, errback)
- return server.NOT_DONE_YET
- return decorator
- class CharacterResource(resource.Resource):
- isLeaf = True
- def __init__(self, api):
- self.__api = api
- @concurrentify
- def render_GET(self, request):
- return self.__api.lookup_character(request.args["name"][0], request.args["realm"][0])
- wowapi = WoWAPI()
- root = resource.Resource()
- root.putChild("character", CharacterResource(wowapi))
- site = server.Site(root)
- reactor.listenTCP(8080, site)
- reactor.run()
Add Comment
Please, Sign In to add comment