sportsbet-mobile
Version:
Sportsbet mobile
155 lines (132 loc) • 3.41 kB
text/typescript
/// <reference path=".#ts/server.d.ts" />
var p = pages.subs;
var siteMap = [];
var Default = {
changefreq: 'Daily',
priority: 1
};
for (var key in p) {
if (p.hasOwnProperty(key)) {
var page = p[key];
var href = page.href;
var subPages = page.subs;
if (page.inSitemap == false) {
continue;
}
siteMap.push({
page: href,
changefreq: page.changefreq ? page.changefreq : Default.changefreq,
priority: page.priority ? page.priority : Default.priority
});
if (subPages) {
for (var subkey in subPages) {
if (subPages.hasOwnProperty(subkey)) {
var subpage = subPages[subkey];
if (subpage.inSitemap == false) {
continue;
}
siteMap.push({
page: subpage.href,
changefreq: subpage.changefreq ? subpage.changefreq : Default.changefreq,
priority: subpage.priority ? subpage.priority : Default.priority
});
}
}
}
}
}
/**
* Game urls
*/
var menu = Casino.MenuItem.db.find({site: 'Mr7ntp9ATnPpNco7t'}).fetch();
menu.forEach(function (m) {
siteMap.push({
page: m.href(),
changefreq: 'Weekly',
priority: 1
});
// Find games for the menu items
var games = Casino.Game.db.find({
active: true,
//type: Casino.GameType.DESKTOP,
"siteSettings.bitcasino.menuItem": m._id,
"siteSettings.bitcasino.active": true
}).fetch();
//console.log('sitemaps.ts 63', m.name, games.length);
games.forEach(function (game: Casino.Game) {
siteMap.push({
//page: href + '/' + m.name.replace(/\s+/g, '-').toLowerCase() + '/' + game.name.replace(/\s+/g, '-'),
page: '/casino/' + game.href(),
changefreq: 'Monthly',
priority: 0.6
});
if (!game.disableFunGames) {
siteMap.push({
page: '/casino/' + game.href() + '/fun',
changefreq: 'Monthly',
priority: 0.6
});
}
});
});
/**
* Content module urls
*/
var contentPages = Content.Page.db.find({
site: 'Mr7ntp9ATnPpNco7t',
device: Content.Device.DESKTOP,
language: Countries.Lang.en,
publishDate: {$lt: new Date},
'section.handle': {$in: ['promotions', 'about', 'bitcoin-info']}
}).fetch();
contentPages.forEach(function (p: Content.Page) {
siteMap.push({
page: p.href(),
changefreq: (<any>p).changefreq ? (<any>p).changefreq : 'Weekly',
priority: (<any>p).priority ? (<any>p).priority : 0.8
});
});
/**
* Prelive sporting events
*/
var categories = Betting.Category.db.find({eventCount: {$gt: 0}, level: 0}, {sort: {orderNr: 1}});
categories.forEach(function (category) {
addCategoryToSitemap(category);
});
function addCategoryToSitemap (category) {
var url = '/sports/pre-live/' + category.makeSeoString() + '/events/' + category._id;
siteMap.push({
page: url,
changefreq: 'Daily',
priority: 0.8
});
addEventsToSitemap(category);
if (category.children.count()) {
category.children.fetch().forEach(function (child) {
if (!(child.eventCount > 0)) {
return;
}
addCategoryToSitemap(child);
});
}
};
function addEventsToSitemap(category) {
category.openEvents().forEach(function(event) {
if (event.marketCount > 0 && moment(event.startTime) > moment()) {
try {
var url = '/sports/pre-live/' + event.makeSeoString() + '/event/' + event._id;
siteMap.push({
page: url,
changefreq: 'Daily',
priority: 0.8
});
}
catch (e) {
Logger.error('Sitemap add events error', e);
}
}
});
}
sitemaps.add('/sitemap.xml', function () {
return siteMap;
});