Compare commits
1 commit
main
...
fix/image-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
df0bc8beab |
3 changed files with 55 additions and 26 deletions
9
.env.example
Normal file
9
.env.example
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
OMGLOL_KEY=
|
||||||
|
OMGLOL_USERNAME=melanie
|
||||||
|
TRAKT_SLURM=
|
||||||
|
|
||||||
|
# optional - only needed if using steam service
|
||||||
|
STEAM_WEBAPI_KEY=
|
||||||
|
|
||||||
|
# optional - only needed if using hardcover service
|
||||||
|
HARDCOVER_API_KEY=
|
||||||
28
index.js
28
index.js
|
|
@ -132,7 +132,12 @@ export default async function now() {
|
||||||
const imageId = `${item.id}-image`
|
const imageId = `${item.id}-image`
|
||||||
const videoId = `${item.id}-video`
|
const videoId = `${item.id}-video`
|
||||||
if (latest.image) {
|
if (latest.image) {
|
||||||
// html image replacement
|
// html image replacement - match by data-service attribute to allow repeated updates
|
||||||
|
newNow = newNow.replace(
|
||||||
|
new RegExp(`(<img[^>]*data-service=["']${item.id}["'][^>]*\\bsrc=["'])[^"']*?(["'][^>]*>)`, 'gi'),
|
||||||
|
`$1${latest.image}$2`,
|
||||||
|
)
|
||||||
|
// also handle initial placeholder case
|
||||||
newNow = newNow.replace(
|
newNow = newNow.replace(
|
||||||
new RegExp(`(<img[^>]+src=["'])${imageId}(["'][^>]*>)`, 'gi'),
|
new RegExp(`(<img[^>]+src=["'])${imageId}(["'][^>]*>)`, 'gi'),
|
||||||
`$1${latest.image}$2`,
|
`$1${latest.image}$2`,
|
||||||
|
|
@ -143,7 +148,12 @@ export default async function now() {
|
||||||
`$1${latest.image}$2`,
|
`$1${latest.image}$2`,
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
// remove img tags if no image available (handle multi-line tags and any attribute order)
|
// remove img tags if no image available - match by data-service attribute
|
||||||
|
newNow = newNow.replace(
|
||||||
|
new RegExp(`\\s*<img\\b[^>]*\\bdata-service=["']${item.id}["'][^>]*>\\s*`, 'gis'),
|
||||||
|
'',
|
||||||
|
)
|
||||||
|
// also remove by placeholder src
|
||||||
newNow = newNow.replace(
|
newNow = newNow.replace(
|
||||||
new RegExp(`\\s*<img\\b[^>]*\\bsrc=["']${imageId}["'][^>]*>\\s*`, 'gis'),
|
new RegExp(`\\s*<img\\b[^>]*\\bsrc=["']${imageId}["'][^>]*>\\s*`, 'gis'),
|
||||||
'',
|
'',
|
||||||
|
|
@ -156,13 +166,23 @@ export default async function now() {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (latest.video) {
|
if (latest.video) {
|
||||||
// html video replacement
|
// html video replacement - match by data-service attribute to allow repeated updates
|
||||||
|
newNow = newNow.replace(
|
||||||
|
new RegExp(`(<video[^>]*data-service=["']${item.id}["'][^>]*\\bsrc=["'])[^"']*?(["'][^>]*>)`, 'gi'),
|
||||||
|
`$1${latest.video}$2`,
|
||||||
|
)
|
||||||
|
// also handle initial placeholder case
|
||||||
newNow = newNow.replace(
|
newNow = newNow.replace(
|
||||||
new RegExp(`(<video[^>]+src=["'])${videoId}(["'][^>]*>)`, 'gi'),
|
new RegExp(`(<video[^>]+src=["'])${videoId}(["'][^>]*>)`, 'gi'),
|
||||||
`$1${latest.video}$2`,
|
`$1${latest.video}$2`,
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
// remove video tags if no video available
|
// remove video tags if no video available - match by data-service attribute
|
||||||
|
newNow = newNow.replace(
|
||||||
|
new RegExp(`\\s*<video\\b[^>]*\\bdata-service=["']${item.id}["'][^>]*>[\\s\\S]*?</video>\\s*`, 'gis'),
|
||||||
|
'',
|
||||||
|
)
|
||||||
|
// also remove by placeholder src
|
||||||
newNow = newNow.replace(
|
newNow = newNow.replace(
|
||||||
new RegExp(`\\s*<video\\b[^>]*\\bsrc=["']${videoId}["'][^>]*>[\\s\\S]*?</video>\\s*`, 'gis'),
|
new RegExp(`\\s*<video\\b[^>]*\\bsrc=["']${videoId}["'][^>]*>[\\s\\S]*?</video>\\s*`, 'gis'),
|
||||||
'',
|
'',
|
||||||
|
|
|
||||||
44
services.js
44
services.js
|
|
@ -7,14 +7,14 @@ export const services = [
|
||||||
// ========================================================================
|
// ========================================================================
|
||||||
{
|
{
|
||||||
id: 'weblog',
|
id: 'weblog',
|
||||||
isActive: false,
|
isActive: true,
|
||||||
userId: 'dylan', // your omg.lol username
|
userId: 'dylan', // your omg.lol username
|
||||||
feedUrlTemplate: 'https://{userId}.weblog.lol/feed.json',
|
feedUrlTemplate: 'https://{userId}.weblog.lol/feed.json',
|
||||||
feedType: 'json',
|
feedType: 'json',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'some.pics',
|
id: 'some.pics',
|
||||||
isActive: false,
|
isActive: true,
|
||||||
userId: 'dylan', // your omg.lol username
|
userId: 'dylan', // your omg.lol username
|
||||||
feedUrlTemplate: 'https://{userId}.some.pics/rss',
|
feedUrlTemplate: 'https://{userId}.some.pics/rss',
|
||||||
feedType: 'some.pics',
|
feedType: 'some.pics',
|
||||||
|
|
@ -25,9 +25,9 @@ export const services = [
|
||||||
// ========================================================================
|
// ========================================================================
|
||||||
{
|
{
|
||||||
id: 'blog',
|
id: 'blog',
|
||||||
isActive: true,
|
isActive: false,
|
||||||
feedUrl: 'https://blog.agnes.love/feed/', // direct url to your blog's rss feed
|
feedUrl: 'https://your-blog.com/feed.xml', // direct url to your blog's rss feed
|
||||||
feedType: 'atom',
|
feedType: 'rss',
|
||||||
},
|
},
|
||||||
|
|
||||||
// ========================================================================
|
// ========================================================================
|
||||||
|
|
@ -36,7 +36,7 @@ export const services = [
|
||||||
{
|
{
|
||||||
id: 'lastfm',
|
id: 'lastfm',
|
||||||
isActive: true,
|
isActive: true,
|
||||||
userId: 'keegbovo', // your last.fm username
|
userId: 'lookathimthere', // your last.fm username
|
||||||
feedUrlTemplate: 'https://lfm.xiffy.nl/{userId}',
|
feedUrlTemplate: 'https://lfm.xiffy.nl/{userId}',
|
||||||
feedType: 'rss',
|
feedType: 'rss',
|
||||||
},
|
},
|
||||||
|
|
@ -59,11 +59,11 @@ export const services = [
|
||||||
// ========================================================================
|
// ========================================================================
|
||||||
{
|
{
|
||||||
id: 'mastodon',
|
id: 'mastodon',
|
||||||
isActive: true,
|
isActive: false,
|
||||||
userId: 'alien', // your mastodon username
|
userId: 'dylan', // your mastodon username
|
||||||
instance: 'lesbian.alien.dentist', // your mastodon instance
|
instance: 'social.lol', // your mastodon instance
|
||||||
feedUrlTemplate: 'lesbian.alien.dentist/@alien.atom',
|
feedUrlTemplate: 'https://{instance}/@{userId}.rss',
|
||||||
feedType: 'atom',
|
feedType: 'mastodon',
|
||||||
showImage: true,
|
showImage: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
@ -76,9 +76,9 @@ export const services = [
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'bluesky',
|
id: 'bluesky',
|
||||||
isActive: true,
|
isActive: false,
|
||||||
userId: 'agnes.love', // your bluesky handle
|
userId: 'your-handle.bsky.social', // your bluesky handle
|
||||||
feedUrlTemplate: 'https://bsky.app/profile/agnes.love/rss',
|
feedUrlTemplate: 'https://bsky.app/profile/{userId}/rss',
|
||||||
feedType: 'rss',
|
feedType: 'rss',
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
@ -87,7 +87,7 @@ export const services = [
|
||||||
// ========================================================================
|
// ========================================================================
|
||||||
{
|
{
|
||||||
id: 'letterboxd',
|
id: 'letterboxd',
|
||||||
isActive: false,
|
isActive: true,
|
||||||
userId: 'stfudonny', // your letterboxd username
|
userId: 'stfudonny', // your letterboxd username
|
||||||
feedUrlTemplate: 'https://letterboxd.com/{userId}/rss/',
|
feedUrlTemplate: 'https://letterboxd.com/{userId}/rss/',
|
||||||
feedType: 'letterboxd',
|
feedType: 'letterboxd',
|
||||||
|
|
@ -95,7 +95,7 @@ export const services = [
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'trakt-episode',
|
id: 'trakt-episode',
|
||||||
isActive: false,
|
isActive: true,
|
||||||
userId: 'crankle', // your trakt username
|
userId: 'crankle', // your trakt username
|
||||||
traktId: '78e1e87b446901f7e4f0883dd4995cec', // your trakt ID
|
traktId: '78e1e87b446901f7e4f0883dd4995cec', // your trakt ID
|
||||||
feedType: 'trakt-episode',
|
feedType: 'trakt-episode',
|
||||||
|
|
@ -103,7 +103,7 @@ export const services = [
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'trakt-movie',
|
id: 'trakt-movie',
|
||||||
isActive: false,
|
isActive: true,
|
||||||
userId: 'crankle', // your trakt username
|
userId: 'crankle', // your trakt username
|
||||||
traktId: '78e1e87b446901f7e4f0883dd4995cec', // your trakt ID
|
traktId: '78e1e87b446901f7e4f0883dd4995cec', // your trakt ID
|
||||||
feedType: 'trakt-movie',
|
feedType: 'trakt-movie',
|
||||||
|
|
@ -115,7 +115,7 @@ export const services = [
|
||||||
// ========================================================================
|
// ========================================================================
|
||||||
{
|
{
|
||||||
id: 'hardcover',
|
id: 'hardcover',
|
||||||
isActive: false,
|
isActive: true,
|
||||||
userId: '62036', // your hardcover user ID (find in your API token or profile URL)
|
userId: '62036', // your hardcover user ID (find in your API token or profile URL)
|
||||||
feedUrl: 'https://api.hardcover.app/v1/graphql',
|
feedUrl: 'https://api.hardcover.app/v1/graphql',
|
||||||
feedType: 'hardcover',
|
feedType: 'hardcover',
|
||||||
|
|
@ -123,8 +123,8 @@ export const services = [
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'storygraph',
|
id: 'storygraph',
|
||||||
isActive: true,
|
isActive: false,
|
||||||
userId: 'telescopefish', // your storygraph username
|
userId: 'your-username', // your storygraph username
|
||||||
feedUrlTemplate: 'https://app.thestorygraph.com/profile/{userId}.rss',
|
feedUrlTemplate: 'https://app.thestorygraph.com/profile/{userId}.rss',
|
||||||
feedType: 'rss',
|
feedType: 'rss',
|
||||||
},
|
},
|
||||||
|
|
@ -141,7 +141,7 @@ export const services = [
|
||||||
// ========================================================================
|
// ========================================================================
|
||||||
{
|
{
|
||||||
id: 'steam',
|
id: 'steam',
|
||||||
isActive: false,
|
isActive: true,
|
||||||
userId: '76561198022952207', // your steam ID 64 (not username) - convert at steamid.io
|
userId: '76561198022952207', // your steam ID 64 (not username) - convert at steamid.io
|
||||||
feedType: 'steam',
|
feedType: 'steam',
|
||||||
},
|
},
|
||||||
|
|
@ -151,7 +151,7 @@ export const services = [
|
||||||
// ========================================================================
|
// ========================================================================
|
||||||
{
|
{
|
||||||
id: 'source.tube',
|
id: 'source.tube',
|
||||||
isActive: false,
|
isActive: true,
|
||||||
userId: 'dylan', // your source.tube username
|
userId: 'dylan', // your source.tube username
|
||||||
feedUrlTemplate: 'https://source.tube/{userId}.rss',
|
feedUrlTemplate: 'https://source.tube/{userId}.rss',
|
||||||
feedType: 'source.tube',
|
feedType: 'source.tube',
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue