Commit a5c95bff8dbcbe4770050ff286bd3bbb376772d1

  • avatar
  • arvind
  • Thu Mar 28 19:31:04 IST 2013
Adding API
			 - Adding /submit. This endpoint accepts a annotation and stores it in the server.
fetch.py
(31 / 7)
  
1313
1414app = Flask(__name__)
1515
16
1617@app.route('/', methods=['GET'])
1718def index():
1819 if request.args.has_key('url'):
2121 else:
2222 return render_template('index.html')
2323
24@app.route('/fetch',methods=['GET'])
24
25@app.route('/fetch', methods=['GET'])
2526def fetch():
2627 connection = pymongo.Connection()
2728 db = connection['mural']
3030 ret = {}
3131 x = 0
3232 resource = "default"
33 if request.args.has_key('res'):
34 resource = request.args['res']
35 for i in collection.find({'res':resource}):
33 if request.args.has_key('uri'):
34 resource = request.args['uri']
35 for i in collection.find({'uri':resource}):
3636 del(i['_id'])
3737 ret[x] = i
3838 x = x + 1
39 if len(ret) == 0:
40 ret['error'] = "Sorry! No re-treats for you."
3941 return jsonify(ret)
4042
41@app.route('/SWeeText',methods=['GET'])
43
44@app.route('/submit', methods=['POST'])
45def submit():
46 c = pymongo.Connection()
47 db = c['mural']
48 coll = db['data']
49 try:
50 for i in d:
51 coll.insert(request.args['data'])
52 response = make_response()
53 response.status = '200 OK'
54 response.status_code = 200
55 return response
56 except:
57 response = make_response()
58 response.status = "500"
59 respose.data = "Your post could not be saved. Try posting again."
60 return response
61
62
63@app.route('/SWeeText', methods=['GET'])
4264def SWeeText():
4365 if request.args.has_key('url'):
4466 myhandler1 = urllib2.Request(request.args['url'], headers={'User-Agent': "Mozilla/5.0(X11; U; Linux i686) Gecko/20071127 Firefox/2.0.0.11"})
6868 page = a.read()
6969 a.close()
7070 try:
71 page = unicode(page,'utf-8')
71 page = unicode(page, 'utf-8')
7272 except UnicodeDecodeError:
7373 pass
7474 root = lxml.html.parse(StringIO.StringIO(page)).getroot()
7575 root.make_links_absolute(request.args['url'], resolve_base_href = True)
7676 return lxml.html.tostring(root)
7777#Log the errors, don't depend on apache to log it for you.
78 fil = FileHandler(os.path.join(os.path.dirname(__file__), 'logme'),mode='a')
78 fil = FileHandler(os.path.join(os.path.dirname(__file__), 'logme'), mode='a')
7979 fil.setLevel(logging.ERROR)
8080 app.logger.addHandler(fil)
8181