diff options
Diffstat (limited to 'src/lib/gif-alt-text.ts')
-rw-r--r-- | src/lib/gif-alt-text.ts | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/lib/gif-alt-text.ts b/src/lib/gif-alt-text.ts new file mode 100644 index 000000000..41738c506 --- /dev/null +++ b/src/lib/gif-alt-text.ts @@ -0,0 +1,36 @@ +// Kind of a hack. We needed some way to distinguish these. +const USER_ALT_PREFIX = 'Alt: ' +const DEFAULT_ALT_PREFIX = 'ALT: ' + +export function createGIFDescription( + tenorDescription: string, + preferredAlt: string = '', +) { + preferredAlt = preferredAlt.trim() + if (preferredAlt !== '') { + return USER_ALT_PREFIX + preferredAlt + } else { + return DEFAULT_ALT_PREFIX + tenorDescription + } +} + +export function parseAltFromGIFDescription(description: string): { + isPreferred: boolean + alt: string +} { + if (description.startsWith(USER_ALT_PREFIX)) { + return { + isPreferred: true, + alt: description.replace(USER_ALT_PREFIX, ''), + } + } else if (description.startsWith(DEFAULT_ALT_PREFIX)) { + return { + isPreferred: false, + alt: description.replace(DEFAULT_ALT_PREFIX, ''), + } + } + return { + isPreferred: false, + alt: description, + } +} |