diff --git a/api/src/processing/service-config.js b/api/src/processing/service-config.js index f091d448..8d8bf4ac 100644 --- a/api/src/processing/service-config.js +++ b/api/src/processing/service-config.js @@ -137,7 +137,8 @@ export const services = { ":user/status/:id/video/:index", ":user/status/:id/photo/:index", ":user/status/:id/mediaviewer", - ":user/status/:id/mediaViewer" + ":user/status/:id/mediaViewer", + "i/bookmarks?post_id=:id" ], subdomains: ["mobile"], altDomains: ["x.com", "vxtwitter.com", "fixvx.com"], diff --git a/api/src/processing/url.js b/api/src/processing/url.js index a8e69937..034a5d73 100644 --- a/api/src/processing/url.js +++ b/api/src/processing/url.js @@ -120,6 +120,11 @@ function cleanURL(url) { limitQuery('p') } break; + case "twitter": + if (url.searchParams.get('post_id')) { + limitQuery('post_id') + } + break; } if (stripQuery) { diff --git a/api/src/util/tests.json b/api/src/util/tests.json index 17952595..94005c0a 100644 --- a/api/src/util/tests.json +++ b/api/src/util/tests.json @@ -192,6 +192,24 @@ "code": 400, "status": "error" } + }, + { + "name": "bookmarked video", + "url": "https://twitter.com/i/bookmarks?post_id=1828099210220294314", + "params": {}, + "expected": { + "code": 200, + "status": "redirect" + } + }, + { + "name": "bookmarked photo", + "url": "https://twitter.com/i/bookmarks?post_id=1837430141179289876", + "params": {}, + "expected": { + "code": 200, + "status": "redirect" + } } ], "soundcloud": [