Prechádzať zdrojové kódy

added feed.json response format to bookmarks and liked tweets endpoint.

Harlan J. Iverson 2 dní pred
rodič
commit
7cd89b2f6e
1 zmenil súbory, kde vykonal 18 pridanie a 7 odobranie
  1. 18 7
      extensions/twitter_v2_facade/facade.py

+ 18 - 7
extensions/twitter_v2_facade/facade.py

@@ -748,6 +748,7 @@ def get_bookmarks2_html ():
     user_id = g.twitter_user['id']
     token = g.twitter_user['access_token']
     
+    response_format = request.args.get('format', 'html')
     pagination_token = request.args.get('pagination_token')
     max_results = int(request.args.get('limit', 10))
     
@@ -762,8 +763,8 @@ def get_bookmarks2_html ():
         query = {
             **query,
             
-            'next_data_url': url_for('.get_bookmarks2_html', user_id=user_id, pagination_token=next_token, limit=max_results),
-            'next_page_url': url_for('.get_bookmarks2_html', user_id=user_id, pagination_token=next_token, limit=max_results)
+            'next_data_url': url_for('.get_bookmarks2_html', user_id=user_id, pagination_token=next_token, limit=max_results, format=response_format),
+            'next_page_url': url_for('.get_bookmarks2_html', user_id=user_id, pagination_token=next_token, limit=max_results, format=response_format)
         }
     
     user = {
@@ -771,7 +772,12 @@ def get_bookmarks2_html ():
         }
     
     
-    if 'HX-Request' in request.headers:
+    if response_format == 'feed.json':
+       return jsonify(cleandict({
+            'data': tweets,
+            'query': query
+        }))
+    elif 'HX-Request' in request.headers:
         return render_template(f'partial/tweets-timeline{theme_variant}.html', user = user, tweets = tweets, query = query)
     else:
         return render_template(f'tweet-collection{theme_variant}.html', user = user, tweets = tweets, query = query)
@@ -783,6 +789,7 @@ def get_likes_html ():
     user_id = g.twitter_user['id']
     token = g.twitter_user['access_token']
     
+    response_format = request.args.get('format', 'html')
     pagination_token = request.args.get('pagination_token')
     max_results = int(request.args.get('limit', 10))
     
@@ -797,16 +804,20 @@ def get_likes_html ():
         query = {
             **query,
             
-            'next_data_url': url_for('.get_likes_html', user_id=user_id, pagination_token=next_token, limit=max_results),
-            'next_page_url': url_for('.get_likes_html', user_id=user_id, pagination_token=next_token, limit=max_results)
+            'next_data_url': url_for('.get_likes_html', user_id=user_id, pagination_token=next_token, limit=max_results, format=response_format),
+            'next_page_url': url_for('.get_likes_html', user_id=user_id, pagination_token=next_token, limit=max_results, format=response_format)
         }
     
     user = {
             'id': user_id
         }
     
-    
-    if 'HX-Request' in request.headers:
+    if response_format == 'feed.json':
+       return jsonify(cleandict({
+            'data': tweets,
+            'query': query
+        }))
+    elif 'HX-Request' in request.headers:
         return render_template(f'partial/tweets-timeline{theme_variant}.html', user = user, tweets = tweets, query = query)
     else:
         return render_template(f'tweet-collection{theme_variant}.html', user = user, tweets = tweets, query = query)