mirror of
https://github.com/omnivore-app/omnivore.git
synced 2026-03-11 08:54:26 +00:00
add a "read in omnivore" button to the digest email
This commit is contained in:
parent
5f4ed6ad11
commit
ee2ca1ec97
2 changed files with 24 additions and 7 deletions
|
|
@ -599,6 +599,17 @@ const sendEmail = async (user: User, digest: Digest) => {
|
||||||
</div>`
|
</div>`
|
||||||
)
|
)
|
||||||
.join('')}
|
.join('')}
|
||||||
|
|
||||||
|
<button style="background-color: #FFEAA0;
|
||||||
|
border: 0px solid transparent;
|
||||||
|
color: rgb(42, 42, 42);
|
||||||
|
padding:15px 32px;
|
||||||
|
font-size: 14px;
|
||||||
|
margin: 20px 0;
|
||||||
|
font-family: Inter, sans-serif;
|
||||||
|
border-radius: 5px;">
|
||||||
|
<a href="${env.client.url}/digest/${digest.id}">Read in Omnivore</a>
|
||||||
|
</button>
|
||||||
</div>`
|
</div>`
|
||||||
|
|
||||||
await enqueueSendEmail({
|
await enqueueSendEmail({
|
||||||
|
|
@ -609,17 +620,23 @@ const sendEmail = async (user: User, digest: Digest) => {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
const findThumbnail = async (chapters: Chapter[]) => {
|
const findThumbnail = async (
|
||||||
|
chapters: Chapter[]
|
||||||
|
): Promise<string | undefined> => {
|
||||||
const images = await Promise.all(
|
const images = await Promise.all(
|
||||||
chapters
|
chapters
|
||||||
.filter((chapter) => chapter.thumbnail)
|
.filter((chapter) => chapter.thumbnail)
|
||||||
.map((chapter) => getImageSize(chapter.thumbnail as string))
|
.map((chapter) => getImageSize(chapter.thumbnail as string))
|
||||||
)
|
)
|
||||||
|
|
||||||
return _findThumbnail(images)
|
try {
|
||||||
|
return _findThumbnail(images)
|
||||||
|
} catch {
|
||||||
|
return undefined
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export const saveInLibrary = async (user: User, digest: Digest) => {
|
export const moveToLibrary = async (user: User, digest: Digest) => {
|
||||||
const subTitle = digest.title?.slice(AUTHOR.length + 1) ?? ''
|
const subTitle = digest.title?.slice(AUTHOR.length + 1) ?? ''
|
||||||
const title = `${AUTHOR}: ${subTitle}`
|
const title = `${AUTHOR}: ${subTitle}`
|
||||||
|
|
||||||
|
|
@ -644,7 +661,7 @@ export const saveInLibrary = async (user: User, digest: Digest) => {
|
||||||
|
|
||||||
await savePage(
|
await savePage(
|
||||||
{
|
{
|
||||||
url: `${env.client.url}/digest/${digest.id}`,
|
url: `${env.client.url}/omnivore-digest/${digest.id}`,
|
||||||
title,
|
title,
|
||||||
originalContent: html,
|
originalContent: html,
|
||||||
clientRequestId: digest.id,
|
clientRequestId: digest.id,
|
||||||
|
|
@ -672,7 +689,7 @@ const sendToChannels = async (
|
||||||
case 'email':
|
case 'email':
|
||||||
return sendEmail(user, digest)
|
return sendEmail(user, digest)
|
||||||
case 'library':
|
case 'library':
|
||||||
return saveInLibrary(user, digest)
|
return moveToLibrary(user, digest)
|
||||||
default:
|
default:
|
||||||
logger.error('Unknown channel', { channel })
|
logger.error('Unknown channel', { channel })
|
||||||
return
|
return
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ import { env } from '../env'
|
||||||
import { TaskState } from '../generated/graphql'
|
import { TaskState } from '../generated/graphql'
|
||||||
import {
|
import {
|
||||||
CreateDigestJobSchedule,
|
CreateDigestJobSchedule,
|
||||||
saveInLibrary,
|
moveToLibrary,
|
||||||
} from '../jobs/ai/create_digest'
|
} from '../jobs/ai/create_digest'
|
||||||
import { getDigest } from '../services/digest'
|
import { getDigest } from '../services/digest'
|
||||||
import { FeatureName, findGrantedFeatureByName } from '../services/features'
|
import { FeatureName, findGrantedFeatureByName } from '../services/features'
|
||||||
|
|
@ -301,7 +301,7 @@ export function digestRouter() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// move digest to library
|
// move digest to library
|
||||||
await saveInLibrary(feature.user, digest)
|
await moveToLibrary(feature.user, digest)
|
||||||
|
|
||||||
res.send({
|
res.send({
|
||||||
success: true,
|
success: true,
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue