UNPKG

sportsbet-mobile

Version:
155 lines (132 loc) • 3.41 kB
/// <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; });