var express = require('express'); var router = express.Router(); var dbSermons = require('../../database/sermons'); var dbEvents = require('../../database/events'); const calendarImageUrl = '/api2/cim/'; const eventUrl = '/api2/share/e'; const sermonImageUrl = '/assets/images/facebookplay.png'; const sermonUrl = '/api2/share/s'; router.get("/:shareCode",function(req,res){ var fullUrl = req.protocol + '://' + req.hostname + req.originalUrl; console.log("Full"); console.log(fullUrl); var sharecode = req.params.shareCode; var type = sharecode.substring(0,1); var param = sharecode.substring(1); console.log("type: " + type + "; param: " + param); switch(type){ case "s": return getSermon(req, res, param); case "e": return getEvent(req,res,param); } }); function getSermon(req, res, id){ console.log(req.headers); var userAgent = req.headers['user-agent']; var userAgentOverride = req.headers['user-agent-override']; var referrer = req.headers['referer'] || ""; userAgent = userAgentOverride || userAgent; if (userAgent.startsWith('facebookexternalhit/1.1') || userAgent === 'Facebot' || userAgent.startsWith('Twitterbot') || referrer.startsWith('http://opengraphcheck.com')) { getSermonMeta(req, res, id); } else { var url = req.protocol + "://" + req.hostname + "/sermons/" + id; res.redirect(url); } } function getSermonMeta(req, res, id){ dbSermons.getSermon(id,function(error,sermon){ if (error){ res.status(404).json({"status":404,"message":"Error processing request"}); return; } if (sermon == null){ res.status(404).json({"status":404,"message":"Sermon does not exist"}); return; } var port = req.socket.localPort; var imageUrl = req.protocol + "://" + req.hostname + sermonImageUrl; var srmnUrl = req.protocol + "://" + req.hostname + sermonUrl + sermon.id; var result = ` Old Fashion Baptist Church `; res.set('Content-Type', 'text/html'); res.send(new Buffer(result)); }); } function getEvent(req, res, id){ var userAgent = req.headers['user-agent']; var userAgentOverride = req.headers['user-agent-override']; var referrer = req.headers['referer'] || ""; userAgent = userAgentOverride || userAgent; if (userAgent.startsWith('facebookexternalhit/1.1') || userAgent === 'Facebot' || userAgent.startsWith('Twitterbot' || referrer.startsWith('http://opengraphcheck.com'))) { getEventMeta(req, res, id); } else { var url = req.protocol + "://" + req.hostname + "/events/" + id; res.redirect(url); } } function getEventMeta(req, res, id){ dbEvents.getEvent(id,function(error,event){ if (error){ res.status(404).json({"status":404,"message":"Error processing request"}); return; } if (event == null){ res.status(404).json({"status":404,"message":"Event does not exist"}); return; } console.log("Start"); console.log(event.startDate.toString()); console.log(event.startDate.getTimezoneOffset()); var monthNum = event.startDate.getMonth(); var monthName = MONTHS_FULL[monthNum]; var day = event.startDate.getDate(); var year = event.startDate.getYear(); var hour = event.startDate.getHours(); var minutes = event.startDate.getMinutes(); var time = event.startDate.getTime(); var utc = event.startDate.getTime() + (event.startDate.getTimezoneOffset() * 60000); //mountain time zone offset var nd = new Date(utc + (3600000*-6)); var port = req.socket.localPort; var imageUrl = req.protocol + "://" + req.hostname + calendarImageUrl + monthName + "/" + day; var evntUrl = req.protocol + "://" + req.hostname + eventUrl + event.id; var result = ` Old Fashion Baptist Church `; res.set('Content-Type', 'text/html'); res.send(new Buffer(result)); }); } function dateToString(dte){ var val = dte.toLocaleString([],{ day: 'numeric', month: 'numeric', year: 'numeric', hour: 'numeric', minute:'2-digit'}); console.log(val); return val; } const MONTHS_FULL = { 0: "JANUARY", 1: "FEBRUARY", 2: "MARCH", 3: "APRIL", 4: "MAY", 5: "JUNE", 6: "JULY", 7: "AUGUST", 8: "SEPTEMBER", 9: "OCTOBER", 10: "NOVEMBER", 11: "DECEMBER" }; module.exports = router;