Merge pull request 'main' (#11) from teddit/teddit:main into changelog
Reviewed-on: https://codeberg.org/random_guy52/teddit/pulls/11
This commit is contained in:
commit
c6ab579a69
|
@ -38,7 +38,7 @@ const config = {
|
||||||
searches: 600,
|
searches: 600,
|
||||||
sidebar: 60 * 60 * 24 * 7, // 7 days
|
sidebar: 60 * 60 * 24 * 7, // 7 days
|
||||||
shorts: 60 * 60 * 24 * 31,
|
shorts: 60 * 60 * 24 * 31,
|
||||||
wikis: 60* 60 * 24 * 7,
|
wikis: 60 * 60 * 24 * 7,
|
||||||
subreddits_explore: {
|
subreddits_explore: {
|
||||||
front: 60 * 60 * 24 * 1,
|
front: 60 * 60 * 24 * 1,
|
||||||
new_page: 60
|
new_page: 60
|
||||||
|
@ -51,6 +51,7 @@ const config = {
|
||||||
reddit: true, // old.reddit.com and reddit.com --> instance domain (config.domain)
|
reddit: true, // old.reddit.com and reddit.com --> instance domain (config.domain)
|
||||||
},
|
},
|
||||||
valid_media_domains: ['preview.redd.it', 'external-preview.redd.it', 'i.redd.it', 'v.redd.it', 'a.thumbs.redditmedia.com', 'b.thumbs.redditmedia.com', 'emoji.redditmedia.com', 'thumbs.gfycat.com', 'i.ytimg.com'],
|
valid_media_domains: ['preview.redd.it', 'external-preview.redd.it', 'i.redd.it', 'v.redd.it', 'a.thumbs.redditmedia.com', 'b.thumbs.redditmedia.com', 'emoji.redditmedia.com', 'thumbs.gfycat.com', 'i.ytimg.com'],
|
||||||
|
valid_embed_video_domains: ['gfycat.com', 'youtube.com'],
|
||||||
reddit_api_error_text: `Seems like your instance is either blocked (e.g. due to API rate limiting), reddit is currently down, or your API key is expired and not renewd properly. This can also happen for other reasons.`
|
reddit_api_error_text: `Seems like your instance is either blocked (e.g. due to API rate limiting), reddit is currently down, or your API key is expired and not renewd properly. This can also happen for other reasons.`
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -35,7 +35,8 @@ module.exports = function(tools) {
|
||||||
if (file_prefix === 'flair_') {
|
if (file_prefix === 'flair_') {
|
||||||
// Flair emojis end in the name without a file extension
|
// Flair emojis end in the name without a file extension
|
||||||
file_ext = 'png'
|
file_ext = 'png'
|
||||||
} else if(!pathname.includes('.')) { /**
|
} else if(!pathname.includes('.')) {
|
||||||
|
/**
|
||||||
* Sometimes reddit API returns video without extension, like
|
* Sometimes reddit API returns video without extension, like
|
||||||
* "DASH_480" and not "DASH_480.mp4".
|
* "DASH_480" and not "DASH_480.mp4".
|
||||||
*/
|
*/
|
||||||
|
@ -57,6 +58,9 @@ module.exports = function(tools) {
|
||||||
resolve('')
|
resolve('')
|
||||||
} else {
|
} else {
|
||||||
let filename = `${temp_url.pathname.substr(1).split('/')[0]}.${file_ext}`
|
let filename = `${temp_url.pathname.substr(1).split('/')[0]}.${file_ext}`
|
||||||
|
if(temp_url.hostname === 'thumbs.gfycat.com')
|
||||||
|
filename = `${temp_url.pathname.substr(1).split('/')[0]}`
|
||||||
|
|
||||||
let path = `./static/vids/${dir}${filename}`
|
let path = `./static/vids/${dir}${filename}`
|
||||||
let temp_path = `./static/vids/${dir}temp_${filename}`
|
let temp_path = `./static/vids/${dir}temp_${filename}`
|
||||||
if(!fs.existsSync(path)) {
|
if(!fs.existsSync(path)) {
|
||||||
|
|
|
@ -39,12 +39,17 @@ module.exports = function(fetch) {
|
||||||
user_flair: (user_preferences.flairs != 'false' ? await formatUserFlair(post) : '')
|
user_flair: (user_preferences.flairs != 'false' ? await formatUserFlair(post) : '')
|
||||||
}
|
}
|
||||||
|
|
||||||
let validEmbedDomains = ['gfycat.com', 'youtube.com']
|
let valid_embed_video_domains = ['gfycat.com']
|
||||||
let has_gif = false
|
let has_gif = false
|
||||||
let gif_to_mp4 = null
|
let gif_to_mp4 = null
|
||||||
let reddit_video = null
|
let reddit_video = null
|
||||||
|
let embed_video = false
|
||||||
|
|
||||||
if(post.preview) {
|
if(post.media)
|
||||||
|
if(valid_embed_video_domains.includes(post.media.type))
|
||||||
|
embed_video = true
|
||||||
|
|
||||||
|
if(post.preview && !embed_video) {
|
||||||
if(post.preview.reddit_video_preview) {
|
if(post.preview.reddit_video_preview) {
|
||||||
if(post.preview.reddit_video_preview.is_gif) {
|
if(post.preview.reddit_video_preview.is_gif) {
|
||||||
has_gif = true
|
has_gif = true
|
||||||
|
|
|
@ -3,28 +3,17 @@ module.exports = function() {
|
||||||
this.processPostMedia = (obj, post, post_media, has_gif, reddit_video, gif_to_mp4) => {
|
this.processPostMedia = (obj, post, post_media, has_gif, reddit_video, gif_to_mp4) => {
|
||||||
return new Promise(resolve => {
|
return new Promise(resolve => {
|
||||||
(async () => {
|
(async () => {
|
||||||
let valid_embed_domains = ['gfycat.com', 'youtube.com']
|
|
||||||
if(post_media || has_gif) {
|
if(post_media || has_gif) {
|
||||||
if(!has_gif) {
|
if(!has_gif) {
|
||||||
if(valid_embed_domains.includes(post_media.type)) {
|
if(config.valid_embed_video_domains.includes(post_media.type)) {
|
||||||
if(post_media.type === 'gfycat.com') {
|
if(post_media.type === 'gfycat.com') {
|
||||||
obj.has_media = true
|
obj.has_media = true
|
||||||
|
let video_url = post_media.oembed.thumbnail_url
|
||||||
|
video_url = video_url.replace('size_restricted.gif', 'mobile.mp4')
|
||||||
obj.media = {
|
obj.media = {
|
||||||
source: await downloadAndSave(post_media.oembed.thumbnail_url),
|
source: await downloadAndSave(video_url),
|
||||||
height: post_media.oembed.thumbnail_height,
|
height: post_media.oembed.thumbnail_height,
|
||||||
width: post_media.oembed.thumbnail_width,
|
width: post_media.oembed.thumbnail_width
|
||||||
duration: null,
|
|
||||||
is_gif: null,
|
|
||||||
not_hosted_in_reddit: true,
|
|
||||||
embed_src: null
|
|
||||||
}
|
|
||||||
try {
|
|
||||||
let str = post_media.oembed.html
|
|
||||||
let r = /iframe.*?src=\"(.*?)\"/;
|
|
||||||
let src = r.exec(str)[1]
|
|
||||||
obj.media.embed_src = cleanUrl(src)
|
|
||||||
} catch(error) {
|
|
||||||
console.error(`Error while trying to get src link from embed html.`, error)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(post_media.type === 'youtube.com') {
|
if(post_media.type === 'youtube.com') {
|
||||||
|
|
10
routes.js
10
routes.js
|
@ -55,7 +55,7 @@ module.exports = (app, redis, fetch, RedditAPI) => {
|
||||||
}
|
}
|
||||||
if(!subbed_subreddits_is_set)
|
if(!subbed_subreddits_is_set)
|
||||||
res.clearCookie('subbed_subreddits')
|
res.clearCookie('subbed_subreddits')
|
||||||
return res.redirect('/preferences')
|
return res.redirect('/')
|
||||||
} catch(e) {
|
} catch(e) {
|
||||||
console.error(`Error setting imported preferences to the cookies. Key: ${key}.`, error)
|
console.error(`Error setting imported preferences to the cookies. Key: ${key}.`, error)
|
||||||
}
|
}
|
||||||
|
@ -1456,6 +1456,14 @@ module.exports = (app, redis, fetch, RedditAPI) => {
|
||||||
})
|
})
|
||||||
|
|
||||||
app.post('/export_prefs', (req, res, next) => {
|
app.post('/export_prefs', (req, res, next) => {
|
||||||
|
let export_saved = req.body.export_saved
|
||||||
|
let export_data = req.cookies
|
||||||
|
|
||||||
|
if(export_saved !== 'on') {
|
||||||
|
if(req.cookies.saved)
|
||||||
|
delete export_data.saved
|
||||||
|
}
|
||||||
|
|
||||||
let r = `${(Math.random().toString(36)+'00000000000000000').slice(2, 10+2).toUpperCase()}`
|
let r = `${(Math.random().toString(36)+'00000000000000000').slice(2, 10+2).toUpperCase()}`
|
||||||
let key = `prefs_key:${r}`
|
let key = `prefs_key:${r}`
|
||||||
redis.set(key, JSON.stringify(req.cookies), (error) => {
|
redis.set(key, JSON.stringify(req.cookies), (error) => {
|
||||||
|
|
|
@ -1466,6 +1466,11 @@ code {
|
||||||
background: #fff0;
|
background: #fff0;
|
||||||
transition: none;
|
transition: none;
|
||||||
}
|
}
|
||||||
|
.md .md-spoiler-text:not(.revealed):active *,
|
||||||
|
.md .md-spoiler-text:not(.revealed):focus *,
|
||||||
|
.md .md-spoiler-text:not(.revealed):hover * {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
@media only screen and (max-width: 768px) {
|
@media only screen and (max-width: 768px) {
|
||||||
#user .info {
|
#user .info {
|
||||||
float: right;
|
float: right;
|
||||||
|
|
|
@ -19,8 +19,6 @@ html
|
||||||
h2 Donating
|
h2 Donating
|
||||||
p(class="word-break") XMR: 832ogRwuoSs2JGYg7wJTqshidK7dErgNdfpenQ9dzMghNXQTJRby1xGbqC3gW3GAifRM9E84J91VdMZRjoSJ32nkAZnaCEj
|
p(class="word-break") XMR: 832ogRwuoSs2JGYg7wJTqshidK7dErgNdfpenQ9dzMghNXQTJRby1xGbqC3gW3GAifRM9E84J91VdMZRjoSJ32nkAZnaCEj
|
||||||
p BTC: bc1qlcrmt2pvlh4eq69l3l4h6z5jg74z2m2q3pasan
|
p BTC: bc1qlcrmt2pvlh4eq69l3l4h6z5jg74z2m2q3pasan
|
||||||
h2 Contact
|
|
||||||
p orenom(at)tutanota.com
|
|
||||||
.bottom
|
.bottom
|
||||||
a(href="https://en.wikipedia.org/wiki/Piratbyr%C3%A5n#Kopimi", target="_blank")
|
a(href="https://en.wikipedia.org/wiki/Piratbyr%C3%A5n#Kopimi", target="_blank")
|
||||||
img(src="kopimi.gif")
|
img(src="kopimi.gif")
|
||||||
|
|
|
@ -75,6 +75,9 @@ html
|
||||||
.setting
|
.setting
|
||||||
small By exporting your preferences you can transfer your subscribed subreddits and preferences to another device. Or you could create a bookmark if you tend to delete your cookies frequently.
|
small By exporting your preferences you can transfer your subscribed subreddits and preferences to another device. Or you could create a bookmark if you tend to delete your cookies frequently.
|
||||||
br
|
br
|
||||||
|
label(for="export_saved") Export saved posts:
|
||||||
|
input(type="checkbox", name="export_saved", id="export_saved")
|
||||||
|
br
|
||||||
input(type="submit", value="Export preferences")
|
input(type="submit", value="Export preferences")
|
||||||
if preferences_key
|
if preferences_key
|
||||||
- var protocol = 'http'
|
- var protocol = 'http'
|
||||||
|
@ -89,5 +92,8 @@ html
|
||||||
.setting
|
.setting
|
||||||
small By exporting your preferences you can transfer your subscribed subreddits and preferences to another device. Or you could create a bookmark if you tend to delete your cookies frequently.
|
small By exporting your preferences you can transfer your subscribed subreddits and preferences to another device. Or you could create a bookmark if you tend to delete your cookies frequently.
|
||||||
br
|
br
|
||||||
|
label(for="export_saved") Export saved posts:
|
||||||
|
input(type="checkbox", name="export_saved", id="export_saved")
|
||||||
|
br
|
||||||
input(type="submit", value="Export preferences")
|
input(type="submit", value="Export preferences")
|
||||||
include includes/footer.pug
|
include includes/footer.pug
|
||||||
|
|
Loading…
Reference in New Issue