diff --git a/src/services/juxt-web/routes/portal/posts.js b/src/services/juxt-web/routes/portal/posts.js index 4007092..4f3db17 100644 --- a/src/services/juxt-web/routes/portal/posts.js +++ b/src/services/juxt-web/routes/portal/posts.js @@ -2,8 +2,10 @@ var express = require('express'); var xml = require('object-to-xml'); const database = require('../../../../database'); const util = require('../../../../authentication'); +const config = require('../../../../config.json'); const { POST } = require('../../../../models/post'); var multer = require('multer'); +var moment = require('moment'); var upload = multer({ dest: 'uploads/' }); const snowflake = require('node-snowflake').Snowflake; var router = express.Router(); @@ -49,6 +51,48 @@ router.post('/empathy', function (req, res) { }); }); +router.get('/:post_id', function (req, res) { + res.header('X-Nintendo-WhiteList', config.whitelist); + let lang = util.data.processLanguage(req.headers["x-nintendo-parampack"]); + database.connect().then(async e => { + + //let paramPackData = util.data.decodeParamPack(req.headers["x-nintendo-parampack"]); + let pid = util.data.processServiceToken(req.headers["x-nintendo-servicetoken"]); + + if(pid === null) + pid = 1000000000; + let user = await database.getUserByPID(pid); + let post = await database.getPostByID(req.params.post_id.toString()); + res.render('portal/post.ejs', { + moment: moment, + user: user, + post: post, + cdnURL: config.CDN_domain, + lang: lang, + mii_image_CDN: config.mii_image_CDN + }); + user.notification_list.filter(noti => noti.read === false).forEach(function(notification) { + notification.read = true; + }); + user.markModified('notification_list'); + user.save(); + }).catch(error => { + console.log(error); + res.set("Content-Type", "application/xml"); + res.statusCode = 400; + response = { + result: { + has_error: 1, + version: 1, + code: 400, + error_code: 15, + message: "SERVER_ERROR" + } + }; + res.send("\n" + xml(response)); + }); +}); + router.post('/new', upload.none(), async function (req, res, next) { try { diff --git a/src/services/juxt-web/routes/portal/web.js b/src/services/juxt-web/routes/portal/web.js index 285cda6..fbeddd8 100644 --- a/src/services/juxt-web/routes/portal/web.js +++ b/src/services/juxt-web/routes/portal/web.js @@ -243,4 +243,32 @@ router.get('/notifications.json', function (req, res) { }); }); +router.get('/:post_id/oembed.json', function (req, res) { + res.header('X-Nintendo-WhiteList','1|http,youtube.com,,2|https,youtube.com,,2|http,.youtube.com,,2|https,.youtube.com,,2|http,.ytimg.com,,2|https,.ytimg.com,,2|http,.googlevideo.com,,2|https,.googlevideo.com,,2|https,youtube.com,/embed/,6|https,youtube.com,/e/,6|https,youtube.com,/v/,6|https,www.youtube.com,/embed/,6|https,www.youtube.com,/e/,6|https,www.youtube.com,/v/,6|https,youtube.googleapis.com,/e/,6|https,youtube.googleapis.com,/v/,6|http,maps.googleapis.com,/maps/api/streetview,2|https,maps.googleapis.com,/maps/api/streetview,2|http,cbk0.google.com,/cbk,2|https,cbk0.google.com,/cbk,2|http,cbk1.google.com,/cbk,2|https,cbk1.google.com,/cbk,2|http,cbk2.google.com,/cbk,2|https,cbk2.google.com,/cbk,2|http,cbk3.google.com,/cbk,2|https,cbk3.google.com,/cbk,2|https,.cloudfront.net,,2|https,www.google-analytics.com,/,2|https,stats.g.doubleclick.net,,2|https,www.google.com,/ads/,2|https,ssl.google-analytics.com,,2|http,fonts.googleapis.com,,2||fonts.googleapis.com,,2'); + database.connect().then(async e => { + let post = await database.getPostByID(req.params.post_id.toString()); + let user = await database.getUserByPID(post.pid); + let doc = { + "author_name": user.user_id, + "author_url": "https://portal.olv.pretendo.cc/users/show?pid=" + user.pid, + + } + res.send(doc) + }).catch(error => { + console.log(error) + res.set("Content-Type", "application/xml"); + res.statusCode = 400; + response = { + result: { + has_error: 1, + version: 1, + code: 400, + error_code: 15, + message: "SERVER_ERROR" + } + }; + res.send("\n" + xml(response)); + }); +}); + module.exports = router; diff --git a/src/webfiles/portal/post.ejs b/src/webfiles/portal/post.ejs new file mode 100644 index 0000000..5ef3775 --- /dev/null +++ b/src/webfiles/portal/post.ejs @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + <% if(post.screenshot !== '') { %> + + <%}%> + <% if(post.painting !== '') { %> + + <%}%> + + +<%- include('nav_bar', { selection: 3 }); %> +
+

<%= lang.global.messages %>

+
+

<%= lang.messages.coming_soon %>

+
+ +
+ + + \ No newline at end of file