diff --git a/packages/web/lib/textFormatting.ts b/packages/web/lib/textFormatting.ts new file mode 100644 index 000000000..1f4ecf79a --- /dev/null +++ b/packages/web/lib/textFormatting.ts @@ -0,0 +1,45 @@ +import dayjs from 'dayjs' +import relativeTime from 'dayjs/plugin/relativeTime' + +dayjs.extend(relativeTime) + +export const timeAgo = (date: string | undefined): string => { + if (!date) { + return '' + } + return dayjs(date).fromNow() +} + +export const shouldHideUrl = (url: string): boolean => { + try { + const origin = new URL(url).origin + const hideHosts = ['https://storage.googleapis.com', 'https://omnivore.app'] + if (hideHosts.indexOf(origin) != -1) { + return true + } + } catch { + console.log('invalid url item', url) + } + return false +} + +export const siteName = ( + originalArticleUrl: string, + itemUrl: string, + siteName?: string +): string => { + if (siteName) { + return shouldHideUrl(siteName) ? '' : siteName + } + + if (shouldHideUrl(originalArticleUrl)) { + return '' + } + try { + return new URL(originalArticleUrl).hostname.replace(/^www\./, '') + } catch {} + try { + return new URL(itemUrl).hostname.replace(/^www\./, '') + } catch {} + return '' +}