support wiki sub pages

This commit is contained in:
teddit 2021-04-24 22:42:58 +02:00
parent 2ebdb24850
commit 424444afc8
1 changed files with 16 additions and 6 deletions

View File

@ -982,13 +982,17 @@ module.exports = (app, redis, fetch, RedditAPI) => {
})
})
app.get('/r/:subreddit/wiki/:page?', (req, res, next) => {
app.get('/r/:subreddit/wiki/:page?/:sub_page?', (req, res, next) => {
let subreddit = req.params.subreddit
let page = req.params.page
let sub_page = req.params.sub_page || ''
if(!page)
page = 'index'
if(sub_page != '')
sub_page = `/${sub_page}`
function formatWikipagelisting(json, subreddit) {
let html = '<ul class="wikipagelisting">'
if(json.kind === 'wikipagelisting' && json.data) {
@ -1001,7 +1005,7 @@ module.exports = (app, redis, fetch, RedditAPI) => {
return html
}
let key = `${subreddit.toLowerCase()}:wiki:page:${page}`
let key = `${subreddit.toLowerCase()}:wiki:page:${page}:sub_page:${sub_page}`
redis.get(key, (error, json) => {
if(error) {
console.error(`Error getting the ${subreddit} wiki key from redis.`, error)
@ -1018,9 +1022,9 @@ module.exports = (app, redis, fetch, RedditAPI) => {
} else {
let url = ''
if(config.use_reddit_oauth)
url = `https://oauth.reddit.com/r/${subreddit}/wiki/${page}?api_type=json`
url = `https://oauth.reddit.com/r/${subreddit}/wiki/${page}${sub_page}?api_type=json`
else
url = `https://reddit.com/r/${subreddit}/wiki/${page}.json?api_type=json`
url = `https://reddit.com/r/${subreddit}/wiki/${page}${sub_page}.json?api_type=json`
fetch(encodeURI(url), redditApiGETHeaders())
.then(result => {
if(result.status === 200) {
@ -1060,13 +1064,19 @@ module.exports = (app, redis, fetch, RedditAPI) => {
})
})
app.get('/r/:subreddit/w/:page?', (req, res, next) => {
app.get('/r/:subreddit/w/:page?/:sub_page?', (req, res, next) => {
/* "w" is a shorturl for wikis for example https://old.reddit.com/r/privacytoolsIO/w/index */
let subreddit = req.params.subreddit
let page = req.params.page
let sub_page = req.params.sub_page || ''
if(!page)
page = 'index'
return res.redirect(`/r/${subreddit}/wiki/${page}`)
if(sub_page != '')
sub_page = `/${sub_page}`
return res.redirect(`/r/${subreddit}/wiki/${page}${sub_page}`)
})
app.get('/r/random', (req, res, next) => {