From 3e9e0486ba6b1e1d04016fc6c2d7aa5e1497da90 Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Wed, 30 Mar 2022 10:55:32 -0500 Subject: [PATCH] Preserve TruthSocial "external_video_id" in attachments --- ...ruthsocial-status-with-external-video.json | 95 +++++++++++++++++++ .../normalizers/__tests__/status-test.js | 6 ++ app/soapbox/normalizers/attachment.ts | 1 + 3 files changed, 102 insertions(+) create mode 100644 app/soapbox/__fixtures__/truthsocial-status-with-external-video.json diff --git a/app/soapbox/__fixtures__/truthsocial-status-with-external-video.json b/app/soapbox/__fixtures__/truthsocial-status-with-external-video.json new file mode 100644 index 000000000..eb6150192 --- /dev/null +++ b/app/soapbox/__fixtures__/truthsocial-status-with-external-video.json @@ -0,0 +1,95 @@ +{ + "id": "108046244464677537", + "created_at": "2022-03-30T15:40:53.287Z", + "in_reply_to_id": null, + "in_reply_to_account_id": null, + "sensitive": false, + "spoiler_text": "", + "visibility": "public", + "language": null, + "uri": "https://truthsocial.com/users/alex/statuses/108046244464677537", + "url": "https://truthsocial.com/@alex/108046244464677537", + "replies_count": 0, + "reblogs_count": 0, + "favourites_count": 0, + "favourited": false, + "reblogged": false, + "muted": false, + "bookmarked": false, + "pinned": false, + "content": "", + "reblog": null, + "application": { + "name": "Soapbox FE", + "website": "https://soapbox.pub/" + }, + "account": { + "id": "107759994408336377", + "username": "alex", + "acct": "alex", + "display_name": "Alex Gleason", + "locked": false, + "bot": false, + "discoverable": null, + "group": false, + "created_at": "2022-02-08T00:00:00.000Z", + "note": "

Launching Truth Social

", + "url": "https://truthsocial.com/@alex", + "avatar": "https://static-assets.truthsocial.com/tmtg:prime-truth-social-assets/accounts/avatars/107/759/994/408/336/377/original/119cb0dd1fa615b7.png", + "avatar_static": "https://static-assets.truthsocial.com/tmtg:prime-truth-social-assets/accounts/avatars/107/759/994/408/336/377/original/119cb0dd1fa615b7.png", + "header": "https://static-assets.truthsocial.com/tmtg:prime-truth-social-assets/accounts/headers/107/759/994/408/336/377/original/31f62b0453ccf554.png", + "header_static": "https://static-assets.truthsocial.com/tmtg:prime-truth-social-assets/accounts/headers/107/759/994/408/336/377/original/31f62b0453ccf554.png", + "followers_count": 4713, + "following_count": 43, + "statuses_count": 7, + "last_status_at": "2022-03-30", + "verified": true, + "location": "Texas", + "website": "https://soapbox.pub/", + "emojis": [], + "fields": [] + }, + "media_attachments": [ + { + "id": "108046243948255335", + "type": "video", + "url": "https://static-assets.truthsocial.com/tmtg:prime-truth-social-assets/media_attachments/files/108/046/243/948/255/335/original/3b17ce701c0d6f08.mp4", + "preview_url": "https://static-assets.truthsocial.com/tmtg:prime-truth-social-assets/cache/preview_cards/images/000/543/912/original/e1fcf6ace01d9ded.jpg", + "external_video_id": "vwfnq9", + "remote_url": null, + "preview_remote_url": null, + "text_url": "https://truthsocial.com/media/SpbYvqKIT2VubC9FFn0", + "meta": { + "original": { + "width": 988, + "height": 556, + "frame_rate": "60/1", + "duration": 1.949025, + "bitrate": 402396 + } + }, + "description": null, + "blurhash": null + } + ], + "mentions": [], + "tags": [], + "emojis": [], + "card": { + "url": "https://rumble.com/vz1trd-video-upload-for-108046244464677537.html?mref=ummtf&mc=3nvg0", + "title": "Video upload for 108046244464677537", + "description": "", + "type": "video", + "author_name": "hostid1", + "author_url": "https://rumble.com/user/hostid1", + "provider_name": "Rumble.com", + "provider_url": "https://rumble.com/", + "html": "", + "width": 988, + "height": 556, + "image": "https://static-assets.truthsocial.com/tmtg:prime-truth-social-assets/cache/preview_cards/images/000/543/912/original/e1fcf6ace01d9ded.jpg", + "embed_url": "", + "blurhash": "UQH1;m~8sks,%M~9?DRk-mRnR+xs9cWVj[bH" + }, + "poll": null +} diff --git a/app/soapbox/normalizers/__tests__/status-test.js b/app/soapbox/normalizers/__tests__/status-test.js index ebfcb3eee..ac9358f51 100644 --- a/app/soapbox/normalizers/__tests__/status-test.js +++ b/app/soapbox/normalizers/__tests__/status-test.js @@ -195,4 +195,10 @@ describe('normalizeStatus()', () => { expect(result.card.type).toEqual('link'); expect(result.card.provider_url).toEqual('https://soapbox.pub'); }); + + it('preserves Truth Social external_video_id', () => { + const status = require('soapbox/__fixtures__/truthsocial-status-with-external-video.json'); + const result = normalizeStatus(status); + expect(result.media_attachments.get(0).external_video_id).toBe('vwfnq9'); + }); }); diff --git a/app/soapbox/normalizers/attachment.ts b/app/soapbox/normalizers/attachment.ts index 26e616696..de960d258 100644 --- a/app/soapbox/normalizers/attachment.ts +++ b/app/soapbox/normalizers/attachment.ts @@ -15,6 +15,7 @@ import { mergeDefined } from 'soapbox/utils/normalizers'; export const AttachmentRecord = ImmutableRecord({ blurhash: undefined, description: '', + external_video_id: null as string | null, // TruthSocial id: '', meta: ImmutableMap(), pleroma: ImmutableMap(),