-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathserver.js
86 lines (78 loc) · 2.58 KB
/
server.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
const express = require('express');
const app = express();
const bodyParser = require('body-parser');
app.listen(6906);
app.use(express.static('public'));
app.use(bodyParser.json({limit: '500mb'}));
const url = require('url');
app.set('trust proxy', true);
// Ziggeo - video API
Ziggeo = require('ziggeo');
const myURL = new url.URL(process.env.ZIGGEO_URL);
const ZiggeoSdk = new Ziggeo(myURL.username, myURL.password, myURL.searchParams.get('encryption_key'));
// MailGun - mail API
const nodemailer = require('nodemailer');
const mg = require('nodemailer-mailgun-transport');
const auth = {
auth: {
api_key: process.env.API_KEY,
domain: 'ziggeo.vimgirl.com'
}
};
const nodemailerMailgun = nodemailer.createTransport(mg(auth));
// Timber - logging API
const timber = require('timber');
const transport = new timber.transports.HTTPS(process.env.TIMBER_API_KEY);
timber.install(transport);
app.use(timber.middlewares.express({
capture_request_body: true
}));
app.post('/mail', (req, res) => {
const mailTo = req.body.mailTo;
nodemailerMailgun.sendMail({
from: '[email protected]',
to: mailTo,
subject: `You've got VidMail!`,
text: `To view your VidMail, go to https://hello.vimgirl.com/videos/?email=${mailTo}!`
}, (err, info) => {
if (err) {
console.error("VidMail was not sent.", {
event: { mail_fail: { err } }
});
}
else {
console.info("VidMail sent!", {
event: { mail_success: { info } }
});
}
});
});
app.get('/videos', (req, res) => {
ZiggeoSdk.Videos.index({tags: req.query.email}, (vidInfos) => {
const videos = vidInfos.reduce((acc, vidInfo) => {
acc += `<div class="vid-singles"><ziggeoplayer ziggeo-video="${vidInfo.token}" ziggeo-width=320 ziggeo-height=240 ziggeo-theme="modern" ziggeo-themecolor="red"></ziggeo></div>`;
return acc;
}, '');
res.send(`
<head>
<link rel="stylesheet" href="//assets-cdn.ziggeo.com/v2-stable/ziggeo.css" />
<script src="//assets-cdn.ziggeo.com/v2-stable/ziggeo.js"></script>
<link rel="stylesheet" type="text/css" href="//fonts.googleapis.com/css?family=Lobster" />
<link rel="stylesheet" type="text/css" href="../index.css"></link>
</head>
<body>
<div class="vid-container">
<div class="vid-title">
<div class="title">Welcome to your <text class="vid-mail">VidMailBox</text>, <u>${req.query.email}</u>!</div>
</div>
<div class="vid-center">${videos}</div>
</div>
<script>
const ziggeoApp = new ZiggeoApi.V2.Application({
token: "f181815deef925afd6e72d76fb78bf0d"
});
</script>
</body>
`);
});
});