Created
May 6, 2012 14:43
-
-
Save idealhack/2622588 to your computer and use it in GitHub Desktop.
Opera Mini Server Mirror on Google App Engine. Fork of http://code.google.com/p/opm-server-mirror/source/browse/trunk/opm-server/python/opm.py
This file contains 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
application: opm-mirror | |
version: 1 | |
runtime: python | |
api_version: 1 | |
handlers: | |
- url: /.* | |
script: main.py |
This file contains 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
#!/usr/bin/env python | |
# Fork of http://code.google.com/p/opm-server-mirror/source/browse/trunk/opm-server/python/opm.py | |
from google.appengine.ext import webapp | |
from google.appengine.ext.webapp.util import run_wsgi_app | |
from google.appengine.api import urlfetch | |
class MainHandler(webapp.RequestHandler): | |
def get(self): | |
if self.request.get('test'): | |
self.response.headers.add_header('Content-Type', 'text/plain') | |
self.response.out.write('Hello, Opera Mini Server Mirror!') | |
else: | |
self.response.set_status(301, webapp.Response.http_status_message(301)) | |
self.response.headers.add_header('Location', 'http://www.google.com/ncr') | |
def post(self): | |
url = "http://server4.operamini.com:80" | |
headers = {'Connection': 'Keep-Alive', | |
'Content-Type': 'application/xml', | |
'User-Agent': 'J2ME/MIDP'} | |
try: | |
result = urlfetch.fetch(url=url, | |
payload=self.request.body, | |
method=urlfetch.POST, | |
headers=headers, | |
deadline=10) | |
if result.status_code == 200: | |
self.response.headers.add_header('Content-Type', result.headers['Content-Type']) | |
self.response.headers.add_header('Cache-Control', 'private, no-cache') | |
self.response.out.write(result.content) | |
except urlfetch.Error, e: | |
self.response.out.write('Houston, we\'ve had a problem.' + e) | |
application = webapp.WSGIApplication([('/', MainHandler)], | |
debug=True) | |
def main(): | |
run_wsgi_app(application) | |
if __name__ == '__main__': | |
main() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment