Skip to content

Instantly share code, notes, and snippets.

@idealhack
Created May 6, 2012 14:43
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save idealhack/2622588 to your computer and use it in GitHub Desktop.
Save idealhack/2622588 to your computer and use it in GitHub Desktop.
application: opm-mirror
version: 1
runtime: python
api_version: 1
handlers:
- url: /.*
script: main.py
#!/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