testing embed data

This commit is contained in:
CaramelKat
2021-09-05 22:48:22 -05:00
committed by jay.poff@outlook.com
parent eaeb6e9615
commit 2ca269142c
3 changed files with 112 additions and 0 deletions

View File

@@ -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("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + xml(response));
});
});
router.post('/new', upload.none(), async function (req, res, next) {
try
{

View File

@@ -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("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + xml(response));
});
});
module.exports = router;

View File

@@ -0,0 +1,40 @@
<html>
<head>
<link rel="stylesheet" type="text/css" href="<%= cdnURL %>/css/juxt.css">
<script src="<%= cdnURL %>/js/pjax.min.js"></script>
<script src="<%= cdnURL %>/js/juxt.js"></script>
<!-- Google Analytics -->
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-195842548-1', 'auto');
ga('send', 'pageview');
</script>
<!-- End Google Analytics -->
<meta content="<%= post.screen_name %>" property="og:title" />
<meta content="<%= post.body %>" property="og:description" />
<meta content="https://portal.olv.pretendo.cc/posts/<%= post.id %>" property="og:url" />
<meta content="#1F8A42" data-react-helmet="true" name="theme-color" />
<link type="application/json+oembed" href="/<%= post.id %>/oembed.json" />
<% if(post.screenshot !== '') { %>
<meta name="twitter:card" content="https://portal.cdn.pretendo.cc/screenshot/<%= post.id %>.png">
<%}%>
<% if(post.painting !== '') { %>
<meta name="twitter:card" content="https://portal.cdn.pretendo.cc/drawing/<%= post.id %>.png">
<%}%>
</head>
<body>
<%- include('nav_bar', { selection: 3 }); %>
<div id="main">
<h1 id="title" class="page-header"><%= lang.global.messages %></h1>
<div class="community-page-posts-wrapper">
<p class="no-posts-text"><%= lang.messages.coming_soon %></p>
</div>
<img src="" onerror="wiiuBrowser.showLoadingIcon(!1);window.scroll(0, 0);">
</div>
<body onload="stopLoading();wiiuBrowser.lockUserOperation(false);">
</body>
</html>