mirror of
https://git.sr.ht/~cadence/bibliogram
synced 2024-11-22 08:07:30 +00:00
Embed videos in feeds
This commit is contained in:
parent
8ed850edf2
commit
c57d51e3eb
@ -1,9 +1,16 @@
|
|||||||
const config = require("../../../config")
|
const constants = require("../constants")
|
||||||
const {proxyImage} = require("../utils/proxyurl")
|
|
||||||
const collectors = require("../collectors")
|
const collectors = require("../collectors")
|
||||||
const TimelineBaseMethods = require("./TimelineBaseMethods")
|
const TimelineBaseMethods = require("./TimelineBaseMethods")
|
||||||
|
const {compile} = require("pug")
|
||||||
require("../testimports")(collectors)
|
require("../testimports")(collectors)
|
||||||
|
|
||||||
|
const rssImageTemplate = compile(`
|
||||||
|
img(src=constants.website_origin+entry.getDisplayUrlP() alt=entry.getAlt() width=entry.data.dimensions.width height=entry.data.dimensions.height)
|
||||||
|
`)
|
||||||
|
const rssVideoTemplate = compile(`
|
||||||
|
video(src=constants.website_origin+entry.getVideoUrlP() controls preload="auto" width=entry.data.dimensions.width height=entry.data.dimensions.height)
|
||||||
|
`)
|
||||||
|
|
||||||
class TimelineChild extends TimelineBaseMethods {
|
class TimelineChild extends TimelineBaseMethods {
|
||||||
/**
|
/**
|
||||||
* @param {import("../types").GraphChildAll} data
|
* @param {import("../types").GraphChildAll} data
|
||||||
@ -12,6 +19,14 @@ class TimelineChild extends TimelineBaseMethods {
|
|||||||
super()
|
super()
|
||||||
this.data = data
|
this.data = data
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getFeedItem() {
|
||||||
|
if (this.data.video_url) {
|
||||||
|
return rssVideoTemplate({entry: this, constants})
|
||||||
|
} else {
|
||||||
|
return rssImageTemplate({entry: this, constants})
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = TimelineChild
|
module.exports = TimelineChild
|
||||||
|
@ -10,7 +10,7 @@ require("../testimports")(collectors, TimelineChild, TimelineBaseMethods)
|
|||||||
const rssDescriptionTemplate = compile(`
|
const rssDescriptionTemplate = compile(`
|
||||||
p(style='white-space: pre-line')= caption
|
p(style='white-space: pre-line')= caption
|
||||||
each child in children
|
each child in children
|
||||||
img(alt=child.alt src=child.src width=child.width height=child.height)
|
!= child.getFeedItem()
|
||||||
`)
|
`)
|
||||||
|
|
||||||
class TimelineEntry extends TimelineBaseMethods {
|
class TimelineEntry extends TimelineBaseMethods {
|
||||||
@ -262,12 +262,7 @@ class TimelineEntry extends TimelineBaseMethods {
|
|||||||
title: this.getCaptionIntroduction() || `New post from @${this.getBasicOwner().username}`,
|
title: this.getCaptionIntroduction() || `New post from @${this.getBasicOwner().username}`,
|
||||||
description: rssDescriptionTemplate({
|
description: rssDescriptionTemplate({
|
||||||
caption: this.getCaption(),
|
caption: this.getCaption(),
|
||||||
children: children.map(child => ({
|
children
|
||||||
src: `${constants.website_origin}${child.getDisplayUrlP()}`,
|
|
||||||
alt: child.getAlt(),
|
|
||||||
width: child.data.dimensions.width,
|
|
||||||
height: child.data.dimensions.height
|
|
||||||
}))
|
|
||||||
}),
|
}),
|
||||||
link: `${constants.website_origin}/p/${this.data.shortcode}`,
|
link: `${constants.website_origin}/p/${this.data.shortcode}`,
|
||||||
id: `bibliogram:post/${this.data.shortcode}`, // Is it wise to keep the origin in here? The same post would have a different ID from different servers.
|
id: `bibliogram:post/${this.data.shortcode}`, // Is it wise to keep the origin in here? The same post would have a different ID from different servers.
|
||||||
|
Loading…
Reference in New Issue
Block a user