Add share routes
parent
08e6cd06d0
commit
7cd279352e
|
|
@ -66,7 +66,7 @@ export class EventLargeComponent implements AfterContentInit {
|
|||
var monthNum = this.startDate.getMonth();
|
||||
var monthName = '';
|
||||
monthName = MONTHS_FULL[monthNum];
|
||||
return "/cim/" + monthName + "/" + this.startDate.getDate();
|
||||
return "/api2/cim/" + monthName + "/" + this.startDate.getDate();
|
||||
}
|
||||
|
||||
constructor(private dialog: MdDialog){
|
||||
|
|
@ -84,7 +84,7 @@ export class EventLargeComponent implements AfterContentInit {
|
|||
|
||||
share(){
|
||||
let opts = new MdDialogConfig;
|
||||
opts.data = { prefix: 'd', id: this.id, title: this.title, description: this.description };
|
||||
opts.data = { prefix: 'e', id: this.id, title: this.title, description: this.description };
|
||||
let dialog = this.dialog.open(SharePopupComponent, opts);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ export class SharePopupComponent implements OnInit {
|
|||
public twitterUrl: string;
|
||||
private id: string;
|
||||
public facebookIframeUrl: string;
|
||||
private shareBaseUrl: string = "https://ofbbutte.com/api/share/";
|
||||
private shareBaseUrl: string = "https://ofbbutte.com/api2/share/";
|
||||
public shareUrl: string;
|
||||
|
||||
constructor(@Inject(MD_DIALOG_DATA) public data: any, private mdDialogRef: MdDialogRef<SharePopupComponent>, private snackbar: MdSnackBar) {
|
||||
|
|
|
|||
|
|
@ -4,14 +4,10 @@ const path = require('path');
|
|||
const { execFile } = require('child_process');
|
||||
const fs = require('fs');
|
||||
|
||||
app.use('/api/share/*',function(req,res){
|
||||
console.log(req.originalUrl);
|
||||
var fullUrl = req.protocol + '://' + req.hostname + req.originalUrl;
|
||||
res.send(fullUrl);
|
||||
});
|
||||
app.use('/api2/share',require('./routes/share'));
|
||||
|
||||
|
||||
app.get('/api/cim/:month/:day',function(req,res){
|
||||
app.get('/api2/cim/:month/:day',function(req,res){
|
||||
console.log(__dirname);
|
||||
var file = __dirname + '/calendar_image_maker/generated_images/' + req.params.month + '_' + req.params.day + '.png';
|
||||
if (fs.existsSync(file)){
|
||||
|
|
|
|||
|
|
@ -0,0 +1,8 @@
|
|||
var mysql = require("mysql");
|
||||
|
||||
module.exports = mysql.createConnection({
|
||||
user: "ofbapi",
|
||||
password: "87hjdusiodksyeunsjkdis7",
|
||||
database: "ofb",
|
||||
multipleStatements: true
|
||||
});
|
||||
|
|
@ -0,0 +1,101 @@
|
|||
var connection = require("./connection");
|
||||
var dbEvents = this;
|
||||
|
||||
exports.getEvent = function(eventId, callback, includeDeleted){
|
||||
var query = "SELECT * FROM Events WHERE Id = ? AND DeletedDate IS NULL;";
|
||||
if (includeDeleted === true){
|
||||
query = "SELECT * FROM Events WHERE Id = ?;";
|
||||
}
|
||||
connection.query(query,[eventId],function(error,rows,fields){
|
||||
if (error){
|
||||
console.log(error);
|
||||
callback(error);
|
||||
return;
|
||||
}
|
||||
|
||||
var event = null;
|
||||
if (rows.length > 0){
|
||||
event = {};
|
||||
event.id = rows[0].Id;
|
||||
event.startDate = rows[0].StartDate;
|
||||
event.endDate = rows[0].EndDate;
|
||||
event.title = rows[0].Title;
|
||||
event.description = rows[0].Description;
|
||||
}
|
||||
callback(null,event);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
exports.getEvents = function(pageSize, pageNumber,callback){
|
||||
var cd = new Date();
|
||||
var offset = (pageNumber - 1) * pageSize;
|
||||
connection.query("SELECT * FROM Events WHERE DeletedDate IS NULL AND StartDate >= ? ORDER BY StartDate ASC LIMIT ?,?;",[cd,offset,pageSize],function(err,rows,fields){
|
||||
if (err){
|
||||
console.log(err);
|
||||
callback(err);
|
||||
return;
|
||||
}
|
||||
var events = [];
|
||||
for (var i = 0; i < rows.length; i++){
|
||||
var event = {};
|
||||
event.id = rows[i].Id;
|
||||
event.startDate = rows[i].StartDate;
|
||||
event.endDate = rows[i].EndDate;
|
||||
event.title = rows[i].Title;
|
||||
event.description = rows[i].Description;
|
||||
events.push(event);
|
||||
}
|
||||
console.log(events);
|
||||
callback(null,events);
|
||||
});
|
||||
};
|
||||
|
||||
exports.insertEvent = function(titleOrEventObject, startDateOrCallbackFunction, endDate, description, callback){
|
||||
if (typeof startDateOrCallbackFunction === 'function'){
|
||||
insertEventFromObject(titleOrEventObject, startDateOrCallbackFunction);
|
||||
return;
|
||||
}
|
||||
//date string needs to be in the following format: yyyy-mm-dd-hh-mm
|
||||
var startDte = new Date(startDateOrCallbackFunction);
|
||||
var endDte = new Date(endDate);
|
||||
connection.query("INSERT INTO Events (CreatedDate,ModifiedDate,Id,Title,StartDate,EndDate,Description) VALUES(CURRENT_TIMESTAMP,CURRENT_TIMESTAMP,NULL,?,?,?,?)",[titleOrEventObject,startDte,endDte,description],function(error,result){
|
||||
if (error){
|
||||
console.log(error);
|
||||
callback(error);
|
||||
return;
|
||||
}
|
||||
dbEvents.getEvent(result.insertId,function(error,event){
|
||||
if (error){
|
||||
callback(error);
|
||||
return;
|
||||
}
|
||||
callback(null,event);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function insertEventFromObject(event, callback){
|
||||
dbSermons.insertSermon(event.title,event.startDate,event.endDate,evvent.description,callback);
|
||||
}
|
||||
|
||||
exports.deleteEvent = function(eventIdOrEventObject, callback){
|
||||
if (typeof eventIdOrEventObject !== 'number'){
|
||||
eventIdOrEventObject = eventIdOrEventObject.id;
|
||||
}
|
||||
connection.query("UPDATE Events SET DeletedDate = CURRENT_TIMESTAMP WHERE Id = ?;",[eventIdOrEventObject],function(error,result){
|
||||
if (error){
|
||||
console.log(error);
|
||||
callback(error);
|
||||
return;
|
||||
}
|
||||
dbSermons.getEvent(eventIdOrEventObject,function(error,event){
|
||||
if (error){
|
||||
callback(error);
|
||||
return;
|
||||
}
|
||||
console.log(event);
|
||||
callback(null,{"affectedRows":result.affectedRows,"event":event});
|
||||
},true);
|
||||
});
|
||||
}
|
||||
|
|
@ -0,0 +1,155 @@
|
|||
var connection = require("./connection");
|
||||
var dbSermons = this;
|
||||
|
||||
exports.getSermon = function(sermonId, callback, includeDeleted){
|
||||
var query = "SELECT * FROM Sermons WHERE Id = ? AND DeletedDate IS NULL;";
|
||||
if (includeDeleted === true){
|
||||
query = "SELECT * FROM Sermons WHERE Id = ?;";
|
||||
}
|
||||
connection.query(query,[sermonId],function(error,rows,fields){
|
||||
if (error){
|
||||
console.log(error);
|
||||
callback(error);
|
||||
return;
|
||||
}
|
||||
|
||||
var sermon = null;
|
||||
if (rows.length > 0){
|
||||
sermon = {};
|
||||
sermon.id = rows[0].Id;
|
||||
sermon.date = rows[0].Date;
|
||||
sermon.title = rows[0].Title;
|
||||
sermon.author = rows[0].Author;
|
||||
sermon.description = rows[0].Description;
|
||||
sermon.file = rows[0].File;
|
||||
}
|
||||
callback(null,sermon);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
exports.getSermons = function(pageSize, pageNumber,callback){
|
||||
var offset = (pageNumber - 1) * pageSize;
|
||||
connection.query("SELECT * FROM Sermons WHERE DeletedDate IS NULL ORDER BY Date DESC LIMIT ?,?;",[offset,pageSize],function(err,rows,fields){
|
||||
if (err){
|
||||
console.log(err);
|
||||
callback(err);
|
||||
return;
|
||||
}
|
||||
var sermons = [];
|
||||
for (var i = 0; i < rows.length; i++){
|
||||
var sermon = {};
|
||||
sermon.id = rows[i].Id;
|
||||
sermon.date = rows[i].Date;
|
||||
sermon.title = rows[i].Title;
|
||||
sermon.author = rows[i].Author;
|
||||
sermon.description = rows[i].Description;
|
||||
sermon.file = rows[i].File;
|
||||
sermons.push(sermon);
|
||||
}
|
||||
callback(null,sermons);
|
||||
});
|
||||
};
|
||||
|
||||
exports.searchSermons = function(pageSize, pageNumber, searchTerm, callback){
|
||||
var offset = (pageNumber - 1) * pageSize;
|
||||
searchTerm = '%' + searchTerm + '%';
|
||||
connection.query("SELECT * FROM Sermons WHERE DeletedDate IS NULL AND (Title LIKE ? OR Author LIKE ? OR Description LIKE ? OR Date LIKE ?) ORDER BY Id DESC LIMIT ?,?;",[searchTerm,searchTerm,searchTerm,searchTerm,offset,pageSize],function(err,rows,fields){
|
||||
if (err){
|
||||
console.log(err);
|
||||
callback(err);
|
||||
return;
|
||||
}
|
||||
var sermons = [];
|
||||
for (var i = 0; i < rows.length; i++){
|
||||
var sermon = {};
|
||||
sermon.id = rows[i].Id;
|
||||
sermon.date = rows[i].Date;
|
||||
sermon.title = rows[i].Title;
|
||||
sermon.author = rows[i].Author;
|
||||
sermon.description = rows[i].Description;
|
||||
sermon.file = rows[i].File;
|
||||
sermons.push(sermon);
|
||||
}
|
||||
callback(null,sermons);
|
||||
});
|
||||
}
|
||||
|
||||
exports.insertSermon = function(dateOrSermonObject, titleOrCallbackFunction, author, description, file, callback){
|
||||
if (typeof title === 'function'){
|
||||
insertSermonFromObject(dateOrSermonObject,titleOrCallbackFunction);
|
||||
return;
|
||||
}
|
||||
//date string needs to be in the following format: yyyy-mm-dd-hh-mm
|
||||
var str = dateOrSermonObject.split(/\D/);
|
||||
dateOrSermonObject = new Date(str[0],--str[1],str[2],str[3],str[4]);
|
||||
connection.query("INSERT INTO Sermons (CreatedDate,ModifiedDate,Id,Date,Title,Author,Description,File) VALUES(?,CURRENT_TIMESTAMP,NULL,?,?,?,?,?)",[new Date,dateOrSermonObject,titleOrCallbackFunction,author,description,file],function(error,result){
|
||||
if (error){
|
||||
console.log(error);
|
||||
callback(error);
|
||||
return;
|
||||
}
|
||||
dbSermons.getSermon(result.insertId,function(error,sermon){
|
||||
if (error){
|
||||
callback(error);
|
||||
return;
|
||||
}
|
||||
callback(null,sermon);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function insertSermonFromObject(sermon, callback){
|
||||
dbSermons.insertSermon(sermon.date,sermon.title,sermon.author,sermon.description,sermon.file,callback);
|
||||
}
|
||||
|
||||
exports.updateSermon = function(sermonIdOrSermonObject, dateOrCallbackFunction, title, author, description, callback){
|
||||
if (typeof dateOrCallbackFunction == 'function'){
|
||||
updateSermonFromObject(sermonIdOrSermonObject,callback);
|
||||
return;
|
||||
}
|
||||
if (typeof dateOrCallbackFunction != 'date'){
|
||||
//date string needs to be in the following format: yyyy-mm-dd-hh-mm
|
||||
var str = dateOrCallbackFunction.split(/\D/);
|
||||
dateOrCallbackFunction = new Date(str[0],--str[1],str[2],str[3],str[4]);
|
||||
}
|
||||
connection.query("UPDATE Sermons SET ModifiedDate = CURRENT_TIMESTAMP, Date = ?, Title = ?, Author = ?, Description = ? WHERE Id = ?",[dateOrCallbackFunction,title,author,description,sermonIdOrSermonObject],function(error,result){
|
||||
if (error){
|
||||
console.log(error);
|
||||
callback(error);
|
||||
return;
|
||||
}
|
||||
dbSermons.getSermon(sermonIdOrSermonObject,function(error,sermon){
|
||||
if (error){
|
||||
callback(error);
|
||||
return;
|
||||
}
|
||||
callback(null,{"changedRows":result.changedRows,"sermon":sermon});
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
function updateSermonFromObject(sermon, callback){
|
||||
dbSermons.updateSermon(sermon.id,sermon.date,sermon.title,sermon.author,sermon.description,callback);
|
||||
}
|
||||
|
||||
exports.deleteSermon = function(sermonIdOrSermonObject, callback){
|
||||
if (typeof sermonIdOrSermonObject !== 'number'){
|
||||
sermonIdOrSermonObject = sermonIdOrSermonObject.id;
|
||||
}
|
||||
connection.query("UPDATE Sermons SET DeletedDate = CURRENT_TIMESTAMP WHERE Id = ?;",[sermonIdOrSermonObject],function(error,result){
|
||||
if (error){
|
||||
console.log(error);
|
||||
callback(error);
|
||||
return;
|
||||
}
|
||||
dbSermons.getSermon(sermonIdOrSermonObject,function(error,sermon){
|
||||
if (error){
|
||||
callback(error);
|
||||
return;
|
||||
}
|
||||
console.log(sermon);
|
||||
callback(null,{"affectedRows":result.affectedRows,"sermon":sermon});
|
||||
},true);
|
||||
});
|
||||
}
|
||||
|
|
@ -18,6 +18,11 @@
|
|||
"resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
|
||||
"integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
|
||||
},
|
||||
"bignumber.js": {
|
||||
"version": "4.0.2",
|
||||
"resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-4.0.2.tgz",
|
||||
"integrity": "sha1-LR3DfuWWiGfs6pC22k0W5oYI0h0="
|
||||
},
|
||||
"content-disposition": {
|
||||
"version": "0.5.2",
|
||||
"resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz",
|
||||
|
|
@ -38,6 +43,11 @@
|
|||
"resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
|
||||
"integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
|
||||
},
|
||||
"core-util-is": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
|
||||
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
|
||||
},
|
||||
"debug": {
|
||||
"version": "2.6.8",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz",
|
||||
|
|
@ -156,6 +166,11 @@
|
|||
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.4.0.tgz",
|
||||
"integrity": "sha1-KWrKh4qCGBbluF0KKFqZvP9FgvA="
|
||||
},
|
||||
"isarray": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
|
||||
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
|
||||
},
|
||||
"media-typer": {
|
||||
"version": "0.3.0",
|
||||
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
|
||||
|
|
@ -194,6 +209,17 @@
|
|||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
||||
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
|
||||
},
|
||||
"mysql": {
|
||||
"version": "2.14.1",
|
||||
"resolved": "https://registry.npmjs.org/mysql/-/mysql-2.14.1.tgz",
|
||||
"integrity": "sha512-ZPXqQeYH7L1QPDyC77Rcp32cNCQnNjz8Y4BbF17tOjm5yhSfjFa3xS4PvuxWJtEEmwVc4ccI7sSntj4eyYRq0A==",
|
||||
"requires": {
|
||||
"bignumber.js": "4.0.2",
|
||||
"readable-stream": "2.3.3",
|
||||
"safe-buffer": "5.1.1",
|
||||
"sqlstring": "2.2.0"
|
||||
}
|
||||
},
|
||||
"negotiator": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz",
|
||||
|
|
@ -217,6 +243,11 @@
|
|||
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
|
||||
"integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
|
||||
},
|
||||
"process-nextick-args": {
|
||||
"version": "1.0.7",
|
||||
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
|
||||
"integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M="
|
||||
},
|
||||
"proxy-addr": {
|
||||
"version": "1.1.5",
|
||||
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.1.5.tgz",
|
||||
|
|
@ -236,6 +267,25 @@
|
|||
"resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz",
|
||||
"integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4="
|
||||
},
|
||||
"readable-stream": {
|
||||
"version": "2.3.3",
|
||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz",
|
||||
"integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==",
|
||||
"requires": {
|
||||
"core-util-is": "1.0.2",
|
||||
"inherits": "2.0.3",
|
||||
"isarray": "1.0.0",
|
||||
"process-nextick-args": "1.0.7",
|
||||
"safe-buffer": "5.1.1",
|
||||
"string_decoder": "1.0.3",
|
||||
"util-deprecate": "1.0.2"
|
||||
}
|
||||
},
|
||||
"safe-buffer": {
|
||||
"version": "5.1.1",
|
||||
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
|
||||
"integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg=="
|
||||
},
|
||||
"send": {
|
||||
"version": "0.15.4",
|
||||
"resolved": "https://registry.npmjs.org/send/-/send-0.15.4.tgz",
|
||||
|
|
@ -272,11 +322,24 @@
|
|||
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz",
|
||||
"integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ="
|
||||
},
|
||||
"sqlstring": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.2.0.tgz",
|
||||
"integrity": "sha1-wxNcTqirzX5+50GklmqJHYak8ZE="
|
||||
},
|
||||
"statuses": {
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz",
|
||||
"integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4="
|
||||
},
|
||||
"string_decoder": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
|
||||
"integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
|
||||
"requires": {
|
||||
"safe-buffer": "5.1.1"
|
||||
}
|
||||
},
|
||||
"type-is": {
|
||||
"version": "1.6.15",
|
||||
"resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz",
|
||||
|
|
@ -291,6 +354,11 @@
|
|||
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
|
||||
"integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
|
||||
},
|
||||
"util-deprecate": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
|
||||
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
|
||||
},
|
||||
"utils-merge": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz",
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@
|
|||
"author": "",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"express": "^4.15.4"
|
||||
"express": "^4.15.4",
|
||||
"mysql": "^2.14.1"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,9 +2,18 @@ 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 = '/sermons/s';
|
||||
|
||||
|
||||
router.get("/:shareCode",function(req,res){
|
||||
var fullUrl = req.protocol + '://' + req.hostname + ':' + req.socket.localPort + req.originalUrl;
|
||||
console.log("Full");
|
||||
console.log(fullUrl);
|
||||
var sharecode = req.params.shareCode;
|
||||
var type = sharecode.substring(0,1);
|
||||
var param = sharecode.substring(1);
|
||||
|
|
@ -20,16 +29,18 @@ router.get("/:shareCode",function(req,res){
|
|||
|
||||
function getSermon(req, res, id){
|
||||
var userAgent = req.headers['user-agent'];
|
||||
var userAgentOverride = req.headers['user-agent-override'];
|
||||
userAgent = userAgentOverride || userAgent;
|
||||
if (userAgent.startsWith('facebookexternalhit/1.1') ||
|
||||
userAgent === 'Facebot' ||
|
||||
userAgent.startsWith('Twitterbot')) {
|
||||
getSermonMeta(res, id);
|
||||
getSermonMeta(req, res, id);
|
||||
} else {
|
||||
res.redirect("https://ofbbutte.com/sermons/" + id);
|
||||
}
|
||||
}
|
||||
|
||||
function getSermonMeta(res, id){
|
||||
function getSermonMeta(req, res, id){
|
||||
dbSermons.getSermon(id,function(error,sermon){
|
||||
if (error){
|
||||
res.status(404).json({"status":404,"message":"Error processing request"});
|
||||
|
|
@ -40,16 +51,20 @@ function getSermonMeta(res, id){
|
|||
return;
|
||||
}
|
||||
|
||||
var port = req.socket.localPort;
|
||||
var imageUrl = req.protocol + "://" + req.hostname + ":" + port + sermonImageUrl;
|
||||
var srmnUrl = req.protocol + "://" + req.hostname + ":" + port + sermonUrl + sermon.id;
|
||||
|
||||
var result = `<html>
|
||||
<head>
|
||||
<title>Old Fashion Baptist Church</title>
|
||||
<!-- You can use Open Graph tags to customize link previews.
|
||||
Learn more: https://developers.facebook.com/docs/sharing/webmasters -->
|
||||
<meta property="og:url" content="https://ofbbutte.com/api/share/s`+ sermon.id +`"/>
|
||||
<meta property="og:url" content="`+ srmnUrl +`"/>
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:title" content="` + sermon.title + `" />
|
||||
<meta property="og:description" content="` + sermon.description + `" />
|
||||
<meta property="og:image" content="https://ofbbutte.com/static/ofbmain/images/facebookplay.png" />
|
||||
<meta property="og:image" content="` + imageUrl + `" />
|
||||
</head>
|
||||
<body>
|
||||
</body>
|
||||
|
|
@ -62,22 +77,24 @@ function getSermonMeta(res, id){
|
|||
|
||||
function getEvent(req, res, id){
|
||||
var userAgent = req.headers['user-agent'];
|
||||
var userAgentOverride = req.headers['user-agent-override'];
|
||||
userAgent = userAgentOverride || userAgent;
|
||||
if (userAgent.startsWith('facebookexternalhit/1.1') ||
|
||||
userAgent === 'Facebot' ||
|
||||
userAgent.startsWith('Twitterbot')) {
|
||||
getEventMeta(res, id);
|
||||
getEventMeta(req, res, id);
|
||||
} else {
|
||||
res.redirect("https://ofbbutte.com/events/" + id);
|
||||
}
|
||||
}
|
||||
|
||||
function getEventMeta(res, id){
|
||||
dbSermons.getEvent(id,function(error,event){
|
||||
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 (sermon == null){
|
||||
if (event == null){
|
||||
res.status(404).json({"status":404,"message":"Event does not exist"});
|
||||
return;
|
||||
}
|
||||
|
|
@ -86,16 +103,20 @@ function getEventMeta(res, id){
|
|||
var monthName = MONTHS_FULL[monthNum];
|
||||
var day = event.startDate.getDate();
|
||||
|
||||
var port = req.socket.localPort;
|
||||
var imageUrl = req.protocol + "://" + req.hostname + ":" + port + calendarImageUrl + monthName + "/" + day;
|
||||
var evntUrl = req.protocol + "://" + req.hostname + ":" + port + eventUrl + event.id;
|
||||
|
||||
var result = `<html>
|
||||
<head>
|
||||
<title>Old Fashion Baptist Church</title>
|
||||
<!-- You can use Open Graph tags to customize link previews.
|
||||
Learn more: https://developers.facebook.com/docs/sharing/webmasters -->
|
||||
<meta property="og:url" content="https/share/e`+ event.id +`"/>
|
||||
<meta property="og:url" content="`+ evntUrl +`"/>
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:title" content="` + event.title + `" />
|
||||
<meta property="og:description" content="` + event.description + `" />
|
||||
<meta property="og:image" content="/cim/` + monthName + `/` + day + `"/>
|
||||
<meta property="og:image" content="` + imageUrl + `"/>
|
||||
</head>
|
||||
<body>
|
||||
</body>
|
||||
|
|
|
|||
Loading…
Reference in New Issue