diff --git a/app/controllers/admin.js b/app/controllers/admin.js index 268c626..bdc6165 100644 --- a/app/controllers/admin.js +++ b/app/controllers/admin.js @@ -44,7 +44,6 @@ class AdminController extends SiteController { }), ); - router.use('/domain',await this.loadChild(path.join(__dirname, 'admin', 'domain'))); router.use('/host',await this.loadChild(path.join(__dirname, 'admin', 'host'))); router.use('/job-queue',await this.loadChild(path.join(__dirname, 'admin', 'job-queue'))); router.use('/user', await this.loadChild(path.join(__dirname, 'admin', 'user'))); diff --git a/app/controllers/admin/domain.js b/app/controllers/admin/domain.js deleted file mode 100644 index e11b165..0000000 --- a/app/controllers/admin/domain.js +++ /dev/null @@ -1,91 +0,0 @@ -// admin/domain.js -// Copyright (C) 2021 Digital Telepresence, LLC -// License: Apache-2.0 - -'use strict'; - -const express = require('express'); - -const { /*SiteError,*/ SiteController } = require('../../../lib/site-lib'); - -class DomainController extends SiteController { - - constructor (dtp) { - super(dtp, 'admin:domain'); - } - - async start ( ) { - const router = express.Router(); - router.use(async (req, res, next) => { - res.locals.currentView = 'admin'; - res.locals.adminView = 'domain'; - return next(); - }); - - router.param('domainId', this.populateDomainId.bind(this)); - - router.post('/:domainId', this.postUpdateDomain.bind(this)); - router.post('/', this.postCreateDomain.bind(this)); - - router.get('/create', this.getCreateForm.bind(this)); - router.get('/:domainId', this.getDomainView.bind(this)); - - router.get('/', this.getHomeView.bind(this)); - - return router; - } - - async populateDomainId (req, res, next, domainId) { - const { domain: domainService } = this.dtp.services; - try { - res.locals.domain = await domainService.getById(domainId); - return next(); - } catch (error) { - return next(error); - } - } - - async postUpdateDomain (req, res, next) { - const { domain: domainService } = this.dtp.services; - try { - await domainService.update(res.locals.domain, req.body); - res.redirect('/admin/domain'); - } catch (error) { - return next(error); - } - } - - async postCreateDomain (req, res, next) { - const { domain: domainService } = this.dtp.services; - try { - res.locals.domain = await domainService.create(req.body); - res.redirect(`/admin/domain/${res.locals.domain._id}`); - } catch (error) { - return next(error); - } - } - - async getDomainView (req, res) { - res.render('admin/domain/form'); - } - - async getCreateForm (req, res) { - res.render('admin/domain/form'); - } - - async getHomeView (req, res, next) { - const { domain: domainService } = this.dtp.services; - try { - res.locals.pagination = this.getPaginationParameters(req, 10); - res.locals.domains = await domainService.getDomains(res.locals.pagination); - res.render('admin/domain/index'); - } catch (error) { - return next(error); - } - } -} - -module.exports = async (dtp) => { - let controller = new DomainController(dtp); - return controller; -}; diff --git a/app/controllers/admin/job-queue.js b/app/controllers/admin/job-queue.js index e4b5f79..bef0df6 100644 --- a/app/controllers/admin/job-queue.js +++ b/app/controllers/admin/job-queue.js @@ -1,10 +1,10 @@ -// admin/domain.js +// admin/job-queue.js // Copyright (C) 2021 Digital Telepresence, LLC // License: Apache-2.0 'use strict'; -const DTP_COMPONENT_NAME = 'admin:domain'; +const DTP_COMPONENT_NAME = 'admin:job-queue'; const express = require('express'); const { /*SiteError,*/ SiteController } = require('../../../lib/site-lib'); diff --git a/app/controllers/manifest.js b/app/controllers/manifest.js index 2468a1f..a10d4d0 100644 --- a/app/controllers/manifest.js +++ b/app/controllers/manifest.js @@ -52,7 +52,7 @@ class ManifestController extends SiteController { [512, 384, 256, 192, 144, 96, 72, 48, 32, 16].forEach((size) => { manifest.icons.push({ - src: `/img/icon/${this.dtp.config.site.domainKey}/icon-${size}x${size}.png`, + src: `/img/icon/icon-${size}x${size}.png`, sizes: `${size}x${size}`, type: 'image/png' }); diff --git a/app/models/article.js b/app/models/article.js index 6ff2089..663ee14 100644 --- a/app/models/article.js +++ b/app/models/article.js @@ -9,7 +9,6 @@ const mongoose = require('mongoose'); const Schema = mongoose.Schema; const ArticleSchema = new Schema({ - domain: { type: Schema.ObjectId, required: true, index: 1, ref: 'Domain' }, created: { type: Date, default: Date.now, required: true, index: -1 }, author: { type: Schema.ObjectId, required: true, index: 1, ref: 'User' }, image: { type: Schema.ObjectId, required: true, ref: 'Image' }, @@ -21,11 +20,4 @@ const ArticleSchema = new Schema({ }, }); -ArticleSchema.index({ - domain: 1, - channel: 1, -}, { - name: 'article_domain_channel_idx', -}); - module.exports = mongoose.model('Article', ArticleSchema); \ No newline at end of file diff --git a/app/models/category.js b/app/models/category.js index d353835..33cba63 100644 --- a/app/models/category.js +++ b/app/models/category.js @@ -9,7 +9,6 @@ const mongoose = require('mongoose'); const Schema = mongoose.Schema; const CategorySchema = new Schema({ - domain: { type: Schema.ObjectId, required: true, index: 1, ref: 'Domain' }, name: { type: String }, slug: { type: String, lowercase: true, required: true, index: 1 }, description: { type: String }, @@ -18,17 +17,9 @@ const CategorySchema = new Schema({ icon: { type: Schema.ObjectId }, }, stats: { - liveChannelCount: { type: Number, default: 0, required: true }, - currentViewerCount: { type: Number, default: 0, required: true }, + articleCount: { type: Number, default: 0, required: true }, + articleViewCount: { type: Number, default: 0, required: true }, }, }); -CategorySchema.index({ - domain: 1, - slug: 1, -}, { - unique: true, - name: 'domain_category_unique', -}); - module.exports = mongoose.model('Category', CategorySchema); \ No newline at end of file diff --git a/app/models/chat-message.js b/app/models/chat-message.js index ea36029..c0c3d54 100644 --- a/app/models/chat-message.js +++ b/app/models/chat-message.js @@ -10,9 +10,6 @@ const Schema = mongoose.Schema; const ChatMessageSchema = new Schema({ created: { type: Date, default: Date.now, required: true, index: -1, expires: '10d' }, - domain: { type: Schema.ObjectId, required: true, index: 1, ref: 'Domain' }, - channel: { type: Schema.ObjectId, required: true, index: 1, ref: 'Channel' }, - episode: { type: Schema.ObjectId, index: 1, ref: 'Episode' }, author: { type: Schema.ObjectId, required: true, index: 1, ref: 'User' }, content: { type: String }, stickers: { type: [String] }, diff --git a/app/models/domain.js b/app/models/domain.js deleted file mode 100644 index 000427b..0000000 --- a/app/models/domain.js +++ /dev/null @@ -1,21 +0,0 @@ -// domain.js -// Copyright (C) 2021 Digital Telepresence, LLC -// License: Apache-2.0 - -'use strict'; - -const mongoose = require('mongoose'); - -const Schema = mongoose.Schema; - -const DomainSchema = new Schema({ - created: { type: Date, default: Date.now, required: true, index: -1 }, - name: { type: String, required: true, lowercase: true, index: 1 }, - stats: { - channelCount: { type: Number, default: 0, required: true }, - streamCount: { type: Number, default: 0, required: true }, - viewerCount: { type: Number, default: 0, required: true }, - }, -}); - -module.exports = mongoose.model('Domain', DomainSchema); \ No newline at end of file diff --git a/app/models/otp-account.js b/app/models/otp-account.js index 44e35e0..1b94a4b 100644 --- a/app/models/otp-account.js +++ b/app/models/otp-account.js @@ -14,7 +14,6 @@ var OtpBackupTokenSchema = new Schema({ const OtpAccountSchema = new Schema({ created: { type: Date, default: Date.now, required: true, index: -1 }, - domain: { type: Schema.ObjectId, required: true, index: true, ref: 'Domain' }, user: { type: Schema.ObjectId, required: true, index: true, ref: 'User' }, service: { type: String, required: true }, secret: { type: String, required: true, select: false }, @@ -27,7 +26,6 @@ const OtpAccountSchema = new Schema({ }); OtpAccountSchema.index({ - domain: 1, user: 1, service: 1, }, { diff --git a/app/services/domain.js b/app/services/domain.js deleted file mode 100644 index af9c48a..0000000 --- a/app/services/domain.js +++ /dev/null @@ -1,72 +0,0 @@ -// domain.js -// Copyright (C) 2021 Digital Telepresence, LLC -// License: Apache-2.0 - -'use strict'; - -const striptags = require('striptags'); - -const mongoose = require('mongoose'); -const Domain = mongoose.model('Domain'); - -const { SiteService, SiteError } = require('../../lib/site-lib'); - -class DomainService extends SiteService { - - constructor (dtp) { - super(dtp, module.exports); - } - - async create (domainDefinition) { - const NOW = new Date(); - const domain = new Domain(); - domain.created = NOW; - domain.name = striptags(domainDefinition.name.trim().toLowerCase()); - await domain.save(); - return domain.toObject(); - } - - async update (domain, domainDefinition) { - await Domain.updateOne( - { _id: domain._id }, - { - $set: { - name: striptags(domainDefinition.name.trim().toLowerCase()), - }, - }, - ); - } - - async getSiteDomain ( ) { - return this.getByName(process.env.DTP_SITE_DOMAIN_KEY); - } - - async getById (domainId) { - const domain = await Domain.findById(domainId).lean(); - return domain; - } - - async getByName (domainName) { - const domain = await Domain.findOne({ name: domainName.toLowerCase().trim() }).lean(); - if (!domain) { - throw new SiteError(404, 'Domain does not exist'); - } - return domain; - } - - async getDomains (pagination) { - const domains = await Domain - .find() - .sort({ name: 1 }) - .skip(pagination.skip) - .limit(pagination.cpp) - .lean(); - return domains; - } -} - -module.exports = { - slug: 'domain', - name: 'domain', - create: (dtp) => { return new DomainService(dtp); }, -}; \ No newline at end of file diff --git a/app/services/otp-auth.js b/app/services/otp-auth.js index ad41b65..0f02ec5 100644 --- a/app/services/otp-auth.js +++ b/app/services/otp-auth.js @@ -17,16 +17,13 @@ const uuidv4 = require('uuid').v4; const { SiteService, SiteError } = require('../../lib/site-lib'); -class DomainService extends SiteService { +class OtpAuthService extends SiteService { constructor (dtp) { super(dtp, module.exports); } async start ( ) { - const { domain: domainService } = this.dtp.services; - this.siteDomain = await domainService.getSiteDomain(); - authenticator.options = { algorithm: 'sha1', step: 30, @@ -72,7 +69,6 @@ class DomainService extends SiteService { res.locals.otpAccount = await OtpAccount .findOne({ - domain: this.siteDomain._id, user: req.user._id, service: serviceName, }); @@ -136,7 +132,6 @@ class DomainService extends SiteService { const now = new Date(); const account = await OtpAccount.create({ created: NOW, - domain: this.siteDomain._id, user: req.user._id, service, secret, @@ -220,5 +215,5 @@ class DomainService extends SiteService { module.exports = { slug: 'otp-auth', name: 'otpAuth', - create: (dtp) => { return new DomainService(dtp); }, + create: (dtp) => { return new OtpAuthService(dtp); }, }; \ No newline at end of file diff --git a/app/services/user.js b/app/services/user.js index b4af09a..9c703d9 100644 --- a/app/services/user.js +++ b/app/services/user.js @@ -253,8 +253,7 @@ class UserService { const user = await User .findById(userId) .select('+email +flags +permissions') - .lean() - ; + .lean(); if (!user) { throw new SiteError(404, 'Member account not found'); } diff --git a/app/views/admin/channel-application/index.pug b/app/views/admin/channel-application/index.pug deleted file mode 100644 index 32df09c..0000000 --- a/app/views/admin/channel-application/index.pug +++ /dev/null @@ -1,26 +0,0 @@ -extends ../layouts/main -block content - - table.uk-table - thead - th Channel Name - th Domain - th Created - th Member - th Audience - th Status - tbody - each application in applications - tr - td - a(href=`/admin/channel-application/${application._id}`)= application.name - td= application.domain ? application.domain.name : 'N/A' - td= moment(application.created).fromNow() - td - a(href=`/admin/member/${application.owner._id}`)= application.owner.username - td= numeral(application.interview.audienceSize).format('0,0') - td(class={ - 'uk-text-primary': ['new','review'].includes(application.status), - 'uk-text-success': (application.status === 'approved'), - 'uk-text-danger': (application.status === 'rejected'), - })= application.status \ No newline at end of file diff --git a/app/views/admin/channel-application/view.pug b/app/views/admin/channel-application/view.pug deleted file mode 100644 index dfff3f6..0000000 --- a/app/views/admin/channel-application/view.pug +++ /dev/null @@ -1,79 +0,0 @@ -extends ../layouts/main -block content - - .uk-card.uk-card-secondary.uk-card-body.uk-margin - fieldset.uk-fieldset - legend.sr-only Channel Information - div(uk-grid) - .uk-width-expand - .uk-margin - label.uk-form-label Channel Name: - .uk-text-large.uk-text-bold= application.name - .uk-width-auto - .uk-margin - label.uk-form-label Owner: - div - a(href=`mailto:${application.owner.email}?subject=${encodeURIComponent(site.name)}${encodeURIComponent(': ')}${encodeURIComponent(application.name)}`)= application.owner.displayName || application.owner.email - .uk-width-auto - .uk-margin - label.uk-form-label Phone: - div - a(href=`tel:${application.contact.phone.number}`)= application.contact.phone.number - .uk-width-auto - .uk-margin - label.uk-form-label Submitted: - div= moment(application.created).fromNow() - - .uk-margin - label.uk-form-label Description - div!= marked(application.description) - - div(uk-grid) - .uk-width-auto - .uk-margin - label.uk-form-label Category - div= application.category.name - .uk-width-auto - .uk-margin - label.uk-form-label Short Name - div= application.slug - .uk-width-auto - .uk-margin - label.uk-form-label Search Tags - div= application.tags ? application.tags.join(',') : 'N/A' - - .uk-card.uk-card-secondary.uk-card-body.uk-margin - fieldset.uk-fieldset - legend.uk-legend Interview - - div(uk-grid) - div(class="uk-width-1-1 uk-width-auto@m") - .uk-margin - label.uk-form-label Audience Size - div= application.interview.audienceSize - div(class="uk-width-1-1 uk-width-auto@m") - .uk-margin - label.uk-form-label Demo URL - div - a(href= application.interview.demoUrl)= application.interview.demoUrl - - .uk-margin - label.uk-form-label History - div!= marked(application.interview.history) - - .uk-card.uk-card-secondary.uk-card-body.uk-margin - form(method="POST", action=`/admin/channel-application/${application._id}`).uk-form - .uk-margin - label(for="rejected-reason").uk-form-label Rejection explanation - textarea(id="rejected-reason", name="rejectedReason", rows="4", placeholder= "Enter reason for rejecting").uk-textarea - div(uk-grid) - .uk-width-auto - button(type="submit", name="action", value="approve").uk-button.uk-button-primary - span - i.fas.fa-check - span.uk-text-bold.uk-margin-small-left Approve - .uk-width-auto - button(type="submit", name="action", value="reject").uk-button.uk-button-danger - span - i.fas.fa-times - span.uk-text-bold.uk-margin-small-left Reject \ No newline at end of file diff --git a/app/views/admin/channel/index.pug b/app/views/admin/channel/index.pug deleted file mode 100644 index 108b5e5..0000000 --- a/app/views/admin/channel/index.pug +++ /dev/null @@ -1,28 +0,0 @@ -extends ../layouts/main -block content - - .uk-overflow-auto - table.uk-table.uk-table-small.uk-table-divider - thead - th Channel - th Owner - th Category - th Status - th Created - tbody - each channel in channels - tr - td - a(href=`/admin/channel/${channel._id}`)= channel.name - - td - a(href=`/admin/user/${channel.owner._id}`)= channel.owner.username - - td= channel.category.name - - td(class={ - 'uk-text-success': (channel.status === 'live'), - 'uk-text-default': (channel.status === 'offline'), - })= channel.status - - td= moment(channel.created).format('MMM DD, YYYY') \ No newline at end of file diff --git a/app/views/admin/domain/form.pug b/app/views/admin/domain/form.pug deleted file mode 100644 index 8c7a291..0000000 --- a/app/views/admin/domain/form.pug +++ /dev/null @@ -1,13 +0,0 @@ -extends ../layouts/main -block content - - - var formAction = domain ? `/admin/domain/${domain._id}` : "/admin/domain"; - - h2 Domain Manager - - form(method="POST", action= formAction).uk-form - .uk-margin - label(for="name").uk-form-label Name - input(id="name", name="name", type="text", placeholder= "Enter domain name", value= domain ? domain.name : undefined).uk-input - .uk-margin - button(type="submit").uk-button.uk-button-primary= domain ? 'Update domain' : 'Create domain' \ No newline at end of file diff --git a/app/views/admin/domain/index.pug b/app/views/admin/domain/index.pug deleted file mode 100644 index f450b14..0000000 --- a/app/views/admin/domain/index.pug +++ /dev/null @@ -1,18 +0,0 @@ -extends ../layouts/main -block content - - .uk-margin - div(uk-grid).uk-flex-middle - .uk-width-expand - h2 Domain Manager - .uk-width-auto - a(href="/admin/domain/create").uk-button.uk-button-primary - span - i.fas.fa-plus - span.uk-margin-small-left Add domain - - .uk-margin - uk.uk-list - each domain in domains - li - a(href=`/admin/domain/${domain._id}`)= domain.name \ No newline at end of file diff --git a/app/views/components/navbar.pug b/app/views/components/navbar.pug index 36f6f10..b48d0af 100644 --- a/app/views/components/navbar.pug +++ b/app/views/components/navbar.pug @@ -6,7 +6,7 @@ nav(uk-navbar).uk-navbar-container.uk-position-fixed.uk-position-top //- Site icon a(href="/", class="uk-visible@m").uk-navbar-item - img(src=`/img/icon/${site.domainKey}/icon-48x48.png`) + img(src=`/img/icon/icon-48x48.png`) //- Site name a(href="/", class="uk-visible@xl").uk-navbar-item.uk-logo @@ -15,7 +15,7 @@ nav(uk-navbar).uk-navbar-container.uk-position-fixed.uk-position-top //- Center menu (visible only on tablet and mobile) div(class="uk-hidden@m").uk-navbar-center a(href="/").uk-navbar-item - img(src=`/img/icon/${site.domainKey}/icon-48x48.png`) + img(src=`/img/icon/icon-48x48.png`) .uk-navbar-right .uk-navbar-item diff --git a/app/views/components/pwa-support.pug b/app/views/components/pwa-support.pug index 970a710..03d13b6 100644 --- a/app/views/components/pwa-support.pug +++ b/app/views/components/pwa-support.pug @@ -1,19 +1,19 @@ -link(rel="apple-touch-icon" sizes="57x57" href=`/img/icon/${site.domainKey}/icon-57x57.png?v=${pkg.version}`) -link(rel="apple-touch-icon" sizes="60x60" href=`/img/icon/${site.domainKey}/icon-60x60.png?v=${pkg.version}`) -link(rel="apple-touch-icon" sizes="72x72" href=`/img/icon/${site.domainKey}/icon-72x72.png?v=${pkg.version}`) -link(rel="apple-touch-icon" sizes="76x76" href=`/img/icon/${site.domainKey}/icon-76x76.png?v=${pkg.version}`) -link(rel="apple-touch-icon" sizes="114x114" href=`/img/icon/${site.domainKey}/icon-114x114.png?v=${pkg.version}`) -link(rel="apple-touch-icon" sizes="120x120" href=`/img/icon/${site.domainKey}/icon-120x120.png?v=${pkg.version}`) -link(rel="apple-touch-icon" sizes="144x144" href=`/img/icon/${site.domainKey}/icon-144x144.png?v=${pkg.version}`) -link(rel="apple-touch-icon" sizes="152x152" href=`/img/icon/${site.domainKey}/icon-152x152.png?v=${pkg.version}`) -link(rel="apple-touch-icon" sizes="180x180" href=`/img/icon/${site.domainKey}/icon-180x180.png?v=${pkg.version}`) -link(rel="icon" type="image/png" sizes="32x32" href=`/img/icon/${site.domainKey}/icon-32x32.png?v=${pkg.version}`) -link(rel="icon" type="image/png" sizes="96x96" href=`/img/icon/${site.domainKey}/icon-96x96.png?v=${pkg.version}`) -link(rel="icon" type="image/png" sizes="16x16" href=`/img/icon/${site.domainKey}/icon-16x16.png?v=${pkg.version}`) -link(rel="icon" type="image/png" sizes="512x512" href=`/img/icon/${site.domainKey}/icon-512x512.png?v=${pkg.version}`) -link(rel="icon" type="image/png" sizes="384x384" href=`/img/icon/${site.domainKey}/icon-384x384.png?v=${pkg.version}`) -link(rel="icon" type="image/png" sizes="256x256" href=`/img/icon/${site.domainKey}/icon-512x512.png?v=${pkg.version}`) -link(rel="icon" type="image/png" sizes="192x192" href=`/img/icon/${site.domainKey}/icon-192x192.png?v=${pkg.version}`) +link(rel="apple-touch-icon" sizes="57x57" href=`/img/icon/icon-57x57.png?v=${pkg.version}`) +link(rel="apple-touch-icon" sizes="60x60" href=`/img/icon/icon-60x60.png?v=${pkg.version}`) +link(rel="apple-touch-icon" sizes="72x72" href=`/img/icon/icon-72x72.png?v=${pkg.version}`) +link(rel="apple-touch-icon" sizes="76x76" href=`/img/icon/icon-76x76.png?v=${pkg.version}`) +link(rel="apple-touch-icon" sizes="114x114" href=`/img/icon/icon-114x114.png?v=${pkg.version}`) +link(rel="apple-touch-icon" sizes="120x120" href=`/img/icon/icon-120x120.png?v=${pkg.version}`) +link(rel="apple-touch-icon" sizes="144x144" href=`/img/icon/icon-144x144.png?v=${pkg.version}`) +link(rel="apple-touch-icon" sizes="152x152" href=`/img/icon/icon-152x152.png?v=${pkg.version}`) +link(rel="apple-touch-icon" sizes="180x180" href=`/img/icon/icon-180x180.png?v=${pkg.version}`) +link(rel="icon" type="image/png" sizes="32x32" href=`/img/icon/icon-32x32.png?v=${pkg.version}`) +link(rel="icon" type="image/png" sizes="96x96" href=`/img/icon/icon-96x96.png?v=${pkg.version}`) +link(rel="icon" type="image/png" sizes="16x16" href=`/img/icon/icon-16x16.png?v=${pkg.version}`) +link(rel="icon" type="image/png" sizes="512x512" href=`/img/icon/icon-512x512.png?v=${pkg.version}`) +link(rel="icon" type="image/png" sizes="384x384" href=`/img/icon/icon-384x384.png?v=${pkg.version}`) +link(rel="icon" type="image/png" sizes="256x256" href=`/img/icon/icon-512x512.png?v=${pkg.version}`) +link(rel="icon" type="image/png" sizes="192x192" href=`/img/icon/icon-192x192.png?v=${pkg.version}`) link(rel="manifest" href=`/manifest.json?v=${pkg.version}`) meta(name="msapplication-TileColor" content="#f1c52f") meta(name="msapplication-TileImage" content=`/img/icon/ms-icon-144x144.png?v=${pkg.version}`) diff --git a/app/workers/host-services.js b/app/workers/host-services.js index 6b21bc9..19df254 100644 --- a/app/workers/host-services.js +++ b/app/workers/host-services.js @@ -620,10 +620,6 @@ module.expireNetHosts = async ( ) => { * Site Platform startup */ await SitePlatform.startPlatform(module); - module.domain = await module.services.domain.getByName(process.env.DTP_SITE_DOMAIN_KEY); - if (!module.domain) { - throw new Error(`Must define domain ${process.env.DTP_SITE_DOMAIN_KEY}`); - } module.log.info('starting transaction manager'); module.manager = new TransactionManager(); diff --git a/client/img/icon/altmedia.tv.png b/client/img/icon/altmedia.tv.png deleted file mode 100644 index cc432a9..0000000 Binary files a/client/img/icon/altmedia.tv.png and /dev/null differ diff --git a/client/img/icon/altmedia.tv/home.png b/client/img/icon/altmedia.tv/home.png deleted file mode 100644 index 4ae4e23..0000000 Binary files a/client/img/icon/altmedia.tv/home.png and /dev/null differ diff --git a/client/img/icon/altmedia.tv/icon-114x114.png b/client/img/icon/altmedia.tv/icon-114x114.png deleted file mode 100644 index db26bde..0000000 Binary files a/client/img/icon/altmedia.tv/icon-114x114.png and /dev/null differ diff --git a/client/img/icon/altmedia.tv/icon-120x120.png b/client/img/icon/altmedia.tv/icon-120x120.png deleted file mode 100644 index fab6d18..0000000 Binary files a/client/img/icon/altmedia.tv/icon-120x120.png and /dev/null differ diff --git a/client/img/icon/altmedia.tv/icon-144x144.png b/client/img/icon/altmedia.tv/icon-144x144.png deleted file mode 100644 index 3b01b10..0000000 Binary files a/client/img/icon/altmedia.tv/icon-144x144.png and /dev/null differ diff --git a/client/img/icon/altmedia.tv/icon-150x150.png b/client/img/icon/altmedia.tv/icon-150x150.png deleted file mode 100644 index 4805997..0000000 Binary files a/client/img/icon/altmedia.tv/icon-150x150.png and /dev/null differ diff --git a/client/img/icon/altmedia.tv/icon-152x152.png b/client/img/icon/altmedia.tv/icon-152x152.png deleted file mode 100644 index eed519d..0000000 Binary files a/client/img/icon/altmedia.tv/icon-152x152.png and /dev/null differ diff --git a/client/img/icon/altmedia.tv/icon-16x16.png b/client/img/icon/altmedia.tv/icon-16x16.png deleted file mode 100644 index 51424ae..0000000 Binary files a/client/img/icon/altmedia.tv/icon-16x16.png and /dev/null differ diff --git a/client/img/icon/altmedia.tv/icon-180x180.png b/client/img/icon/altmedia.tv/icon-180x180.png deleted file mode 100644 index cb0980f..0000000 Binary files a/client/img/icon/altmedia.tv/icon-180x180.png and /dev/null differ diff --git a/client/img/icon/altmedia.tv/icon-192x192.png b/client/img/icon/altmedia.tv/icon-192x192.png deleted file mode 100644 index 281aadc..0000000 Binary files a/client/img/icon/altmedia.tv/icon-192x192.png and /dev/null differ diff --git a/client/img/icon/altmedia.tv/icon-256x256.png b/client/img/icon/altmedia.tv/icon-256x256.png deleted file mode 100644 index 23a8c6d..0000000 Binary files a/client/img/icon/altmedia.tv/icon-256x256.png and /dev/null differ diff --git a/client/img/icon/altmedia.tv/icon-310x310.png b/client/img/icon/altmedia.tv/icon-310x310.png deleted file mode 100644 index 81d8ffc..0000000 Binary files a/client/img/icon/altmedia.tv/icon-310x310.png and /dev/null differ diff --git a/client/img/icon/altmedia.tv/icon-32x32.png b/client/img/icon/altmedia.tv/icon-32x32.png deleted file mode 100644 index 4dc093d..0000000 Binary files a/client/img/icon/altmedia.tv/icon-32x32.png and /dev/null differ diff --git a/client/img/icon/altmedia.tv/icon-36x36.png b/client/img/icon/altmedia.tv/icon-36x36.png deleted file mode 100644 index d46e47e..0000000 Binary files a/client/img/icon/altmedia.tv/icon-36x36.png and /dev/null differ diff --git a/client/img/icon/altmedia.tv/icon-384x384.png b/client/img/icon/altmedia.tv/icon-384x384.png deleted file mode 100644 index 0993c6b..0000000 Binary files a/client/img/icon/altmedia.tv/icon-384x384.png and /dev/null differ diff --git a/client/img/icon/altmedia.tv/icon-48x48.png b/client/img/icon/altmedia.tv/icon-48x48.png deleted file mode 100644 index f5d12ca..0000000 Binary files a/client/img/icon/altmedia.tv/icon-48x48.png and /dev/null differ diff --git a/client/img/icon/altmedia.tv/icon-512x512.png b/client/img/icon/altmedia.tv/icon-512x512.png deleted file mode 100644 index cbe89f6..0000000 Binary files a/client/img/icon/altmedia.tv/icon-512x512.png and /dev/null differ diff --git a/client/img/icon/altmedia.tv/icon-57x57.png b/client/img/icon/altmedia.tv/icon-57x57.png deleted file mode 100644 index 3188e4d..0000000 Binary files a/client/img/icon/altmedia.tv/icon-57x57.png and /dev/null differ diff --git a/client/img/icon/altmedia.tv/icon-60x60.png b/client/img/icon/altmedia.tv/icon-60x60.png deleted file mode 100644 index 25c55af..0000000 Binary files a/client/img/icon/altmedia.tv/icon-60x60.png and /dev/null differ diff --git a/client/img/icon/altmedia.tv/icon-70x70.png b/client/img/icon/altmedia.tv/icon-70x70.png deleted file mode 100644 index 0e2dab4..0000000 Binary files a/client/img/icon/altmedia.tv/icon-70x70.png and /dev/null differ diff --git a/client/img/icon/altmedia.tv/icon-72x72.png b/client/img/icon/altmedia.tv/icon-72x72.png deleted file mode 100644 index 7906d49..0000000 Binary files a/client/img/icon/altmedia.tv/icon-72x72.png and /dev/null differ diff --git a/client/img/icon/altmedia.tv/icon-76x76.png b/client/img/icon/altmedia.tv/icon-76x76.png deleted file mode 100644 index a699425..0000000 Binary files a/client/img/icon/altmedia.tv/icon-76x76.png and /dev/null differ diff --git a/client/img/icon/altmedia.tv/icon-96x96.png b/client/img/icon/altmedia.tv/icon-96x96.png deleted file mode 100644 index 0f500d1..0000000 Binary files a/client/img/icon/altmedia.tv/icon-96x96.png and /dev/null differ diff --git a/client/img/icon/freetopray.tv.png b/client/img/icon/freetopray.tv.png deleted file mode 100644 index 73bcfdd..0000000 Binary files a/client/img/icon/freetopray.tv.png and /dev/null differ diff --git a/client/img/icon/freetopray.tv/home.png b/client/img/icon/freetopray.tv/home.png deleted file mode 100644 index acbeaaf..0000000 Binary files a/client/img/icon/freetopray.tv/home.png and /dev/null differ diff --git a/client/img/icon/freetopray.tv/icon-114x114.png b/client/img/icon/freetopray.tv/icon-114x114.png deleted file mode 100644 index 12a51a1..0000000 Binary files a/client/img/icon/freetopray.tv/icon-114x114.png and /dev/null differ diff --git a/client/img/icon/freetopray.tv/icon-120x120.png b/client/img/icon/freetopray.tv/icon-120x120.png deleted file mode 100644 index 52f875d..0000000 Binary files a/client/img/icon/freetopray.tv/icon-120x120.png and /dev/null differ diff --git a/client/img/icon/freetopray.tv/icon-144x144.png b/client/img/icon/freetopray.tv/icon-144x144.png deleted file mode 100644 index 6bd0d9b..0000000 Binary files a/client/img/icon/freetopray.tv/icon-144x144.png and /dev/null differ diff --git a/client/img/icon/freetopray.tv/icon-150x150.png b/client/img/icon/freetopray.tv/icon-150x150.png deleted file mode 100644 index 51db00b..0000000 Binary files a/client/img/icon/freetopray.tv/icon-150x150.png and /dev/null differ diff --git a/client/img/icon/freetopray.tv/icon-152x152.png b/client/img/icon/freetopray.tv/icon-152x152.png deleted file mode 100644 index c675c39..0000000 Binary files a/client/img/icon/freetopray.tv/icon-152x152.png and /dev/null differ diff --git a/client/img/icon/freetopray.tv/icon-16x16.png b/client/img/icon/freetopray.tv/icon-16x16.png deleted file mode 100644 index fd4aa21..0000000 Binary files a/client/img/icon/freetopray.tv/icon-16x16.png and /dev/null differ diff --git a/client/img/icon/freetopray.tv/icon-180x180.png b/client/img/icon/freetopray.tv/icon-180x180.png deleted file mode 100644 index 6a05e7d..0000000 Binary files a/client/img/icon/freetopray.tv/icon-180x180.png and /dev/null differ diff --git a/client/img/icon/freetopray.tv/icon-192x192.png b/client/img/icon/freetopray.tv/icon-192x192.png deleted file mode 100644 index a9999d0..0000000 Binary files a/client/img/icon/freetopray.tv/icon-192x192.png and /dev/null differ diff --git a/client/img/icon/freetopray.tv/icon-256x256.png b/client/img/icon/freetopray.tv/icon-256x256.png deleted file mode 100644 index 6dc4bc8..0000000 Binary files a/client/img/icon/freetopray.tv/icon-256x256.png and /dev/null differ diff --git a/client/img/icon/freetopray.tv/icon-310x310.png b/client/img/icon/freetopray.tv/icon-310x310.png deleted file mode 100644 index 5fcc285..0000000 Binary files a/client/img/icon/freetopray.tv/icon-310x310.png and /dev/null differ diff --git a/client/img/icon/freetopray.tv/icon-32x32.png b/client/img/icon/freetopray.tv/icon-32x32.png deleted file mode 100644 index acbeaaf..0000000 Binary files a/client/img/icon/freetopray.tv/icon-32x32.png and /dev/null differ diff --git a/client/img/icon/freetopray.tv/icon-36x36.png b/client/img/icon/freetopray.tv/icon-36x36.png deleted file mode 100644 index 7b370da..0000000 Binary files a/client/img/icon/freetopray.tv/icon-36x36.png and /dev/null differ diff --git a/client/img/icon/freetopray.tv/icon-384x384.png b/client/img/icon/freetopray.tv/icon-384x384.png deleted file mode 100644 index 98dd3d8..0000000 Binary files a/client/img/icon/freetopray.tv/icon-384x384.png and /dev/null differ diff --git a/client/img/icon/freetopray.tv/icon-48x48.png b/client/img/icon/freetopray.tv/icon-48x48.png deleted file mode 100644 index ca4312f..0000000 Binary files a/client/img/icon/freetopray.tv/icon-48x48.png and /dev/null differ diff --git a/client/img/icon/freetopray.tv/icon-512x512.png b/client/img/icon/freetopray.tv/icon-512x512.png deleted file mode 100644 index 6513291..0000000 Binary files a/client/img/icon/freetopray.tv/icon-512x512.png and /dev/null differ diff --git a/client/img/icon/freetopray.tv/icon-57x57.png b/client/img/icon/freetopray.tv/icon-57x57.png deleted file mode 100644 index d2bfaca..0000000 Binary files a/client/img/icon/freetopray.tv/icon-57x57.png and /dev/null differ diff --git a/client/img/icon/freetopray.tv/icon-60x60.png b/client/img/icon/freetopray.tv/icon-60x60.png deleted file mode 100644 index 96a2da0..0000000 Binary files a/client/img/icon/freetopray.tv/icon-60x60.png and /dev/null differ diff --git a/client/img/icon/freetopray.tv/icon-70x70.png b/client/img/icon/freetopray.tv/icon-70x70.png deleted file mode 100644 index 736361e..0000000 Binary files a/client/img/icon/freetopray.tv/icon-70x70.png and /dev/null differ diff --git a/client/img/icon/freetopray.tv/icon-72x72.png b/client/img/icon/freetopray.tv/icon-72x72.png deleted file mode 100644 index d7605e7..0000000 Binary files a/client/img/icon/freetopray.tv/icon-72x72.png and /dev/null differ diff --git a/client/img/icon/freetopray.tv/icon-76x76.png b/client/img/icon/freetopray.tv/icon-76x76.png deleted file mode 100644 index 4721c1c..0000000 Binary files a/client/img/icon/freetopray.tv/icon-76x76.png and /dev/null differ diff --git a/client/img/icon/freetopray.tv/icon-96x96.png b/client/img/icon/freetopray.tv/icon-96x96.png deleted file mode 100644 index 393ecc3..0000000 Binary files a/client/img/icon/freetopray.tv/icon-96x96.png and /dev/null differ diff --git a/client/img/icon/justjoeradio.com/icon-114x114.png b/client/img/icon/icon-114x114.png similarity index 100% rename from client/img/icon/justjoeradio.com/icon-114x114.png rename to client/img/icon/icon-114x114.png diff --git a/client/img/icon/justjoeradio.com/icon-120x120.png b/client/img/icon/icon-120x120.png similarity index 100% rename from client/img/icon/justjoeradio.com/icon-120x120.png rename to client/img/icon/icon-120x120.png diff --git a/client/img/icon/justjoeradio.com/icon-144x144.png b/client/img/icon/icon-144x144.png similarity index 100% rename from client/img/icon/justjoeradio.com/icon-144x144.png rename to client/img/icon/icon-144x144.png diff --git a/client/img/icon/justjoeradio.com/icon-150x150.png b/client/img/icon/icon-150x150.png similarity index 100% rename from client/img/icon/justjoeradio.com/icon-150x150.png rename to client/img/icon/icon-150x150.png diff --git a/client/img/icon/justjoeradio.com/icon-152x152.png b/client/img/icon/icon-152x152.png similarity index 100% rename from client/img/icon/justjoeradio.com/icon-152x152.png rename to client/img/icon/icon-152x152.png diff --git a/client/img/icon/justjoeradio.com/icon-16x16.png b/client/img/icon/icon-16x16.png similarity index 100% rename from client/img/icon/justjoeradio.com/icon-16x16.png rename to client/img/icon/icon-16x16.png diff --git a/client/img/icon/justjoeradio.com/icon-180x180.png b/client/img/icon/icon-180x180.png similarity index 100% rename from client/img/icon/justjoeradio.com/icon-180x180.png rename to client/img/icon/icon-180x180.png diff --git a/client/img/icon/justjoeradio.com/icon-192x192.png b/client/img/icon/icon-192x192.png similarity index 100% rename from client/img/icon/justjoeradio.com/icon-192x192.png rename to client/img/icon/icon-192x192.png diff --git a/client/img/icon/justjoeradio.com/icon-256x256.png b/client/img/icon/icon-256x256.png similarity index 100% rename from client/img/icon/justjoeradio.com/icon-256x256.png rename to client/img/icon/icon-256x256.png diff --git a/client/img/icon/justjoeradio.com/icon-310x310.png b/client/img/icon/icon-310x310.png similarity index 100% rename from client/img/icon/justjoeradio.com/icon-310x310.png rename to client/img/icon/icon-310x310.png diff --git a/client/img/icon/justjoeradio.com/icon-32x32.png b/client/img/icon/icon-32x32.png similarity index 100% rename from client/img/icon/justjoeradio.com/icon-32x32.png rename to client/img/icon/icon-32x32.png diff --git a/client/img/icon/justjoeradio.com/icon-36x36.png b/client/img/icon/icon-36x36.png similarity index 100% rename from client/img/icon/justjoeradio.com/icon-36x36.png rename to client/img/icon/icon-36x36.png diff --git a/client/img/icon/justjoeradio.com/icon-384x384.png b/client/img/icon/icon-384x384.png similarity index 100% rename from client/img/icon/justjoeradio.com/icon-384x384.png rename to client/img/icon/icon-384x384.png diff --git a/client/img/icon/justjoeradio.com/icon-48x48.png b/client/img/icon/icon-48x48.png similarity index 100% rename from client/img/icon/justjoeradio.com/icon-48x48.png rename to client/img/icon/icon-48x48.png diff --git a/client/img/icon/justjoeradio.com/icon-512x512.png b/client/img/icon/icon-512x512.png similarity index 100% rename from client/img/icon/justjoeradio.com/icon-512x512.png rename to client/img/icon/icon-512x512.png diff --git a/client/img/icon/justjoeradio.com/icon-57x57.png b/client/img/icon/icon-57x57.png similarity index 100% rename from client/img/icon/justjoeradio.com/icon-57x57.png rename to client/img/icon/icon-57x57.png diff --git a/client/img/icon/justjoeradio.com/icon-60x60.png b/client/img/icon/icon-60x60.png similarity index 100% rename from client/img/icon/justjoeradio.com/icon-60x60.png rename to client/img/icon/icon-60x60.png diff --git a/client/img/icon/justjoeradio.com/icon-70x70.png b/client/img/icon/icon-70x70.png similarity index 100% rename from client/img/icon/justjoeradio.com/icon-70x70.png rename to client/img/icon/icon-70x70.png diff --git a/client/img/icon/justjoeradio.com/icon-72x72.png b/client/img/icon/icon-72x72.png similarity index 100% rename from client/img/icon/justjoeradio.com/icon-72x72.png rename to client/img/icon/icon-72x72.png diff --git a/client/img/icon/justjoeradio.com/icon-76x76.png b/client/img/icon/icon-76x76.png similarity index 100% rename from client/img/icon/justjoeradio.com/icon-76x76.png rename to client/img/icon/icon-76x76.png diff --git a/client/img/icon/justjoeradio.com/icon-96x96.png b/client/img/icon/icon-96x96.png similarity index 100% rename from client/img/icon/justjoeradio.com/icon-96x96.png rename to client/img/icon/icon-96x96.png diff --git a/client/img/icon/shing.tv.png b/client/img/icon/shing.tv.png deleted file mode 100644 index 276118e..0000000 Binary files a/client/img/icon/shing.tv.png and /dev/null differ diff --git a/client/img/icon/shing.tv/home.png b/client/img/icon/shing.tv/home.png deleted file mode 100644 index 3ae787c..0000000 Binary files a/client/img/icon/shing.tv/home.png and /dev/null differ diff --git a/client/img/icon/shing.tv/icon-114x114.png b/client/img/icon/shing.tv/icon-114x114.png deleted file mode 100644 index 4483058..0000000 Binary files a/client/img/icon/shing.tv/icon-114x114.png and /dev/null differ diff --git a/client/img/icon/shing.tv/icon-120x120.png b/client/img/icon/shing.tv/icon-120x120.png deleted file mode 100644 index 5560dfa..0000000 Binary files a/client/img/icon/shing.tv/icon-120x120.png and /dev/null differ diff --git a/client/img/icon/shing.tv/icon-144x144.png b/client/img/icon/shing.tv/icon-144x144.png deleted file mode 100644 index efd3cd1..0000000 Binary files a/client/img/icon/shing.tv/icon-144x144.png and /dev/null differ diff --git a/client/img/icon/shing.tv/icon-150x150.png b/client/img/icon/shing.tv/icon-150x150.png deleted file mode 100644 index 26c9daa..0000000 Binary files a/client/img/icon/shing.tv/icon-150x150.png and /dev/null differ diff --git a/client/img/icon/shing.tv/icon-152x152.png b/client/img/icon/shing.tv/icon-152x152.png deleted file mode 100644 index 1cda25d..0000000 Binary files a/client/img/icon/shing.tv/icon-152x152.png and /dev/null differ diff --git a/client/img/icon/shing.tv/icon-16x16.png b/client/img/icon/shing.tv/icon-16x16.png deleted file mode 100644 index a203f83..0000000 Binary files a/client/img/icon/shing.tv/icon-16x16.png and /dev/null differ diff --git a/client/img/icon/shing.tv/icon-180x180.png b/client/img/icon/shing.tv/icon-180x180.png deleted file mode 100644 index b7a7625..0000000 Binary files a/client/img/icon/shing.tv/icon-180x180.png and /dev/null differ diff --git a/client/img/icon/shing.tv/icon-192x192.png b/client/img/icon/shing.tv/icon-192x192.png deleted file mode 100644 index 8b5da07..0000000 Binary files a/client/img/icon/shing.tv/icon-192x192.png and /dev/null differ diff --git a/client/img/icon/shing.tv/icon-256x256.png b/client/img/icon/shing.tv/icon-256x256.png deleted file mode 100644 index 7d05b59..0000000 Binary files a/client/img/icon/shing.tv/icon-256x256.png and /dev/null differ diff --git a/client/img/icon/shing.tv/icon-310x310.png b/client/img/icon/shing.tv/icon-310x310.png deleted file mode 100644 index 159493f..0000000 Binary files a/client/img/icon/shing.tv/icon-310x310.png and /dev/null differ diff --git a/client/img/icon/shing.tv/icon-32x32.png b/client/img/icon/shing.tv/icon-32x32.png deleted file mode 100644 index 6ffb901..0000000 Binary files a/client/img/icon/shing.tv/icon-32x32.png and /dev/null differ diff --git a/client/img/icon/shing.tv/icon-36x36.png b/client/img/icon/shing.tv/icon-36x36.png deleted file mode 100644 index a7d325b..0000000 Binary files a/client/img/icon/shing.tv/icon-36x36.png and /dev/null differ diff --git a/client/img/icon/shing.tv/icon-384x384.png b/client/img/icon/shing.tv/icon-384x384.png deleted file mode 100644 index 72bd6a8..0000000 Binary files a/client/img/icon/shing.tv/icon-384x384.png and /dev/null differ diff --git a/client/img/icon/shing.tv/icon-48x48.png b/client/img/icon/shing.tv/icon-48x48.png deleted file mode 100644 index 60ebd52..0000000 Binary files a/client/img/icon/shing.tv/icon-48x48.png and /dev/null differ diff --git a/client/img/icon/shing.tv/icon-512x512.png b/client/img/icon/shing.tv/icon-512x512.png deleted file mode 100644 index 087f5fa..0000000 Binary files a/client/img/icon/shing.tv/icon-512x512.png and /dev/null differ diff --git a/client/img/icon/shing.tv/icon-57x57.png b/client/img/icon/shing.tv/icon-57x57.png deleted file mode 100644 index f8134a4..0000000 Binary files a/client/img/icon/shing.tv/icon-57x57.png and /dev/null differ diff --git a/client/img/icon/shing.tv/icon-60x60.png b/client/img/icon/shing.tv/icon-60x60.png deleted file mode 100644 index 965a22f..0000000 Binary files a/client/img/icon/shing.tv/icon-60x60.png and /dev/null differ diff --git a/client/img/icon/shing.tv/icon-70x70.png b/client/img/icon/shing.tv/icon-70x70.png deleted file mode 100644 index a6432dc..0000000 Binary files a/client/img/icon/shing.tv/icon-70x70.png and /dev/null differ diff --git a/client/img/icon/shing.tv/icon-72x72.png b/client/img/icon/shing.tv/icon-72x72.png deleted file mode 100644 index 9a59fff..0000000 Binary files a/client/img/icon/shing.tv/icon-72x72.png and /dev/null differ diff --git a/client/img/icon/shing.tv/icon-76x76.png b/client/img/icon/shing.tv/icon-76x76.png deleted file mode 100644 index db9c6b1..0000000 Binary files a/client/img/icon/shing.tv/icon-76x76.png and /dev/null differ diff --git a/client/img/icon/shing.tv/icon-96x96.png b/client/img/icon/shing.tv/icon-96x96.png deleted file mode 100644 index d7a5b62..0000000 Binary files a/client/img/icon/shing.tv/icon-96x96.png and /dev/null differ diff --git a/dtp-sites-cli.js b/dtp-sites-cli.js index 96ee273..cc8f2bd 100644 --- a/dtp-sites-cli.js +++ b/dtp-sites-cli.js @@ -31,16 +31,6 @@ module.config = { module.log = new SiteLog(module, module.config.componentName); -module.createDomain = async (target) => { - const Domain = mongoose.model('Domain'); - try { - const domain = await Domain.create({ name: target }); - module.log.info('domain created', { domain }); - } catch (error) { - module.log.error('failed to create domain', { target, error }); - } -}; - module.grantPermission = async (target, permission) => { const User = mongoose.model('User'); try { @@ -133,10 +123,6 @@ module.dvrIngest = async (episodeId) => { await SiteAsync.each(module.app.targets, async (target) => { module.log.info('processing target', { target }); switch (module.app.options.action) { - case 'create-domain': - await module.createDomain(target); - break; - case 'grant': await module.grantPermission(target, module.app.options.permission); break; diff --git a/lib/site-ioserver.js b/lib/site-ioserver.js index 1da8875..d62c72b 100644 --- a/lib/site-ioserver.js +++ b/lib/site-ioserver.js @@ -27,16 +27,9 @@ class SiteIoServer extends Events { } async start (httpServer) { - const { domain: domainService } = this.dtp.services; - const { Server } = require('socket.io'); const { createAdapter } = require('@socket.io/redis-adapter'); - this.domain = await domainService.getByName(process.env.DTP_SITE_DOMAIN_KEY); - if (!this.domain) { - throw new Error('Must define site domain in MongoDB before starting environment'); - } - this.markedRenderer = new marked.Renderer(); this.markedRenderer.link = (href, title, text) => { return text; }; this.markedRenderer.image = (href, title, text) => { return text; }; @@ -186,9 +179,6 @@ class SiteIoServer extends Events { await ChatMessage.create({ created: new Date(), - domain: this.domain._id, - channel: mongoose.Types.ObjectId(channelId), - episode: channel.liveEpisode, author: session.user._id, content: message.content, stickers,