Browse code
Add API call for a certain number of subscriptions
- This is mainly so the Chrome extension can show a list of subscriptions. (v1.3)
fiddlerwoaroof authored on 07/07/2015 23:28:28Showing 1 changed files
... | ... |
@@ -81,7 +81,7 @@ def submit_link(): |
81 | 81 |
result['id'] = res[0] |
82 | 82 |
else: |
83 | 83 |
db.rollback() |
84 |
- return json.dumps(result) |
|
84 |
+ return json.dumps(result), 200, {'Content-Type':'application/json'} |
|
85 | 85 |
|
86 | 86 |
@bone_blueprint.route('',defaults={'username':None}, methods=['GET']) |
87 | 87 |
@bone_blueprint.route('/u/<username>', methods=['GET']) |
... | ... |
@@ -129,23 +129,33 @@ def subscribe(): |
129 | 129 |
result = True |
130 | 130 |
return json.dumps(result); |
131 | 131 |
|
132 |
-@bone_blueprint.route('/subscriptions', defaults={'before':None}) |
|
133 |
-@bone_blueprint.route('/subscriptions/<before>') |
|
134 |
-def subscriptions(before): |
|
135 |
- username = None |
|
132 |
+@bone_blueprint.route('/subscriptions', defaults={'before':None, 'count': None}) |
|
133 |
+@bone_blueprint.route('/subscriptions/<before>', defaults={'count': None}) |
|
134 |
+@bone_blueprint.route('/subscriptions/count/<int:count>', defaults={'before': None}) |
|
135 |
+@cross_origin(allow_headers='Content-Type') |
|
136 |
+def subscriptions(before, count): |
|
136 | 137 |
result = {'marrow':[], 'sectionTitle': 'Subscriptions'} |
137 |
- if 'username' in session: |
|
138 |
+ db = database.get_db() |
|
139 |
+ username = None |
|
140 |
+ if 'username' in request.args: |
|
141 |
+ username = request.args['username'] |
|
142 |
+ if 'ak' not in request.args: username = None |
|
143 |
+ elif not database.check_ak(db, username, request.args['ak']): username = None |
|
144 |
+ if username is None and 'username' in session: |
|
138 | 145 |
username = session['username'] |
139 |
- with database.get_db().cursor() as cur: |
|
140 |
- args = (username,50) # only 50 results |
|
146 |
+ |
|
147 |
+ if username is not None: |
|
148 |
+ with db.cursor() as cur: |
|
149 |
+ if count is None or count > 200: count = 50 # 50 results or up to 200 results |
|
150 |
+ args = (username,count) |
|
141 | 151 |
if before is not None: |
142 | 152 |
before = dateutil.parser.parse(before) |
143 | 153 |
args = args + (before,) |
144 | 154 |
cur.callproc("get_bones", args) |
145 | 155 |
result['marrow'] = [ |
146 |
- dict(poster=poster, url=url,title=title,posted=posted.isoformat()) |
|
147 |
- for url,title,posted,poster |
|
148 |
- in cur.fetchall() |
|
156 |
+ dict(poster=poster, url=url,title=title,posted=posted.isoformat()) |
|
157 |
+ for url,title,posted,poster |
|
158 |
+ in cur.fetchall() |
|
149 | 159 |
] |
150 | 160 |
return json.dumps(result) |
151 | 161 |
|