diff --git a/inc/teddit_api/handleSubreddit.js b/inc/teddit_api/handleSubreddit.js index 54b6e25..1430a90 100644 --- a/inc/teddit_api/handleSubreddit.js +++ b/inc/teddit_api/handleSubreddit.js @@ -30,93 +30,10 @@ module.exports = function () { if (api_type === 'rss') { let protocol = config.https_enabled || config.api_force_https ? 'https' : 'http'; let items = ''; + for (var i = 0; i < json.data.children.length; i++) { - let link = json.data.children[i].data; - let thumbnail = ''; - let post_image = ''; - let is_self_link = false; - let valid_reddit_self_domains = ['reddit.com']; - - if (link.domain) { - let tld = link.domain.split('self.'); - if (tld.length > 1) { - if (!tld[1].includes('.')) { - is_self_link = true; - link.url = teddifyUrl(link.url); - } - } - if ( - config.valid_media_domains.includes(link.domain) || - valid_reddit_self_domains.includes(link.domain) - ) { - is_self_link = true; - link.url = teddifyUrl(link.url); - } - } - - if (link.preview && link.thumbnail !== 'self') { - if (!link.url.startsWith('/r/') && isGif(link.url)) { - let s = await downloadAndSave(link.thumbnail, 'thumb_'); - thumbnail = `${protocol}://${config.domain}${s}`; - } else { - if (link.preview.images[0].resolutions[0]) { - let s = await downloadAndSave( - link.preview.images[0].resolutions[0].url, - 'thumb_' - ); - thumbnail = `${protocol}://${config.domain}${s}`; - if (!isGif(link.url) && !link.post_hint.includes(':video')) { - s = await downloadAndSave(link.preview.images[0].source.url); - post_image = `${protocol}://${config.domain}${s}`; - } - } - } - } - - link.permalink = `${protocol}://${config.domain}${link.permalink}`; - - if (is_self_link) link.url = link.permalink; - - if (req.query.hasOwnProperty('full_thumbs')) { - if (!post_image) post_image = thumbnail; - - thumbnail = post_image; - } - - let enclosure = ''; - if (thumbnail != '') { - let mime = ''; - let ext = thumbnail.split('.').pop(); - if (ext === 'png') mime = 'image/png'; - else mime = 'image/jpeg'; - enclosure = ``; - } - - let append_desc_html = `
[link] [comments]`; - - items += ` - - ${link.title} - ${link.author} - ${link.created} - ${new Date( - link.created_utc * 1000 - ).toGMTString()} - ${link.domain} - ${link.id} - ${thumbnail} - ${enclosure} - ${link.permalink} - ${link.url} - - ${link.num_comments} - ${link.ups} - ${link.stickied} - ${is_self_link} - - `; + let post = json.data.children[i].data; + items += await getPostItem(post, req, protocol); } let r_subreddit = '/r/' + subreddit; @@ -152,43 +69,7 @@ module.exports = function () { req.cookies ); - let protocol = config.https_enabled || config.api_force_https ? 'https' : 'http'; - for (var i = 0; i < processed_json.links.length; i++) { - let link = processed_json.links[i]; - let valid_reddit_self_domains = ['reddit.com']; - let is_self_link = false; - - if (link.domain) { - let tld = link.domain.split('self.'); - if (tld.length > 1) { - if (!tld[1].includes('.')) { - is_self_link = true; - link.url = teddifyUrl(link.url); - } - } - if ( - config.valid_media_domains.includes(link.domain) || - valid_reddit_self_domains.includes(link.domain) - ) { - is_self_link = true; - link.url = teddifyUrl(link.url); - } - } - - link.permalink = `${protocol}://${config.domain}${link.permalink}`; - - if (is_self_link) link.url = link.permalink; - - if (link.images) { - if (link.images.thumb !== 'self') { - link.images.thumb = `${protocol}://${config.domain}${link.images.thumb}`; - } - } - - if (mode === 'light') { - link.selftext_html = null; - } - } + await processJsonPostList(processed_json.links, mode); return res.end(JSON.stringify(processed_json)); }