{"version":3,"sources":["jsdelivr-header.js","/npm/nodebb-plugin-vr-twitch-monitor@3.1.2/plugin/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,CCHA,SAAW,GACP,aAEA,IAAI,EAAa,QAAQ,SACrB,EAAa,QAAQ,MACrB,EAAa,QAAQ,QAErB,EAAa,QAAQ,eACrB,EAAa,QAAQ,gBACrB,EAAa,QAAQ,YACrB,EAAa,QAAQ,cACrB,EAAa,QAAQ,aAErB,EAAkB,KAClB,EAAkB,CAAC,EACnB,EAAkB,2BAClB,EAAkB,6BAoFtB,SAAS,EAAa,EAAc,GAChC,EAAG,SAAS,EAAK,QAAQ,UAAW,sBAAuB,IAAe,SAAU,EAAO,GACvF,GAAI,EAEA,OADA,EAAO,IAAI,QAAS,2CAA4C,EAAM,SAC/D,EAAK,GAEhB,EAAgB,GAAgB,EAAQ,WACxC,EAAO,IAAI,UAAW,+BAAgC,GACtD,EAAK,KACT,GACJ,CAEA,SAAS,EAAgB,EAAK,EAAK,GAC/B,EAAI,OACA,+BAAgC,CAAC,EAEzC,CAlGA,EAAO,MAAQ,CACX,QAAS,CACL,iBAAkB,SAAU,GACpB,IAAa,QAAQ,kBAAkB,IACvC,EAAW,iBAEnB,GAEJ,QAAS,CACL,iBAAkB,SAAU,EAAQ,GAChC,EAAO,QAAQ,KAAK,CAChB,MAAO,0BACP,KAAO,YACP,KAAO,mBAEX,EAAS,KAAM,EACnB,EAEA,aAAc,SAAU,EAAM,GAC1B,EAAK,KAAK,2CACV,EAAS,KAAM,EACnB,EAEA,kBAAmB,SAAU,EAAM,GAC/B,EAAW,kBACX,EAAS,KAAM,EACnB,EAEA,WAAY,SAAU,EAAS,GAC3B,EAAQ,KAAK,CACT,KAAa,iBACb,OAAa,EAAU,OACvB,YAAa,6CACb,QAAa,EAAgB,KAGjC,EAAS,KAAM,EACnB,EAEA,aAAc,SAAU,EAAQ,GAC5B,IAAI,EAAS,EAAO,KAAK,YAAc,EACnC,EAAS,EAAO,KAAK,iBAAmB,WAG5C,EAAI,OAAO,EAAiB,CACxB,MAAQ,EACR,OAAQ,IACT,SAAS,EAAK,GAC9B,GAAI,EACH,OAAO,EAAS,GAEI,EAAO,KAAO,EAC5B,EAAS,KAAM,EACT,GAEJ,GAEJ,QAAS,CACL,QAAS,SAAU,EAAQ,GACvB,IAAI,EAAc,EAAO,OACrB,EAAc,EAAO,WAErB,GADc,EAAO,YACP,iCACd,EAAc,OAAS,EACvB,EAAc,CAAC,EAAgB,GAEnC,EAAW,kBACX,EAAM,EAAO,IAEb,EAAO,IAAI,EAAW,EAAW,MAAM,YAAa,GACpD,EAAO,IAAI,EAAQ,GAEnB,EAAM,OAAO,CACT,EAAM,MAAM,EAAM,KAAM,EAAW,GACnC,EAAM,MAAM,EAAS,MACrB,EAAM,MAAM,EAAQ,MACpB,EAAM,MAAM,EAAW,QACxB,EACP,GAsBX,CAtHD,CAsHG,OAAO","file":"/npm/nodebb-plugin-vr-twitch-monitor@3.1.2/plugin/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/nodebb-plugin-vr-twitch-monitor@3.1.2/plugin/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","/**\n * Created by Nicolas on 6/20/15.\n */\n(function (Plugin) {\n    'use strict';\n\n    var async      = require('async'),\n        fs         = require('fs'),\n        path       = require('path'),\n\n        constants  = require('./constants'),\n        controller = require('./controller'),\n        logger     = require('./logger'),\n        settings   = require('./settings'),\n        sockets    = require('./sockets');\n\n    var app             = null,\n        widgetTemplates = {},\n        TEMPLATE_ADMIN  = 'admin/widgets/widget.tpl',\n        TEMPLATE_WIDGET = 'widgets/twitch-monitor.tpl';\n\n    Plugin.hooks = {\n        actions: {\n            pluginDeactivate: function (pluginId) {\n                if (pluginId === require('../plugin.json').id) {\n                    controller.disposeIfNeeded();\n                }\n            }\n        },\n        filters: {\n            adminHeaderBuild: function (header, callback) {\n                header.plugins.push({\n                    route: '/plugins/twitch-monitor',\n                    icon : 'fa-twitch',\n                    name : 'Twitch Monitor'\n                });\n                callback(null, header);\n            },\n\n            adminScripts: function (list, callback) {\n                list.push('https://checkout.stripe.com/checkout.js');\n                callback(null, list);\n            },\n\n            clearRequireCache: function (data, callback) {\n                controller.disposeIfNeeded();\n                callback(null, data);\n            },\n\n            widgetsGet: function (widgets, callback) {\n                widgets.push({\n                    name       : 'Twitch Monitor',\n                    widget     : constants.WIDGET,\n                    description: 'Renders online Twitch streams in real time',\n                    content    : widgetTemplates[TEMPLATE_ADMIN]\n                });\n\n                callback(null, widgets);\n            },\n\n            widgetRender: function (widget, callback) {\n                var limit  = widget.data.numStreams || 3,\n                    layout = widget.data.layoutDirection || 'vertical';\n\n\n                app.render(TEMPLATE_WIDGET, {\n                    limit : limit,\n                    layout: layout\n                }, function(err, html){\n\t\t\tif (err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n                        widget.html = html;\n\t\t        callback(null, widget);\n                });\n\n            }\n        },\n        statics: {\n            appLoad: function (params, callback) {\n                var router      = params.router,\n                    middleware  = params.middleware,\n                    controllers = params.controllers,\n                    pluginUri   = '/admin/plugins/twitch-monitor',\n                    apiUri      = '/api' + pluginUri,\n                    templates   = [TEMPLATE_ADMIN, TEMPLATE_WIDGET];\n\n                controller.disposeIfNeeded();\n                app = params.app;\n\n                router.get(pluginUri, middleware.admin.buildHeader, renderAdminPage);\n                router.get(apiUri, renderAdminPage);\n\n                async.series([\n                    async.apply(async.each, templates, loadTemplate),\n                    async.apply(settings.init),\n                    async.apply(sockets.init),\n                    async.apply(controller.start)\n                ], callback);\n            }\n        }\n    };\n\n    function loadTemplate(templatePath, done) {\n        fs.readFile(path.resolve(__dirname, '../public/templates', templatePath), function (error, content) {\n            if (error) {\n                logger.log('error', 'Template Error has occurred, message: %s', error.message);\n                return done(error);\n            }\n            widgetTemplates[templatePath] = content.toString();\n            logger.log('verbose', 'Widget Template %s is loaded', templatePath);\n            done(null);\n        });\n    }\n\n    function renderAdminPage(req, res, next) {\n        res.render(\n            'admin/plugins/twitch-monitor', {}\n        );\n    }\n\n})(module.exports);\n"]}