From 2f11fd7bb07b6d48aea9bde5cf2da9b0102b65c6 Mon Sep 17 00:00:00 2001 From: p0psicles Date: Wed, 16 Feb 2022 10:23:41 +0100 Subject: [PATCH 1/3] Add option to override avatar --- medusa/__main__.py | 2 ++ medusa/app.py | 1 + medusa/notifiers/discord.py | 18 ++++++++++++------ medusa/server/api/v2/config.py | 2 ++ medusa/server/web/home/handler.py | 6 ++++-- .../src/components/config-notifications.vue | 4 +++- .../store/modules/config/notifiers/discord.js | 3 ++- themes/dark/assets/js/medusa-runtime.js | 6 +++--- themes/light/assets/js/medusa-runtime.js | 6 +++--- 9 files changed, 32 insertions(+), 16 deletions(-) diff --git a/medusa/__main__.py b/medusa/__main__.py index 4072559835..87aee20766 100755 --- a/medusa/__main__.py +++ b/medusa/__main__.py @@ -800,6 +800,7 @@ def initialize(self, console_logging=True): check_setting_int(app.CFG, 'Discord', 'discord_notify_onsubtitledownload', 0)) app.DISCORD_WEBHOOK = check_setting_str(app.CFG, 'Discord', 'discord_webhook', '', censor_log='normal') app.DISCORD_TTS = check_setting_bool(app.CFG, 'Discord', 'discord_tts', 0) + app.OVERRIDE_AVATAR = check_setting_bool(app.CFG, 'Discord', 'override_avatar', 0) app.DISCORD_NAME = check_setting_str(app.CFG, 'Discord', 'discord_name', '', censor_log='normal') app.USE_PROWL = bool(check_setting_int(app.CFG, 'Prowl', 'use_prowl', 0)) @@ -1907,6 +1908,7 @@ def save_config(): new_config['Discord']['discord_notify_onsubtitledownload'] = int(app.DISCORD_NOTIFY_ONSUBTITLEDOWNLOAD) new_config['Discord']['discord_webhook'] = app.DISCORD_WEBHOOK new_config['Discord']['discord_tts'] = int(app.DISCORD_TTS) + new_config['Discord']['override_avatar'] = int(app.OVERRIDE_AVATAR) new_config['Discord']['discord_name'] = app.DISCORD_NAME new_config['Prowl'] = {} diff --git a/medusa/app.py b/medusa/app.py index 9d7fb6338e..84e209c740 100644 --- a/medusa/app.py +++ b/medusa/app.py @@ -435,6 +435,7 @@ def __init__(self): self.DISCORD_NAME = 'pymedusa' self.DISCORD_AVATAR_URL = '{base_url}/images/ico/favicon-144.png'.format(base_url=self.BASE_PYMEDUSA_URL) self.DISCORD_TTS = False + self.OVERRIDE_AVATAR = False self.USE_PROWL = False self.PROWL_NOTIFY_ONSNATCH = False diff --git a/medusa/notifiers/discord.py b/medusa/notifiers/discord.py index b18b94d443..8d40b0f313 100644 --- a/medusa/notifiers/discord.py +++ b/medusa/notifiers/discord.py @@ -33,10 +33,11 @@ class Notifier(object): https://discordapp.com """ - def _send_discord_msg(self, title, msg, webhook=None, tts=False): + def _send_discord_msg(self, title, msg, webhook=None, tts=None, override_avatar=None): """Collect the parameters and send the message to the discord webhook.""" webhook = app.DISCORD_WEBHOOK if webhook is None else webhook tts = app.DISCORD_TTS if tts is None else tts + override_avatar = app.DISCORD_AVATAR_URL if override_avatar is None else override_avatar log.debug('Discord in use with API webhook: {webhook}', {'webhook': webhook}) @@ -46,10 +47,12 @@ def _send_discord_msg(self, title, msg, webhook=None, tts=False): payload = { 'content': message, 'username': app.DISCORD_NAME, - 'avatar_url': app.DISCORD_AVATAR_URL, 'tts': tts } + if override_avatar: + payload['avatar_url'] = app.DISCORD_AVATAR_URL + success = False try: r = requests.post(webhook, json=payload, headers=headers) @@ -128,13 +131,16 @@ def notify_login(self, ipaddress=''): title = notifyStrings[NOTIFY_LOGIN] self._notify_discord(title, update_text.format(ipaddress)) - def test_notify(self, discord_webhook=None, discord_tts=None): + def test_notify(self, discord_webhook=None, discord_tts=None, override_avatar=None): """Create the test notification.""" - return self._notify_discord('test', 'This is a test notification from Medusa', webhook=discord_webhook, tts=discord_tts, force=True) + return self._notify_discord( + 'test', 'This is a test notification from Medusa', + webhook=discord_webhook, tts=discord_tts, override_avatar=override_avatar, force=True + ) - def _notify_discord(self, title='', message='', webhook=None, tts=False, force=False): + def _notify_discord(self, title='', message='', webhook=None, tts=None, override_avatar=None, force=False): """Validate if USE_DISCORD or Force is enabled and send.""" if not app.USE_DISCORD and not force: return False - return self._send_discord_msg(title, message, webhook, tts) + return self._send_discord_msg(title, message, webhook, tts, override_avatar) diff --git a/medusa/server/api/v2/config.py b/medusa/server/api/v2/config.py index 2865350b9e..c71a7fd786 100644 --- a/medusa/server/api/v2/config.py +++ b/medusa/server/api/v2/config.py @@ -432,6 +432,7 @@ class ConfigHandler(BaseRequestHandler): 'notifiers.discord.enabled': BooleanField(app, 'USE_DISCORD'), 'notifiers.discord.webhook': StringField(app, 'DISCORD_WEBHOOK'), 'notifiers.discord.tts': BooleanField(app, 'DISCORD_TTS'), + 'notifiers.discord.overrideAvatar': BooleanField(app, 'OVERRIDE_AVATAR'), 'notifiers.discord.notifyOnSnatch': BooleanField(app, 'DISCORD_NOTIFY_ONSNATCH'), 'notifiers.discord.notifyOnDownload': BooleanField(app, 'DISCORD_NOTIFY_ONDOWNLOAD'), 'notifiers.discord.notifyOnSubtitleDownload': BooleanField(app, 'DISCORD_NOTIFY_ONSUBTITLEDOWNLOAD'), @@ -1054,6 +1055,7 @@ def data_notifiers(): section_data['discord']['notifyOnSubtitleDownload'] = bool(app.DISCORD_NOTIFY_ONSUBTITLEDOWNLOAD) section_data['discord']['webhook'] = app.DISCORD_WEBHOOK section_data['discord']['tts'] = bool(app.DISCORD_TTS) + section_data['discord']['overrideAvatar'] = bool(app.OVERRIDE_AVATAR) section_data['discord']['name'] = app.DISCORD_NAME section_data['twitter'] = {} diff --git a/medusa/server/web/home/handler.py b/medusa/server/web/home/handler.py index f884fc5335..e211a2d7a0 100644 --- a/medusa/server/web/home/handler.py +++ b/medusa/server/web/home/handler.py @@ -155,8 +155,10 @@ def testTelegram(telegram_id=None, telegram_apikey=None): return 'Error sending Telegram notification: {msg}'.format(msg=message) @staticmethod - def testDiscord(discord_webhook=None, discord_tts=False): - result, message = notifiers.discord_notifier.test_notify(discord_webhook, config.checkbox_to_value(discord_tts)) + def testDiscord(discord_webhook=None, discord_tts=None, discord_override_avatar=None): + result, message = notifiers.discord_notifier.test_notify( + discord_webhook, config.checkbox_to_value(discord_tts), config.checkbox_to_value(discord_override_avatar) + ) if result: return 'Discord notification succeeded. Check your Discord channels to make sure it worked' else: diff --git a/themes-default/slim/src/components/config-notifications.vue b/themes-default/slim/src/components/config-notifications.vue index 0a4ecde5f8..59a63ce656 100644 --- a/themes-default/slim/src/components/config-notifications.vue +++ b/themes-default/slim/src/components/config-notifications.vue @@ -725,6 +725,7 @@ +
Click below to test your settings.
@@ -1603,7 +1604,8 @@ export default { $('#testDiscord-result').html(MEDUSA.config.layout.loading); $.get('home/testDiscord', { discord_webhook: notifiers.discord.webhook, // eslint-disable-line camelcase - discord_tts: notifiers.discord.tts // eslint-disable-line camelcase + discord_tts: notifiers.discord.tts, // eslint-disable-line camelcase + discord_override_avatar: notifiers.discord.overrideAvatar // eslint-disable-line camelcase }).done(data => { $('#testDiscord-result').html(data); $('#testDiscord').prop('disabled', false); diff --git a/themes-default/slim/src/store/modules/config/notifiers/discord.js b/themes-default/slim/src/store/modules/config/notifiers/discord.js index 79aec5740a..8ebf2ce3df 100644 --- a/themes-default/slim/src/store/modules/config/notifiers/discord.js +++ b/themes-default/slim/src/store/modules/config/notifiers/discord.js @@ -4,7 +4,8 @@ export const state = { notifyOnDownload: null, notifyOnSubtitleDownload: null, webhook: null, - tts: null + tts: null, + overrideAvatar: null }; export const mutations = {}; diff --git a/themes/dark/assets/js/medusa-runtime.js b/themes/dark/assets/js/medusa-runtime.js index c55a6014b0..bf1f4e6d9e 100644 --- a/themes/dark/assets/js/medusa-runtime.js +++ b/themes/dark/assets/js/medusa-runtime.js @@ -147,7 +147,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../api.js */ \"./src/api.js\");\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm.js\");\n/* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./helpers */ \"./src/components/helpers/index.js\");\n/* provided dependency */ var $ = __webpack_require__(/*! jquery */ \"./node_modules/jquery/dist/jquery.js\");\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n name: 'config-notifications',\n components: {\n AppLink: _helpers__WEBPACK_IMPORTED_MODULE_1__.AppLink,\n ConfigTemplate: _helpers__WEBPACK_IMPORTED_MODULE_1__.ConfigTemplate,\n ConfigTextbox: _helpers__WEBPACK_IMPORTED_MODULE_1__.ConfigTextbox,\n ConfigTextboxNumber: _helpers__WEBPACK_IMPORTED_MODULE_1__.ConfigTextboxNumber,\n ConfigToggleSlider: _helpers__WEBPACK_IMPORTED_MODULE_1__.ConfigToggleSlider,\n SelectList: _helpers__WEBPACK_IMPORTED_MODULE_1__.SelectList,\n ShowSelector: _helpers__WEBPACK_IMPORTED_MODULE_1__.ShowSelector\n },\n\n data() {\n return {\n prowlSelectedShow: null,\n prowlSelectedShowApiKeys: [],\n prowlPriorityOptions: [{\n text: 'Very Low',\n value: -2\n }, {\n text: 'Moderate',\n value: -1\n }, {\n text: 'Normal',\n value: 0\n }, {\n text: 'High',\n value: 1\n }, {\n text: 'Emergency',\n value: 2\n }],\n pushoverPriorityOptions: [{\n text: 'Lowest',\n value: -2\n }, {\n text: 'Low',\n value: -1\n }, {\n text: 'Normal',\n value: 0\n }, {\n text: 'High',\n value: 1\n }, {\n text: 'Emergency',\n value: 2\n }],\n pushoverSoundOptions: [{\n text: 'Default',\n value: 'default'\n }, {\n text: 'Pushover',\n value: 'pushover'\n }, {\n text: 'Bike',\n value: 'bike'\n }, {\n text: 'Bugle',\n value: 'bugle'\n }, {\n text: 'Cash Register',\n value: 'cashregister'\n }, {\n text: 'classical',\n value: 'classical'\n }, {\n text: 'Cosmic',\n value: 'cosmic'\n }, {\n text: 'Falling',\n value: 'falling'\n }, {\n text: 'Gamelan',\n value: 'gamelan'\n }, {\n text: 'Incoming',\n value: 'incoming'\n }, {\n text: 'Intermission',\n value: 'intermission'\n }, {\n text: 'Magic',\n value: 'magic'\n }, {\n text: 'Mechanical',\n value: 'mechanical'\n }, {\n text: 'Piano Bar',\n value: 'pianobar'\n }, {\n text: 'Siren',\n value: 'siren'\n }, {\n text: 'Space Alarm',\n value: 'spacealarm'\n }, {\n text: 'Tug Boat',\n value: 'tugboat'\n }, {\n text: 'Alien Alarm (long)',\n value: 'alien'\n }, {\n text: 'Climb (long)',\n value: 'climb'\n }, {\n text: 'Persistent (long)',\n value: 'persistant'\n }, {\n text: 'Pushover Echo (long)',\n value: 'echo'\n }, {\n text: 'Up Down (long)',\n value: 'updown'\n }, {\n text: 'None (silent)',\n value: 'none'\n }],\n pushbulletDeviceOptions: [{\n text: 'All devices',\n value: ''\n }],\n traktRequestSend: false,\n traktRequestAuthenticated: false,\n traktUserCode: '',\n traktRequestMessage: '',\n traktMethodOptions: [{\n text: 'Skip all',\n value: 0\n }, {\n text: 'Download pilot only',\n value: 1\n }, {\n text: 'Get whole show',\n value: 2\n }],\n pushbulletTestInfo: 'Click below to test.',\n joinTestInfo: 'Click below to test.',\n twitterTestInfo: 'Click below to test.',\n twitterKey: '',\n emailSelectedShow: null,\n emailSelectedShowAdresses: [],\n saving: false\n };\n },\n\n computed: { ...(0,vuex__WEBPACK_IMPORTED_MODULE_2__.mapState)({\n config: state => state.config.general,\n indexers: state => state.config.indexers,\n notifiers: state => state.config.notifiers\n }),\n\n traktIndexersOptions() {\n const {\n indexers\n } = this;\n const {\n traktIndexers\n } = indexers.main;\n const validTraktIndexer = Object.keys(indexers.indexers).filter(k => traktIndexers[k]);\n return validTraktIndexer.map(indexer => {\n return {\n text: indexer,\n value: indexers.indexers[indexer].id\n };\n });\n }\n\n },\n\n beforeMount() {\n // Wait for the next tick, so the component is rendered\n this.$nextTick(() => {\n $('#config-components').tabs();\n });\n },\n\n mounted() {\n // TODO: vueify this.\n $('#trakt_pin').on('keyup change', () => {\n if ($('#trakt_pin').val().length === 0) {\n $('#TraktGetPin').removeClass('hide');\n $('#authTrakt').addClass('hide');\n } else {\n $('#TraktGetPin').addClass('hide');\n $('#authTrakt').removeClass('hide');\n }\n });\n },\n\n methods: { ...(0,vuex__WEBPACK_IMPORTED_MODULE_2__.mapActions)(['getShows', 'setConfig']),\n\n onChangeProwlApi(items) {\n this.notifiers.prowl.api = items.map(item => item.value);\n },\n\n savePerShowNotifyList(listType, values) {\n const {\n emailSelectedShow,\n prowlSelectedShow\n } = this;\n const form = new FormData();\n\n if (listType === 'prowl') {\n form.set('show', prowlSelectedShow);\n form.set('prowlAPIs', values.map(apiKey => apiKey.value));\n } else {\n form.set('show', emailSelectedShow);\n form.set('emails', values.map(apiKey => apiKey.value));\n } // Save the list\n\n\n _api_js__WEBPACK_IMPORTED_MODULE_0__.apiRoute.post('home/saveShowNotifyList', form);\n },\n\n async prowlUpdateApiKeys(selectedShow) {\n this.prowlSelectedShow = selectedShow;\n const response = await (0,_api_js__WEBPACK_IMPORTED_MODULE_0__.apiRoute)('home/loadShowNotifyLists');\n\n if (response.data._size > 0) {\n const list = response.data[selectedShow].prowl_notify_list ? response.data[selectedShow].prowl_notify_list.split(',') : [];\n this.prowlSelectedShowApiKeys = selectedShow ? list : [];\n }\n },\n\n async emailUpdateShowEmail(selectedShow) {\n this.emailSelectedShow = selectedShow;\n const response = await (0,_api_js__WEBPACK_IMPORTED_MODULE_0__.apiRoute)('home/loadShowNotifyLists');\n\n if (response.data._size > 0) {\n const list = response.data[selectedShow].list ? response.data[selectedShow].list.split(',') : [];\n this.emailSelectedShowAdresses = selectedShow ? list : [];\n }\n },\n\n emailUpdateAddressList(items) {\n this.notifiers.email.addressList = items.map(x => x.value);\n },\n\n async getPushbulletDeviceOptions() {\n const {\n api: pushbulletApiKey\n } = this.notifiers.pushbullet;\n\n if (!pushbulletApiKey) {\n this.pushbulletTestInfo = 'You didn\\'t supply a Pushbullet api key';\n $('#pushbullet_api').find('input').focus();\n return false;\n }\n\n const response = await (0,_api_js__WEBPACK_IMPORTED_MODULE_0__.apiRoute)('home/getPushbulletDevices', {\n params: {\n api: pushbulletApiKey\n }\n });\n const options = [];\n const {\n data\n } = response;\n\n if (!data) {\n return false;\n }\n\n options.push({\n text: 'All devices',\n value: ''\n });\n\n for (const device of data.devices) {\n if (device.active === true) {\n options.push({\n text: device.nickname,\n value: device.iden\n });\n }\n }\n\n this.pushbulletDeviceOptions = options;\n this.pushbulletTestInfo = 'Device list updated. Please choose a device to push to.';\n },\n\n async testPushbulletApi() {\n const {\n api: pushbulletApiKey\n } = this.notifiers.pushbullet;\n\n if (!pushbulletApiKey) {\n this.pushbulletTestInfo = 'You didn\\'t supply a Pushbullet api key';\n $('#pushbullet_api').find('input').focus();\n return false;\n }\n\n const response = await (0,_api_js__WEBPACK_IMPORTED_MODULE_0__.apiRoute)('home/testPushbullet', {\n params: {\n api: pushbulletApiKey\n }\n });\n const {\n data\n } = response;\n\n if (data) {\n this.pushbulletTestInfo = data;\n }\n },\n\n async testJoinApi() {\n const {\n api: joinApiKey\n } = this.notifiers.join;\n\n if (!joinApiKey) {\n this.joinTestInfo = 'You didn\\'t supply a Join api key';\n $('#join_api').find('input').focus();\n return false;\n }\n\n const response = await (0,_api_js__WEBPACK_IMPORTED_MODULE_0__.apiRoute)('home/testJoin', {\n params: {\n api: joinApiKey\n }\n });\n const {\n data\n } = response;\n\n if (data) {\n this.joinTestInfo = data;\n }\n },\n\n async twitterStep1() {\n this.twitterTestInfo = MEDUSA.config.layout.loading;\n const response = await (0,_api_js__WEBPACK_IMPORTED_MODULE_0__.apiRoute)('home/twitterStep1');\n const {\n data\n } = response;\n window.open(data);\n this.twitterTestInfo = 'Step1: Confirm Authorization';\n },\n\n async twitterStep2() {\n const twitter = {};\n const {\n twitterKey\n } = this;\n twitter.key = twitterKey;\n\n if (twitter.key) {\n const response = await (0,_api_js__WEBPACK_IMPORTED_MODULE_0__.apiRoute)('home/twitterStep2', {\n params: {\n key: twitter.key\n }\n });\n const {\n data\n } = response;\n this.twitterTestInfo = data;\n } else {\n this.twitterTestInfo = 'Please fill out the necessary fields above.';\n }\n },\n\n async twitterTest() {\n try {\n const response = await (0,_api_js__WEBPACK_IMPORTED_MODULE_0__.apiRoute)('home/testTwitter');\n const {\n data\n } = response;\n this.twitterTestInfo = data;\n } catch (error) {\n this.twitterTestInfo = 'Error while trying to request for a test on the twitter api.';\n }\n },\n\n async save() {\n const {\n notifiers,\n setConfig\n } = this; // Disable the save button until we're done.\n\n this.saving = true;\n const section = 'main';\n\n try {\n await setConfig({\n section,\n config: {\n notifiers\n }\n });\n this.$snotify.success('Saved Notifiers config', 'Saved', {\n timeout: 5000\n });\n } catch (error) {\n this.$snotify.error('Error while trying to save notifiers config', 'Error');\n } finally {\n this.saving = false;\n }\n },\n\n testGrowl() {\n const growl = {};\n growl.host = $.trim($('#growl_host').val());\n growl.password = $.trim($('#growl_password').val());\n\n if (!growl.host) {\n $('#testGrowl-result').html('Please fill out the necessary fields above.');\n $('#growl_host').addClass('warning');\n return;\n }\n\n $('#growl_host').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testGrowl-result').html(MEDUSA.config.layout.loading);\n $.get('home/testGrowl', {\n host: growl.host,\n password: growl.password\n }).done(data => {\n $('#testGrowl-result').html(data);\n $('#testGrowl').prop('disabled', false);\n });\n },\n\n testProwl() {\n const prowl = {};\n prowl.api = $.trim($('#prowl_api').find('input').val());\n prowl.priority = $('#prowl_priority').find('input').val();\n\n if (!prowl.api) {\n $('#testProwl-result').html('Please fill out the necessary fields above.');\n $('#prowl_api').find('input').addClass('warning');\n return;\n }\n\n $('#prowl_api').find('input').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testProwl-result').html(MEDUSA.config.layout.loading);\n $.get('home/testProwl', {\n prowl_api: prowl.api,\n // eslint-disable-line camelcase\n prowl_priority: prowl.priority // eslint-disable-line camelcase\n\n }).done(data => {\n $('#testProwl-result').html(data);\n $('#testProwl').prop('disabled', false);\n });\n },\n\n testKODI() {\n const kodi = {};\n const kodiHostInput = $('#kodi_host').find('input');\n const kodiHosts = kodiHostInput.toArray().map(value => value.value).filter(item => item !== '');\n kodi.host = kodiHosts.join(',');\n kodi.username = $.trim($('#kodi_username').val());\n kodi.password = $.trim($('#kodi_password').val());\n\n if (!kodi.host) {\n $('#testKODI-result').html('Please fill out the necessary fields above.');\n $('#kodi_host').find('input').addClass('warning');\n return;\n }\n\n $('#kodi_host').find('input').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testKODI-result').html(MEDUSA.config.layout.loading);\n $.get('home/testKODI', {\n host: kodi.host,\n username: kodi.username,\n password: kodi.password\n }).done(data => {\n $('#testKODI-result').html(data);\n $('#testKODI').prop('disabled', false);\n });\n },\n\n testPHT() {\n const plex = {};\n plex.client = {};\n const plexHostsInput = $('#plex_client_host').find('input');\n const plexHosts = plexHostsInput.toArray().map(value => value.value).filter(item => item !== '');\n plex.client.host = plexHosts.join(',');\n plex.client.username = $.trim($('#plex_client_username').val());\n plex.client.password = $.trim($('#plex_client_password').val());\n\n if (!plex.client.host) {\n $('#testPHT-result').html('Please fill out the necessary fields above.');\n $('#plex_client_host').find('input').addClass('warning');\n return;\n }\n\n $('#plex_client_host').find('input').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testPHT-result').html(MEDUSA.config.layout.loading);\n $.get('home/testPHT', {\n host: plex.client.host,\n username: plex.client.username,\n password: plex.client.password\n }).done(data => {\n $('#testPHT-result').html(data);\n $('#testPHT').prop('disabled', false);\n });\n },\n\n testPMS() {\n const plex = {};\n plex.server = {};\n const plexHostsInput = $('#plex_server_host').find('input');\n const plexHosts = plexHostsInput.toArray().map(value => value.value).filter(item => item !== '');\n plex.server.host = plexHosts.join(',');\n plex.server.username = $.trim($('#plex_server_username').val());\n plex.server.password = $.trim($('#plex_server_password').val());\n plex.server.token = $.trim($('#plex_server_token').val());\n\n if (!plex.server.host) {\n $('#testPMS-result').html('Please fill out the necessary fields above.');\n $('#plex_server_host').find('input').addClass('warning');\n return;\n }\n\n $('#plex_server_host').find('input').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testPMS-result').html(MEDUSA.config.layout.loading);\n $.get('home/testPMS', {\n host: plex.server.host,\n username: plex.server.username,\n password: plex.server.password,\n plex_server_token: plex.server.token // eslint-disable-line camelcase\n\n }).done(data => {\n $('#testPMS-result').html(data);\n $('#testPMS').prop('disabled', false);\n });\n },\n\n testEMBY() {\n const emby = {};\n emby.host = $('#emby_host').val();\n emby.apikey = $('#emby_apikey').val();\n\n if (!emby.host || !emby.apikey) {\n $('#testEMBY-result').html('Please fill out the necessary fields above.');\n $('#emby_host').addRemoveWarningClass(emby.host);\n $('#emby_apikey').addRemoveWarningClass(emby.apikey);\n return;\n }\n\n $('#emby_host,#emby_apikey').children('input').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testEMBY-result').html(MEDUSA.config.layout.loading);\n $.get('home/testEMBY', {\n host: emby.host,\n emby_apikey: emby.apikey // eslint-disable-line camelcase\n\n }).done(data => {\n $('#testEMBY-result').html(data);\n $('#testEMBY').prop('disabled', false);\n });\n },\n\n testBoxcar2() {\n const boxcar2 = {};\n boxcar2.accesstoken = $.trim($('#boxcar2_accesstoken').val());\n\n if (!boxcar2.accesstoken) {\n $('#testBoxcar2-result').html('Please fill out the necessary fields above.');\n $('#boxcar2_accesstoken').addClass('warning');\n return;\n }\n\n $('#boxcar2_accesstoken').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testBoxcar2-result').html(MEDUSA.config.layout.loading);\n $.get('home/testBoxcar2', {\n accesstoken: boxcar2.accesstoken\n }).done(data => {\n $('#testBoxcar2-result').html(data);\n $('#testBoxcar2').prop('disabled', false);\n });\n },\n\n testPushover() {\n const pushover = {};\n pushover.userkey = $('#pushover_userkey').val();\n pushover.apikey = $('#pushover_apikey').val();\n\n if (!pushover.userkey || !pushover.apikey) {\n $('#testPushover-result').html('Please fill out the necessary fields above.');\n $('#pushover_userkey').addRemoveWarningClass(pushover.userkey);\n $('#pushover_apikey').addRemoveWarningClass(pushover.apikey);\n return;\n }\n\n $('#pushover_userkey,#pushover_apikey').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testPushover-result').html(MEDUSA.config.layout.loading);\n $.get('home/testPushover', {\n userKey: pushover.userkey,\n apiKey: pushover.apikey\n }).done(data => {\n $('#testPushover-result').html(data);\n $('#testPushover').prop('disabled', false);\n });\n },\n\n testLibnotify() {\n $('#testLibnotify-result').html(MEDUSA.config.layout.loading);\n $.get('home/testLibnotify', data => {\n $('#testLibnotify-result').html(data);\n });\n },\n\n settingsNMJ() {\n const nmj = {};\n nmj.host = $('#nmj_host').val();\n\n if (nmj.host) {\n $('#testNMJ-result').html(MEDUSA.config.layout.loading);\n $.get('home/settingsNMJ', {\n host: nmj.host\n }, data => {\n if (data === null) {\n $('#nmj_database').removeAttr('readonly');\n $('#nmj_mount').removeAttr('readonly');\n }\n\n const JSONData = $.parseJSON(data);\n $('#testNMJ-result').html(JSONData.message);\n $('#nmj_database').val(JSONData.database);\n $('#nmj_mount').val(JSONData.mount);\n\n if (JSONData.database) {\n $('#nmj_database').prop('readonly', true);\n } else {\n $('#nmj_database').removeAttr('readonly');\n }\n\n if (JSONData.mount) {\n $('#nmj_mount').prop('readonly', true);\n } else {\n $('#nmj_mount').removeAttr('readonly');\n }\n });\n } else {\n alert('Please fill in the Popcorn IP address'); // eslint-disable-line no-alert\n\n $('#nmj_host').focus();\n }\n },\n\n testNMJ() {\n const nmj = {};\n nmj.host = $.trim($('#nmj_host').val());\n nmj.database = $('#nmj_database').val();\n nmj.mount = $('#nmj_mount').val();\n\n if (nmj.host) {\n $('#nmj_host').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testNMJ-result').html(MEDUSA.config.layout.loading);\n $.get('home/testNMJ', {\n host: nmj.host,\n database: nmj.database,\n mount: nmj.mount\n }).done(data => {\n $('#testNMJ-result').html(data);\n $('#testNMJ').prop('disabled', false);\n });\n } else {\n $('#testNMJ-result').html('Please fill out the necessary fields above.');\n $('#nmj_host').addClass('warning');\n }\n },\n\n settingsNMJv2() {\n const nmjv2 = {};\n nmjv2.host = $('#nmjv2_host').val();\n\n if (nmjv2.host) {\n $('#testNMJv2-result').html(MEDUSA.config.layout.loading);\n nmjv2.dbloc = '';\n const radios = document.getElementsByName('nmjv2_dbloc');\n\n for (let i = 0, len = radios.length; i < len; i++) {\n if (radios[i].checked) {\n nmjv2.dbloc = radios[i].value;\n break;\n }\n }\n\n nmjv2.dbinstance = $('#NMJv2db_instance').val();\n $.get('home/settingsNMJv2', {\n host: nmjv2.host,\n dbloc: nmjv2.dbloc,\n instance: nmjv2.dbinstance\n }, data => {\n if (data === null) {\n $('#nmjv2_database').removeAttr('readonly');\n }\n\n const JSONData = $.parseJSON(data);\n $('#testNMJv2-result').html(JSONData.message);\n $('#nmjv2_database').val(JSONData.database);\n\n if (JSONData.database) {\n $('#nmjv2_database').prop('readonly', true);\n } else {\n $('#nmjv2_database').removeAttr('readonly');\n }\n });\n } else {\n alert('Please fill in the Popcorn IP address'); // eslint-disable-line no-alert\n\n $('#nmjv2_host').focus();\n }\n },\n\n testNMJv2() {\n const nmjv2 = {};\n nmjv2.host = $.trim($('#nmjv2_host').val());\n\n if (nmjv2.host) {\n $('#nmjv2_host').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testNMJv2-result').html(MEDUSA.config.layout.loading);\n $.get('home/testNMJv2', {\n host: nmjv2.host\n }).done(data => {\n $('#testNMJv2-result').html(data);\n $('#testNMJv2').prop('disabled', false);\n });\n } else {\n $('#testNMJv2-result').html('Please fill out the necessary fields above.');\n $('#nmjv2_host').addClass('warning');\n }\n },\n\n testFreeMobile() {\n const freemobile = {};\n freemobile.id = $.trim($('#freemobile_id').val());\n freemobile.apikey = $.trim($('#freemobile_apikey').val());\n\n if (!freemobile.id || !freemobile.apikey) {\n $('#testFreeMobile-result').html('Please fill out the necessary fields above.');\n\n if (freemobile.id) {\n $('#freemobile_id').removeClass('warning');\n } else {\n $('#freemobile_id').addClass('warning');\n }\n\n if (freemobile.apikey) {\n $('#freemobile_apikey').removeClass('warning');\n } else {\n $('#freemobile_apikey').addClass('warning');\n }\n\n return;\n }\n\n $('#freemobile_id,#freemobile_apikey').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testFreeMobile-result').html(MEDUSA.config.layout.loading);\n $.get('home/testFreeMobile', {\n freemobile_id: freemobile.id,\n // eslint-disable-line camelcase\n freemobile_apikey: freemobile.apikey // eslint-disable-line camelcase\n\n }).done(data => {\n $('#testFreeMobile-result').html(data);\n $('#testFreeMobile').prop('disabled', false);\n });\n },\n\n testTelegram() {\n const telegram = {};\n telegram.id = $.trim($('#telegram_id').val());\n telegram.apikey = $.trim($('#telegram_apikey').val());\n\n if (!telegram.id || !telegram.apikey) {\n $('#testTelegram-result').html('Please fill out the necessary fields above.');\n $('#telegram_id').addRemoveWarningClass(telegram.id);\n $('#telegram_apikey').addRemoveWarningClass(telegram.apikey);\n return;\n }\n\n $('#telegram_id,#telegram_apikey').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testTelegram-result').html(MEDUSA.config.layout.loading);\n $.get('home/testTelegram', {\n telegram_id: telegram.id,\n // eslint-disable-line camelcase\n telegram_apikey: telegram.apikey // eslint-disable-line camelcase\n\n }).done(data => {\n $('#testTelegram-result').html(data);\n $('#testTelegram').prop('disabled', false);\n });\n },\n\n testDiscord() {\n const {\n notifiers\n } = this;\n\n if (!notifiers.discord.webhook) {\n $('#testDiscord-result').html('Please fill out the necessary fields above.');\n $('#discord_webhook').addRemoveWarningClass(notifiers.discord.webhook);\n return;\n }\n\n $('#discord_id,#discord_apikey').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testDiscord-result').html(MEDUSA.config.layout.loading);\n $.get('home/testDiscord', {\n discord_webhook: notifiers.discord.webhook,\n // eslint-disable-line camelcase\n discord_tts: notifiers.discord.tts // eslint-disable-line camelcase\n\n }).done(data => {\n $('#testDiscord-result').html(data);\n $('#testDiscord').prop('disabled', false);\n });\n },\n\n testSlack() {\n const slack = {};\n slack.webhook = $.trim($('#slack_webhook').val());\n\n if (!slack.webhook) {\n $('#testSlack-result').html('Please fill out the necessary fields above.');\n $('#slack_webhook').addRemoveWarningClass(slack.webhook);\n return;\n }\n\n $('#slack_webhook').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testSlack-result').html(MEDUSA.config.layout.loading);\n $.get('home/testslack', {\n slack_webhook: slack.webhook // eslint-disable-line camelcase\n\n }).done(data => {\n $('#testSlack-result').html(data);\n $('#testSlack').prop('disabled', false);\n });\n },\n\n async TraktRequestDeviceCode() {\n this.traktUserCode = '';\n this.traktRequestAuthenticated = false;\n const response = await (0,_api_js__WEBPACK_IMPORTED_MODULE_0__.apiRoute)('home/requestTraktDeviceCodeOauth');\n\n if (response.data) {\n this.traktVerificationUrl = response.data.verification_url;\n window.open(response.data.verification_url, 'popUp', 'toolbar=no, scrollbars=no, resizable=no, top=200, left=200, width=650, height=550');\n this.traktRequestSend = true;\n this.traktUserCode = response.data.user_code;\n this.checkTraktAuthenticated();\n }\n },\n\n checkTraktAuthenticated() {\n let counter = 0;\n const i = setInterval(() => {\n (0,_api_js__WEBPACK_IMPORTED_MODULE_0__.apiRoute)('home/checkTrakTokenOauth').then(response => {\n if (response.data) {\n this.traktRequestMessage = response.data.result;\n\n if (!response.data.error) {\n clearInterval(i);\n this.traktRequestAuthenticated = true;\n this.traktUserCode = '';\n }\n }\n });\n counter++;\n\n if (counter === 12) {\n clearInterval(i);\n this.traktRequestAuthenticated = false;\n this.traktUserCode = '';\n }\n }, 5000);\n },\n\n testTrakt() {\n const trakt = {};\n trakt.trendingBlacklist = $.trim($('#trakt_blacklist_name').val());\n\n if (/\\s/g.test(trakt.trendingBlacklist)) {\n $('#testTrakt-result').html('Check blacklist name; the value needs to be a trakt slug');\n $('#trakt_blacklist_name').addClass('warning');\n return;\n }\n\n $('#trakt_blacklist_name').removeClass('warning');\n $('#testTrakt-result').html(MEDUSA.config.layout.loading);\n (0,_api_js__WEBPACK_IMPORTED_MODULE_0__.apiRoute)(`home/testTrakt?blacklist_name=${trakt.trendingBlacklist}`).then(result => {\n $('#testTrakt-result').html(result.data);\n $('#testTrakt').prop('disabled', false);\n });\n },\n\n traktForceSync() {\n $('#testTrakt-result').html(MEDUSA.config.layout.loading);\n $.getJSON('home/forceTraktSync', data => {\n $('#testTrakt-result').html(data.result);\n });\n },\n\n testEmail() {\n let to = '';\n const status = $('#testEmail-result');\n status.html(MEDUSA.config.layout.loading);\n let host = $('#email_host').val();\n host = host.length > 0 ? host : null;\n let port = $('#email_port').val();\n port = port.length > 0 ? port : null;\n const tls = $('#email_tls').find('input').is(':checked') ? 1 : 0;\n let from = $('#email_from').val();\n from = from.length > 0 ? from : 'root@localhost';\n const user = $('#email_username').val().trim();\n const pwd = $('#email_password').val();\n let err = '';\n\n if (host === null) {\n err += '
  • You must specify an SMTP hostname!
  • ';\n }\n\n if (port === null) {\n err += '
  • You must specify an SMTP port!
  • ';\n } else if (port.match(/^\\d+$/) === null || Number.parseInt(port, 10) > 65535) {\n err += '
  • SMTP port must be between 0 and 65535!
  • ';\n }\n\n if (err.length > 0) {\n err = '
      ' + err + '
    ';\n status.html(err);\n } else {\n to = prompt('Enter an email address to send the test to:', null); // eslint-disable-line no-alert\n\n if (to === null || to.length === 0 || to.match(/.*@.*/) === null) {\n status.html('

    You must provide a recipient email address!

    ');\n } else {\n $.get('home/testEmail', {\n host,\n port,\n smtp_from: from,\n // eslint-disable-line camelcase\n use_tls: tls,\n // eslint-disable-line camelcase\n user,\n pwd,\n to\n }, msg => {\n $('#testEmail-result').html(msg);\n });\n }\n }\n },\n\n testPushalot() {\n const pushalot = {};\n pushalot.authToken = $.trim($('#pushalot_authorizationtoken').val());\n\n if (!pushalot.authToken) {\n $('#testPushalot-result').html('Please fill out the necessary fields above.');\n $('#pushalot_authorizationtoken').addClass('warning');\n return;\n }\n\n $('#pushalot_authorizationtoken').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testPushalot-result').html(MEDUSA.config.layout.loading);\n $.get('home/testPushalot', {\n authorizationToken: pushalot.authToken\n }).done(data => {\n $('#testPushalot-result').html(data);\n $('#testPushalot').prop('disabled', false);\n });\n }\n\n }\n});\n\n//# sourceURL=webpack://slim/./src/components/config-notifications.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-1%5B0%5D.rules%5B0%5D!./node_modules/vue-loader/lib/index.js??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../api.js */ \"./src/api.js\");\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm.js\");\n/* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./helpers */ \"./src/components/helpers/index.js\");\n/* provided dependency */ var $ = __webpack_require__(/*! jquery */ \"./node_modules/jquery/dist/jquery.js\");\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n name: 'config-notifications',\n components: {\n AppLink: _helpers__WEBPACK_IMPORTED_MODULE_1__.AppLink,\n ConfigTemplate: _helpers__WEBPACK_IMPORTED_MODULE_1__.ConfigTemplate,\n ConfigTextbox: _helpers__WEBPACK_IMPORTED_MODULE_1__.ConfigTextbox,\n ConfigTextboxNumber: _helpers__WEBPACK_IMPORTED_MODULE_1__.ConfigTextboxNumber,\n ConfigToggleSlider: _helpers__WEBPACK_IMPORTED_MODULE_1__.ConfigToggleSlider,\n SelectList: _helpers__WEBPACK_IMPORTED_MODULE_1__.SelectList,\n ShowSelector: _helpers__WEBPACK_IMPORTED_MODULE_1__.ShowSelector\n },\n\n data() {\n return {\n prowlSelectedShow: null,\n prowlSelectedShowApiKeys: [],\n prowlPriorityOptions: [{\n text: 'Very Low',\n value: -2\n }, {\n text: 'Moderate',\n value: -1\n }, {\n text: 'Normal',\n value: 0\n }, {\n text: 'High',\n value: 1\n }, {\n text: 'Emergency',\n value: 2\n }],\n pushoverPriorityOptions: [{\n text: 'Lowest',\n value: -2\n }, {\n text: 'Low',\n value: -1\n }, {\n text: 'Normal',\n value: 0\n }, {\n text: 'High',\n value: 1\n }, {\n text: 'Emergency',\n value: 2\n }],\n pushoverSoundOptions: [{\n text: 'Default',\n value: 'default'\n }, {\n text: 'Pushover',\n value: 'pushover'\n }, {\n text: 'Bike',\n value: 'bike'\n }, {\n text: 'Bugle',\n value: 'bugle'\n }, {\n text: 'Cash Register',\n value: 'cashregister'\n }, {\n text: 'classical',\n value: 'classical'\n }, {\n text: 'Cosmic',\n value: 'cosmic'\n }, {\n text: 'Falling',\n value: 'falling'\n }, {\n text: 'Gamelan',\n value: 'gamelan'\n }, {\n text: 'Incoming',\n value: 'incoming'\n }, {\n text: 'Intermission',\n value: 'intermission'\n }, {\n text: 'Magic',\n value: 'magic'\n }, {\n text: 'Mechanical',\n value: 'mechanical'\n }, {\n text: 'Piano Bar',\n value: 'pianobar'\n }, {\n text: 'Siren',\n value: 'siren'\n }, {\n text: 'Space Alarm',\n value: 'spacealarm'\n }, {\n text: 'Tug Boat',\n value: 'tugboat'\n }, {\n text: 'Alien Alarm (long)',\n value: 'alien'\n }, {\n text: 'Climb (long)',\n value: 'climb'\n }, {\n text: 'Persistent (long)',\n value: 'persistant'\n }, {\n text: 'Pushover Echo (long)',\n value: 'echo'\n }, {\n text: 'Up Down (long)',\n value: 'updown'\n }, {\n text: 'None (silent)',\n value: 'none'\n }],\n pushbulletDeviceOptions: [{\n text: 'All devices',\n value: ''\n }],\n traktRequestSend: false,\n traktRequestAuthenticated: false,\n traktUserCode: '',\n traktRequestMessage: '',\n traktMethodOptions: [{\n text: 'Skip all',\n value: 0\n }, {\n text: 'Download pilot only',\n value: 1\n }, {\n text: 'Get whole show',\n value: 2\n }],\n pushbulletTestInfo: 'Click below to test.',\n joinTestInfo: 'Click below to test.',\n twitterTestInfo: 'Click below to test.',\n twitterKey: '',\n emailSelectedShow: null,\n emailSelectedShowAdresses: [],\n saving: false\n };\n },\n\n computed: { ...(0,vuex__WEBPACK_IMPORTED_MODULE_2__.mapState)({\n config: state => state.config.general,\n indexers: state => state.config.indexers,\n notifiers: state => state.config.notifiers\n }),\n\n traktIndexersOptions() {\n const {\n indexers\n } = this;\n const {\n traktIndexers\n } = indexers.main;\n const validTraktIndexer = Object.keys(indexers.indexers).filter(k => traktIndexers[k]);\n return validTraktIndexer.map(indexer => {\n return {\n text: indexer,\n value: indexers.indexers[indexer].id\n };\n });\n }\n\n },\n\n beforeMount() {\n // Wait for the next tick, so the component is rendered\n this.$nextTick(() => {\n $('#config-components').tabs();\n });\n },\n\n mounted() {\n // TODO: vueify this.\n $('#trakt_pin').on('keyup change', () => {\n if ($('#trakt_pin').val().length === 0) {\n $('#TraktGetPin').removeClass('hide');\n $('#authTrakt').addClass('hide');\n } else {\n $('#TraktGetPin').addClass('hide');\n $('#authTrakt').removeClass('hide');\n }\n });\n },\n\n methods: { ...(0,vuex__WEBPACK_IMPORTED_MODULE_2__.mapActions)(['getShows', 'setConfig']),\n\n onChangeProwlApi(items) {\n this.notifiers.prowl.api = items.map(item => item.value);\n },\n\n savePerShowNotifyList(listType, values) {\n const {\n emailSelectedShow,\n prowlSelectedShow\n } = this;\n const form = new FormData();\n\n if (listType === 'prowl') {\n form.set('show', prowlSelectedShow);\n form.set('prowlAPIs', values.map(apiKey => apiKey.value));\n } else {\n form.set('show', emailSelectedShow);\n form.set('emails', values.map(apiKey => apiKey.value));\n } // Save the list\n\n\n _api_js__WEBPACK_IMPORTED_MODULE_0__.apiRoute.post('home/saveShowNotifyList', form);\n },\n\n async prowlUpdateApiKeys(selectedShow) {\n this.prowlSelectedShow = selectedShow;\n const response = await (0,_api_js__WEBPACK_IMPORTED_MODULE_0__.apiRoute)('home/loadShowNotifyLists');\n\n if (response.data._size > 0) {\n const list = response.data[selectedShow].prowl_notify_list ? response.data[selectedShow].prowl_notify_list.split(',') : [];\n this.prowlSelectedShowApiKeys = selectedShow ? list : [];\n }\n },\n\n async emailUpdateShowEmail(selectedShow) {\n this.emailSelectedShow = selectedShow;\n const response = await (0,_api_js__WEBPACK_IMPORTED_MODULE_0__.apiRoute)('home/loadShowNotifyLists');\n\n if (response.data._size > 0) {\n const list = response.data[selectedShow].list ? response.data[selectedShow].list.split(',') : [];\n this.emailSelectedShowAdresses = selectedShow ? list : [];\n }\n },\n\n emailUpdateAddressList(items) {\n this.notifiers.email.addressList = items.map(x => x.value);\n },\n\n async getPushbulletDeviceOptions() {\n const {\n api: pushbulletApiKey\n } = this.notifiers.pushbullet;\n\n if (!pushbulletApiKey) {\n this.pushbulletTestInfo = 'You didn\\'t supply a Pushbullet api key';\n $('#pushbullet_api').find('input').focus();\n return false;\n }\n\n const response = await (0,_api_js__WEBPACK_IMPORTED_MODULE_0__.apiRoute)('home/getPushbulletDevices', {\n params: {\n api: pushbulletApiKey\n }\n });\n const options = [];\n const {\n data\n } = response;\n\n if (!data) {\n return false;\n }\n\n options.push({\n text: 'All devices',\n value: ''\n });\n\n for (const device of data.devices) {\n if (device.active === true) {\n options.push({\n text: device.nickname,\n value: device.iden\n });\n }\n }\n\n this.pushbulletDeviceOptions = options;\n this.pushbulletTestInfo = 'Device list updated. Please choose a device to push to.';\n },\n\n async testPushbulletApi() {\n const {\n api: pushbulletApiKey\n } = this.notifiers.pushbullet;\n\n if (!pushbulletApiKey) {\n this.pushbulletTestInfo = 'You didn\\'t supply a Pushbullet api key';\n $('#pushbullet_api').find('input').focus();\n return false;\n }\n\n const response = await (0,_api_js__WEBPACK_IMPORTED_MODULE_0__.apiRoute)('home/testPushbullet', {\n params: {\n api: pushbulletApiKey\n }\n });\n const {\n data\n } = response;\n\n if (data) {\n this.pushbulletTestInfo = data;\n }\n },\n\n async testJoinApi() {\n const {\n api: joinApiKey\n } = this.notifiers.join;\n\n if (!joinApiKey) {\n this.joinTestInfo = 'You didn\\'t supply a Join api key';\n $('#join_api').find('input').focus();\n return false;\n }\n\n const response = await (0,_api_js__WEBPACK_IMPORTED_MODULE_0__.apiRoute)('home/testJoin', {\n params: {\n api: joinApiKey\n }\n });\n const {\n data\n } = response;\n\n if (data) {\n this.joinTestInfo = data;\n }\n },\n\n async twitterStep1() {\n this.twitterTestInfo = MEDUSA.config.layout.loading;\n const response = await (0,_api_js__WEBPACK_IMPORTED_MODULE_0__.apiRoute)('home/twitterStep1');\n const {\n data\n } = response;\n window.open(data);\n this.twitterTestInfo = 'Step1: Confirm Authorization';\n },\n\n async twitterStep2() {\n const twitter = {};\n const {\n twitterKey\n } = this;\n twitter.key = twitterKey;\n\n if (twitter.key) {\n const response = await (0,_api_js__WEBPACK_IMPORTED_MODULE_0__.apiRoute)('home/twitterStep2', {\n params: {\n key: twitter.key\n }\n });\n const {\n data\n } = response;\n this.twitterTestInfo = data;\n } else {\n this.twitterTestInfo = 'Please fill out the necessary fields above.';\n }\n },\n\n async twitterTest() {\n try {\n const response = await (0,_api_js__WEBPACK_IMPORTED_MODULE_0__.apiRoute)('home/testTwitter');\n const {\n data\n } = response;\n this.twitterTestInfo = data;\n } catch (error) {\n this.twitterTestInfo = 'Error while trying to request for a test on the twitter api.';\n }\n },\n\n async save() {\n const {\n notifiers,\n setConfig\n } = this; // Disable the save button until we're done.\n\n this.saving = true;\n const section = 'main';\n\n try {\n await setConfig({\n section,\n config: {\n notifiers\n }\n });\n this.$snotify.success('Saved Notifiers config', 'Saved', {\n timeout: 5000\n });\n } catch (error) {\n this.$snotify.error('Error while trying to save notifiers config', 'Error');\n } finally {\n this.saving = false;\n }\n },\n\n testGrowl() {\n const growl = {};\n growl.host = $.trim($('#growl_host').val());\n growl.password = $.trim($('#growl_password').val());\n\n if (!growl.host) {\n $('#testGrowl-result').html('Please fill out the necessary fields above.');\n $('#growl_host').addClass('warning');\n return;\n }\n\n $('#growl_host').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testGrowl-result').html(MEDUSA.config.layout.loading);\n $.get('home/testGrowl', {\n host: growl.host,\n password: growl.password\n }).done(data => {\n $('#testGrowl-result').html(data);\n $('#testGrowl').prop('disabled', false);\n });\n },\n\n testProwl() {\n const prowl = {};\n prowl.api = $.trim($('#prowl_api').find('input').val());\n prowl.priority = $('#prowl_priority').find('input').val();\n\n if (!prowl.api) {\n $('#testProwl-result').html('Please fill out the necessary fields above.');\n $('#prowl_api').find('input').addClass('warning');\n return;\n }\n\n $('#prowl_api').find('input').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testProwl-result').html(MEDUSA.config.layout.loading);\n $.get('home/testProwl', {\n prowl_api: prowl.api,\n // eslint-disable-line camelcase\n prowl_priority: prowl.priority // eslint-disable-line camelcase\n\n }).done(data => {\n $('#testProwl-result').html(data);\n $('#testProwl').prop('disabled', false);\n });\n },\n\n testKODI() {\n const kodi = {};\n const kodiHostInput = $('#kodi_host').find('input');\n const kodiHosts = kodiHostInput.toArray().map(value => value.value).filter(item => item !== '');\n kodi.host = kodiHosts.join(',');\n kodi.username = $.trim($('#kodi_username').val());\n kodi.password = $.trim($('#kodi_password').val());\n\n if (!kodi.host) {\n $('#testKODI-result').html('Please fill out the necessary fields above.');\n $('#kodi_host').find('input').addClass('warning');\n return;\n }\n\n $('#kodi_host').find('input').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testKODI-result').html(MEDUSA.config.layout.loading);\n $.get('home/testKODI', {\n host: kodi.host,\n username: kodi.username,\n password: kodi.password\n }).done(data => {\n $('#testKODI-result').html(data);\n $('#testKODI').prop('disabled', false);\n });\n },\n\n testPHT() {\n const plex = {};\n plex.client = {};\n const plexHostsInput = $('#plex_client_host').find('input');\n const plexHosts = plexHostsInput.toArray().map(value => value.value).filter(item => item !== '');\n plex.client.host = plexHosts.join(',');\n plex.client.username = $.trim($('#plex_client_username').val());\n plex.client.password = $.trim($('#plex_client_password').val());\n\n if (!plex.client.host) {\n $('#testPHT-result').html('Please fill out the necessary fields above.');\n $('#plex_client_host').find('input').addClass('warning');\n return;\n }\n\n $('#plex_client_host').find('input').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testPHT-result').html(MEDUSA.config.layout.loading);\n $.get('home/testPHT', {\n host: plex.client.host,\n username: plex.client.username,\n password: plex.client.password\n }).done(data => {\n $('#testPHT-result').html(data);\n $('#testPHT').prop('disabled', false);\n });\n },\n\n testPMS() {\n const plex = {};\n plex.server = {};\n const plexHostsInput = $('#plex_server_host').find('input');\n const plexHosts = plexHostsInput.toArray().map(value => value.value).filter(item => item !== '');\n plex.server.host = plexHosts.join(',');\n plex.server.username = $.trim($('#plex_server_username').val());\n plex.server.password = $.trim($('#plex_server_password').val());\n plex.server.token = $.trim($('#plex_server_token').val());\n\n if (!plex.server.host) {\n $('#testPMS-result').html('Please fill out the necessary fields above.');\n $('#plex_server_host').find('input').addClass('warning');\n return;\n }\n\n $('#plex_server_host').find('input').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testPMS-result').html(MEDUSA.config.layout.loading);\n $.get('home/testPMS', {\n host: plex.server.host,\n username: plex.server.username,\n password: plex.server.password,\n plex_server_token: plex.server.token // eslint-disable-line camelcase\n\n }).done(data => {\n $('#testPMS-result').html(data);\n $('#testPMS').prop('disabled', false);\n });\n },\n\n testEMBY() {\n const emby = {};\n emby.host = $('#emby_host').val();\n emby.apikey = $('#emby_apikey').val();\n\n if (!emby.host || !emby.apikey) {\n $('#testEMBY-result').html('Please fill out the necessary fields above.');\n $('#emby_host').addRemoveWarningClass(emby.host);\n $('#emby_apikey').addRemoveWarningClass(emby.apikey);\n return;\n }\n\n $('#emby_host,#emby_apikey').children('input').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testEMBY-result').html(MEDUSA.config.layout.loading);\n $.get('home/testEMBY', {\n host: emby.host,\n emby_apikey: emby.apikey // eslint-disable-line camelcase\n\n }).done(data => {\n $('#testEMBY-result').html(data);\n $('#testEMBY').prop('disabled', false);\n });\n },\n\n testBoxcar2() {\n const boxcar2 = {};\n boxcar2.accesstoken = $.trim($('#boxcar2_accesstoken').val());\n\n if (!boxcar2.accesstoken) {\n $('#testBoxcar2-result').html('Please fill out the necessary fields above.');\n $('#boxcar2_accesstoken').addClass('warning');\n return;\n }\n\n $('#boxcar2_accesstoken').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testBoxcar2-result').html(MEDUSA.config.layout.loading);\n $.get('home/testBoxcar2', {\n accesstoken: boxcar2.accesstoken\n }).done(data => {\n $('#testBoxcar2-result').html(data);\n $('#testBoxcar2').prop('disabled', false);\n });\n },\n\n testPushover() {\n const pushover = {};\n pushover.userkey = $('#pushover_userkey').val();\n pushover.apikey = $('#pushover_apikey').val();\n\n if (!pushover.userkey || !pushover.apikey) {\n $('#testPushover-result').html('Please fill out the necessary fields above.');\n $('#pushover_userkey').addRemoveWarningClass(pushover.userkey);\n $('#pushover_apikey').addRemoveWarningClass(pushover.apikey);\n return;\n }\n\n $('#pushover_userkey,#pushover_apikey').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testPushover-result').html(MEDUSA.config.layout.loading);\n $.get('home/testPushover', {\n userKey: pushover.userkey,\n apiKey: pushover.apikey\n }).done(data => {\n $('#testPushover-result').html(data);\n $('#testPushover').prop('disabled', false);\n });\n },\n\n testLibnotify() {\n $('#testLibnotify-result').html(MEDUSA.config.layout.loading);\n $.get('home/testLibnotify', data => {\n $('#testLibnotify-result').html(data);\n });\n },\n\n settingsNMJ() {\n const nmj = {};\n nmj.host = $('#nmj_host').val();\n\n if (nmj.host) {\n $('#testNMJ-result').html(MEDUSA.config.layout.loading);\n $.get('home/settingsNMJ', {\n host: nmj.host\n }, data => {\n if (data === null) {\n $('#nmj_database').removeAttr('readonly');\n $('#nmj_mount').removeAttr('readonly');\n }\n\n const JSONData = $.parseJSON(data);\n $('#testNMJ-result').html(JSONData.message);\n $('#nmj_database').val(JSONData.database);\n $('#nmj_mount').val(JSONData.mount);\n\n if (JSONData.database) {\n $('#nmj_database').prop('readonly', true);\n } else {\n $('#nmj_database').removeAttr('readonly');\n }\n\n if (JSONData.mount) {\n $('#nmj_mount').prop('readonly', true);\n } else {\n $('#nmj_mount').removeAttr('readonly');\n }\n });\n } else {\n alert('Please fill in the Popcorn IP address'); // eslint-disable-line no-alert\n\n $('#nmj_host').focus();\n }\n },\n\n testNMJ() {\n const nmj = {};\n nmj.host = $.trim($('#nmj_host').val());\n nmj.database = $('#nmj_database').val();\n nmj.mount = $('#nmj_mount').val();\n\n if (nmj.host) {\n $('#nmj_host').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testNMJ-result').html(MEDUSA.config.layout.loading);\n $.get('home/testNMJ', {\n host: nmj.host,\n database: nmj.database,\n mount: nmj.mount\n }).done(data => {\n $('#testNMJ-result').html(data);\n $('#testNMJ').prop('disabled', false);\n });\n } else {\n $('#testNMJ-result').html('Please fill out the necessary fields above.');\n $('#nmj_host').addClass('warning');\n }\n },\n\n settingsNMJv2() {\n const nmjv2 = {};\n nmjv2.host = $('#nmjv2_host').val();\n\n if (nmjv2.host) {\n $('#testNMJv2-result').html(MEDUSA.config.layout.loading);\n nmjv2.dbloc = '';\n const radios = document.getElementsByName('nmjv2_dbloc');\n\n for (let i = 0, len = radios.length; i < len; i++) {\n if (radios[i].checked) {\n nmjv2.dbloc = radios[i].value;\n break;\n }\n }\n\n nmjv2.dbinstance = $('#NMJv2db_instance').val();\n $.get('home/settingsNMJv2', {\n host: nmjv2.host,\n dbloc: nmjv2.dbloc,\n instance: nmjv2.dbinstance\n }, data => {\n if (data === null) {\n $('#nmjv2_database').removeAttr('readonly');\n }\n\n const JSONData = $.parseJSON(data);\n $('#testNMJv2-result').html(JSONData.message);\n $('#nmjv2_database').val(JSONData.database);\n\n if (JSONData.database) {\n $('#nmjv2_database').prop('readonly', true);\n } else {\n $('#nmjv2_database').removeAttr('readonly');\n }\n });\n } else {\n alert('Please fill in the Popcorn IP address'); // eslint-disable-line no-alert\n\n $('#nmjv2_host').focus();\n }\n },\n\n testNMJv2() {\n const nmjv2 = {};\n nmjv2.host = $.trim($('#nmjv2_host').val());\n\n if (nmjv2.host) {\n $('#nmjv2_host').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testNMJv2-result').html(MEDUSA.config.layout.loading);\n $.get('home/testNMJv2', {\n host: nmjv2.host\n }).done(data => {\n $('#testNMJv2-result').html(data);\n $('#testNMJv2').prop('disabled', false);\n });\n } else {\n $('#testNMJv2-result').html('Please fill out the necessary fields above.');\n $('#nmjv2_host').addClass('warning');\n }\n },\n\n testFreeMobile() {\n const freemobile = {};\n freemobile.id = $.trim($('#freemobile_id').val());\n freemobile.apikey = $.trim($('#freemobile_apikey').val());\n\n if (!freemobile.id || !freemobile.apikey) {\n $('#testFreeMobile-result').html('Please fill out the necessary fields above.');\n\n if (freemobile.id) {\n $('#freemobile_id').removeClass('warning');\n } else {\n $('#freemobile_id').addClass('warning');\n }\n\n if (freemobile.apikey) {\n $('#freemobile_apikey').removeClass('warning');\n } else {\n $('#freemobile_apikey').addClass('warning');\n }\n\n return;\n }\n\n $('#freemobile_id,#freemobile_apikey').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testFreeMobile-result').html(MEDUSA.config.layout.loading);\n $.get('home/testFreeMobile', {\n freemobile_id: freemobile.id,\n // eslint-disable-line camelcase\n freemobile_apikey: freemobile.apikey // eslint-disable-line camelcase\n\n }).done(data => {\n $('#testFreeMobile-result').html(data);\n $('#testFreeMobile').prop('disabled', false);\n });\n },\n\n testTelegram() {\n const telegram = {};\n telegram.id = $.trim($('#telegram_id').val());\n telegram.apikey = $.trim($('#telegram_apikey').val());\n\n if (!telegram.id || !telegram.apikey) {\n $('#testTelegram-result').html('Please fill out the necessary fields above.');\n $('#telegram_id').addRemoveWarningClass(telegram.id);\n $('#telegram_apikey').addRemoveWarningClass(telegram.apikey);\n return;\n }\n\n $('#telegram_id,#telegram_apikey').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testTelegram-result').html(MEDUSA.config.layout.loading);\n $.get('home/testTelegram', {\n telegram_id: telegram.id,\n // eslint-disable-line camelcase\n telegram_apikey: telegram.apikey // eslint-disable-line camelcase\n\n }).done(data => {\n $('#testTelegram-result').html(data);\n $('#testTelegram').prop('disabled', false);\n });\n },\n\n testDiscord() {\n const {\n notifiers\n } = this;\n\n if (!notifiers.discord.webhook) {\n $('#testDiscord-result').html('Please fill out the necessary fields above.');\n $('#discord_webhook').addRemoveWarningClass(notifiers.discord.webhook);\n return;\n }\n\n $('#discord_id,#discord_apikey').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testDiscord-result').html(MEDUSA.config.layout.loading);\n $.get('home/testDiscord', {\n discord_webhook: notifiers.discord.webhook,\n // eslint-disable-line camelcase\n discord_tts: notifiers.discord.tts,\n // eslint-disable-line camelcase\n discord_override_avatar: notifiers.discord.overrideAvatar // eslint-disable-line camelcase\n\n }).done(data => {\n $('#testDiscord-result').html(data);\n $('#testDiscord').prop('disabled', false);\n });\n },\n\n testSlack() {\n const slack = {};\n slack.webhook = $.trim($('#slack_webhook').val());\n\n if (!slack.webhook) {\n $('#testSlack-result').html('Please fill out the necessary fields above.');\n $('#slack_webhook').addRemoveWarningClass(slack.webhook);\n return;\n }\n\n $('#slack_webhook').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testSlack-result').html(MEDUSA.config.layout.loading);\n $.get('home/testslack', {\n slack_webhook: slack.webhook // eslint-disable-line camelcase\n\n }).done(data => {\n $('#testSlack-result').html(data);\n $('#testSlack').prop('disabled', false);\n });\n },\n\n async TraktRequestDeviceCode() {\n this.traktUserCode = '';\n this.traktRequestAuthenticated = false;\n const response = await (0,_api_js__WEBPACK_IMPORTED_MODULE_0__.apiRoute)('home/requestTraktDeviceCodeOauth');\n\n if (response.data) {\n this.traktVerificationUrl = response.data.verification_url;\n window.open(response.data.verification_url, 'popUp', 'toolbar=no, scrollbars=no, resizable=no, top=200, left=200, width=650, height=550');\n this.traktRequestSend = true;\n this.traktUserCode = response.data.user_code;\n this.checkTraktAuthenticated();\n }\n },\n\n checkTraktAuthenticated() {\n let counter = 0;\n const i = setInterval(() => {\n (0,_api_js__WEBPACK_IMPORTED_MODULE_0__.apiRoute)('home/checkTrakTokenOauth').then(response => {\n if (response.data) {\n this.traktRequestMessage = response.data.result;\n\n if (!response.data.error) {\n clearInterval(i);\n this.traktRequestAuthenticated = true;\n this.traktUserCode = '';\n }\n }\n });\n counter++;\n\n if (counter === 12) {\n clearInterval(i);\n this.traktRequestAuthenticated = false;\n this.traktUserCode = '';\n }\n }, 5000);\n },\n\n testTrakt() {\n const trakt = {};\n trakt.trendingBlacklist = $.trim($('#trakt_blacklist_name').val());\n\n if (/\\s/g.test(trakt.trendingBlacklist)) {\n $('#testTrakt-result').html('Check blacklist name; the value needs to be a trakt slug');\n $('#trakt_blacklist_name').addClass('warning');\n return;\n }\n\n $('#trakt_blacklist_name').removeClass('warning');\n $('#testTrakt-result').html(MEDUSA.config.layout.loading);\n (0,_api_js__WEBPACK_IMPORTED_MODULE_0__.apiRoute)(`home/testTrakt?blacklist_name=${trakt.trendingBlacklist}`).then(result => {\n $('#testTrakt-result').html(result.data);\n $('#testTrakt').prop('disabled', false);\n });\n },\n\n traktForceSync() {\n $('#testTrakt-result').html(MEDUSA.config.layout.loading);\n $.getJSON('home/forceTraktSync', data => {\n $('#testTrakt-result').html(data.result);\n });\n },\n\n testEmail() {\n let to = '';\n const status = $('#testEmail-result');\n status.html(MEDUSA.config.layout.loading);\n let host = $('#email_host').val();\n host = host.length > 0 ? host : null;\n let port = $('#email_port').val();\n port = port.length > 0 ? port : null;\n const tls = $('#email_tls').find('input').is(':checked') ? 1 : 0;\n let from = $('#email_from').val();\n from = from.length > 0 ? from : 'root@localhost';\n const user = $('#email_username').val().trim();\n const pwd = $('#email_password').val();\n let err = '';\n\n if (host === null) {\n err += '
  • You must specify an SMTP hostname!
  • ';\n }\n\n if (port === null) {\n err += '
  • You must specify an SMTP port!
  • ';\n } else if (port.match(/^\\d+$/) === null || Number.parseInt(port, 10) > 65535) {\n err += '
  • SMTP port must be between 0 and 65535!
  • ';\n }\n\n if (err.length > 0) {\n err = '
      ' + err + '
    ';\n status.html(err);\n } else {\n to = prompt('Enter an email address to send the test to:', null); // eslint-disable-line no-alert\n\n if (to === null || to.length === 0 || to.match(/.*@.*/) === null) {\n status.html('

    You must provide a recipient email address!

    ');\n } else {\n $.get('home/testEmail', {\n host,\n port,\n smtp_from: from,\n // eslint-disable-line camelcase\n use_tls: tls,\n // eslint-disable-line camelcase\n user,\n pwd,\n to\n }, msg => {\n $('#testEmail-result').html(msg);\n });\n }\n }\n },\n\n testPushalot() {\n const pushalot = {};\n pushalot.authToken = $.trim($('#pushalot_authorizationtoken').val());\n\n if (!pushalot.authToken) {\n $('#testPushalot-result').html('Please fill out the necessary fields above.');\n $('#pushalot_authorizationtoken').addClass('warning');\n return;\n }\n\n $('#pushalot_authorizationtoken').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testPushalot-result').html(MEDUSA.config.layout.loading);\n $.get('home/testPushalot', {\n authorizationToken: pushalot.authToken\n }).done(data => {\n $('#testPushalot-result').html(data);\n $('#testPushalot').prop('disabled', false);\n });\n }\n\n }\n});\n\n//# sourceURL=webpack://slim/./src/components/config-notifications.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-1%5B0%5D.rules%5B0%5D!./node_modules/vue-loader/lib/index.js??vue-loader-options"); /***/ }), @@ -1467,7 +1467,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"state\": () => (/* binding */ state),\n/* harmony export */ \"mutations\": () => (/* binding */ mutations),\n/* harmony export */ \"getters\": () => (/* binding */ getters),\n/* harmony export */ \"actions\": () => (/* binding */ actions),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nconst state = {\n enabled: null,\n notifyOnSnatch: null,\n notifyOnDownload: null,\n notifyOnSubtitleDownload: null,\n webhook: null,\n tts: null\n};\nconst mutations = {};\nconst getters = {};\nconst actions = {};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n state,\n mutations,\n getters,\n actions\n});\n\n//# sourceURL=webpack://slim/./src/store/modules/config/notifiers/discord.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"state\": () => (/* binding */ state),\n/* harmony export */ \"mutations\": () => (/* binding */ mutations),\n/* harmony export */ \"getters\": () => (/* binding */ getters),\n/* harmony export */ \"actions\": () => (/* binding */ actions),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nconst state = {\n enabled: null,\n notifyOnSnatch: null,\n notifyOnDownload: null,\n notifyOnSubtitleDownload: null,\n webhook: null,\n tts: null,\n overrideAvatar: null\n};\nconst mutations = {};\nconst getters = {};\nconst actions = {};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n state,\n mutations,\n getters,\n actions\n});\n\n//# sourceURL=webpack://slim/./src/store/modules/config/notifiers/discord.js?"); /***/ }), @@ -7233,7 +7233,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"render\": () => (/* binding */ render),\n/* harmony export */ \"staticRenderFns\": () => (/* binding */ staticRenderFns)\n/* harmony export */ });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { attrs: { id: \"config-notifications\" } },\n [\n _c(\"vue-snotify\"),\n _vm._v(\" \"),\n _c(\"div\", { attrs: { id: \"config\" } }, [\n _c(\"div\", { attrs: { id: \"config-content\" } }, [\n _c(\n \"form\",\n {\n attrs: { id: \"configForm\", method: \"post\" },\n on: {\n submit: function($event) {\n $event.preventDefault()\n return _vm.save()\n }\n }\n },\n [\n _c(\"div\", { attrs: { id: \"config-components\" } }, [\n _c(\"ul\", [\n _c(\n \"li\",\n [\n _c(\"app-link\", { attrs: { href: \"#home-theater-nas\" } }, [\n _vm._v(\"Home Theater / NAS\")\n ])\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"li\",\n [\n _c(\"app-link\", { attrs: { href: \"#devices\" } }, [\n _vm._v(\"Devices\")\n ])\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"li\",\n [\n _c(\"app-link\", { attrs: { href: \"#social\" } }, [\n _vm._v(\"Social\")\n ])\n ],\n 1\n )\n ]),\n _vm._v(\" \"),\n _c(\"div\", { attrs: { id: \"home-theater-nas\" } }, [\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-kodi\",\n attrs: { title: \"KODI\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"http://kodi.tv\" } },\n [_vm._v(\"KODI\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"A free and open source cross-platform media center and home entertainment system software with a 10-foot user interface designed for the living-room TV.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_kodi\",\n explanations: [\"Send KODI commands?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.kodi, \"enabled\", $$v)\n },\n expression: \"notifiers.kodi.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.kodi.enabled,\n expression: \"notifiers.kodi.enabled\"\n }\n ],\n attrs: { id: \"content-use-kodi\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Always on\",\n id: \"kodi_always_on\",\n explanations: [\"log errors when unreachable?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.alwaysOn,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi,\n \"alwaysOn\",\n $$v\n )\n },\n expression: \"notifiers.kodi.alwaysOn\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"kodi_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.kodi.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"kodi_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression: \"notifiers.kodi.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"kodi_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.kodi.notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.kodi.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Update library\",\n id: \"kodi_update_library\",\n explanations: [\n \"update KODI library when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.update.library,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi.update,\n \"library\",\n $$v\n )\n },\n expression: \"notifiers.kodi.update.library\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Full library update\",\n id: \"kodi_update_full\",\n explanations: [\n \"perform a full library update if update per-show fails?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.update.full,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi.update,\n \"full\",\n $$v\n )\n },\n expression: \"notifiers.kodi.update.full\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Clean library\",\n id: \"kodi_clean_library\",\n explanations: [\n \"clean KODI library when replaces a already downloaded episode?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.cleanLibrary,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi,\n \"cleanLibrary\",\n $$v\n )\n },\n expression: \"notifiers.kodi.cleanLibrary\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Only update first host\",\n id: \"kodi_update_onlyfirst\",\n explanations: [\n \"only send library updates/clean to the first active host?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.update.onlyFirst,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi.update,\n \"onlyFirst\",\n $$v\n )\n },\n expression: \"notifiers.kodi.update.onlyFirst\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n label: \"KODI IP:Port\",\n labelFor: \"kodi_host\"\n }\n },\n [\n _c(\"select-list\", {\n attrs: {\n name: \"kodi_host\",\n id: \"kodi_host\",\n \"list-items\": _vm.notifiers.kodi.host\n },\n on: {\n change: function($event) {\n _vm.notifiers.kodi.host = $event.map(\n function(x) {\n return x.value\n }\n )\n }\n }\n }),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"host running KODI (eg. 192.168.1.100:8080)\"\n )\n ])\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Username\",\n id: \"kodi_username\",\n explanations: [\n \"username for your KODI server (blank for none)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.username,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi,\n \"username\",\n $$v\n )\n },\n expression: \"notifiers.kodi.username\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n type: \"password\",\n label: \"Password\",\n id: \"kodi_password\",\n explanations: [\n \"password for your KODI server (blank for none)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.password,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi,\n \"password\",\n $$v\n )\n },\n expression: \"notifiers.kodi.password\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testKODI-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test KODI\",\n id: \"testKODI\"\n },\n on: { click: _vm.testKODI }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-plex\",\n attrs: { title: \"Plex Media Server\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://plex.tv\" } },\n [_vm._v(\"Plex Media Server\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Experience your media on a visually stunning, easy to use interface on your Mac connected to your TV. Your media library has never looked this good!\"\n )\n ]),\n _vm._v(\" \"),\n _vm.notifiers.plex.server.enabled\n ? _c(\"p\", { staticClass: \"plexinfo\" }, [\n _vm._v(\n \"For sending notifications to Plex Home Theater (PHT) clients, use the KODI notifier with port \"\n ),\n _c(\"b\", [_vm._v(\"3005\")]),\n _vm._v(\".\")\n ])\n : _vm._e()\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_plex_server\",\n explanations: [\"Send Plex server notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.plex.server.enabled,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.server,\n \"enabled\",\n $$v\n )\n },\n expression: \"notifiers.plex.server.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.plex.server.enabled,\n expression: \"notifiers.plex.server.enabled\"\n }\n ],\n attrs: { id: \"content-use-plex-server\" }\n },\n [\n _c(\n \"config-textbox\",\n {\n attrs: {\n label: \"Plex Media Server Auth Token\",\n id: \"plex_server_token\"\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.plex.server.token,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.server,\n \"token\",\n $$v\n )\n },\n expression: \"notifiers.plex.server.token\"\n }\n },\n [\n _c(\"p\", [_vm._v(\"Auth Token used by plex\")]),\n _vm._v(\" \"),\n _c(\"p\", [\n _c(\n \"span\",\n [\n _vm._v(\"See: \"),\n _c(\n \"app-link\",\n {\n staticClass: \"wiki\",\n attrs: {\n href:\n \"https://support.plex.tv/hc/en-us/articles/204059436-Finding-your-account-token-X-Plex-Token\"\n }\n },\n [\n _c(\"strong\", [\n _vm._v(\n \"Finding your account token\"\n )\n ])\n ]\n )\n ],\n 1\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Username\",\n id: \"plex_server_username\",\n explanations: [\"blank = no authentication\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.plex.server.username,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.server,\n \"username\",\n $$v\n )\n },\n expression: \"notifiers.plex.server.username\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n type: \"password\",\n label: \"Password\",\n id: \"plex_server_password\",\n explanations: [\"blank = no authentication\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.plex.server.password,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.server,\n \"password\",\n $$v\n )\n },\n expression: \"notifiers.plex.server.password\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Update Library\",\n id: \"plex_update_library\",\n explanations: [\"log errors when unreachable?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.plex.server.updateLibrary,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.server,\n \"updateLibrary\",\n $$v\n )\n },\n expression:\n \"notifiers.plex.server.updateLibrary\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"plex_server_host\",\n label: \"Plex Media Server IP:Port\"\n }\n },\n [\n _c(\"select-list\", {\n attrs: {\n name: \"plex_server_host\",\n id: \"plex_server_host\",\n \"list-items\":\n _vm.notifiers.plex.server.host\n },\n on: {\n change: function($event) {\n _vm.notifiers.plex.server.host = $event.map(\n function(x) {\n return x.value\n }\n )\n }\n }\n }),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"one or more hosts running Plex Media Server\"\n ),\n _c(\"br\"),\n _vm._v(\n \"(eg. 192.168.1.1:32400, 192.168.1.2:32400)\"\n )\n ])\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"HTTPS\",\n id: \"plex_server_https\",\n explanations: [\n \"use https for plex media server requests?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.plex.server.https,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.server,\n \"https\",\n $$v\n )\n },\n expression: \"notifiers.plex.server.https\"\n }\n }),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"field-pair\" }, [\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testPMS-result\" }\n },\n [\n _vm._v(\n \"Click below to test Plex Media Server(s)\"\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Plex Media Server\",\n id: \"testPMS\"\n },\n on: { click: _vm.testPMS }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n }),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"clear-left\" }, [\n _vm._v(\" \")\n ])\n ])\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-plexth\",\n attrs: { title: \"Plex Media Client\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://plex.tv\" } },\n [_vm._v(\"Plex Home Theater\")]\n )\n ],\n 1\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_plex_client\",\n explanations: [\n \"Send Plex Home Theater notifications?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.plex.client.enabled,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.client,\n \"enabled\",\n $$v\n )\n },\n expression: \"notifiers.plex.client.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.plex.client.enabled,\n expression: \"notifiers.plex.client.enabled\"\n }\n ],\n attrs: { id: \"content-use-plex-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"plex_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.plex.client.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.client,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression:\n \"notifiers.plex.client.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"plex_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.plex.client.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.client,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.plex.client.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"plex_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.plex.client\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.client,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.plex.client.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"plex_client_host\",\n label: \"Plex Home Theater IP:Port\"\n }\n },\n [\n _c(\"select-list\", {\n attrs: {\n name: \"plex_client_host\",\n id: \"plex_client_host\",\n \"list-items\":\n _vm.notifiers.plex.client.host\n },\n on: {\n change: function($event) {\n _vm.notifiers.plex.client.host = $event.map(\n function(x) {\n return x.value\n }\n )\n }\n }\n }),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"one or more hosts running Plex Home Theater\"\n ),\n _c(\"br\"),\n _vm._v(\n \"(eg. 192.168.1.100:3000, 192.168.1.101:3000)\"\n )\n ])\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Username\",\n id: \"plex_client_username\",\n explanations: [\"blank = no authentication\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.plex.client.username,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.client,\n \"username\",\n $$v\n )\n },\n expression: \"notifiers.plex.client.username\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n type: \"password\",\n label: \"Password\",\n id: \"plex_client_password\",\n explanations: [\"blank = no authentication\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.plex.client.password,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.client,\n \"password\",\n $$v\n )\n },\n expression: \"notifiers.plex.client.password\"\n }\n }),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"field-pair\" }, [\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testPHT-result\" }\n },\n [\n _vm._v(\n \"Click below to test Plex Home Theater(s)\"\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Plex Home Theater\",\n id: \"testPHT\"\n },\n on: { click: _vm.testPHT }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n }),\n _vm._v(\" \"),\n _vm._m(0)\n ])\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-emby\",\n attrs: { title: \"Emby\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"http://emby.media\" } },\n [_vm._v(\"Emby\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"A home media server built using other popular open source technologies.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_emby\",\n explanations: [\"Send update commands to Emby?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.emby.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.emby, \"enabled\", $$v)\n },\n expression: \"notifiers.emby.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.emby.enabled,\n expression: \"notifiers.emby.enabled\"\n }\n ],\n attrs: { id: \"content_use_emby\" }\n },\n [\n _c(\"config-textbox\", {\n attrs: {\n label: \"Emby IP:Port\",\n id: \"emby_host\",\n explanations: [\n \"host running Emby (eg. 192.168.1.100:8096)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.emby.host,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.emby, \"host\", $$v)\n },\n expression: \"notifiers.emby.host\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: { label: \"Api Key\", id: \"emby_apikey\" },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.emby.apiKey,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.emby, \"apiKey\", $$v)\n },\n expression: \"notifiers.emby.apiKey\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testEMBY-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Emby\",\n id: \"testEMBY\"\n },\n on: { click: _vm.testEMBY }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-nmj\",\n attrs: { title: \"Networked Media Jukebox\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n {\n attrs: { href: \"http://www.popcornhour.com/\" }\n },\n [_vm._v(\"NMJ\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"The Networked Media Jukebox, or NMJ, is the official media jukebox interface made available for the Popcorn Hour 200-series.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_nmj\",\n explanations: [\"Send update commands to NMJ?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.nmj.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.nmj, \"enabled\", $$v)\n },\n expression: \"notifiers.nmj.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.nmj.enabled,\n expression: \"notifiers.nmj.enabled\"\n }\n ],\n attrs: { id: \"content-use-nmj\" }\n },\n [\n _c(\"config-textbox\", {\n attrs: {\n label: \"Popcorn IP address\",\n id: \"nmj_host\",\n explanations: [\n \"IP address of Popcorn 200-series (eg. 192.168.1.100)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.nmj.host,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.nmj, \"host\", $$v)\n },\n expression: \"notifiers.nmj.host\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"settingsNMJ\",\n label: \"Get settings\"\n }\n },\n [\n _c(\"input\", {\n staticClass: \"btn-medusa btn-inline\",\n attrs: {\n type: \"button\",\n value: \"Get Settings\",\n id: \"settingsNMJ\"\n },\n on: { click: _vm.settingsNMJ }\n }),\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n \"the Popcorn Hour device must be powered on and NMJ running.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"NMJ database\",\n id: \"nmj_database\",\n explanations: [\n \"automatically filled via the 'Get Settings' button.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.nmj.database,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.nmj, \"database\", $$v)\n },\n expression: \"notifiers.nmj.database\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"NMJ mount\",\n id: \"nmj_mount\",\n explanations: [\n \"automatically filled via the 'Get Settings' button.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.nmj.mount,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.nmj, \"mount\", $$v)\n },\n expression: \"notifiers.nmj.mount\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testNMJ-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test NMJ\",\n id: \"testNMJ\"\n },\n on: { click: _vm.testNMJ }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-nmj\",\n attrs: { title: \"Networked Media Jukebox v2\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n {\n attrs: { href: \"http://www.popcornhour.com/\" }\n },\n [_vm._v(\"NMJv2\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"The Networked Media Jukebox, or NMJv2, is the official media jukebox interface made available for the Popcorn Hour 300 & 400-series.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_nmjv2\",\n explanations: [\n \"Send popcorn hour (nmjv2) notifications?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.nmjv2.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.nmjv2, \"enabled\", $$v)\n },\n expression: \"notifiers.nmjv2.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.nmjv2.enabled,\n expression: \"notifiers.nmjv2.enabled\"\n }\n ],\n attrs: { id: \"content-use-nmjv2\" }\n },\n [\n _c(\"config-textbox\", {\n attrs: {\n label: \"Popcorn IP address\",\n id: \"nmjv2_host\",\n explanations: [\n \"IP address of Popcorn 300/400-series (eg. 192.168.1.100)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.nmjv2.host,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.nmjv2, \"host\", $$v)\n },\n expression: \"notifiers.nmjv2.host\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"nmjv2_database_location\",\n label: \"Database location\"\n }\n },\n [\n _c(\n \"label\",\n {\n staticClass: \"space-right\",\n attrs: { for: \"NMJV2_DBLOC_A\" }\n },\n [\n _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.notifiers.nmjv2.dbloc,\n expression: \"notifiers.nmjv2.dbloc\"\n }\n ],\n attrs: {\n type: \"radio\",\n name: \"nmjv2_dbloc\",\n VALUE: \"local\",\n id: \"NMJV2_DBLOC_A\"\n },\n domProps: {\n checked: _vm._q(\n _vm.notifiers.nmjv2.dbloc,\n null\n )\n },\n on: {\n change: function($event) {\n return _vm.$set(\n _vm.notifiers.nmjv2,\n \"dbloc\",\n null\n )\n }\n }\n }),\n _vm._v(\n \"\\n PCH Local Media\\n \"\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"label\",\n { attrs: { for: \"NMJV2_DBLOC_B\" } },\n [\n _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.notifiers.nmjv2.dbloc,\n expression: \"notifiers.nmjv2.dbloc\"\n }\n ],\n attrs: {\n type: \"radio\",\n name: \"nmjv2_dbloc\",\n VALUE: \"network\",\n id: \"NMJV2_DBLOC_B\"\n },\n domProps: {\n checked: _vm._q(\n _vm.notifiers.nmjv2.dbloc,\n null\n )\n },\n on: {\n change: function($event) {\n return _vm.$set(\n _vm.notifiers.nmjv2,\n \"dbloc\",\n null\n )\n }\n }\n }),\n _vm._v(\n \"\\n PCH Network Media\\n \"\n )\n ]\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"nmjv2_database_instance\",\n label: \"Database instance\"\n }\n },\n [\n _c(\n \"select\",\n {\n staticClass: \"form-control input-sm\",\n attrs: { id: \"NMJv2db_instance\" }\n },\n [\n _c(\"option\", { attrs: { value: \"0\" } }, [\n _vm._v(\"#1 \")\n ]),\n _vm._v(\" \"),\n _c(\"option\", { attrs: { value: \"1\" } }, [\n _vm._v(\"#2 \")\n ]),\n _vm._v(\" \"),\n _c(\"option\", { attrs: { value: \"2\" } }, [\n _vm._v(\"#3 \")\n ]),\n _vm._v(\" \"),\n _c(\"option\", { attrs: { value: \"3\" } }, [\n _vm._v(\"#4 \")\n ]),\n _vm._v(\" \"),\n _c(\"option\", { attrs: { value: \"4\" } }, [\n _vm._v(\"#5 \")\n ]),\n _vm._v(\" \"),\n _c(\"option\", { attrs: { value: \"5\" } }, [\n _vm._v(\"#6 \")\n ]),\n _vm._v(\" \"),\n _c(\"option\", { attrs: { value: \"6\" } }, [\n _vm._v(\"#7 \")\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n \"adjust this value if the wrong database is selected.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"get_nmjv2_find_database\",\n label: \"Find database\"\n }\n },\n [\n _c(\"input\", {\n staticClass: \"btn-medusa btn-inline\",\n attrs: {\n type: \"button\",\n value: \"Find Database\",\n id: \"settingsNMJv2\"\n },\n on: { click: _vm.settingsNMJv2 }\n }),\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n \"the Popcorn Hour device must be powered on.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"NMJv2 database\",\n id: \"nmjv2_database\",\n explanations: [\n \"automatically filled via the 'Find Database' buttons.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.nmjv2.database,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.nmjv2,\n \"database\",\n $$v\n )\n },\n expression: \"notifiers.nmjv2.database\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testNMJv2-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test NMJv2\",\n id: \"testNMJv2\"\n },\n on: { click: _vm.testNMJv2 }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-syno1\",\n attrs: { title: \"Synology\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"http://synology.com/\" } },\n [_vm._v(\"Synology\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [_vm._v(\"The Synology DiskStation NAS.\")]),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Synology Indexer is the daemon running on the Synology NAS to build its media database.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"HTTPS\",\n id: \"use_synoindex\",\n explanations: [\n \"Note: requires Medusa to be running on your Synology NAS.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.synologyIndex.enabled,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.synologyIndex,\n \"enabled\",\n $$v\n )\n },\n expression: \"notifiers.synologyIndex.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.synologyIndex.enabled,\n expression: \"notifiers.synologyIndex.enabled\"\n }\n ],\n attrs: { id: \"content_use_synoindex\" }\n },\n [\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ]\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-syno2\",\n attrs: { title: \"Synology Indexer\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"http://synology.com/\" } },\n [_vm._v(\"Synology Notifier\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Synology Notifier is the notification system of Synology DSM\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_synologynotifier\",\n explanations: [\n \"Send notifications to the Synology Notifier?\",\n \"Note: requires Medusa to be running on your Synology DSM.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.synology.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.synology, \"enabled\", $$v)\n },\n expression: \"notifiers.synology.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.synology.enabled,\n expression: \"notifiers.synology.enabled\"\n }\n ],\n attrs: { id: \"content-use-synology-notifier\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.synology.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.synology,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression:\n \"notifiers.synology.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"synology_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.synology.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.synology,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.synology.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"synology_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.synology\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.synology,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.synology.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-pytivo\",\n attrs: { title: \"pyTivo\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n {\n attrs: {\n href:\n \"http://pytivo.sourceforge.net/wiki/index.php/PyTivo\"\n }\n },\n [_vm._v(\"pyTivo\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"pyTivo is both an HMO and GoBack server. This notifier will load the completed downloads to your Tivo.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_pytivo\",\n explanations: [\"Send notifications to pyTivo?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pyTivo.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.pyTivo, \"enabled\", $$v)\n },\n expression: \"notifiers.pyTivo.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.pyTivo.enabled,\n expression: \"notifiers.pyTivo.enabled\"\n }\n ],\n attrs: { id: \"content-use-pytivo\" }\n },\n [\n _c(\"config-textbox\", {\n attrs: {\n label: \"pyTivo IP:Port\",\n id: \"pytivo_host\",\n explanations: [\n \"host running pyTivo (eg. 192.168.1.1:9032)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pyTivo.host,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.pyTivo, \"host\", $$v)\n },\n expression: \"notifiers.pyTivo.host\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"pyTivo share name\",\n id: \"pytivo_name\",\n explanations: [\n \"(Messages & Settings > Account & System Information > System Information > DVR name)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pyTivo.shareName,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pyTivo,\n \"shareName\",\n $$v\n )\n },\n expression: \"notifiers.pyTivo.shareName\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Tivo name\",\n id: \"pytivo_tivo_name\",\n explanations: [\n \"value used in pyTivo Web Configuration to name the share.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pyTivo.name,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.pyTivo, \"name\", $$v)\n },\n expression: \"notifiers.pyTivo.name\"\n }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"br\"),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ]),\n _vm._v(\" \"),\n _c(\"div\", { attrs: { id: \"devices\" } }, [\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-growl\",\n attrs: { title: \"Growl\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"http://growl.info/\" } },\n [_vm._v(\"Growl\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"A cross-platform unobtrusive global notification system.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_growl_client\",\n explanations: [\"Send Growl notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.growl.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.growl, \"enabled\", $$v)\n },\n expression: \"notifiers.growl.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.growl.enabled,\n expression: \"notifiers.growl.enabled\"\n }\n ],\n attrs: { id: \"content-use-growl-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"growl_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.growl.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.growl,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.growl.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"growl_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.growl.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.growl,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression: \"notifiers.growl.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"growl_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.growl\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.growl,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.growl.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Growl IP:Port\",\n id: \"growl_host\",\n explanations: [\n \"host running Growl (eg. 192.168.1.100:23053)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.growl.host,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.growl, \"host\", $$v)\n },\n expression: \"notifiers.growl.host\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n type: \"password\",\n label: \"Password\",\n id: \"growl_password\",\n explanations: [\n \"may leave blank if Medusa is on the same host.\",\n \"otherwise Growl requires a password to be used.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.growl.password,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.growl,\n \"password\",\n $$v\n )\n },\n expression: \"notifiers.growl.password\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testGrowl-result\" }\n },\n [\n _vm._v(\n \"Click below to register and test Growl, this is required for Growl notifications to work.\"\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Register Growl\",\n id: \"testGrowl\"\n },\n on: { click: _vm.testGrowl }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-prowl\",\n attrs: { title: \"Prowl\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"http://www.prowlapp.com/\" } },\n [_vm._v(\"Prowl\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [_vm._v(\"A Growl client for iOS.\")])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_prowl\",\n explanations: [\"Send Prowl notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.prowl.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.prowl, \"enabled\", $$v)\n },\n expression: \"notifiers.prowl.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.prowl.enabled,\n expression: \"notifiers.prowl.enabled\"\n }\n ],\n attrs: { id: \"content-use-prowl\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"prowl_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.prowl.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.prowl,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.prowl.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"prowl_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.prowl.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.prowl,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression: \"notifiers.prowl.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"prowl_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.prowl\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.prowl,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.prowl.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Prowl Message Title\",\n id: \"prowl_message_title\"\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.prowl.messageTitle,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.prowl,\n \"messageTitle\",\n $$v\n )\n },\n expression: \"notifiers.prowl.messageTitle\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"prowl_api\",\n label: \"Api\"\n }\n },\n [\n _c(\"select-list\", {\n attrs: {\n name: \"prowl_api\",\n id: \"prowl_api\",\n \"csv-enabled\": \"\",\n \"list-items\": _vm.notifiers.prowl.api\n },\n on: { change: _vm.onChangeProwlApi }\n }),\n _vm._v(\" \"),\n _c(\n \"span\",\n [\n _vm._v(\n \"Prowl API(s) listed here, will receive notifications for \"\n ),\n _c(\"b\", [_vm._v(\"all\")]),\n _vm._v(\n \" shows.\\n Your Prowl API key is available at:\\n \"\n ),\n _c(\n \"app-link\",\n {\n attrs: {\n href:\n \"https://www.prowlapp.com/api_settings.php\"\n }\n },\n [\n _vm._v(\n \"\\n https://www.prowlapp.com/api_settings.php\"\n )\n ]\n ),\n _c(\"br\"),\n _vm._v(\n \"\\n (This field may be blank except when testing.)\\n \"\n )\n ],\n 1\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"prowl_show_notification_list\",\n label: \"Show notification list\"\n }\n },\n [\n _c(\"show-selector\", {\n attrs: {\n \"select-class\":\n \"form-control input-sm max-input350\",\n \"place-holder\": \"-- Select a Show --\"\n },\n on: {\n change: function($event) {\n return _vm.prowlUpdateApiKeys($event)\n }\n }\n })\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"form-group\" }, [\n _c(\"div\", { staticClass: \"row\" }, [\n _c(\n \"div\",\n {\n staticClass:\n \"offset-sm-2 col-sm-offset-2 col-sm-10 content\"\n },\n [\n _c(\"select-list\", {\n attrs: {\n name: \"prowl-show-list\",\n id: \"prowl-show-list\",\n \"list-items\":\n _vm.prowlSelectedShowApiKeys\n },\n on: {\n change: function($event) {\n return _vm.savePerShowNotifyList(\n \"prowl\",\n $event\n )\n }\n }\n }),\n _vm._v(\n \"\\n Configure per-show notifications here by entering Prowl API key(s), after selecting a show in the drop-down box.\\n Be sure to activate the 'Save for this show' button below after each entry.\\n \"\n ),\n _c(\"span\", [\n _vm._v(\n \"The values are automatically saved when adding the api key.\"\n )\n ])\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"prowl_priority\",\n label: \"Prowl priority\"\n }\n },\n [\n _c(\n \"select\",\n {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.notifiers.prowl.priority,\n expression: \"notifiers.prowl.priority\"\n }\n ],\n staticClass: \"form-control input-sm\",\n attrs: {\n id: \"prowl_priority\",\n name: \"prowl_priority\"\n },\n on: {\n change: function($event) {\n var $$selectedVal = Array.prototype.filter\n .call(\n $event.target.options,\n function(o) {\n return o.selected\n }\n )\n .map(function(o) {\n var val =\n \"_value\" in o\n ? o._value\n : o.value\n return val\n })\n _vm.$set(\n _vm.notifiers.prowl,\n \"priority\",\n $event.target.multiple\n ? $$selectedVal\n : $$selectedVal[0]\n )\n }\n }\n },\n _vm._l(_vm.prowlPriorityOptions, function(\n option\n ) {\n return _c(\n \"option\",\n {\n key: option.value,\n domProps: { value: option.value }\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(option.text) +\n \"\\n \"\n )\n ]\n )\n }),\n 0\n ),\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n \"priority of Prowl messages from Medusa.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testProwl-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Prowl\",\n id: \"testProwl\"\n },\n on: { click: _vm.testProwl }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-libnotify\",\n attrs: { title: \"Libnotify\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n {\n attrs: {\n href:\n \"http://library.gnome.org/devel/libnotify/\"\n }\n },\n [_vm._v(\"Libnotify\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"p\",\n [\n _vm._v(\n \"The standard desktop notification API for Linux/*nix systems. This notifier will only function if the pynotify module is installed (Ubuntu/Debian package \"\n ),\n _c(\n \"app-link\",\n { attrs: { href: \"apt:python-notify\" } },\n [_vm._v(\"python-notify\")]\n ),\n _vm._v(\").\")\n ],\n 1\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_libnotify_client\",\n explanations: [\"Send Libnotify notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.libnotify.enabled,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.libnotify,\n \"enabled\",\n $$v\n )\n },\n expression: \"notifiers.libnotify.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.libnotify.enabled,\n expression: \"notifiers.libnotify.enabled\"\n }\n ],\n attrs: { id: \"content-use-libnotify\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"libnotify_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.libnotify.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.libnotify,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression:\n \"notifiers.libnotify.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"libnotify_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.libnotify.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.libnotify,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.libnotify.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"libnotify_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.libnotify\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.libnotify,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.libnotify.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testLibnotify-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Libnotify\",\n id: \"testLibnotify\"\n },\n on: { click: _vm.testLibnotify }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-pushover\",\n attrs: { title: \"Pushover\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://pushover.net/\" } },\n [_vm._v(\"Pushover\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Pushover makes it easy to send real-time notifications to your Android and iOS devices.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_pushover_client\",\n explanations: [\"Send Pushover notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushover.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.pushover, \"enabled\", $$v)\n },\n expression: \"notifiers.pushover.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.pushover.enabled,\n expression: \"notifiers.pushover.enabled\"\n }\n ],\n attrs: { id: \"content-use-pushover\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"pushover_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushover.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushover,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression:\n \"notifiers.pushover.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"pushover_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.pushover.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushover,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.pushover.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"pushover_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.pushover\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushover,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.pushover.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Pushover User Key\",\n id: \"pushover_userkey\",\n explanations: [\n \"User Key of your Pushover account\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushover.userKey,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushover,\n \"userKey\",\n $$v\n )\n },\n expression: \"notifiers.pushover.userKey\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-textbox\",\n {\n attrs: {\n label: \"Pushover API Key\",\n id: \"pushover_apikey\"\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushover.apiKey,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushover,\n \"apiKey\",\n $$v\n )\n },\n expression: \"notifiers.pushover.apiKey\"\n }\n },\n [\n _c(\n \"span\",\n [\n _c(\n \"app-link\",\n {\n attrs: {\n href:\n \"https://pushover.net/apps/build/\"\n }\n },\n [_c(\"b\", [_vm._v(\"Click here\")])]\n ),\n _vm._v(\" to create a Pushover API key\")\n ],\n 1\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"pushover_device\",\n label: \"Pushover Devices\"\n }\n },\n [\n _c(\"select-list\", {\n attrs: {\n name: \"pushover_device\",\n id: \"pushover_device\",\n \"list-items\":\n _vm.notifiers.pushover.device\n },\n on: {\n change: function($event) {\n _vm.notifiers.pushover.device = $event.map(\n function(x) {\n return x.value\n }\n )\n }\n }\n }),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"List of pushover devices you want to send notifications to\"\n )\n ])\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"pushover_sound\",\n label: \"Pushover notification sound\"\n }\n },\n [\n _c(\n \"select\",\n {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.notifiers.pushover.sound,\n expression: \"notifiers.pushover.sound\"\n }\n ],\n staticClass: \"form-control\",\n attrs: {\n id: \"pushover_sound\",\n name: \"pushover_sound\"\n },\n on: {\n change: function($event) {\n var $$selectedVal = Array.prototype.filter\n .call(\n $event.target.options,\n function(o) {\n return o.selected\n }\n )\n .map(function(o) {\n var val =\n \"_value\" in o\n ? o._value\n : o.value\n return val\n })\n _vm.$set(\n _vm.notifiers.pushover,\n \"sound\",\n $event.target.multiple\n ? $$selectedVal\n : $$selectedVal[0]\n )\n }\n }\n },\n _vm._l(_vm.pushoverSoundOptions, function(\n option\n ) {\n return _c(\n \"option\",\n {\n key: option.value,\n domProps: { value: option.value }\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(option.text) +\n \"\\n \"\n )\n ]\n )\n }),\n 0\n ),\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\"Choose notification sound to use\")\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"pushover_priority\",\n label: \"Pushover notification priority\"\n }\n },\n [\n _c(\n \"select\",\n {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value:\n _vm.notifiers.pushover.priority,\n expression:\n \"notifiers.pushover.priority\"\n }\n ],\n staticClass: \"form-control\",\n attrs: {\n id: \"pushover_priority\",\n name: \"pushover_priority\"\n },\n on: {\n change: function($event) {\n var $$selectedVal = Array.prototype.filter\n .call(\n $event.target.options,\n function(o) {\n return o.selected\n }\n )\n .map(function(o) {\n var val =\n \"_value\" in o\n ? o._value\n : o.value\n return val\n })\n _vm.$set(\n _vm.notifiers.pushover,\n \"priority\",\n $event.target.multiple\n ? $$selectedVal\n : $$selectedVal[0]\n )\n }\n }\n },\n _vm._l(\n _vm.pushoverPriorityOptions,\n function(option) {\n return _c(\n \"option\",\n {\n key: option.value,\n domProps: { value: option.value }\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(option.text) +\n \"\\n \"\n )\n ]\n )\n }\n ),\n 0\n ),\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n \"priority of Pushover messages from Medusa\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testPushover-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Pushover\",\n id: \"testPushover\"\n },\n on: { click: _vm.testPushover }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-boxcar2\",\n attrs: { title: \"Boxcar 2\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://new.boxcar.io/\" } },\n [_vm._v(\"Boxcar 2\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Read your messages where and when you want them!\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_boxcar2\",\n explanations: [\"Send boxcar2 notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.boxcar2.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.boxcar2, \"enabled\", $$v)\n },\n expression: \"notifiers.boxcar2.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.boxcar2.enabled,\n expression: \"notifiers.boxcar2.enabled\"\n }\n ],\n attrs: { id: \"content-use-boxcar2-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"boxcar2_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.boxcar2.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.boxcar2,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.boxcar2.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"boxcar2_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.boxcar2.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.boxcar2,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.boxcar2.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"boxcar2_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.boxcar2\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.boxcar2,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.boxcar2.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Boxcar2 Access token\",\n id: \"boxcar2_accesstoken\",\n explanations: [\n \"access token for your Boxcar account.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.boxcar2.accessToken,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.boxcar2,\n \"accessToken\",\n $$v\n )\n },\n expression: \"notifiers.boxcar2.accessToken\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testBoxcar2-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Boxcar\",\n id: \"testBoxcar2\"\n },\n on: { click: _vm.testBoxcar2 }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-pushalot\",\n attrs: { title: \"Pushalot\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://pushalot.com\" } },\n [_vm._v(\"Pushalot\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Pushalot is a platform for receiving custom push notifications to connected devices running Windows Phone or Windows 8.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_pushalot\",\n explanations: [\"Send Pushalot notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushalot.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.pushalot, \"enabled\", $$v)\n },\n expression: \"notifiers.pushalot.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.pushalot.enabled,\n expression: \"notifiers.pushalot.enabled\"\n }\n ],\n attrs: { id: \"content-use-pushalot-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"pushalot_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushalot.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushalot,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression:\n \"notifiers.pushalot.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"pushalot_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.pushalot.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushalot,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.pushalot.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"pushalot_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.pushalot\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushalot,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.pushalot.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Pushalot authorization token\",\n id: \"pushalot_authorizationtoken\",\n explanations: [\n \"authorization token of your Pushalot account.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushalot.authToken,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushalot,\n \"authToken\",\n $$v\n )\n },\n expression: \"notifiers.pushalot.authToken\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testPushalot-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Pushalot\",\n id: \"testPushalot\"\n },\n on: { click: _vm.testPushalot }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-pushbullet\",\n attrs: { title: \"Pushbullet\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://www.pushbullet.com\" } },\n [_vm._v(\"Pushbullet\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Pushbullet is a platform for receiving custom push notifications to connected devices running Android and desktop Chrome browsers.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_pushbullet\",\n explanations: [\"Send pushbullet notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushbullet.enabled,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushbullet,\n \"enabled\",\n $$v\n )\n },\n expression: \"notifiers.pushbullet.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.pushbullet.enabled,\n expression: \"notifiers.pushbullet.enabled\"\n }\n ],\n attrs: { id: \"content-use-pushbullet-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"pushbullet_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.pushbullet.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushbullet,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression:\n \"notifiers.pushbullet.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"pushbullet_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.pushbullet.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushbullet,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.pushbullet.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"pushbullet_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.pushbullet\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushbullet,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.pushbullet.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Pushbullet API key\",\n id: \"pushbullet_api\",\n explanations: [\n \"API key of your Pushbullet account.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushbullet.api,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushbullet,\n \"api\",\n $$v\n )\n },\n expression: \"notifiers.pushbullet.api\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"pushbullet_device_list\",\n label: \"Pushbullet devices\"\n }\n },\n [\n _c(\"input\", {\n staticClass: \"btn-medusa btn-inline\",\n attrs: {\n type: \"button\",\n value: \"Update device list\",\n id: \"get-pushbullet-devices\"\n },\n on: {\n click: _vm.getPushbulletDeviceOptions\n }\n }),\n _vm._v(\" \"),\n _c(\n \"select\",\n {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value:\n _vm.notifiers.pushbullet.device,\n expression:\n \"notifiers.pushbullet.device\"\n }\n ],\n staticClass: \"form-control\",\n attrs: {\n id: \"pushbullet_device_list\",\n name: \"pushbullet_device_list\"\n },\n on: {\n change: function($event) {\n var $$selectedVal = Array.prototype.filter\n .call(\n $event.target.options,\n function(o) {\n return o.selected\n }\n )\n .map(function(o) {\n var val =\n \"_value\" in o\n ? o._value\n : o.value\n return val\n })\n _vm.$set(\n _vm.notifiers.pushbullet,\n \"device\",\n $event.target.multiple\n ? $$selectedVal\n : $$selectedVal[0]\n )\n }\n }\n },\n _vm._l(\n _vm.pushbulletDeviceOptions,\n function(option) {\n return _c(\n \"option\",\n {\n key: option.value,\n domProps: { value: option.value },\n on: {\n change: function($event) {\n _vm.pushbulletTestInfo =\n \"Don't forget to save your new pushbullet settings.\"\n }\n }\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(option.text) +\n \"\\n \"\n )\n ]\n )\n }\n ),\n 0\n ),\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\"select device you wish to push to.\")\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testPushbullet-resultsfsf\" }\n },\n [_vm._v(_vm._s(_vm.pushbulletTestInfo))]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Pushbullet\",\n id: \"testPushbullet\"\n },\n on: { click: _vm.testPushbulletApi }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-join\",\n attrs: { title: \"Join\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://joaoapps.com/join/\" } },\n [_vm._v(\"Join\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Join is a platform for receiving custom push notifications to connected devices running Android and desktop Chrome browsers.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_join\",\n explanations: [\"Send join notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.join.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.join, \"enabled\", $$v)\n },\n expression: \"notifiers.join.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.join.enabled,\n expression: \"notifiers.join.enabled\"\n }\n ],\n attrs: { id: \"content-use-join-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"join_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.join.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.join,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.join.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"join_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.join.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.join,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression: \"notifiers.join.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"join_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.join.notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.join,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.join.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Join API key\",\n id: \"join_api\",\n explanations: [\n \"API key of your Join account.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.join.api,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.join, \"api\", $$v)\n },\n expression: \"notifiers.join.api\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Join Device ID(s) key\",\n id: \"join_device\",\n explanations: [\n \"Enter DeviceID of the device(s) you wish to send notifications to, comma separated if using multiple.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.join.device,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.join, \"device\", $$v)\n },\n expression: \"notifiers.join.device\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testJoin-result\" }\n },\n [_vm._v(_vm._s(_vm.joinTestInfo))]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Join\",\n id: \"testJoin\"\n },\n on: { click: _vm.testJoinApi }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-freemobile\",\n attrs: { title: \"Free Mobile\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"http://mobile.free.fr/\" } },\n [_vm._v(\"Free Mobile\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Free Mobile is a famous French cellular network provider. It provides to their customer a free SMS API.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_freemobile\",\n explanations: [\"Send SMS notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.freemobile.enabled,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.freemobile,\n \"enabled\",\n $$v\n )\n },\n expression: \"notifiers.freemobile.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.freemobile.enabled,\n expression: \"notifiers.freemobile.enabled\"\n }\n ],\n attrs: { id: \"content-use-freemobile-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"freemobile_notify_onsnatch\",\n explanations: [\n \"send an SMS when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.freemobile.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.freemobile,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression:\n \"notifiers.freemobile.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"freemobile_notify_ondownload\",\n explanations: [\n \"send an SMS when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.freemobile.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.freemobile,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.freemobile.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"freemobile_notify_onsubtitledownload\",\n explanations: [\n \"send an SMS when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.freemobile\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.freemobile,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.freemobile.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Free Mobile customer ID\",\n id: \"freemobile_id\",\n explanations: [\n \"It's your Free Mobile customer ID (8 digits)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.freemobile.id,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.freemobile,\n \"id\",\n $$v\n )\n },\n expression: \"notifiers.freemobile.id\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Free Mobile API Key\",\n id: \"freemobile_apikey\",\n explanations: [\n \"Find your API Key in your customer portal.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.freemobile.api,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.freemobile,\n \"api\",\n $$v\n )\n },\n expression: \"notifiers.freemobile.api\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testFreeMobile-result\" }\n },\n [_vm._v(\"Click below to test your settings.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test SMS\",\n id: \"testFreeMobile\"\n },\n on: { click: _vm.testFreeMobile }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-telegram\",\n attrs: { title: \"Telegram\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://telegram.org/\" } },\n [_vm._v(\"Telegram\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Telegram is a cloud-based instant messaging service.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_telegram\",\n explanations: [\"Send Telegram notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.telegram.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.telegram, \"enabled\", $$v)\n },\n expression: \"notifiers.telegram.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.telegram.enabled,\n expression: \"notifiers.telegram.enabled\"\n }\n ],\n attrs: { id: \"content-use-telegram-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"telegram_notify_onsnatch\",\n explanations: [\n \"Send a message when a download starts??\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.telegram.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.telegram,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression:\n \"notifiers.telegram.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"telegram_notify_ondownload\",\n explanations: [\n \"send a message when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.telegram.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.telegram,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.telegram.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"telegram_notify_onsubtitledownload\",\n explanations: [\n \"send a message when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.telegram\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.telegram,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.telegram.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"User/group ID\",\n id: \"telegram_id\",\n explanations: [\n \"Contact @myidbot on Telegram to get an ID\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.telegram.id,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.telegram, \"id\", $$v)\n },\n expression: \"notifiers.telegram.id\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Bot API token\",\n id: \"telegram_apikey\",\n explanations: [\n \"Contact @BotFather on Telegram to set up one\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.telegram.api,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.telegram, \"api\", $$v)\n },\n expression: \"notifiers.telegram.api\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testTelegram-result\" }\n },\n [_vm._v(\"Click below to test your settings.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Telegram\",\n id: \"testTelegram\"\n },\n on: { click: _vm.testTelegram }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-discord\",\n attrs: { title: \"Discord\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://discordapp.com/\" } },\n [_vm._v(\"Discord\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Discord is a cloud-based All-in-one voice and text chat for gamers that's free, secure, and works on both your desktop and phone..\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_discord\",\n explanations: [\"Send Discord notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.discord.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.discord, \"enabled\", $$v)\n },\n expression: \"notifiers.discord.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.discord.enabled,\n expression: \"notifiers.discord.enabled\"\n }\n ],\n attrs: { id: \"content-use-discord-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"discord_notify_onsnatch\",\n explanations: [\n \"Send a message when a download starts??\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.discord.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.discord,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.discord.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"discord_notify_ondownload\",\n explanations: [\n \"send a message when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.discord.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.discord,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.discord.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"discord_notify_onsubtitledownload\",\n explanations: [\n \"send a message when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.discord\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.discord,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.discord.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Channel webhook\",\n id: \"discord_webhook\",\n explanations: [\n \"Add a webhook to a channel, use the returned url here\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.discord.webhook,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.discord,\n \"webhook\",\n $$v\n )\n },\n expression: \"notifiers.discord.webhook\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Text to speech\",\n id: \"discord_tts\",\n explanations: [\n \"Use discord text to speech feature\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.discord.tts,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.discord, \"tts\", $$v)\n },\n expression: \"notifiers.discord.tts\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Bot username\",\n id: \"discord_name\",\n explanations: [\n \"Create a username for the Discord Bot to use\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.discord.name,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.discord, \"name\", $$v)\n },\n expression: \"notifiers.discord.name\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testDiscord-result\" }\n },\n [_vm._v(\"Click below to test your settings.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Discord\",\n id: \"testDiscord\"\n },\n on: { click: _vm.testDiscord }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"br\"),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ]),\n _vm._v(\" \"),\n _c(\"div\", { attrs: { id: \"social\" } }, [\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-twitter\",\n attrs: { title: \"Twitter\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://www.twitter.com\" } },\n [_vm._v(\"Twitter\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"A social networking and microblogging service, enabling its users to send and read other users' messages called tweets.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_twitter\",\n explanations: [\n \"Should Medusa post tweets on Twitter?\",\n \"Note: you may want to use a secondary account.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.twitter.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.twitter, \"enabled\", $$v)\n },\n expression: \"notifiers.twitter.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.twitter.enabled,\n expression: \"notifiers.twitter.enabled\"\n }\n ],\n attrs: { id: \"content-use-twitter\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"twitter_notify_onsnatch\",\n explanations: [\n \"send an SMS when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.twitter.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.twitter,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.twitter.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"twitter_notify_ondownload\",\n explanations: [\n \"send an SMS when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.twitter.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.twitter,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.twitter.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"twitter_notify_onsubtitledownload\",\n explanations: [\n \"send an SMS when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.twitter\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.twitter,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.twitter.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Send direct message\",\n id: \"twitter_usedm\",\n explanations: [\n \"send a notification via Direct Message, not via status update\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.twitter.directMessage,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.twitter,\n \"directMessage\",\n $$v\n )\n },\n expression: \"notifiers.twitter.directMessage\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Send DM to\",\n id: \"twitter_dmto\",\n explanations: [\n \"Twitter account to send Direct Messages to (must follow you)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.twitter.dmto,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.twitter, \"dmto\", $$v)\n },\n expression: \"notifiers.twitter.dmto\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"twitterStep1\",\n label: \"Step 1\"\n }\n },\n [\n _c(\n \"span\",\n { staticStyle: { \"font-size\": \"11px\" } },\n [\n _vm._v(\n 'Click the \"Request Authorization\" button. '\n ),\n _c(\"br\"),\n _vm._v(\n \"This will open a new page containing an auth key. \"\n ),\n _c(\"br\"),\n _vm._v(\n \"Note: if nothing happens check your popup blocker.\"\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Request Authorization\",\n id: \"twitter-step-1\"\n },\n on: {\n click: function($event) {\n return _vm.twitterStep1($event)\n }\n }\n })\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"twitterStep2\",\n label: \"Step 2\"\n }\n },\n [\n _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.twitterKey,\n expression: \"twitterKey\"\n }\n ],\n staticClass:\n \"form-control input-sm max-input350\",\n staticStyle: { display: \"inline\" },\n attrs: {\n type: \"text\",\n id: \"twitter_key\",\n placeholder:\n \"Enter the key Twitter gave you, and click 'Verify Key'\"\n },\n domProps: { value: _vm.twitterKey },\n on: {\n input: function($event) {\n if ($event.target.composing) {\n return\n }\n _vm.twitterKey = $event.target.value\n }\n }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa btn-inline\",\n attrs: {\n type: \"button\",\n value: \"Verify Key\",\n id: \"twitter-step-2\"\n },\n on: {\n click: function($event) {\n return _vm.twitterStep2($event)\n }\n }\n })\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", {\n staticClass: \"testNotification\",\n attrs: { id: \"testTwitter-result\" },\n domProps: {\n innerHTML: _vm._s(_vm.twitterTestInfo)\n }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Twitter\",\n id: \"testTwitter\"\n },\n on: { click: _vm.twitterTest }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\"a\", { attrs: { href: \"#trakt\" } }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-trakt\",\n attrs: { title: \"Trakt\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://trakt.tv/\" } },\n [_vm._v(\"Trakt\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"trakt helps keep a record of what TV shows and movies you are watching. Based on your favorites, trakt recommends additional shows and movies you'll enjoy!\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_trakt\",\n explanations: [\"Send Trakt.tv notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.trakt.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.trakt, \"enabled\", $$v)\n },\n expression: \"notifiers.trakt.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.trakt.enabled,\n expression: \"notifiers.trakt.enabled\"\n }\n ],\n attrs: { id: \"content-use-trakt-client\" }\n },\n [\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"trakt_request_auth\",\n label: \"\"\n }\n },\n [\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Connect to your trakt account\",\n id: \"Trakt\"\n },\n on: { click: _vm.TraktRequestDeviceCode }\n }),\n _vm._v(\" \"),\n _vm.traktRequestSend && _vm.traktUserCode\n ? _c(\n \"span\",\n { staticStyle: { display: \"inline\" } },\n [\n _vm._v(\n \"Use this code in the popup: \" +\n _vm._s(_vm.traktUserCode)\n )\n ]\n )\n : _vm._e(),\n _vm._v(\" \"),\n _vm.traktRequestSend &&\n _vm.traktUserCode &&\n _vm.traktRequestMessage\n ? _c(\"p\", [\n _vm._v(\n \"Trakt request status: \" +\n _vm._s(_vm.traktRequestMessage)\n )\n ])\n : _vm._e(),\n _vm._v(\" \"),\n _vm.traktRequestAuthenticated &&\n _vm.traktRequestMessage\n ? _c(\"p\", [\n _vm._v(_vm._s(_vm.traktRequestMessage))\n ])\n : _vm._e()\n ]\n ),\n _vm._v(\" \"),\n _c(\"config-textbox-number\", {\n attrs: {\n label: \"API Timeout\",\n id: \"trakt_timeout\",\n explanations: [\n \"Seconds to wait for Trakt API to respond. (Use 0 to wait forever)\"\n ]\n },\n model: {\n value: _vm.notifiers.trakt.timeout,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"timeout\",\n $$v\n )\n },\n expression: \"notifiers.trakt.timeout\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"trakt_default_indexer\",\n label: \"Default indexer\"\n }\n },\n [\n _c(\n \"select\",\n {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value:\n _vm.notifiers.trakt.defaultIndexer,\n expression:\n \"notifiers.trakt.defaultIndexer\"\n }\n ],\n staticClass: \"form-control\",\n attrs: {\n id: \"trakt_default_indexer\",\n name: \"trakt_default_indexer\"\n },\n on: {\n change: function($event) {\n var $$selectedVal = Array.prototype.filter\n .call(\n $event.target.options,\n function(o) {\n return o.selected\n }\n )\n .map(function(o) {\n var val =\n \"_value\" in o\n ? o._value\n : o.value\n return val\n })\n _vm.$set(\n _vm.notifiers.trakt,\n \"defaultIndexer\",\n $event.target.multiple\n ? $$selectedVal\n : $$selectedVal[0]\n )\n }\n }\n },\n _vm._l(_vm.traktIndexersOptions, function(\n option\n ) {\n return _c(\n \"option\",\n {\n key: option.key,\n domProps: { value: option.value }\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(option.text) +\n \"\\n \"\n )\n ]\n )\n }),\n 0\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Sync libraries\",\n id: \"trakt_sync\",\n explanations: [\n \"Sync your Medusa show library with your Trakt collection.\",\n \"Note: Don't enable this setting if you use the Trakt addon for Kodi or any other script that syncs your library.\",\n \"Kodi detects that the episode was deleted and removes from collection which causes Medusa to re-add it. This causes a loop between Medusa and Kodi adding and deleting the episode.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.trakt.sync,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.trakt, \"sync\", $$v)\n },\n expression: \"notifiers.trakt.sync\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.trakt.sync,\n expression: \"notifiers.trakt.sync\"\n }\n ],\n attrs: { id: \"content-use-trakt-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Remove Episodes From Collection\",\n id: \"trakt_remove_watchlist\",\n explanations: [\n \"Remove an Episode from your Trakt Collection if it is not in your Medusa Library.\",\n \"Note:Don't enable this setting if you use the Trakt addon for Kodi or any other script that syncs your library.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.trakt.removeWatchlist,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"removeWatchlist\",\n $$v\n )\n },\n expression:\n \"notifiers.trakt.removeWatchlist\"\n }\n })\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Sync watchlist\",\n id: \"trakt_sync_watchlist\",\n explanations: [\n \"Sync your Medusa library with your Trakt Watchlist (either Show and Episode).\",\n \"Episode will be added on watch list when wanted or snatched and will be removed when downloaded\",\n \"Note: By design, Trakt automatically removes episodes and/or shows from watchlist as soon you have watched them.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.trakt.syncWatchlist,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"syncWatchlist\",\n $$v\n )\n },\n expression: \"notifiers.trakt.syncWatchlist\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.trakt.syncWatchlist,\n expression:\n \"notifiers.trakt.syncWatchlist\"\n }\n ],\n attrs: { id: \"content-use-trakt-client\" }\n },\n [\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"trakt_default_indexer\",\n label: \"Watchlist add method\"\n }\n },\n [\n _c(\n \"select\",\n {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value:\n _vm.notifiers.trakt.methodAdd,\n expression:\n \"notifiers.trakt.methodAdd\"\n }\n ],\n staticClass: \"form-control\",\n attrs: {\n id: \"trakt_method_add\",\n name: \"trakt_method_add\"\n },\n on: {\n change: function($event) {\n var $$selectedVal = Array.prototype.filter\n .call(\n $event.target.options,\n function(o) {\n return o.selected\n }\n )\n .map(function(o) {\n var val =\n \"_value\" in o\n ? o._value\n : o.value\n return val\n })\n _vm.$set(\n _vm.notifiers.trakt,\n \"methodAdd\",\n $event.target.multiple\n ? $$selectedVal\n : $$selectedVal[0]\n )\n }\n }\n },\n _vm._l(_vm.traktMethodOptions, function(\n option\n ) {\n return _c(\n \"option\",\n {\n key: option.key,\n domProps: { value: option.value }\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(option.text) +\n \"\\n \"\n )\n ]\n )\n }),\n 0\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"method in which to download episodes for new shows.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label:\n \"Sync medusa shows to your trakt watchlist\",\n id: \"sync_to_watchlist\",\n explanations: [\n \"Additionallly to adding shows from your watchlist to medusa, add shows from medusa to your watchlist\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.trakt.syncToWatchlist,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"syncToWatchlist\",\n $$v\n )\n },\n expression:\n \"notifiers.trakt.syncToWatchlist\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Remove episode\",\n id: \"trakt_remove_watchlist\",\n explanations: [\n \"remove an episode from your watchlist after it's downloaded.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.trakt.removeWatchlist,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"removeWatchlist\",\n $$v\n )\n },\n expression:\n \"notifiers.trakt.removeWatchlist\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Remove series\",\n id: \"trakt_remove_serieslist\",\n explanations: [\n \"remove the whole series from your watchlist after any download.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.trakt.removeSerieslist,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"removeSerieslist\",\n $$v\n )\n },\n expression:\n \"notifiers.trakt.removeSerieslist\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Remove watched show\",\n id: \"trakt_remove_show_from_application\",\n explanations: [\n \"remove the show from Medusa if it's ended and completely watched\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.trakt\n .removeShowFromApplication,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"removeShowFromApplication\",\n $$v\n )\n },\n expression:\n \"notifiers.trakt.removeShowFromApplication\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Start paused\",\n id: \"trakt_start_paused\",\n explanations: [\n \"shows grabbed from your trakt watchlist start paused.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.trakt.startPaused,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"startPaused\",\n $$v\n )\n },\n expression: \"notifiers.trakt.startPaused\"\n }\n })\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Trakt blackList name\",\n id: \"trakt_blacklist_name\",\n explanations: [\n \"Name(slug) of List on Trakt for blacklisting show on 'Add Trending Show' & 'Add Recommended Shows' pages\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.trakt.blacklistName,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"blacklistName\",\n $$v\n )\n },\n expression: \"notifiers.trakt.blacklistName\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testTrakt-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Trakt\",\n id: \"testTrakt\"\n },\n on: { click: _vm.testTrakt }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Force Sync\",\n id: \"forceSync\"\n },\n on: { click: _vm.traktForceSync }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n attrs: { type: \"hidden\", id: \"trakt_pin_url\" },\n domProps: { value: _vm.notifiers.trakt.pinUrl }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-email\",\n attrs: { title: \"Email\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n {\n attrs: {\n href:\n \"https://en.wikipedia.org/wiki/Comparison_of_webmail_providers\"\n }\n },\n [_vm._v(\"Email\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Allows configuration of email notifications on a per show basis.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_email\",\n explanations: [\"Send email notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.email, \"enabled\", $$v)\n },\n expression: \"notifiers.email.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.email.enabled,\n expression: \"notifiers.email.enabled\"\n }\n ],\n attrs: { id: \"content-use-email\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"email_notify_onsnatch\",\n explanations: [\n \"Send a message when a download starts??\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.email,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.email.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"email_notify_ondownload\",\n explanations: [\n \"send a message when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.email,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression: \"notifiers.email.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"email_notify_onsubtitledownload\",\n explanations: [\n \"send a message when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.email\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.email,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.email.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"SMTP host\",\n id: \"email_host\",\n explanations: [\n \"hostname of your SMTP email server.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.host,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.email, \"host\", $$v)\n },\n expression: \"notifiers.email.host\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox-number\", {\n attrs: {\n min: 1,\n step: 1,\n label: \"SMTP port\",\n id: \"email_port\",\n explanations: [\n \"port number used to connect to your SMTP host.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.port,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.email, \"port\", $$v)\n },\n expression: \"notifiers.email.port\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"SMTP from\",\n id: \"email_from\",\n explanations: [\n \"sender email address, some hosts require a real address.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.from,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.email, \"from\", $$v)\n },\n expression: \"notifiers.email.from\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Use TLS\",\n id: \"email_tls\",\n explanations: [\"check to use TLS encryption.\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.tls,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.email, \"tls\", $$v)\n },\n expression: \"notifiers.email.tls\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"SMTP username\",\n id: \"email_username\",\n explanations: [\n \"(optional) your SMTP server username.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.username,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.email,\n \"username\",\n $$v\n )\n },\n expression: \"notifiers.email.username\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n type: \"password\",\n label: \"SMTP password\",\n id: \"email_password\",\n explanations: [\n \"(optional) your SMTP server password.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.password,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.email,\n \"password\",\n $$v\n )\n },\n expression: \"notifiers.email.password\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"email_list\",\n label: \"Global email list\"\n }\n },\n [\n _c(\"select-list\", {\n attrs: {\n name: \"email_list\",\n id: \"email_list\",\n \"list-items\":\n _vm.notifiers.email.addressList\n },\n on: { change: _vm.emailUpdateAddressList }\n }),\n _vm._v(\n \"\\n Email addresses listed here, will receive notifications for \"\n ),\n _c(\"b\", [_vm._v(\"all\")]),\n _vm._v(\" shows.\"),\n _c(\"br\"),\n _vm._v(\n \"\\n (This field may be blank except when testing.)\\n \"\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Email Subject\",\n id: \"email_subject\",\n explanations: [\n \"Use a custom subject for some privacy protection?\",\n \"(Leave blank for the default Medusa subject)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.subject,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.email,\n \"subject\",\n $$v\n )\n },\n expression: \"notifiers.email.subject\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"email_show\",\n label: \"Show notification list\"\n }\n },\n [\n _c(\"show-selector\", {\n attrs: {\n \"select-class\":\n \"form-control input-sm max-input350\",\n \"place-holder\": \"-- Select a Show --\"\n },\n on: {\n change: function($event) {\n return _vm.emailUpdateShowEmail($event)\n }\n }\n })\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"form-group\" }, [\n _c(\"div\", { staticClass: \"row\" }, [\n _c(\n \"div\",\n {\n staticClass:\n \"offset-sm-2 col-sm-offset-2 col-sm-10 content\"\n },\n [\n _c(\"select-list\", {\n attrs: {\n name: \"email_list\",\n id: \"email_list\",\n \"list-items\":\n _vm.emailSelectedShowAdresses\n },\n on: {\n change: function($event) {\n return _vm.savePerShowNotifyList(\n \"email\",\n $event\n )\n }\n }\n }),\n _vm._v(\n \"\\n Email addresses listed here, will receive notifications for \"\n ),\n _c(\"b\", [_vm._v(\"all\")]),\n _vm._v(\" shows.\"),\n _c(\"br\"),\n _vm._v(\n \"\\n (This field may be blank except when testing.)\\n \"\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testEmail-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Email\",\n id: \"testEmail\"\n },\n on: { click: _vm.testEmail }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-slack\",\n attrs: { title: \"Slack\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://slack.com\" } },\n [_vm._v(\"Slack\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [_vm._v(\"Slack is a messaging app for teams.\")])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_slack_client\",\n explanations: [\"Send Slack notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.slack.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.slack, \"enabled\", $$v)\n },\n expression: \"notifiers.slack.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.slack.enabled,\n expression: \"notifiers.slack.enabled\"\n }\n ],\n attrs: { id: \"content-use-slack-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"slack_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.slack.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.slack,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.slack.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"slack_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.slack.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.slack,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression: \"notifiers.slack.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"slack_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.slack\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.slack,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.slack.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-textbox\",\n {\n attrs: {\n label: \"Slack Incoming Webhook\",\n id: \"slack_webhook\",\n explanations: [\n \"Create an incoming webhook, to communicate with your slack channel.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.slack.webhook,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.slack,\n \"webhook\",\n $$v\n )\n },\n expression: \"notifiers.slack.webhook\"\n }\n },\n [\n _c(\n \"app-link\",\n {\n attrs: {\n href:\n \"https://my.slack.com/services/new/incoming-webhook\"\n }\n },\n [\n _vm._v(\n \"https://my.slack.com/services/new/incoming-webhook/\"\n )\n ]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testSlack-result\" }\n },\n [_vm._v(\"Click below to test your settings.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Slack\",\n id: \"testSlack\"\n },\n on: { click: _vm.testSlack }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"br\"),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ])\n ])\n ]\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"clearfix\" })\n ],\n 1\n )\n}\nvar staticRenderFns = [\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"clear-left\" }, [\n _c(\"p\", [\n _c(\"b\", [_vm._v(\"Note:\")]),\n _vm._v(\" some Plex Home Theaters \"),\n _c(\"b\", { staticClass: \"boldest\" }, [_vm._v(\"do not\")]),\n _vm._v(\" support notifications e.g. Plexapp for Samsung TVs\")\n ])\n ])\n }\n]\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack://slim/./src/components/config-notifications.vue?./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"render\": () => (/* binding */ render),\n/* harmony export */ \"staticRenderFns\": () => (/* binding */ staticRenderFns)\n/* harmony export */ });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { attrs: { id: \"config-notifications\" } },\n [\n _c(\"vue-snotify\"),\n _vm._v(\" \"),\n _c(\"div\", { attrs: { id: \"config\" } }, [\n _c(\"div\", { attrs: { id: \"config-content\" } }, [\n _c(\n \"form\",\n {\n attrs: { id: \"configForm\", method: \"post\" },\n on: {\n submit: function($event) {\n $event.preventDefault()\n return _vm.save()\n }\n }\n },\n [\n _c(\"div\", { attrs: { id: \"config-components\" } }, [\n _c(\"ul\", [\n _c(\n \"li\",\n [\n _c(\"app-link\", { attrs: { href: \"#home-theater-nas\" } }, [\n _vm._v(\"Home Theater / NAS\")\n ])\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"li\",\n [\n _c(\"app-link\", { attrs: { href: \"#devices\" } }, [\n _vm._v(\"Devices\")\n ])\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"li\",\n [\n _c(\"app-link\", { attrs: { href: \"#social\" } }, [\n _vm._v(\"Social\")\n ])\n ],\n 1\n )\n ]),\n _vm._v(\" \"),\n _c(\"div\", { attrs: { id: \"home-theater-nas\" } }, [\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-kodi\",\n attrs: { title: \"KODI\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"http://kodi.tv\" } },\n [_vm._v(\"KODI\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"A free and open source cross-platform media center and home entertainment system software with a 10-foot user interface designed for the living-room TV.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_kodi\",\n explanations: [\"Send KODI commands?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.kodi, \"enabled\", $$v)\n },\n expression: \"notifiers.kodi.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.kodi.enabled,\n expression: \"notifiers.kodi.enabled\"\n }\n ],\n attrs: { id: \"content-use-kodi\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Always on\",\n id: \"kodi_always_on\",\n explanations: [\"log errors when unreachable?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.alwaysOn,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi,\n \"alwaysOn\",\n $$v\n )\n },\n expression: \"notifiers.kodi.alwaysOn\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"kodi_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.kodi.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"kodi_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression: \"notifiers.kodi.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"kodi_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.kodi.notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.kodi.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Update library\",\n id: \"kodi_update_library\",\n explanations: [\n \"update KODI library when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.update.library,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi.update,\n \"library\",\n $$v\n )\n },\n expression: \"notifiers.kodi.update.library\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Full library update\",\n id: \"kodi_update_full\",\n explanations: [\n \"perform a full library update if update per-show fails?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.update.full,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi.update,\n \"full\",\n $$v\n )\n },\n expression: \"notifiers.kodi.update.full\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Clean library\",\n id: \"kodi_clean_library\",\n explanations: [\n \"clean KODI library when replaces a already downloaded episode?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.cleanLibrary,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi,\n \"cleanLibrary\",\n $$v\n )\n },\n expression: \"notifiers.kodi.cleanLibrary\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Only update first host\",\n id: \"kodi_update_onlyfirst\",\n explanations: [\n \"only send library updates/clean to the first active host?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.update.onlyFirst,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi.update,\n \"onlyFirst\",\n $$v\n )\n },\n expression: \"notifiers.kodi.update.onlyFirst\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n label: \"KODI IP:Port\",\n labelFor: \"kodi_host\"\n }\n },\n [\n _c(\"select-list\", {\n attrs: {\n name: \"kodi_host\",\n id: \"kodi_host\",\n \"list-items\": _vm.notifiers.kodi.host\n },\n on: {\n change: function($event) {\n _vm.notifiers.kodi.host = $event.map(\n function(x) {\n return x.value\n }\n )\n }\n }\n }),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"host running KODI (eg. 192.168.1.100:8080)\"\n )\n ])\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Username\",\n id: \"kodi_username\",\n explanations: [\n \"username for your KODI server (blank for none)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.username,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi,\n \"username\",\n $$v\n )\n },\n expression: \"notifiers.kodi.username\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n type: \"password\",\n label: \"Password\",\n id: \"kodi_password\",\n explanations: [\n \"password for your KODI server (blank for none)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.password,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi,\n \"password\",\n $$v\n )\n },\n expression: \"notifiers.kodi.password\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testKODI-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test KODI\",\n id: \"testKODI\"\n },\n on: { click: _vm.testKODI }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-plex\",\n attrs: { title: \"Plex Media Server\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://plex.tv\" } },\n [_vm._v(\"Plex Media Server\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Experience your media on a visually stunning, easy to use interface on your Mac connected to your TV. Your media library has never looked this good!\"\n )\n ]),\n _vm._v(\" \"),\n _vm.notifiers.plex.server.enabled\n ? _c(\"p\", { staticClass: \"plexinfo\" }, [\n _vm._v(\n \"For sending notifications to Plex Home Theater (PHT) clients, use the KODI notifier with port \"\n ),\n _c(\"b\", [_vm._v(\"3005\")]),\n _vm._v(\".\")\n ])\n : _vm._e()\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_plex_server\",\n explanations: [\"Send Plex server notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.plex.server.enabled,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.server,\n \"enabled\",\n $$v\n )\n },\n expression: \"notifiers.plex.server.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.plex.server.enabled,\n expression: \"notifiers.plex.server.enabled\"\n }\n ],\n attrs: { id: \"content-use-plex-server\" }\n },\n [\n _c(\n \"config-textbox\",\n {\n attrs: {\n label: \"Plex Media Server Auth Token\",\n id: \"plex_server_token\"\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.plex.server.token,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.server,\n \"token\",\n $$v\n )\n },\n expression: \"notifiers.plex.server.token\"\n }\n },\n [\n _c(\"p\", [_vm._v(\"Auth Token used by plex\")]),\n _vm._v(\" \"),\n _c(\"p\", [\n _c(\n \"span\",\n [\n _vm._v(\"See: \"),\n _c(\n \"app-link\",\n {\n staticClass: \"wiki\",\n attrs: {\n href:\n \"https://support.plex.tv/hc/en-us/articles/204059436-Finding-your-account-token-X-Plex-Token\"\n }\n },\n [\n _c(\"strong\", [\n _vm._v(\n \"Finding your account token\"\n )\n ])\n ]\n )\n ],\n 1\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Username\",\n id: \"plex_server_username\",\n explanations: [\"blank = no authentication\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.plex.server.username,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.server,\n \"username\",\n $$v\n )\n },\n expression: \"notifiers.plex.server.username\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n type: \"password\",\n label: \"Password\",\n id: \"plex_server_password\",\n explanations: [\"blank = no authentication\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.plex.server.password,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.server,\n \"password\",\n $$v\n )\n },\n expression: \"notifiers.plex.server.password\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Update Library\",\n id: \"plex_update_library\",\n explanations: [\"log errors when unreachable?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.plex.server.updateLibrary,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.server,\n \"updateLibrary\",\n $$v\n )\n },\n expression:\n \"notifiers.plex.server.updateLibrary\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"plex_server_host\",\n label: \"Plex Media Server IP:Port\"\n }\n },\n [\n _c(\"select-list\", {\n attrs: {\n name: \"plex_server_host\",\n id: \"plex_server_host\",\n \"list-items\":\n _vm.notifiers.plex.server.host\n },\n on: {\n change: function($event) {\n _vm.notifiers.plex.server.host = $event.map(\n function(x) {\n return x.value\n }\n )\n }\n }\n }),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"one or more hosts running Plex Media Server\"\n ),\n _c(\"br\"),\n _vm._v(\n \"(eg. 192.168.1.1:32400, 192.168.1.2:32400)\"\n )\n ])\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"HTTPS\",\n id: \"plex_server_https\",\n explanations: [\n \"use https for plex media server requests?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.plex.server.https,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.server,\n \"https\",\n $$v\n )\n },\n expression: \"notifiers.plex.server.https\"\n }\n }),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"field-pair\" }, [\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testPMS-result\" }\n },\n [\n _vm._v(\n \"Click below to test Plex Media Server(s)\"\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Plex Media Server\",\n id: \"testPMS\"\n },\n on: { click: _vm.testPMS }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n }),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"clear-left\" }, [\n _vm._v(\" \")\n ])\n ])\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-plexth\",\n attrs: { title: \"Plex Media Client\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://plex.tv\" } },\n [_vm._v(\"Plex Home Theater\")]\n )\n ],\n 1\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_plex_client\",\n explanations: [\n \"Send Plex Home Theater notifications?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.plex.client.enabled,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.client,\n \"enabled\",\n $$v\n )\n },\n expression: \"notifiers.plex.client.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.plex.client.enabled,\n expression: \"notifiers.plex.client.enabled\"\n }\n ],\n attrs: { id: \"content-use-plex-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"plex_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.plex.client.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.client,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression:\n \"notifiers.plex.client.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"plex_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.plex.client.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.client,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.plex.client.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"plex_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.plex.client\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.client,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.plex.client.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"plex_client_host\",\n label: \"Plex Home Theater IP:Port\"\n }\n },\n [\n _c(\"select-list\", {\n attrs: {\n name: \"plex_client_host\",\n id: \"plex_client_host\",\n \"list-items\":\n _vm.notifiers.plex.client.host\n },\n on: {\n change: function($event) {\n _vm.notifiers.plex.client.host = $event.map(\n function(x) {\n return x.value\n }\n )\n }\n }\n }),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"one or more hosts running Plex Home Theater\"\n ),\n _c(\"br\"),\n _vm._v(\n \"(eg. 192.168.1.100:3000, 192.168.1.101:3000)\"\n )\n ])\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Username\",\n id: \"plex_client_username\",\n explanations: [\"blank = no authentication\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.plex.client.username,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.client,\n \"username\",\n $$v\n )\n },\n expression: \"notifiers.plex.client.username\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n type: \"password\",\n label: \"Password\",\n id: \"plex_client_password\",\n explanations: [\"blank = no authentication\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.plex.client.password,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.client,\n \"password\",\n $$v\n )\n },\n expression: \"notifiers.plex.client.password\"\n }\n }),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"field-pair\" }, [\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testPHT-result\" }\n },\n [\n _vm._v(\n \"Click below to test Plex Home Theater(s)\"\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Plex Home Theater\",\n id: \"testPHT\"\n },\n on: { click: _vm.testPHT }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n }),\n _vm._v(\" \"),\n _vm._m(0)\n ])\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-emby\",\n attrs: { title: \"Emby\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"http://emby.media\" } },\n [_vm._v(\"Emby\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"A home media server built using other popular open source technologies.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_emby\",\n explanations: [\"Send update commands to Emby?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.emby.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.emby, \"enabled\", $$v)\n },\n expression: \"notifiers.emby.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.emby.enabled,\n expression: \"notifiers.emby.enabled\"\n }\n ],\n attrs: { id: \"content_use_emby\" }\n },\n [\n _c(\"config-textbox\", {\n attrs: {\n label: \"Emby IP:Port\",\n id: \"emby_host\",\n explanations: [\n \"host running Emby (eg. 192.168.1.100:8096)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.emby.host,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.emby, \"host\", $$v)\n },\n expression: \"notifiers.emby.host\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: { label: \"Api Key\", id: \"emby_apikey\" },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.emby.apiKey,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.emby, \"apiKey\", $$v)\n },\n expression: \"notifiers.emby.apiKey\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testEMBY-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Emby\",\n id: \"testEMBY\"\n },\n on: { click: _vm.testEMBY }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-nmj\",\n attrs: { title: \"Networked Media Jukebox\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n {\n attrs: { href: \"http://www.popcornhour.com/\" }\n },\n [_vm._v(\"NMJ\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"The Networked Media Jukebox, or NMJ, is the official media jukebox interface made available for the Popcorn Hour 200-series.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_nmj\",\n explanations: [\"Send update commands to NMJ?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.nmj.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.nmj, \"enabled\", $$v)\n },\n expression: \"notifiers.nmj.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.nmj.enabled,\n expression: \"notifiers.nmj.enabled\"\n }\n ],\n attrs: { id: \"content-use-nmj\" }\n },\n [\n _c(\"config-textbox\", {\n attrs: {\n label: \"Popcorn IP address\",\n id: \"nmj_host\",\n explanations: [\n \"IP address of Popcorn 200-series (eg. 192.168.1.100)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.nmj.host,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.nmj, \"host\", $$v)\n },\n expression: \"notifiers.nmj.host\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"settingsNMJ\",\n label: \"Get settings\"\n }\n },\n [\n _c(\"input\", {\n staticClass: \"btn-medusa btn-inline\",\n attrs: {\n type: \"button\",\n value: \"Get Settings\",\n id: \"settingsNMJ\"\n },\n on: { click: _vm.settingsNMJ }\n }),\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n \"the Popcorn Hour device must be powered on and NMJ running.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"NMJ database\",\n id: \"nmj_database\",\n explanations: [\n \"automatically filled via the 'Get Settings' button.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.nmj.database,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.nmj, \"database\", $$v)\n },\n expression: \"notifiers.nmj.database\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"NMJ mount\",\n id: \"nmj_mount\",\n explanations: [\n \"automatically filled via the 'Get Settings' button.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.nmj.mount,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.nmj, \"mount\", $$v)\n },\n expression: \"notifiers.nmj.mount\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testNMJ-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test NMJ\",\n id: \"testNMJ\"\n },\n on: { click: _vm.testNMJ }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-nmj\",\n attrs: { title: \"Networked Media Jukebox v2\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n {\n attrs: { href: \"http://www.popcornhour.com/\" }\n },\n [_vm._v(\"NMJv2\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"The Networked Media Jukebox, or NMJv2, is the official media jukebox interface made available for the Popcorn Hour 300 & 400-series.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_nmjv2\",\n explanations: [\n \"Send popcorn hour (nmjv2) notifications?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.nmjv2.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.nmjv2, \"enabled\", $$v)\n },\n expression: \"notifiers.nmjv2.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.nmjv2.enabled,\n expression: \"notifiers.nmjv2.enabled\"\n }\n ],\n attrs: { id: \"content-use-nmjv2\" }\n },\n [\n _c(\"config-textbox\", {\n attrs: {\n label: \"Popcorn IP address\",\n id: \"nmjv2_host\",\n explanations: [\n \"IP address of Popcorn 300/400-series (eg. 192.168.1.100)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.nmjv2.host,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.nmjv2, \"host\", $$v)\n },\n expression: \"notifiers.nmjv2.host\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"nmjv2_database_location\",\n label: \"Database location\"\n }\n },\n [\n _c(\n \"label\",\n {\n staticClass: \"space-right\",\n attrs: { for: \"NMJV2_DBLOC_A\" }\n },\n [\n _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.notifiers.nmjv2.dbloc,\n expression: \"notifiers.nmjv2.dbloc\"\n }\n ],\n attrs: {\n type: \"radio\",\n name: \"nmjv2_dbloc\",\n VALUE: \"local\",\n id: \"NMJV2_DBLOC_A\"\n },\n domProps: {\n checked: _vm._q(\n _vm.notifiers.nmjv2.dbloc,\n null\n )\n },\n on: {\n change: function($event) {\n return _vm.$set(\n _vm.notifiers.nmjv2,\n \"dbloc\",\n null\n )\n }\n }\n }),\n _vm._v(\n \"\\n PCH Local Media\\n \"\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"label\",\n { attrs: { for: \"NMJV2_DBLOC_B\" } },\n [\n _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.notifiers.nmjv2.dbloc,\n expression: \"notifiers.nmjv2.dbloc\"\n }\n ],\n attrs: {\n type: \"radio\",\n name: \"nmjv2_dbloc\",\n VALUE: \"network\",\n id: \"NMJV2_DBLOC_B\"\n },\n domProps: {\n checked: _vm._q(\n _vm.notifiers.nmjv2.dbloc,\n null\n )\n },\n on: {\n change: function($event) {\n return _vm.$set(\n _vm.notifiers.nmjv2,\n \"dbloc\",\n null\n )\n }\n }\n }),\n _vm._v(\n \"\\n PCH Network Media\\n \"\n )\n ]\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"nmjv2_database_instance\",\n label: \"Database instance\"\n }\n },\n [\n _c(\n \"select\",\n {\n staticClass: \"form-control input-sm\",\n attrs: { id: \"NMJv2db_instance\" }\n },\n [\n _c(\"option\", { attrs: { value: \"0\" } }, [\n _vm._v(\"#1 \")\n ]),\n _vm._v(\" \"),\n _c(\"option\", { attrs: { value: \"1\" } }, [\n _vm._v(\"#2 \")\n ]),\n _vm._v(\" \"),\n _c(\"option\", { attrs: { value: \"2\" } }, [\n _vm._v(\"#3 \")\n ]),\n _vm._v(\" \"),\n _c(\"option\", { attrs: { value: \"3\" } }, [\n _vm._v(\"#4 \")\n ]),\n _vm._v(\" \"),\n _c(\"option\", { attrs: { value: \"4\" } }, [\n _vm._v(\"#5 \")\n ]),\n _vm._v(\" \"),\n _c(\"option\", { attrs: { value: \"5\" } }, [\n _vm._v(\"#6 \")\n ]),\n _vm._v(\" \"),\n _c(\"option\", { attrs: { value: \"6\" } }, [\n _vm._v(\"#7 \")\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n \"adjust this value if the wrong database is selected.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"get_nmjv2_find_database\",\n label: \"Find database\"\n }\n },\n [\n _c(\"input\", {\n staticClass: \"btn-medusa btn-inline\",\n attrs: {\n type: \"button\",\n value: \"Find Database\",\n id: \"settingsNMJv2\"\n },\n on: { click: _vm.settingsNMJv2 }\n }),\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n \"the Popcorn Hour device must be powered on.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"NMJv2 database\",\n id: \"nmjv2_database\",\n explanations: [\n \"automatically filled via the 'Find Database' buttons.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.nmjv2.database,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.nmjv2,\n \"database\",\n $$v\n )\n },\n expression: \"notifiers.nmjv2.database\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testNMJv2-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test NMJv2\",\n id: \"testNMJv2\"\n },\n on: { click: _vm.testNMJv2 }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-syno1\",\n attrs: { title: \"Synology\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"http://synology.com/\" } },\n [_vm._v(\"Synology\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [_vm._v(\"The Synology DiskStation NAS.\")]),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Synology Indexer is the daemon running on the Synology NAS to build its media database.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"HTTPS\",\n id: \"use_synoindex\",\n explanations: [\n \"Note: requires Medusa to be running on your Synology NAS.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.synologyIndex.enabled,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.synologyIndex,\n \"enabled\",\n $$v\n )\n },\n expression: \"notifiers.synologyIndex.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.synologyIndex.enabled,\n expression: \"notifiers.synologyIndex.enabled\"\n }\n ],\n attrs: { id: \"content_use_synoindex\" }\n },\n [\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ]\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-syno2\",\n attrs: { title: \"Synology Indexer\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"http://synology.com/\" } },\n [_vm._v(\"Synology Notifier\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Synology Notifier is the notification system of Synology DSM\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_synologynotifier\",\n explanations: [\n \"Send notifications to the Synology Notifier?\",\n \"Note: requires Medusa to be running on your Synology DSM.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.synology.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.synology, \"enabled\", $$v)\n },\n expression: \"notifiers.synology.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.synology.enabled,\n expression: \"notifiers.synology.enabled\"\n }\n ],\n attrs: { id: \"content-use-synology-notifier\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.synology.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.synology,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression:\n \"notifiers.synology.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"synology_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.synology.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.synology,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.synology.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"synology_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.synology\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.synology,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.synology.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-pytivo\",\n attrs: { title: \"pyTivo\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n {\n attrs: {\n href:\n \"http://pytivo.sourceforge.net/wiki/index.php/PyTivo\"\n }\n },\n [_vm._v(\"pyTivo\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"pyTivo is both an HMO and GoBack server. This notifier will load the completed downloads to your Tivo.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_pytivo\",\n explanations: [\"Send notifications to pyTivo?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pyTivo.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.pyTivo, \"enabled\", $$v)\n },\n expression: \"notifiers.pyTivo.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.pyTivo.enabled,\n expression: \"notifiers.pyTivo.enabled\"\n }\n ],\n attrs: { id: \"content-use-pytivo\" }\n },\n [\n _c(\"config-textbox\", {\n attrs: {\n label: \"pyTivo IP:Port\",\n id: \"pytivo_host\",\n explanations: [\n \"host running pyTivo (eg. 192.168.1.1:9032)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pyTivo.host,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.pyTivo, \"host\", $$v)\n },\n expression: \"notifiers.pyTivo.host\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"pyTivo share name\",\n id: \"pytivo_name\",\n explanations: [\n \"(Messages & Settings > Account & System Information > System Information > DVR name)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pyTivo.shareName,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pyTivo,\n \"shareName\",\n $$v\n )\n },\n expression: \"notifiers.pyTivo.shareName\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Tivo name\",\n id: \"pytivo_tivo_name\",\n explanations: [\n \"value used in pyTivo Web Configuration to name the share.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pyTivo.name,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.pyTivo, \"name\", $$v)\n },\n expression: \"notifiers.pyTivo.name\"\n }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"br\"),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ]),\n _vm._v(\" \"),\n _c(\"div\", { attrs: { id: \"devices\" } }, [\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-growl\",\n attrs: { title: \"Growl\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"http://growl.info/\" } },\n [_vm._v(\"Growl\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"A cross-platform unobtrusive global notification system.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_growl_client\",\n explanations: [\"Send Growl notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.growl.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.growl, \"enabled\", $$v)\n },\n expression: \"notifiers.growl.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.growl.enabled,\n expression: \"notifiers.growl.enabled\"\n }\n ],\n attrs: { id: \"content-use-growl-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"growl_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.growl.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.growl,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.growl.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"growl_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.growl.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.growl,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression: \"notifiers.growl.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"growl_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.growl\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.growl,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.growl.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Growl IP:Port\",\n id: \"growl_host\",\n explanations: [\n \"host running Growl (eg. 192.168.1.100:23053)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.growl.host,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.growl, \"host\", $$v)\n },\n expression: \"notifiers.growl.host\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n type: \"password\",\n label: \"Password\",\n id: \"growl_password\",\n explanations: [\n \"may leave blank if Medusa is on the same host.\",\n \"otherwise Growl requires a password to be used.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.growl.password,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.growl,\n \"password\",\n $$v\n )\n },\n expression: \"notifiers.growl.password\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testGrowl-result\" }\n },\n [\n _vm._v(\n \"Click below to register and test Growl, this is required for Growl notifications to work.\"\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Register Growl\",\n id: \"testGrowl\"\n },\n on: { click: _vm.testGrowl }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-prowl\",\n attrs: { title: \"Prowl\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"http://www.prowlapp.com/\" } },\n [_vm._v(\"Prowl\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [_vm._v(\"A Growl client for iOS.\")])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_prowl\",\n explanations: [\"Send Prowl notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.prowl.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.prowl, \"enabled\", $$v)\n },\n expression: \"notifiers.prowl.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.prowl.enabled,\n expression: \"notifiers.prowl.enabled\"\n }\n ],\n attrs: { id: \"content-use-prowl\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"prowl_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.prowl.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.prowl,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.prowl.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"prowl_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.prowl.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.prowl,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression: \"notifiers.prowl.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"prowl_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.prowl\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.prowl,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.prowl.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Prowl Message Title\",\n id: \"prowl_message_title\"\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.prowl.messageTitle,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.prowl,\n \"messageTitle\",\n $$v\n )\n },\n expression: \"notifiers.prowl.messageTitle\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"prowl_api\",\n label: \"Api\"\n }\n },\n [\n _c(\"select-list\", {\n attrs: {\n name: \"prowl_api\",\n id: \"prowl_api\",\n \"csv-enabled\": \"\",\n \"list-items\": _vm.notifiers.prowl.api\n },\n on: { change: _vm.onChangeProwlApi }\n }),\n _vm._v(\" \"),\n _c(\n \"span\",\n [\n _vm._v(\n \"Prowl API(s) listed here, will receive notifications for \"\n ),\n _c(\"b\", [_vm._v(\"all\")]),\n _vm._v(\n \" shows.\\n Your Prowl API key is available at:\\n \"\n ),\n _c(\n \"app-link\",\n {\n attrs: {\n href:\n \"https://www.prowlapp.com/api_settings.php\"\n }\n },\n [\n _vm._v(\n \"\\n https://www.prowlapp.com/api_settings.php\"\n )\n ]\n ),\n _c(\"br\"),\n _vm._v(\n \"\\n (This field may be blank except when testing.)\\n \"\n )\n ],\n 1\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"prowl_show_notification_list\",\n label: \"Show notification list\"\n }\n },\n [\n _c(\"show-selector\", {\n attrs: {\n \"select-class\":\n \"form-control input-sm max-input350\",\n \"place-holder\": \"-- Select a Show --\"\n },\n on: {\n change: function($event) {\n return _vm.prowlUpdateApiKeys($event)\n }\n }\n })\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"form-group\" }, [\n _c(\"div\", { staticClass: \"row\" }, [\n _c(\n \"div\",\n {\n staticClass:\n \"offset-sm-2 col-sm-offset-2 col-sm-10 content\"\n },\n [\n _c(\"select-list\", {\n attrs: {\n name: \"prowl-show-list\",\n id: \"prowl-show-list\",\n \"list-items\":\n _vm.prowlSelectedShowApiKeys\n },\n on: {\n change: function($event) {\n return _vm.savePerShowNotifyList(\n \"prowl\",\n $event\n )\n }\n }\n }),\n _vm._v(\n \"\\n Configure per-show notifications here by entering Prowl API key(s), after selecting a show in the drop-down box.\\n Be sure to activate the 'Save for this show' button below after each entry.\\n \"\n ),\n _c(\"span\", [\n _vm._v(\n \"The values are automatically saved when adding the api key.\"\n )\n ])\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"prowl_priority\",\n label: \"Prowl priority\"\n }\n },\n [\n _c(\n \"select\",\n {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.notifiers.prowl.priority,\n expression: \"notifiers.prowl.priority\"\n }\n ],\n staticClass: \"form-control input-sm\",\n attrs: {\n id: \"prowl_priority\",\n name: \"prowl_priority\"\n },\n on: {\n change: function($event) {\n var $$selectedVal = Array.prototype.filter\n .call(\n $event.target.options,\n function(o) {\n return o.selected\n }\n )\n .map(function(o) {\n var val =\n \"_value\" in o\n ? o._value\n : o.value\n return val\n })\n _vm.$set(\n _vm.notifiers.prowl,\n \"priority\",\n $event.target.multiple\n ? $$selectedVal\n : $$selectedVal[0]\n )\n }\n }\n },\n _vm._l(_vm.prowlPriorityOptions, function(\n option\n ) {\n return _c(\n \"option\",\n {\n key: option.value,\n domProps: { value: option.value }\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(option.text) +\n \"\\n \"\n )\n ]\n )\n }),\n 0\n ),\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n \"priority of Prowl messages from Medusa.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testProwl-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Prowl\",\n id: \"testProwl\"\n },\n on: { click: _vm.testProwl }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-libnotify\",\n attrs: { title: \"Libnotify\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n {\n attrs: {\n href:\n \"http://library.gnome.org/devel/libnotify/\"\n }\n },\n [_vm._v(\"Libnotify\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"p\",\n [\n _vm._v(\n \"The standard desktop notification API for Linux/*nix systems. This notifier will only function if the pynotify module is installed (Ubuntu/Debian package \"\n ),\n _c(\n \"app-link\",\n { attrs: { href: \"apt:python-notify\" } },\n [_vm._v(\"python-notify\")]\n ),\n _vm._v(\").\")\n ],\n 1\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_libnotify_client\",\n explanations: [\"Send Libnotify notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.libnotify.enabled,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.libnotify,\n \"enabled\",\n $$v\n )\n },\n expression: \"notifiers.libnotify.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.libnotify.enabled,\n expression: \"notifiers.libnotify.enabled\"\n }\n ],\n attrs: { id: \"content-use-libnotify\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"libnotify_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.libnotify.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.libnotify,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression:\n \"notifiers.libnotify.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"libnotify_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.libnotify.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.libnotify,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.libnotify.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"libnotify_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.libnotify\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.libnotify,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.libnotify.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testLibnotify-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Libnotify\",\n id: \"testLibnotify\"\n },\n on: { click: _vm.testLibnotify }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-pushover\",\n attrs: { title: \"Pushover\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://pushover.net/\" } },\n [_vm._v(\"Pushover\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Pushover makes it easy to send real-time notifications to your Android and iOS devices.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_pushover_client\",\n explanations: [\"Send Pushover notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushover.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.pushover, \"enabled\", $$v)\n },\n expression: \"notifiers.pushover.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.pushover.enabled,\n expression: \"notifiers.pushover.enabled\"\n }\n ],\n attrs: { id: \"content-use-pushover\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"pushover_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushover.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushover,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression:\n \"notifiers.pushover.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"pushover_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.pushover.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushover,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.pushover.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"pushover_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.pushover\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushover,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.pushover.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Pushover User Key\",\n id: \"pushover_userkey\",\n explanations: [\n \"User Key of your Pushover account\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushover.userKey,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushover,\n \"userKey\",\n $$v\n )\n },\n expression: \"notifiers.pushover.userKey\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-textbox\",\n {\n attrs: {\n label: \"Pushover API Key\",\n id: \"pushover_apikey\"\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushover.apiKey,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushover,\n \"apiKey\",\n $$v\n )\n },\n expression: \"notifiers.pushover.apiKey\"\n }\n },\n [\n _c(\n \"span\",\n [\n _c(\n \"app-link\",\n {\n attrs: {\n href:\n \"https://pushover.net/apps/build/\"\n }\n },\n [_c(\"b\", [_vm._v(\"Click here\")])]\n ),\n _vm._v(\" to create a Pushover API key\")\n ],\n 1\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"pushover_device\",\n label: \"Pushover Devices\"\n }\n },\n [\n _c(\"select-list\", {\n attrs: {\n name: \"pushover_device\",\n id: \"pushover_device\",\n \"list-items\":\n _vm.notifiers.pushover.device\n },\n on: {\n change: function($event) {\n _vm.notifiers.pushover.device = $event.map(\n function(x) {\n return x.value\n }\n )\n }\n }\n }),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"List of pushover devices you want to send notifications to\"\n )\n ])\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"pushover_sound\",\n label: \"Pushover notification sound\"\n }\n },\n [\n _c(\n \"select\",\n {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.notifiers.pushover.sound,\n expression: \"notifiers.pushover.sound\"\n }\n ],\n staticClass: \"form-control\",\n attrs: {\n id: \"pushover_sound\",\n name: \"pushover_sound\"\n },\n on: {\n change: function($event) {\n var $$selectedVal = Array.prototype.filter\n .call(\n $event.target.options,\n function(o) {\n return o.selected\n }\n )\n .map(function(o) {\n var val =\n \"_value\" in o\n ? o._value\n : o.value\n return val\n })\n _vm.$set(\n _vm.notifiers.pushover,\n \"sound\",\n $event.target.multiple\n ? $$selectedVal\n : $$selectedVal[0]\n )\n }\n }\n },\n _vm._l(_vm.pushoverSoundOptions, function(\n option\n ) {\n return _c(\n \"option\",\n {\n key: option.value,\n domProps: { value: option.value }\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(option.text) +\n \"\\n \"\n )\n ]\n )\n }),\n 0\n ),\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\"Choose notification sound to use\")\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"pushover_priority\",\n label: \"Pushover notification priority\"\n }\n },\n [\n _c(\n \"select\",\n {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value:\n _vm.notifiers.pushover.priority,\n expression:\n \"notifiers.pushover.priority\"\n }\n ],\n staticClass: \"form-control\",\n attrs: {\n id: \"pushover_priority\",\n name: \"pushover_priority\"\n },\n on: {\n change: function($event) {\n var $$selectedVal = Array.prototype.filter\n .call(\n $event.target.options,\n function(o) {\n return o.selected\n }\n )\n .map(function(o) {\n var val =\n \"_value\" in o\n ? o._value\n : o.value\n return val\n })\n _vm.$set(\n _vm.notifiers.pushover,\n \"priority\",\n $event.target.multiple\n ? $$selectedVal\n : $$selectedVal[0]\n )\n }\n }\n },\n _vm._l(\n _vm.pushoverPriorityOptions,\n function(option) {\n return _c(\n \"option\",\n {\n key: option.value,\n domProps: { value: option.value }\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(option.text) +\n \"\\n \"\n )\n ]\n )\n }\n ),\n 0\n ),\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n \"priority of Pushover messages from Medusa\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testPushover-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Pushover\",\n id: \"testPushover\"\n },\n on: { click: _vm.testPushover }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-boxcar2\",\n attrs: { title: \"Boxcar 2\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://new.boxcar.io/\" } },\n [_vm._v(\"Boxcar 2\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Read your messages where and when you want them!\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_boxcar2\",\n explanations: [\"Send boxcar2 notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.boxcar2.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.boxcar2, \"enabled\", $$v)\n },\n expression: \"notifiers.boxcar2.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.boxcar2.enabled,\n expression: \"notifiers.boxcar2.enabled\"\n }\n ],\n attrs: { id: \"content-use-boxcar2-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"boxcar2_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.boxcar2.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.boxcar2,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.boxcar2.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"boxcar2_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.boxcar2.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.boxcar2,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.boxcar2.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"boxcar2_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.boxcar2\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.boxcar2,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.boxcar2.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Boxcar2 Access token\",\n id: \"boxcar2_accesstoken\",\n explanations: [\n \"access token for your Boxcar account.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.boxcar2.accessToken,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.boxcar2,\n \"accessToken\",\n $$v\n )\n },\n expression: \"notifiers.boxcar2.accessToken\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testBoxcar2-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Boxcar\",\n id: \"testBoxcar2\"\n },\n on: { click: _vm.testBoxcar2 }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-pushalot\",\n attrs: { title: \"Pushalot\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://pushalot.com\" } },\n [_vm._v(\"Pushalot\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Pushalot is a platform for receiving custom push notifications to connected devices running Windows Phone or Windows 8.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_pushalot\",\n explanations: [\"Send Pushalot notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushalot.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.pushalot, \"enabled\", $$v)\n },\n expression: \"notifiers.pushalot.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.pushalot.enabled,\n expression: \"notifiers.pushalot.enabled\"\n }\n ],\n attrs: { id: \"content-use-pushalot-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"pushalot_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushalot.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushalot,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression:\n \"notifiers.pushalot.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"pushalot_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.pushalot.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushalot,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.pushalot.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"pushalot_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.pushalot\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushalot,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.pushalot.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Pushalot authorization token\",\n id: \"pushalot_authorizationtoken\",\n explanations: [\n \"authorization token of your Pushalot account.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushalot.authToken,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushalot,\n \"authToken\",\n $$v\n )\n },\n expression: \"notifiers.pushalot.authToken\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testPushalot-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Pushalot\",\n id: \"testPushalot\"\n },\n on: { click: _vm.testPushalot }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-pushbullet\",\n attrs: { title: \"Pushbullet\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://www.pushbullet.com\" } },\n [_vm._v(\"Pushbullet\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Pushbullet is a platform for receiving custom push notifications to connected devices running Android and desktop Chrome browsers.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_pushbullet\",\n explanations: [\"Send pushbullet notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushbullet.enabled,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushbullet,\n \"enabled\",\n $$v\n )\n },\n expression: \"notifiers.pushbullet.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.pushbullet.enabled,\n expression: \"notifiers.pushbullet.enabled\"\n }\n ],\n attrs: { id: \"content-use-pushbullet-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"pushbullet_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.pushbullet.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushbullet,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression:\n \"notifiers.pushbullet.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"pushbullet_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.pushbullet.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushbullet,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.pushbullet.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"pushbullet_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.pushbullet\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushbullet,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.pushbullet.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Pushbullet API key\",\n id: \"pushbullet_api\",\n explanations: [\n \"API key of your Pushbullet account.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushbullet.api,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushbullet,\n \"api\",\n $$v\n )\n },\n expression: \"notifiers.pushbullet.api\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"pushbullet_device_list\",\n label: \"Pushbullet devices\"\n }\n },\n [\n _c(\"input\", {\n staticClass: \"btn-medusa btn-inline\",\n attrs: {\n type: \"button\",\n value: \"Update device list\",\n id: \"get-pushbullet-devices\"\n },\n on: {\n click: _vm.getPushbulletDeviceOptions\n }\n }),\n _vm._v(\" \"),\n _c(\n \"select\",\n {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value:\n _vm.notifiers.pushbullet.device,\n expression:\n \"notifiers.pushbullet.device\"\n }\n ],\n staticClass: \"form-control\",\n attrs: {\n id: \"pushbullet_device_list\",\n name: \"pushbullet_device_list\"\n },\n on: {\n change: function($event) {\n var $$selectedVal = Array.prototype.filter\n .call(\n $event.target.options,\n function(o) {\n return o.selected\n }\n )\n .map(function(o) {\n var val =\n \"_value\" in o\n ? o._value\n : o.value\n return val\n })\n _vm.$set(\n _vm.notifiers.pushbullet,\n \"device\",\n $event.target.multiple\n ? $$selectedVal\n : $$selectedVal[0]\n )\n }\n }\n },\n _vm._l(\n _vm.pushbulletDeviceOptions,\n function(option) {\n return _c(\n \"option\",\n {\n key: option.value,\n domProps: { value: option.value },\n on: {\n change: function($event) {\n _vm.pushbulletTestInfo =\n \"Don't forget to save your new pushbullet settings.\"\n }\n }\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(option.text) +\n \"\\n \"\n )\n ]\n )\n }\n ),\n 0\n ),\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\"select device you wish to push to.\")\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testPushbullet-resultsfsf\" }\n },\n [_vm._v(_vm._s(_vm.pushbulletTestInfo))]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Pushbullet\",\n id: \"testPushbullet\"\n },\n on: { click: _vm.testPushbulletApi }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-join\",\n attrs: { title: \"Join\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://joaoapps.com/join/\" } },\n [_vm._v(\"Join\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Join is a platform for receiving custom push notifications to connected devices running Android and desktop Chrome browsers.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_join\",\n explanations: [\"Send join notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.join.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.join, \"enabled\", $$v)\n },\n expression: \"notifiers.join.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.join.enabled,\n expression: \"notifiers.join.enabled\"\n }\n ],\n attrs: { id: \"content-use-join-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"join_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.join.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.join,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.join.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"join_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.join.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.join,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression: \"notifiers.join.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"join_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.join.notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.join,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.join.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Join API key\",\n id: \"join_api\",\n explanations: [\n \"API key of your Join account.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.join.api,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.join, \"api\", $$v)\n },\n expression: \"notifiers.join.api\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Join Device ID(s) key\",\n id: \"join_device\",\n explanations: [\n \"Enter DeviceID of the device(s) you wish to send notifications to, comma separated if using multiple.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.join.device,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.join, \"device\", $$v)\n },\n expression: \"notifiers.join.device\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testJoin-result\" }\n },\n [_vm._v(_vm._s(_vm.joinTestInfo))]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Join\",\n id: \"testJoin\"\n },\n on: { click: _vm.testJoinApi }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-freemobile\",\n attrs: { title: \"Free Mobile\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"http://mobile.free.fr/\" } },\n [_vm._v(\"Free Mobile\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Free Mobile is a famous French cellular network provider. It provides to their customer a free SMS API.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_freemobile\",\n explanations: [\"Send SMS notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.freemobile.enabled,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.freemobile,\n \"enabled\",\n $$v\n )\n },\n expression: \"notifiers.freemobile.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.freemobile.enabled,\n expression: \"notifiers.freemobile.enabled\"\n }\n ],\n attrs: { id: \"content-use-freemobile-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"freemobile_notify_onsnatch\",\n explanations: [\n \"send an SMS when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.freemobile.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.freemobile,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression:\n \"notifiers.freemobile.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"freemobile_notify_ondownload\",\n explanations: [\n \"send an SMS when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.freemobile.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.freemobile,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.freemobile.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"freemobile_notify_onsubtitledownload\",\n explanations: [\n \"send an SMS when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.freemobile\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.freemobile,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.freemobile.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Free Mobile customer ID\",\n id: \"freemobile_id\",\n explanations: [\n \"It's your Free Mobile customer ID (8 digits)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.freemobile.id,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.freemobile,\n \"id\",\n $$v\n )\n },\n expression: \"notifiers.freemobile.id\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Free Mobile API Key\",\n id: \"freemobile_apikey\",\n explanations: [\n \"Find your API Key in your customer portal.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.freemobile.api,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.freemobile,\n \"api\",\n $$v\n )\n },\n expression: \"notifiers.freemobile.api\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testFreeMobile-result\" }\n },\n [_vm._v(\"Click below to test your settings.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test SMS\",\n id: \"testFreeMobile\"\n },\n on: { click: _vm.testFreeMobile }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-telegram\",\n attrs: { title: \"Telegram\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://telegram.org/\" } },\n [_vm._v(\"Telegram\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Telegram is a cloud-based instant messaging service.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_telegram\",\n explanations: [\"Send Telegram notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.telegram.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.telegram, \"enabled\", $$v)\n },\n expression: \"notifiers.telegram.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.telegram.enabled,\n expression: \"notifiers.telegram.enabled\"\n }\n ],\n attrs: { id: \"content-use-telegram-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"telegram_notify_onsnatch\",\n explanations: [\n \"Send a message when a download starts??\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.telegram.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.telegram,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression:\n \"notifiers.telegram.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"telegram_notify_ondownload\",\n explanations: [\n \"send a message when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.telegram.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.telegram,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.telegram.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"telegram_notify_onsubtitledownload\",\n explanations: [\n \"send a message when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.telegram\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.telegram,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.telegram.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"User/group ID\",\n id: \"telegram_id\",\n explanations: [\n \"Contact @myidbot on Telegram to get an ID\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.telegram.id,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.telegram, \"id\", $$v)\n },\n expression: \"notifiers.telegram.id\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Bot API token\",\n id: \"telegram_apikey\",\n explanations: [\n \"Contact @BotFather on Telegram to set up one\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.telegram.api,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.telegram, \"api\", $$v)\n },\n expression: \"notifiers.telegram.api\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testTelegram-result\" }\n },\n [_vm._v(\"Click below to test your settings.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Telegram\",\n id: \"testTelegram\"\n },\n on: { click: _vm.testTelegram }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-discord\",\n attrs: { title: \"Discord\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://discordapp.com/\" } },\n [_vm._v(\"Discord\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Discord is a cloud-based All-in-one voice and text chat for gamers that's free, secure, and works on both your desktop and phone..\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_discord\",\n explanations: [\"Send Discord notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.discord.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.discord, \"enabled\", $$v)\n },\n expression: \"notifiers.discord.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.discord.enabled,\n expression: \"notifiers.discord.enabled\"\n }\n ],\n attrs: { id: \"content-use-discord-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"discord_notify_onsnatch\",\n explanations: [\n \"Send a message when a download starts??\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.discord.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.discord,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.discord.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"discord_notify_ondownload\",\n explanations: [\n \"send a message when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.discord.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.discord,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.discord.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"discord_notify_onsubtitledownload\",\n explanations: [\n \"send a message when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.discord\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.discord,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.discord.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Channel webhook\",\n id: \"discord_webhook\",\n explanations: [\n \"Add a webhook to a channel, use the returned url here\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.discord.webhook,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.discord,\n \"webhook\",\n $$v\n )\n },\n expression: \"notifiers.discord.webhook\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Text to speech\",\n id: \"discord_tts\",\n explanations: [\n \"Use discord text to speech feature\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.discord.tts,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.discord, \"tts\", $$v)\n },\n expression: \"notifiers.discord.tts\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Override webhook avatar\",\n id: \"override_avatar\",\n explanations: [\n \"Override Discords default avatar with a Medusa icon\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.discord.overrideAvatar,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.discord,\n \"overrideAvatar\",\n $$v\n )\n },\n expression: \"notifiers.discord.overrideAvatar\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Bot username\",\n id: \"discord_name\",\n explanations: [\n \"Create a username for the Discord Bot to use\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.discord.name,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.discord, \"name\", $$v)\n },\n expression: \"notifiers.discord.name\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testDiscord-result\" }\n },\n [_vm._v(\"Click below to test your settings.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Discord\",\n id: \"testDiscord\"\n },\n on: { click: _vm.testDiscord }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"br\"),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ]),\n _vm._v(\" \"),\n _c(\"div\", { attrs: { id: \"social\" } }, [\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-twitter\",\n attrs: { title: \"Twitter\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://www.twitter.com\" } },\n [_vm._v(\"Twitter\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"A social networking and microblogging service, enabling its users to send and read other users' messages called tweets.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_twitter\",\n explanations: [\n \"Should Medusa post tweets on Twitter?\",\n \"Note: you may want to use a secondary account.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.twitter.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.twitter, \"enabled\", $$v)\n },\n expression: \"notifiers.twitter.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.twitter.enabled,\n expression: \"notifiers.twitter.enabled\"\n }\n ],\n attrs: { id: \"content-use-twitter\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"twitter_notify_onsnatch\",\n explanations: [\n \"send an SMS when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.twitter.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.twitter,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.twitter.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"twitter_notify_ondownload\",\n explanations: [\n \"send an SMS when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.twitter.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.twitter,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.twitter.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"twitter_notify_onsubtitledownload\",\n explanations: [\n \"send an SMS when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.twitter\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.twitter,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.twitter.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Send direct message\",\n id: \"twitter_usedm\",\n explanations: [\n \"send a notification via Direct Message, not via status update\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.twitter.directMessage,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.twitter,\n \"directMessage\",\n $$v\n )\n },\n expression: \"notifiers.twitter.directMessage\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Send DM to\",\n id: \"twitter_dmto\",\n explanations: [\n \"Twitter account to send Direct Messages to (must follow you)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.twitter.dmto,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.twitter, \"dmto\", $$v)\n },\n expression: \"notifiers.twitter.dmto\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"twitterStep1\",\n label: \"Step 1\"\n }\n },\n [\n _c(\n \"span\",\n { staticStyle: { \"font-size\": \"11px\" } },\n [\n _vm._v(\n 'Click the \"Request Authorization\" button. '\n ),\n _c(\"br\"),\n _vm._v(\n \"This will open a new page containing an auth key. \"\n ),\n _c(\"br\"),\n _vm._v(\n \"Note: if nothing happens check your popup blocker.\"\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Request Authorization\",\n id: \"twitter-step-1\"\n },\n on: {\n click: function($event) {\n return _vm.twitterStep1($event)\n }\n }\n })\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"twitterStep2\",\n label: \"Step 2\"\n }\n },\n [\n _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.twitterKey,\n expression: \"twitterKey\"\n }\n ],\n staticClass:\n \"form-control input-sm max-input350\",\n staticStyle: { display: \"inline\" },\n attrs: {\n type: \"text\",\n id: \"twitter_key\",\n placeholder:\n \"Enter the key Twitter gave you, and click 'Verify Key'\"\n },\n domProps: { value: _vm.twitterKey },\n on: {\n input: function($event) {\n if ($event.target.composing) {\n return\n }\n _vm.twitterKey = $event.target.value\n }\n }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa btn-inline\",\n attrs: {\n type: \"button\",\n value: \"Verify Key\",\n id: \"twitter-step-2\"\n },\n on: {\n click: function($event) {\n return _vm.twitterStep2($event)\n }\n }\n })\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", {\n staticClass: \"testNotification\",\n attrs: { id: \"testTwitter-result\" },\n domProps: {\n innerHTML: _vm._s(_vm.twitterTestInfo)\n }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Twitter\",\n id: \"testTwitter\"\n },\n on: { click: _vm.twitterTest }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\"a\", { attrs: { href: \"#trakt\" } }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-trakt\",\n attrs: { title: \"Trakt\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://trakt.tv/\" } },\n [_vm._v(\"Trakt\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"trakt helps keep a record of what TV shows and movies you are watching. Based on your favorites, trakt recommends additional shows and movies you'll enjoy!\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_trakt\",\n explanations: [\"Send Trakt.tv notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.trakt.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.trakt, \"enabled\", $$v)\n },\n expression: \"notifiers.trakt.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.trakt.enabled,\n expression: \"notifiers.trakt.enabled\"\n }\n ],\n attrs: { id: \"content-use-trakt-client\" }\n },\n [\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"trakt_request_auth\",\n label: \"\"\n }\n },\n [\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Connect to your trakt account\",\n id: \"Trakt\"\n },\n on: { click: _vm.TraktRequestDeviceCode }\n }),\n _vm._v(\" \"),\n _vm.traktRequestSend && _vm.traktUserCode\n ? _c(\n \"span\",\n { staticStyle: { display: \"inline\" } },\n [\n _vm._v(\n \"Use this code in the popup: \" +\n _vm._s(_vm.traktUserCode)\n )\n ]\n )\n : _vm._e(),\n _vm._v(\" \"),\n _vm.traktRequestSend &&\n _vm.traktUserCode &&\n _vm.traktRequestMessage\n ? _c(\"p\", [\n _vm._v(\n \"Trakt request status: \" +\n _vm._s(_vm.traktRequestMessage)\n )\n ])\n : _vm._e(),\n _vm._v(\" \"),\n _vm.traktRequestAuthenticated &&\n _vm.traktRequestMessage\n ? _c(\"p\", [\n _vm._v(_vm._s(_vm.traktRequestMessage))\n ])\n : _vm._e()\n ]\n ),\n _vm._v(\" \"),\n _c(\"config-textbox-number\", {\n attrs: {\n label: \"API Timeout\",\n id: \"trakt_timeout\",\n explanations: [\n \"Seconds to wait for Trakt API to respond. (Use 0 to wait forever)\"\n ]\n },\n model: {\n value: _vm.notifiers.trakt.timeout,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"timeout\",\n $$v\n )\n },\n expression: \"notifiers.trakt.timeout\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"trakt_default_indexer\",\n label: \"Default indexer\"\n }\n },\n [\n _c(\n \"select\",\n {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value:\n _vm.notifiers.trakt.defaultIndexer,\n expression:\n \"notifiers.trakt.defaultIndexer\"\n }\n ],\n staticClass: \"form-control\",\n attrs: {\n id: \"trakt_default_indexer\",\n name: \"trakt_default_indexer\"\n },\n on: {\n change: function($event) {\n var $$selectedVal = Array.prototype.filter\n .call(\n $event.target.options,\n function(o) {\n return o.selected\n }\n )\n .map(function(o) {\n var val =\n \"_value\" in o\n ? o._value\n : o.value\n return val\n })\n _vm.$set(\n _vm.notifiers.trakt,\n \"defaultIndexer\",\n $event.target.multiple\n ? $$selectedVal\n : $$selectedVal[0]\n )\n }\n }\n },\n _vm._l(_vm.traktIndexersOptions, function(\n option\n ) {\n return _c(\n \"option\",\n {\n key: option.key,\n domProps: { value: option.value }\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(option.text) +\n \"\\n \"\n )\n ]\n )\n }),\n 0\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Sync libraries\",\n id: \"trakt_sync\",\n explanations: [\n \"Sync your Medusa show library with your Trakt collection.\",\n \"Note: Don't enable this setting if you use the Trakt addon for Kodi or any other script that syncs your library.\",\n \"Kodi detects that the episode was deleted and removes from collection which causes Medusa to re-add it. This causes a loop between Medusa and Kodi adding and deleting the episode.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.trakt.sync,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.trakt, \"sync\", $$v)\n },\n expression: \"notifiers.trakt.sync\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.trakt.sync,\n expression: \"notifiers.trakt.sync\"\n }\n ],\n attrs: { id: \"content-use-trakt-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Remove Episodes From Collection\",\n id: \"trakt_remove_watchlist\",\n explanations: [\n \"Remove an Episode from your Trakt Collection if it is not in your Medusa Library.\",\n \"Note:Don't enable this setting if you use the Trakt addon for Kodi or any other script that syncs your library.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.trakt.removeWatchlist,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"removeWatchlist\",\n $$v\n )\n },\n expression:\n \"notifiers.trakt.removeWatchlist\"\n }\n })\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Sync watchlist\",\n id: \"trakt_sync_watchlist\",\n explanations: [\n \"Sync your Medusa library with your Trakt Watchlist (either Show and Episode).\",\n \"Episode will be added on watch list when wanted or snatched and will be removed when downloaded\",\n \"Note: By design, Trakt automatically removes episodes and/or shows from watchlist as soon you have watched them.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.trakt.syncWatchlist,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"syncWatchlist\",\n $$v\n )\n },\n expression: \"notifiers.trakt.syncWatchlist\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.trakt.syncWatchlist,\n expression:\n \"notifiers.trakt.syncWatchlist\"\n }\n ],\n attrs: { id: \"content-use-trakt-client\" }\n },\n [\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"trakt_default_indexer\",\n label: \"Watchlist add method\"\n }\n },\n [\n _c(\n \"select\",\n {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value:\n _vm.notifiers.trakt.methodAdd,\n expression:\n \"notifiers.trakt.methodAdd\"\n }\n ],\n staticClass: \"form-control\",\n attrs: {\n id: \"trakt_method_add\",\n name: \"trakt_method_add\"\n },\n on: {\n change: function($event) {\n var $$selectedVal = Array.prototype.filter\n .call(\n $event.target.options,\n function(o) {\n return o.selected\n }\n )\n .map(function(o) {\n var val =\n \"_value\" in o\n ? o._value\n : o.value\n return val\n })\n _vm.$set(\n _vm.notifiers.trakt,\n \"methodAdd\",\n $event.target.multiple\n ? $$selectedVal\n : $$selectedVal[0]\n )\n }\n }\n },\n _vm._l(_vm.traktMethodOptions, function(\n option\n ) {\n return _c(\n \"option\",\n {\n key: option.key,\n domProps: { value: option.value }\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(option.text) +\n \"\\n \"\n )\n ]\n )\n }),\n 0\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"method in which to download episodes for new shows.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label:\n \"Sync medusa shows to your trakt watchlist\",\n id: \"sync_to_watchlist\",\n explanations: [\n \"Additionallly to adding shows from your watchlist to medusa, add shows from medusa to your watchlist\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.trakt.syncToWatchlist,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"syncToWatchlist\",\n $$v\n )\n },\n expression:\n \"notifiers.trakt.syncToWatchlist\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Remove episode\",\n id: \"trakt_remove_watchlist\",\n explanations: [\n \"remove an episode from your watchlist after it's downloaded.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.trakt.removeWatchlist,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"removeWatchlist\",\n $$v\n )\n },\n expression:\n \"notifiers.trakt.removeWatchlist\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Remove series\",\n id: \"trakt_remove_serieslist\",\n explanations: [\n \"remove the whole series from your watchlist after any download.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.trakt.removeSerieslist,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"removeSerieslist\",\n $$v\n )\n },\n expression:\n \"notifiers.trakt.removeSerieslist\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Remove watched show\",\n id: \"trakt_remove_show_from_application\",\n explanations: [\n \"remove the show from Medusa if it's ended and completely watched\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.trakt\n .removeShowFromApplication,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"removeShowFromApplication\",\n $$v\n )\n },\n expression:\n \"notifiers.trakt.removeShowFromApplication\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Start paused\",\n id: \"trakt_start_paused\",\n explanations: [\n \"shows grabbed from your trakt watchlist start paused.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.trakt.startPaused,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"startPaused\",\n $$v\n )\n },\n expression: \"notifiers.trakt.startPaused\"\n }\n })\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Trakt blackList name\",\n id: \"trakt_blacklist_name\",\n explanations: [\n \"Name(slug) of List on Trakt for blacklisting show on 'Add Trending Show' & 'Add Recommended Shows' pages\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.trakt.blacklistName,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"blacklistName\",\n $$v\n )\n },\n expression: \"notifiers.trakt.blacklistName\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testTrakt-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Trakt\",\n id: \"testTrakt\"\n },\n on: { click: _vm.testTrakt }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Force Sync\",\n id: \"forceSync\"\n },\n on: { click: _vm.traktForceSync }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n attrs: { type: \"hidden\", id: \"trakt_pin_url\" },\n domProps: { value: _vm.notifiers.trakt.pinUrl }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-email\",\n attrs: { title: \"Email\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n {\n attrs: {\n href:\n \"https://en.wikipedia.org/wiki/Comparison_of_webmail_providers\"\n }\n },\n [_vm._v(\"Email\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Allows configuration of email notifications on a per show basis.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_email\",\n explanations: [\"Send email notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.email, \"enabled\", $$v)\n },\n expression: \"notifiers.email.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.email.enabled,\n expression: \"notifiers.email.enabled\"\n }\n ],\n attrs: { id: \"content-use-email\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"email_notify_onsnatch\",\n explanations: [\n \"Send a message when a download starts??\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.email,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.email.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"email_notify_ondownload\",\n explanations: [\n \"send a message when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.email,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression: \"notifiers.email.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"email_notify_onsubtitledownload\",\n explanations: [\n \"send a message when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.email\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.email,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.email.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"SMTP host\",\n id: \"email_host\",\n explanations: [\n \"hostname of your SMTP email server.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.host,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.email, \"host\", $$v)\n },\n expression: \"notifiers.email.host\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox-number\", {\n attrs: {\n min: 1,\n step: 1,\n label: \"SMTP port\",\n id: \"email_port\",\n explanations: [\n \"port number used to connect to your SMTP host.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.port,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.email, \"port\", $$v)\n },\n expression: \"notifiers.email.port\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"SMTP from\",\n id: \"email_from\",\n explanations: [\n \"sender email address, some hosts require a real address.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.from,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.email, \"from\", $$v)\n },\n expression: \"notifiers.email.from\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Use TLS\",\n id: \"email_tls\",\n explanations: [\"check to use TLS encryption.\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.tls,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.email, \"tls\", $$v)\n },\n expression: \"notifiers.email.tls\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"SMTP username\",\n id: \"email_username\",\n explanations: [\n \"(optional) your SMTP server username.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.username,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.email,\n \"username\",\n $$v\n )\n },\n expression: \"notifiers.email.username\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n type: \"password\",\n label: \"SMTP password\",\n id: \"email_password\",\n explanations: [\n \"(optional) your SMTP server password.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.password,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.email,\n \"password\",\n $$v\n )\n },\n expression: \"notifiers.email.password\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"email_list\",\n label: \"Global email list\"\n }\n },\n [\n _c(\"select-list\", {\n attrs: {\n name: \"email_list\",\n id: \"email_list\",\n \"list-items\":\n _vm.notifiers.email.addressList\n },\n on: { change: _vm.emailUpdateAddressList }\n }),\n _vm._v(\n \"\\n Email addresses listed here, will receive notifications for \"\n ),\n _c(\"b\", [_vm._v(\"all\")]),\n _vm._v(\" shows.\"),\n _c(\"br\"),\n _vm._v(\n \"\\n (This field may be blank except when testing.)\\n \"\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Email Subject\",\n id: \"email_subject\",\n explanations: [\n \"Use a custom subject for some privacy protection?\",\n \"(Leave blank for the default Medusa subject)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.subject,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.email,\n \"subject\",\n $$v\n )\n },\n expression: \"notifiers.email.subject\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"email_show\",\n label: \"Show notification list\"\n }\n },\n [\n _c(\"show-selector\", {\n attrs: {\n \"select-class\":\n \"form-control input-sm max-input350\",\n \"place-holder\": \"-- Select a Show --\"\n },\n on: {\n change: function($event) {\n return _vm.emailUpdateShowEmail($event)\n }\n }\n })\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"form-group\" }, [\n _c(\"div\", { staticClass: \"row\" }, [\n _c(\n \"div\",\n {\n staticClass:\n \"offset-sm-2 col-sm-offset-2 col-sm-10 content\"\n },\n [\n _c(\"select-list\", {\n attrs: {\n name: \"email_list\",\n id: \"email_list\",\n \"list-items\":\n _vm.emailSelectedShowAdresses\n },\n on: {\n change: function($event) {\n return _vm.savePerShowNotifyList(\n \"email\",\n $event\n )\n }\n }\n }),\n _vm._v(\n \"\\n Email addresses listed here, will receive notifications for \"\n ),\n _c(\"b\", [_vm._v(\"all\")]),\n _vm._v(\" shows.\"),\n _c(\"br\"),\n _vm._v(\n \"\\n (This field may be blank except when testing.)\\n \"\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testEmail-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Email\",\n id: \"testEmail\"\n },\n on: { click: _vm.testEmail }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-slack\",\n attrs: { title: \"Slack\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://slack.com\" } },\n [_vm._v(\"Slack\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [_vm._v(\"Slack is a messaging app for teams.\")])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_slack_client\",\n explanations: [\"Send Slack notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.slack.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.slack, \"enabled\", $$v)\n },\n expression: \"notifiers.slack.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.slack.enabled,\n expression: \"notifiers.slack.enabled\"\n }\n ],\n attrs: { id: \"content-use-slack-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"slack_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.slack.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.slack,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.slack.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"slack_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.slack.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.slack,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression: \"notifiers.slack.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"slack_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.slack\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.slack,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.slack.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-textbox\",\n {\n attrs: {\n label: \"Slack Incoming Webhook\",\n id: \"slack_webhook\",\n explanations: [\n \"Create an incoming webhook, to communicate with your slack channel.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.slack.webhook,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.slack,\n \"webhook\",\n $$v\n )\n },\n expression: \"notifiers.slack.webhook\"\n }\n },\n [\n _c(\n \"app-link\",\n {\n attrs: {\n href:\n \"https://my.slack.com/services/new/incoming-webhook\"\n }\n },\n [\n _vm._v(\n \"https://my.slack.com/services/new/incoming-webhook/\"\n )\n ]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testSlack-result\" }\n },\n [_vm._v(\"Click below to test your settings.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Slack\",\n id: \"testSlack\"\n },\n on: { click: _vm.testSlack }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"br\"),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ])\n ])\n ]\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"clearfix\" })\n ],\n 1\n )\n}\nvar staticRenderFns = [\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"clear-left\" }, [\n _c(\"p\", [\n _c(\"b\", [_vm._v(\"Note:\")]),\n _vm._v(\" some Plex Home Theaters \"),\n _c(\"b\", { staticClass: \"boldest\" }, [_vm._v(\"do not\")]),\n _vm._v(\" support notifications e.g. Plexapp for Samsung TVs\")\n ])\n ])\n }\n]\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack://slim/./src/components/config-notifications.vue?./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options"); /***/ }), diff --git a/themes/light/assets/js/medusa-runtime.js b/themes/light/assets/js/medusa-runtime.js index c55a6014b0..bf1f4e6d9e 100644 --- a/themes/light/assets/js/medusa-runtime.js +++ b/themes/light/assets/js/medusa-runtime.js @@ -147,7 +147,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../api.js */ \"./src/api.js\");\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm.js\");\n/* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./helpers */ \"./src/components/helpers/index.js\");\n/* provided dependency */ var $ = __webpack_require__(/*! jquery */ \"./node_modules/jquery/dist/jquery.js\");\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n name: 'config-notifications',\n components: {\n AppLink: _helpers__WEBPACK_IMPORTED_MODULE_1__.AppLink,\n ConfigTemplate: _helpers__WEBPACK_IMPORTED_MODULE_1__.ConfigTemplate,\n ConfigTextbox: _helpers__WEBPACK_IMPORTED_MODULE_1__.ConfigTextbox,\n ConfigTextboxNumber: _helpers__WEBPACK_IMPORTED_MODULE_1__.ConfigTextboxNumber,\n ConfigToggleSlider: _helpers__WEBPACK_IMPORTED_MODULE_1__.ConfigToggleSlider,\n SelectList: _helpers__WEBPACK_IMPORTED_MODULE_1__.SelectList,\n ShowSelector: _helpers__WEBPACK_IMPORTED_MODULE_1__.ShowSelector\n },\n\n data() {\n return {\n prowlSelectedShow: null,\n prowlSelectedShowApiKeys: [],\n prowlPriorityOptions: [{\n text: 'Very Low',\n value: -2\n }, {\n text: 'Moderate',\n value: -1\n }, {\n text: 'Normal',\n value: 0\n }, {\n text: 'High',\n value: 1\n }, {\n text: 'Emergency',\n value: 2\n }],\n pushoverPriorityOptions: [{\n text: 'Lowest',\n value: -2\n }, {\n text: 'Low',\n value: -1\n }, {\n text: 'Normal',\n value: 0\n }, {\n text: 'High',\n value: 1\n }, {\n text: 'Emergency',\n value: 2\n }],\n pushoverSoundOptions: [{\n text: 'Default',\n value: 'default'\n }, {\n text: 'Pushover',\n value: 'pushover'\n }, {\n text: 'Bike',\n value: 'bike'\n }, {\n text: 'Bugle',\n value: 'bugle'\n }, {\n text: 'Cash Register',\n value: 'cashregister'\n }, {\n text: 'classical',\n value: 'classical'\n }, {\n text: 'Cosmic',\n value: 'cosmic'\n }, {\n text: 'Falling',\n value: 'falling'\n }, {\n text: 'Gamelan',\n value: 'gamelan'\n }, {\n text: 'Incoming',\n value: 'incoming'\n }, {\n text: 'Intermission',\n value: 'intermission'\n }, {\n text: 'Magic',\n value: 'magic'\n }, {\n text: 'Mechanical',\n value: 'mechanical'\n }, {\n text: 'Piano Bar',\n value: 'pianobar'\n }, {\n text: 'Siren',\n value: 'siren'\n }, {\n text: 'Space Alarm',\n value: 'spacealarm'\n }, {\n text: 'Tug Boat',\n value: 'tugboat'\n }, {\n text: 'Alien Alarm (long)',\n value: 'alien'\n }, {\n text: 'Climb (long)',\n value: 'climb'\n }, {\n text: 'Persistent (long)',\n value: 'persistant'\n }, {\n text: 'Pushover Echo (long)',\n value: 'echo'\n }, {\n text: 'Up Down (long)',\n value: 'updown'\n }, {\n text: 'None (silent)',\n value: 'none'\n }],\n pushbulletDeviceOptions: [{\n text: 'All devices',\n value: ''\n }],\n traktRequestSend: false,\n traktRequestAuthenticated: false,\n traktUserCode: '',\n traktRequestMessage: '',\n traktMethodOptions: [{\n text: 'Skip all',\n value: 0\n }, {\n text: 'Download pilot only',\n value: 1\n }, {\n text: 'Get whole show',\n value: 2\n }],\n pushbulletTestInfo: 'Click below to test.',\n joinTestInfo: 'Click below to test.',\n twitterTestInfo: 'Click below to test.',\n twitterKey: '',\n emailSelectedShow: null,\n emailSelectedShowAdresses: [],\n saving: false\n };\n },\n\n computed: { ...(0,vuex__WEBPACK_IMPORTED_MODULE_2__.mapState)({\n config: state => state.config.general,\n indexers: state => state.config.indexers,\n notifiers: state => state.config.notifiers\n }),\n\n traktIndexersOptions() {\n const {\n indexers\n } = this;\n const {\n traktIndexers\n } = indexers.main;\n const validTraktIndexer = Object.keys(indexers.indexers).filter(k => traktIndexers[k]);\n return validTraktIndexer.map(indexer => {\n return {\n text: indexer,\n value: indexers.indexers[indexer].id\n };\n });\n }\n\n },\n\n beforeMount() {\n // Wait for the next tick, so the component is rendered\n this.$nextTick(() => {\n $('#config-components').tabs();\n });\n },\n\n mounted() {\n // TODO: vueify this.\n $('#trakt_pin').on('keyup change', () => {\n if ($('#trakt_pin').val().length === 0) {\n $('#TraktGetPin').removeClass('hide');\n $('#authTrakt').addClass('hide');\n } else {\n $('#TraktGetPin').addClass('hide');\n $('#authTrakt').removeClass('hide');\n }\n });\n },\n\n methods: { ...(0,vuex__WEBPACK_IMPORTED_MODULE_2__.mapActions)(['getShows', 'setConfig']),\n\n onChangeProwlApi(items) {\n this.notifiers.prowl.api = items.map(item => item.value);\n },\n\n savePerShowNotifyList(listType, values) {\n const {\n emailSelectedShow,\n prowlSelectedShow\n } = this;\n const form = new FormData();\n\n if (listType === 'prowl') {\n form.set('show', prowlSelectedShow);\n form.set('prowlAPIs', values.map(apiKey => apiKey.value));\n } else {\n form.set('show', emailSelectedShow);\n form.set('emails', values.map(apiKey => apiKey.value));\n } // Save the list\n\n\n _api_js__WEBPACK_IMPORTED_MODULE_0__.apiRoute.post('home/saveShowNotifyList', form);\n },\n\n async prowlUpdateApiKeys(selectedShow) {\n this.prowlSelectedShow = selectedShow;\n const response = await (0,_api_js__WEBPACK_IMPORTED_MODULE_0__.apiRoute)('home/loadShowNotifyLists');\n\n if (response.data._size > 0) {\n const list = response.data[selectedShow].prowl_notify_list ? response.data[selectedShow].prowl_notify_list.split(',') : [];\n this.prowlSelectedShowApiKeys = selectedShow ? list : [];\n }\n },\n\n async emailUpdateShowEmail(selectedShow) {\n this.emailSelectedShow = selectedShow;\n const response = await (0,_api_js__WEBPACK_IMPORTED_MODULE_0__.apiRoute)('home/loadShowNotifyLists');\n\n if (response.data._size > 0) {\n const list = response.data[selectedShow].list ? response.data[selectedShow].list.split(',') : [];\n this.emailSelectedShowAdresses = selectedShow ? list : [];\n }\n },\n\n emailUpdateAddressList(items) {\n this.notifiers.email.addressList = items.map(x => x.value);\n },\n\n async getPushbulletDeviceOptions() {\n const {\n api: pushbulletApiKey\n } = this.notifiers.pushbullet;\n\n if (!pushbulletApiKey) {\n this.pushbulletTestInfo = 'You didn\\'t supply a Pushbullet api key';\n $('#pushbullet_api').find('input').focus();\n return false;\n }\n\n const response = await (0,_api_js__WEBPACK_IMPORTED_MODULE_0__.apiRoute)('home/getPushbulletDevices', {\n params: {\n api: pushbulletApiKey\n }\n });\n const options = [];\n const {\n data\n } = response;\n\n if (!data) {\n return false;\n }\n\n options.push({\n text: 'All devices',\n value: ''\n });\n\n for (const device of data.devices) {\n if (device.active === true) {\n options.push({\n text: device.nickname,\n value: device.iden\n });\n }\n }\n\n this.pushbulletDeviceOptions = options;\n this.pushbulletTestInfo = 'Device list updated. Please choose a device to push to.';\n },\n\n async testPushbulletApi() {\n const {\n api: pushbulletApiKey\n } = this.notifiers.pushbullet;\n\n if (!pushbulletApiKey) {\n this.pushbulletTestInfo = 'You didn\\'t supply a Pushbullet api key';\n $('#pushbullet_api').find('input').focus();\n return false;\n }\n\n const response = await (0,_api_js__WEBPACK_IMPORTED_MODULE_0__.apiRoute)('home/testPushbullet', {\n params: {\n api: pushbulletApiKey\n }\n });\n const {\n data\n } = response;\n\n if (data) {\n this.pushbulletTestInfo = data;\n }\n },\n\n async testJoinApi() {\n const {\n api: joinApiKey\n } = this.notifiers.join;\n\n if (!joinApiKey) {\n this.joinTestInfo = 'You didn\\'t supply a Join api key';\n $('#join_api').find('input').focus();\n return false;\n }\n\n const response = await (0,_api_js__WEBPACK_IMPORTED_MODULE_0__.apiRoute)('home/testJoin', {\n params: {\n api: joinApiKey\n }\n });\n const {\n data\n } = response;\n\n if (data) {\n this.joinTestInfo = data;\n }\n },\n\n async twitterStep1() {\n this.twitterTestInfo = MEDUSA.config.layout.loading;\n const response = await (0,_api_js__WEBPACK_IMPORTED_MODULE_0__.apiRoute)('home/twitterStep1');\n const {\n data\n } = response;\n window.open(data);\n this.twitterTestInfo = 'Step1: Confirm Authorization';\n },\n\n async twitterStep2() {\n const twitter = {};\n const {\n twitterKey\n } = this;\n twitter.key = twitterKey;\n\n if (twitter.key) {\n const response = await (0,_api_js__WEBPACK_IMPORTED_MODULE_0__.apiRoute)('home/twitterStep2', {\n params: {\n key: twitter.key\n }\n });\n const {\n data\n } = response;\n this.twitterTestInfo = data;\n } else {\n this.twitterTestInfo = 'Please fill out the necessary fields above.';\n }\n },\n\n async twitterTest() {\n try {\n const response = await (0,_api_js__WEBPACK_IMPORTED_MODULE_0__.apiRoute)('home/testTwitter');\n const {\n data\n } = response;\n this.twitterTestInfo = data;\n } catch (error) {\n this.twitterTestInfo = 'Error while trying to request for a test on the twitter api.';\n }\n },\n\n async save() {\n const {\n notifiers,\n setConfig\n } = this; // Disable the save button until we're done.\n\n this.saving = true;\n const section = 'main';\n\n try {\n await setConfig({\n section,\n config: {\n notifiers\n }\n });\n this.$snotify.success('Saved Notifiers config', 'Saved', {\n timeout: 5000\n });\n } catch (error) {\n this.$snotify.error('Error while trying to save notifiers config', 'Error');\n } finally {\n this.saving = false;\n }\n },\n\n testGrowl() {\n const growl = {};\n growl.host = $.trim($('#growl_host').val());\n growl.password = $.trim($('#growl_password').val());\n\n if (!growl.host) {\n $('#testGrowl-result').html('Please fill out the necessary fields above.');\n $('#growl_host').addClass('warning');\n return;\n }\n\n $('#growl_host').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testGrowl-result').html(MEDUSA.config.layout.loading);\n $.get('home/testGrowl', {\n host: growl.host,\n password: growl.password\n }).done(data => {\n $('#testGrowl-result').html(data);\n $('#testGrowl').prop('disabled', false);\n });\n },\n\n testProwl() {\n const prowl = {};\n prowl.api = $.trim($('#prowl_api').find('input').val());\n prowl.priority = $('#prowl_priority').find('input').val();\n\n if (!prowl.api) {\n $('#testProwl-result').html('Please fill out the necessary fields above.');\n $('#prowl_api').find('input').addClass('warning');\n return;\n }\n\n $('#prowl_api').find('input').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testProwl-result').html(MEDUSA.config.layout.loading);\n $.get('home/testProwl', {\n prowl_api: prowl.api,\n // eslint-disable-line camelcase\n prowl_priority: prowl.priority // eslint-disable-line camelcase\n\n }).done(data => {\n $('#testProwl-result').html(data);\n $('#testProwl').prop('disabled', false);\n });\n },\n\n testKODI() {\n const kodi = {};\n const kodiHostInput = $('#kodi_host').find('input');\n const kodiHosts = kodiHostInput.toArray().map(value => value.value).filter(item => item !== '');\n kodi.host = kodiHosts.join(',');\n kodi.username = $.trim($('#kodi_username').val());\n kodi.password = $.trim($('#kodi_password').val());\n\n if (!kodi.host) {\n $('#testKODI-result').html('Please fill out the necessary fields above.');\n $('#kodi_host').find('input').addClass('warning');\n return;\n }\n\n $('#kodi_host').find('input').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testKODI-result').html(MEDUSA.config.layout.loading);\n $.get('home/testKODI', {\n host: kodi.host,\n username: kodi.username,\n password: kodi.password\n }).done(data => {\n $('#testKODI-result').html(data);\n $('#testKODI').prop('disabled', false);\n });\n },\n\n testPHT() {\n const plex = {};\n plex.client = {};\n const plexHostsInput = $('#plex_client_host').find('input');\n const plexHosts = plexHostsInput.toArray().map(value => value.value).filter(item => item !== '');\n plex.client.host = plexHosts.join(',');\n plex.client.username = $.trim($('#plex_client_username').val());\n plex.client.password = $.trim($('#plex_client_password').val());\n\n if (!plex.client.host) {\n $('#testPHT-result').html('Please fill out the necessary fields above.');\n $('#plex_client_host').find('input').addClass('warning');\n return;\n }\n\n $('#plex_client_host').find('input').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testPHT-result').html(MEDUSA.config.layout.loading);\n $.get('home/testPHT', {\n host: plex.client.host,\n username: plex.client.username,\n password: plex.client.password\n }).done(data => {\n $('#testPHT-result').html(data);\n $('#testPHT').prop('disabled', false);\n });\n },\n\n testPMS() {\n const plex = {};\n plex.server = {};\n const plexHostsInput = $('#plex_server_host').find('input');\n const plexHosts = plexHostsInput.toArray().map(value => value.value).filter(item => item !== '');\n plex.server.host = plexHosts.join(',');\n plex.server.username = $.trim($('#plex_server_username').val());\n plex.server.password = $.trim($('#plex_server_password').val());\n plex.server.token = $.trim($('#plex_server_token').val());\n\n if (!plex.server.host) {\n $('#testPMS-result').html('Please fill out the necessary fields above.');\n $('#plex_server_host').find('input').addClass('warning');\n return;\n }\n\n $('#plex_server_host').find('input').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testPMS-result').html(MEDUSA.config.layout.loading);\n $.get('home/testPMS', {\n host: plex.server.host,\n username: plex.server.username,\n password: plex.server.password,\n plex_server_token: plex.server.token // eslint-disable-line camelcase\n\n }).done(data => {\n $('#testPMS-result').html(data);\n $('#testPMS').prop('disabled', false);\n });\n },\n\n testEMBY() {\n const emby = {};\n emby.host = $('#emby_host').val();\n emby.apikey = $('#emby_apikey').val();\n\n if (!emby.host || !emby.apikey) {\n $('#testEMBY-result').html('Please fill out the necessary fields above.');\n $('#emby_host').addRemoveWarningClass(emby.host);\n $('#emby_apikey').addRemoveWarningClass(emby.apikey);\n return;\n }\n\n $('#emby_host,#emby_apikey').children('input').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testEMBY-result').html(MEDUSA.config.layout.loading);\n $.get('home/testEMBY', {\n host: emby.host,\n emby_apikey: emby.apikey // eslint-disable-line camelcase\n\n }).done(data => {\n $('#testEMBY-result').html(data);\n $('#testEMBY').prop('disabled', false);\n });\n },\n\n testBoxcar2() {\n const boxcar2 = {};\n boxcar2.accesstoken = $.trim($('#boxcar2_accesstoken').val());\n\n if (!boxcar2.accesstoken) {\n $('#testBoxcar2-result').html('Please fill out the necessary fields above.');\n $('#boxcar2_accesstoken').addClass('warning');\n return;\n }\n\n $('#boxcar2_accesstoken').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testBoxcar2-result').html(MEDUSA.config.layout.loading);\n $.get('home/testBoxcar2', {\n accesstoken: boxcar2.accesstoken\n }).done(data => {\n $('#testBoxcar2-result').html(data);\n $('#testBoxcar2').prop('disabled', false);\n });\n },\n\n testPushover() {\n const pushover = {};\n pushover.userkey = $('#pushover_userkey').val();\n pushover.apikey = $('#pushover_apikey').val();\n\n if (!pushover.userkey || !pushover.apikey) {\n $('#testPushover-result').html('Please fill out the necessary fields above.');\n $('#pushover_userkey').addRemoveWarningClass(pushover.userkey);\n $('#pushover_apikey').addRemoveWarningClass(pushover.apikey);\n return;\n }\n\n $('#pushover_userkey,#pushover_apikey').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testPushover-result').html(MEDUSA.config.layout.loading);\n $.get('home/testPushover', {\n userKey: pushover.userkey,\n apiKey: pushover.apikey\n }).done(data => {\n $('#testPushover-result').html(data);\n $('#testPushover').prop('disabled', false);\n });\n },\n\n testLibnotify() {\n $('#testLibnotify-result').html(MEDUSA.config.layout.loading);\n $.get('home/testLibnotify', data => {\n $('#testLibnotify-result').html(data);\n });\n },\n\n settingsNMJ() {\n const nmj = {};\n nmj.host = $('#nmj_host').val();\n\n if (nmj.host) {\n $('#testNMJ-result').html(MEDUSA.config.layout.loading);\n $.get('home/settingsNMJ', {\n host: nmj.host\n }, data => {\n if (data === null) {\n $('#nmj_database').removeAttr('readonly');\n $('#nmj_mount').removeAttr('readonly');\n }\n\n const JSONData = $.parseJSON(data);\n $('#testNMJ-result').html(JSONData.message);\n $('#nmj_database').val(JSONData.database);\n $('#nmj_mount').val(JSONData.mount);\n\n if (JSONData.database) {\n $('#nmj_database').prop('readonly', true);\n } else {\n $('#nmj_database').removeAttr('readonly');\n }\n\n if (JSONData.mount) {\n $('#nmj_mount').prop('readonly', true);\n } else {\n $('#nmj_mount').removeAttr('readonly');\n }\n });\n } else {\n alert('Please fill in the Popcorn IP address'); // eslint-disable-line no-alert\n\n $('#nmj_host').focus();\n }\n },\n\n testNMJ() {\n const nmj = {};\n nmj.host = $.trim($('#nmj_host').val());\n nmj.database = $('#nmj_database').val();\n nmj.mount = $('#nmj_mount').val();\n\n if (nmj.host) {\n $('#nmj_host').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testNMJ-result').html(MEDUSA.config.layout.loading);\n $.get('home/testNMJ', {\n host: nmj.host,\n database: nmj.database,\n mount: nmj.mount\n }).done(data => {\n $('#testNMJ-result').html(data);\n $('#testNMJ').prop('disabled', false);\n });\n } else {\n $('#testNMJ-result').html('Please fill out the necessary fields above.');\n $('#nmj_host').addClass('warning');\n }\n },\n\n settingsNMJv2() {\n const nmjv2 = {};\n nmjv2.host = $('#nmjv2_host').val();\n\n if (nmjv2.host) {\n $('#testNMJv2-result').html(MEDUSA.config.layout.loading);\n nmjv2.dbloc = '';\n const radios = document.getElementsByName('nmjv2_dbloc');\n\n for (let i = 0, len = radios.length; i < len; i++) {\n if (radios[i].checked) {\n nmjv2.dbloc = radios[i].value;\n break;\n }\n }\n\n nmjv2.dbinstance = $('#NMJv2db_instance').val();\n $.get('home/settingsNMJv2', {\n host: nmjv2.host,\n dbloc: nmjv2.dbloc,\n instance: nmjv2.dbinstance\n }, data => {\n if (data === null) {\n $('#nmjv2_database').removeAttr('readonly');\n }\n\n const JSONData = $.parseJSON(data);\n $('#testNMJv2-result').html(JSONData.message);\n $('#nmjv2_database').val(JSONData.database);\n\n if (JSONData.database) {\n $('#nmjv2_database').prop('readonly', true);\n } else {\n $('#nmjv2_database').removeAttr('readonly');\n }\n });\n } else {\n alert('Please fill in the Popcorn IP address'); // eslint-disable-line no-alert\n\n $('#nmjv2_host').focus();\n }\n },\n\n testNMJv2() {\n const nmjv2 = {};\n nmjv2.host = $.trim($('#nmjv2_host').val());\n\n if (nmjv2.host) {\n $('#nmjv2_host').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testNMJv2-result').html(MEDUSA.config.layout.loading);\n $.get('home/testNMJv2', {\n host: nmjv2.host\n }).done(data => {\n $('#testNMJv2-result').html(data);\n $('#testNMJv2').prop('disabled', false);\n });\n } else {\n $('#testNMJv2-result').html('Please fill out the necessary fields above.');\n $('#nmjv2_host').addClass('warning');\n }\n },\n\n testFreeMobile() {\n const freemobile = {};\n freemobile.id = $.trim($('#freemobile_id').val());\n freemobile.apikey = $.trim($('#freemobile_apikey').val());\n\n if (!freemobile.id || !freemobile.apikey) {\n $('#testFreeMobile-result').html('Please fill out the necessary fields above.');\n\n if (freemobile.id) {\n $('#freemobile_id').removeClass('warning');\n } else {\n $('#freemobile_id').addClass('warning');\n }\n\n if (freemobile.apikey) {\n $('#freemobile_apikey').removeClass('warning');\n } else {\n $('#freemobile_apikey').addClass('warning');\n }\n\n return;\n }\n\n $('#freemobile_id,#freemobile_apikey').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testFreeMobile-result').html(MEDUSA.config.layout.loading);\n $.get('home/testFreeMobile', {\n freemobile_id: freemobile.id,\n // eslint-disable-line camelcase\n freemobile_apikey: freemobile.apikey // eslint-disable-line camelcase\n\n }).done(data => {\n $('#testFreeMobile-result').html(data);\n $('#testFreeMobile').prop('disabled', false);\n });\n },\n\n testTelegram() {\n const telegram = {};\n telegram.id = $.trim($('#telegram_id').val());\n telegram.apikey = $.trim($('#telegram_apikey').val());\n\n if (!telegram.id || !telegram.apikey) {\n $('#testTelegram-result').html('Please fill out the necessary fields above.');\n $('#telegram_id').addRemoveWarningClass(telegram.id);\n $('#telegram_apikey').addRemoveWarningClass(telegram.apikey);\n return;\n }\n\n $('#telegram_id,#telegram_apikey').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testTelegram-result').html(MEDUSA.config.layout.loading);\n $.get('home/testTelegram', {\n telegram_id: telegram.id,\n // eslint-disable-line camelcase\n telegram_apikey: telegram.apikey // eslint-disable-line camelcase\n\n }).done(data => {\n $('#testTelegram-result').html(data);\n $('#testTelegram').prop('disabled', false);\n });\n },\n\n testDiscord() {\n const {\n notifiers\n } = this;\n\n if (!notifiers.discord.webhook) {\n $('#testDiscord-result').html('Please fill out the necessary fields above.');\n $('#discord_webhook').addRemoveWarningClass(notifiers.discord.webhook);\n return;\n }\n\n $('#discord_id,#discord_apikey').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testDiscord-result').html(MEDUSA.config.layout.loading);\n $.get('home/testDiscord', {\n discord_webhook: notifiers.discord.webhook,\n // eslint-disable-line camelcase\n discord_tts: notifiers.discord.tts // eslint-disable-line camelcase\n\n }).done(data => {\n $('#testDiscord-result').html(data);\n $('#testDiscord').prop('disabled', false);\n });\n },\n\n testSlack() {\n const slack = {};\n slack.webhook = $.trim($('#slack_webhook').val());\n\n if (!slack.webhook) {\n $('#testSlack-result').html('Please fill out the necessary fields above.');\n $('#slack_webhook').addRemoveWarningClass(slack.webhook);\n return;\n }\n\n $('#slack_webhook').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testSlack-result').html(MEDUSA.config.layout.loading);\n $.get('home/testslack', {\n slack_webhook: slack.webhook // eslint-disable-line camelcase\n\n }).done(data => {\n $('#testSlack-result').html(data);\n $('#testSlack').prop('disabled', false);\n });\n },\n\n async TraktRequestDeviceCode() {\n this.traktUserCode = '';\n this.traktRequestAuthenticated = false;\n const response = await (0,_api_js__WEBPACK_IMPORTED_MODULE_0__.apiRoute)('home/requestTraktDeviceCodeOauth');\n\n if (response.data) {\n this.traktVerificationUrl = response.data.verification_url;\n window.open(response.data.verification_url, 'popUp', 'toolbar=no, scrollbars=no, resizable=no, top=200, left=200, width=650, height=550');\n this.traktRequestSend = true;\n this.traktUserCode = response.data.user_code;\n this.checkTraktAuthenticated();\n }\n },\n\n checkTraktAuthenticated() {\n let counter = 0;\n const i = setInterval(() => {\n (0,_api_js__WEBPACK_IMPORTED_MODULE_0__.apiRoute)('home/checkTrakTokenOauth').then(response => {\n if (response.data) {\n this.traktRequestMessage = response.data.result;\n\n if (!response.data.error) {\n clearInterval(i);\n this.traktRequestAuthenticated = true;\n this.traktUserCode = '';\n }\n }\n });\n counter++;\n\n if (counter === 12) {\n clearInterval(i);\n this.traktRequestAuthenticated = false;\n this.traktUserCode = '';\n }\n }, 5000);\n },\n\n testTrakt() {\n const trakt = {};\n trakt.trendingBlacklist = $.trim($('#trakt_blacklist_name').val());\n\n if (/\\s/g.test(trakt.trendingBlacklist)) {\n $('#testTrakt-result').html('Check blacklist name; the value needs to be a trakt slug');\n $('#trakt_blacklist_name').addClass('warning');\n return;\n }\n\n $('#trakt_blacklist_name').removeClass('warning');\n $('#testTrakt-result').html(MEDUSA.config.layout.loading);\n (0,_api_js__WEBPACK_IMPORTED_MODULE_0__.apiRoute)(`home/testTrakt?blacklist_name=${trakt.trendingBlacklist}`).then(result => {\n $('#testTrakt-result').html(result.data);\n $('#testTrakt').prop('disabled', false);\n });\n },\n\n traktForceSync() {\n $('#testTrakt-result').html(MEDUSA.config.layout.loading);\n $.getJSON('home/forceTraktSync', data => {\n $('#testTrakt-result').html(data.result);\n });\n },\n\n testEmail() {\n let to = '';\n const status = $('#testEmail-result');\n status.html(MEDUSA.config.layout.loading);\n let host = $('#email_host').val();\n host = host.length > 0 ? host : null;\n let port = $('#email_port').val();\n port = port.length > 0 ? port : null;\n const tls = $('#email_tls').find('input').is(':checked') ? 1 : 0;\n let from = $('#email_from').val();\n from = from.length > 0 ? from : 'root@localhost';\n const user = $('#email_username').val().trim();\n const pwd = $('#email_password').val();\n let err = '';\n\n if (host === null) {\n err += '
  • You must specify an SMTP hostname!
  • ';\n }\n\n if (port === null) {\n err += '
  • You must specify an SMTP port!
  • ';\n } else if (port.match(/^\\d+$/) === null || Number.parseInt(port, 10) > 65535) {\n err += '
  • SMTP port must be between 0 and 65535!
  • ';\n }\n\n if (err.length > 0) {\n err = '
      ' + err + '
    ';\n status.html(err);\n } else {\n to = prompt('Enter an email address to send the test to:', null); // eslint-disable-line no-alert\n\n if (to === null || to.length === 0 || to.match(/.*@.*/) === null) {\n status.html('

    You must provide a recipient email address!

    ');\n } else {\n $.get('home/testEmail', {\n host,\n port,\n smtp_from: from,\n // eslint-disable-line camelcase\n use_tls: tls,\n // eslint-disable-line camelcase\n user,\n pwd,\n to\n }, msg => {\n $('#testEmail-result').html(msg);\n });\n }\n }\n },\n\n testPushalot() {\n const pushalot = {};\n pushalot.authToken = $.trim($('#pushalot_authorizationtoken').val());\n\n if (!pushalot.authToken) {\n $('#testPushalot-result').html('Please fill out the necessary fields above.');\n $('#pushalot_authorizationtoken').addClass('warning');\n return;\n }\n\n $('#pushalot_authorizationtoken').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testPushalot-result').html(MEDUSA.config.layout.loading);\n $.get('home/testPushalot', {\n authorizationToken: pushalot.authToken\n }).done(data => {\n $('#testPushalot-result').html(data);\n $('#testPushalot').prop('disabled', false);\n });\n }\n\n }\n});\n\n//# sourceURL=webpack://slim/./src/components/config-notifications.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-1%5B0%5D.rules%5B0%5D!./node_modules/vue-loader/lib/index.js??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../api.js */ \"./src/api.js\");\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm.js\");\n/* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./helpers */ \"./src/components/helpers/index.js\");\n/* provided dependency */ var $ = __webpack_require__(/*! jquery */ \"./node_modules/jquery/dist/jquery.js\");\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n name: 'config-notifications',\n components: {\n AppLink: _helpers__WEBPACK_IMPORTED_MODULE_1__.AppLink,\n ConfigTemplate: _helpers__WEBPACK_IMPORTED_MODULE_1__.ConfigTemplate,\n ConfigTextbox: _helpers__WEBPACK_IMPORTED_MODULE_1__.ConfigTextbox,\n ConfigTextboxNumber: _helpers__WEBPACK_IMPORTED_MODULE_1__.ConfigTextboxNumber,\n ConfigToggleSlider: _helpers__WEBPACK_IMPORTED_MODULE_1__.ConfigToggleSlider,\n SelectList: _helpers__WEBPACK_IMPORTED_MODULE_1__.SelectList,\n ShowSelector: _helpers__WEBPACK_IMPORTED_MODULE_1__.ShowSelector\n },\n\n data() {\n return {\n prowlSelectedShow: null,\n prowlSelectedShowApiKeys: [],\n prowlPriorityOptions: [{\n text: 'Very Low',\n value: -2\n }, {\n text: 'Moderate',\n value: -1\n }, {\n text: 'Normal',\n value: 0\n }, {\n text: 'High',\n value: 1\n }, {\n text: 'Emergency',\n value: 2\n }],\n pushoverPriorityOptions: [{\n text: 'Lowest',\n value: -2\n }, {\n text: 'Low',\n value: -1\n }, {\n text: 'Normal',\n value: 0\n }, {\n text: 'High',\n value: 1\n }, {\n text: 'Emergency',\n value: 2\n }],\n pushoverSoundOptions: [{\n text: 'Default',\n value: 'default'\n }, {\n text: 'Pushover',\n value: 'pushover'\n }, {\n text: 'Bike',\n value: 'bike'\n }, {\n text: 'Bugle',\n value: 'bugle'\n }, {\n text: 'Cash Register',\n value: 'cashregister'\n }, {\n text: 'classical',\n value: 'classical'\n }, {\n text: 'Cosmic',\n value: 'cosmic'\n }, {\n text: 'Falling',\n value: 'falling'\n }, {\n text: 'Gamelan',\n value: 'gamelan'\n }, {\n text: 'Incoming',\n value: 'incoming'\n }, {\n text: 'Intermission',\n value: 'intermission'\n }, {\n text: 'Magic',\n value: 'magic'\n }, {\n text: 'Mechanical',\n value: 'mechanical'\n }, {\n text: 'Piano Bar',\n value: 'pianobar'\n }, {\n text: 'Siren',\n value: 'siren'\n }, {\n text: 'Space Alarm',\n value: 'spacealarm'\n }, {\n text: 'Tug Boat',\n value: 'tugboat'\n }, {\n text: 'Alien Alarm (long)',\n value: 'alien'\n }, {\n text: 'Climb (long)',\n value: 'climb'\n }, {\n text: 'Persistent (long)',\n value: 'persistant'\n }, {\n text: 'Pushover Echo (long)',\n value: 'echo'\n }, {\n text: 'Up Down (long)',\n value: 'updown'\n }, {\n text: 'None (silent)',\n value: 'none'\n }],\n pushbulletDeviceOptions: [{\n text: 'All devices',\n value: ''\n }],\n traktRequestSend: false,\n traktRequestAuthenticated: false,\n traktUserCode: '',\n traktRequestMessage: '',\n traktMethodOptions: [{\n text: 'Skip all',\n value: 0\n }, {\n text: 'Download pilot only',\n value: 1\n }, {\n text: 'Get whole show',\n value: 2\n }],\n pushbulletTestInfo: 'Click below to test.',\n joinTestInfo: 'Click below to test.',\n twitterTestInfo: 'Click below to test.',\n twitterKey: '',\n emailSelectedShow: null,\n emailSelectedShowAdresses: [],\n saving: false\n };\n },\n\n computed: { ...(0,vuex__WEBPACK_IMPORTED_MODULE_2__.mapState)({\n config: state => state.config.general,\n indexers: state => state.config.indexers,\n notifiers: state => state.config.notifiers\n }),\n\n traktIndexersOptions() {\n const {\n indexers\n } = this;\n const {\n traktIndexers\n } = indexers.main;\n const validTraktIndexer = Object.keys(indexers.indexers).filter(k => traktIndexers[k]);\n return validTraktIndexer.map(indexer => {\n return {\n text: indexer,\n value: indexers.indexers[indexer].id\n };\n });\n }\n\n },\n\n beforeMount() {\n // Wait for the next tick, so the component is rendered\n this.$nextTick(() => {\n $('#config-components').tabs();\n });\n },\n\n mounted() {\n // TODO: vueify this.\n $('#trakt_pin').on('keyup change', () => {\n if ($('#trakt_pin').val().length === 0) {\n $('#TraktGetPin').removeClass('hide');\n $('#authTrakt').addClass('hide');\n } else {\n $('#TraktGetPin').addClass('hide');\n $('#authTrakt').removeClass('hide');\n }\n });\n },\n\n methods: { ...(0,vuex__WEBPACK_IMPORTED_MODULE_2__.mapActions)(['getShows', 'setConfig']),\n\n onChangeProwlApi(items) {\n this.notifiers.prowl.api = items.map(item => item.value);\n },\n\n savePerShowNotifyList(listType, values) {\n const {\n emailSelectedShow,\n prowlSelectedShow\n } = this;\n const form = new FormData();\n\n if (listType === 'prowl') {\n form.set('show', prowlSelectedShow);\n form.set('prowlAPIs', values.map(apiKey => apiKey.value));\n } else {\n form.set('show', emailSelectedShow);\n form.set('emails', values.map(apiKey => apiKey.value));\n } // Save the list\n\n\n _api_js__WEBPACK_IMPORTED_MODULE_0__.apiRoute.post('home/saveShowNotifyList', form);\n },\n\n async prowlUpdateApiKeys(selectedShow) {\n this.prowlSelectedShow = selectedShow;\n const response = await (0,_api_js__WEBPACK_IMPORTED_MODULE_0__.apiRoute)('home/loadShowNotifyLists');\n\n if (response.data._size > 0) {\n const list = response.data[selectedShow].prowl_notify_list ? response.data[selectedShow].prowl_notify_list.split(',') : [];\n this.prowlSelectedShowApiKeys = selectedShow ? list : [];\n }\n },\n\n async emailUpdateShowEmail(selectedShow) {\n this.emailSelectedShow = selectedShow;\n const response = await (0,_api_js__WEBPACK_IMPORTED_MODULE_0__.apiRoute)('home/loadShowNotifyLists');\n\n if (response.data._size > 0) {\n const list = response.data[selectedShow].list ? response.data[selectedShow].list.split(',') : [];\n this.emailSelectedShowAdresses = selectedShow ? list : [];\n }\n },\n\n emailUpdateAddressList(items) {\n this.notifiers.email.addressList = items.map(x => x.value);\n },\n\n async getPushbulletDeviceOptions() {\n const {\n api: pushbulletApiKey\n } = this.notifiers.pushbullet;\n\n if (!pushbulletApiKey) {\n this.pushbulletTestInfo = 'You didn\\'t supply a Pushbullet api key';\n $('#pushbullet_api').find('input').focus();\n return false;\n }\n\n const response = await (0,_api_js__WEBPACK_IMPORTED_MODULE_0__.apiRoute)('home/getPushbulletDevices', {\n params: {\n api: pushbulletApiKey\n }\n });\n const options = [];\n const {\n data\n } = response;\n\n if (!data) {\n return false;\n }\n\n options.push({\n text: 'All devices',\n value: ''\n });\n\n for (const device of data.devices) {\n if (device.active === true) {\n options.push({\n text: device.nickname,\n value: device.iden\n });\n }\n }\n\n this.pushbulletDeviceOptions = options;\n this.pushbulletTestInfo = 'Device list updated. Please choose a device to push to.';\n },\n\n async testPushbulletApi() {\n const {\n api: pushbulletApiKey\n } = this.notifiers.pushbullet;\n\n if (!pushbulletApiKey) {\n this.pushbulletTestInfo = 'You didn\\'t supply a Pushbullet api key';\n $('#pushbullet_api').find('input').focus();\n return false;\n }\n\n const response = await (0,_api_js__WEBPACK_IMPORTED_MODULE_0__.apiRoute)('home/testPushbullet', {\n params: {\n api: pushbulletApiKey\n }\n });\n const {\n data\n } = response;\n\n if (data) {\n this.pushbulletTestInfo = data;\n }\n },\n\n async testJoinApi() {\n const {\n api: joinApiKey\n } = this.notifiers.join;\n\n if (!joinApiKey) {\n this.joinTestInfo = 'You didn\\'t supply a Join api key';\n $('#join_api').find('input').focus();\n return false;\n }\n\n const response = await (0,_api_js__WEBPACK_IMPORTED_MODULE_0__.apiRoute)('home/testJoin', {\n params: {\n api: joinApiKey\n }\n });\n const {\n data\n } = response;\n\n if (data) {\n this.joinTestInfo = data;\n }\n },\n\n async twitterStep1() {\n this.twitterTestInfo = MEDUSA.config.layout.loading;\n const response = await (0,_api_js__WEBPACK_IMPORTED_MODULE_0__.apiRoute)('home/twitterStep1');\n const {\n data\n } = response;\n window.open(data);\n this.twitterTestInfo = 'Step1: Confirm Authorization';\n },\n\n async twitterStep2() {\n const twitter = {};\n const {\n twitterKey\n } = this;\n twitter.key = twitterKey;\n\n if (twitter.key) {\n const response = await (0,_api_js__WEBPACK_IMPORTED_MODULE_0__.apiRoute)('home/twitterStep2', {\n params: {\n key: twitter.key\n }\n });\n const {\n data\n } = response;\n this.twitterTestInfo = data;\n } else {\n this.twitterTestInfo = 'Please fill out the necessary fields above.';\n }\n },\n\n async twitterTest() {\n try {\n const response = await (0,_api_js__WEBPACK_IMPORTED_MODULE_0__.apiRoute)('home/testTwitter');\n const {\n data\n } = response;\n this.twitterTestInfo = data;\n } catch (error) {\n this.twitterTestInfo = 'Error while trying to request for a test on the twitter api.';\n }\n },\n\n async save() {\n const {\n notifiers,\n setConfig\n } = this; // Disable the save button until we're done.\n\n this.saving = true;\n const section = 'main';\n\n try {\n await setConfig({\n section,\n config: {\n notifiers\n }\n });\n this.$snotify.success('Saved Notifiers config', 'Saved', {\n timeout: 5000\n });\n } catch (error) {\n this.$snotify.error('Error while trying to save notifiers config', 'Error');\n } finally {\n this.saving = false;\n }\n },\n\n testGrowl() {\n const growl = {};\n growl.host = $.trim($('#growl_host').val());\n growl.password = $.trim($('#growl_password').val());\n\n if (!growl.host) {\n $('#testGrowl-result').html('Please fill out the necessary fields above.');\n $('#growl_host').addClass('warning');\n return;\n }\n\n $('#growl_host').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testGrowl-result').html(MEDUSA.config.layout.loading);\n $.get('home/testGrowl', {\n host: growl.host,\n password: growl.password\n }).done(data => {\n $('#testGrowl-result').html(data);\n $('#testGrowl').prop('disabled', false);\n });\n },\n\n testProwl() {\n const prowl = {};\n prowl.api = $.trim($('#prowl_api').find('input').val());\n prowl.priority = $('#prowl_priority').find('input').val();\n\n if (!prowl.api) {\n $('#testProwl-result').html('Please fill out the necessary fields above.');\n $('#prowl_api').find('input').addClass('warning');\n return;\n }\n\n $('#prowl_api').find('input').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testProwl-result').html(MEDUSA.config.layout.loading);\n $.get('home/testProwl', {\n prowl_api: prowl.api,\n // eslint-disable-line camelcase\n prowl_priority: prowl.priority // eslint-disable-line camelcase\n\n }).done(data => {\n $('#testProwl-result').html(data);\n $('#testProwl').prop('disabled', false);\n });\n },\n\n testKODI() {\n const kodi = {};\n const kodiHostInput = $('#kodi_host').find('input');\n const kodiHosts = kodiHostInput.toArray().map(value => value.value).filter(item => item !== '');\n kodi.host = kodiHosts.join(',');\n kodi.username = $.trim($('#kodi_username').val());\n kodi.password = $.trim($('#kodi_password').val());\n\n if (!kodi.host) {\n $('#testKODI-result').html('Please fill out the necessary fields above.');\n $('#kodi_host').find('input').addClass('warning');\n return;\n }\n\n $('#kodi_host').find('input').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testKODI-result').html(MEDUSA.config.layout.loading);\n $.get('home/testKODI', {\n host: kodi.host,\n username: kodi.username,\n password: kodi.password\n }).done(data => {\n $('#testKODI-result').html(data);\n $('#testKODI').prop('disabled', false);\n });\n },\n\n testPHT() {\n const plex = {};\n plex.client = {};\n const plexHostsInput = $('#plex_client_host').find('input');\n const plexHosts = plexHostsInput.toArray().map(value => value.value).filter(item => item !== '');\n plex.client.host = plexHosts.join(',');\n plex.client.username = $.trim($('#plex_client_username').val());\n plex.client.password = $.trim($('#plex_client_password').val());\n\n if (!plex.client.host) {\n $('#testPHT-result').html('Please fill out the necessary fields above.');\n $('#plex_client_host').find('input').addClass('warning');\n return;\n }\n\n $('#plex_client_host').find('input').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testPHT-result').html(MEDUSA.config.layout.loading);\n $.get('home/testPHT', {\n host: plex.client.host,\n username: plex.client.username,\n password: plex.client.password\n }).done(data => {\n $('#testPHT-result').html(data);\n $('#testPHT').prop('disabled', false);\n });\n },\n\n testPMS() {\n const plex = {};\n plex.server = {};\n const plexHostsInput = $('#plex_server_host').find('input');\n const plexHosts = plexHostsInput.toArray().map(value => value.value).filter(item => item !== '');\n plex.server.host = plexHosts.join(',');\n plex.server.username = $.trim($('#plex_server_username').val());\n plex.server.password = $.trim($('#plex_server_password').val());\n plex.server.token = $.trim($('#plex_server_token').val());\n\n if (!plex.server.host) {\n $('#testPMS-result').html('Please fill out the necessary fields above.');\n $('#plex_server_host').find('input').addClass('warning');\n return;\n }\n\n $('#plex_server_host').find('input').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testPMS-result').html(MEDUSA.config.layout.loading);\n $.get('home/testPMS', {\n host: plex.server.host,\n username: plex.server.username,\n password: plex.server.password,\n plex_server_token: plex.server.token // eslint-disable-line camelcase\n\n }).done(data => {\n $('#testPMS-result').html(data);\n $('#testPMS').prop('disabled', false);\n });\n },\n\n testEMBY() {\n const emby = {};\n emby.host = $('#emby_host').val();\n emby.apikey = $('#emby_apikey').val();\n\n if (!emby.host || !emby.apikey) {\n $('#testEMBY-result').html('Please fill out the necessary fields above.');\n $('#emby_host').addRemoveWarningClass(emby.host);\n $('#emby_apikey').addRemoveWarningClass(emby.apikey);\n return;\n }\n\n $('#emby_host,#emby_apikey').children('input').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testEMBY-result').html(MEDUSA.config.layout.loading);\n $.get('home/testEMBY', {\n host: emby.host,\n emby_apikey: emby.apikey // eslint-disable-line camelcase\n\n }).done(data => {\n $('#testEMBY-result').html(data);\n $('#testEMBY').prop('disabled', false);\n });\n },\n\n testBoxcar2() {\n const boxcar2 = {};\n boxcar2.accesstoken = $.trim($('#boxcar2_accesstoken').val());\n\n if (!boxcar2.accesstoken) {\n $('#testBoxcar2-result').html('Please fill out the necessary fields above.');\n $('#boxcar2_accesstoken').addClass('warning');\n return;\n }\n\n $('#boxcar2_accesstoken').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testBoxcar2-result').html(MEDUSA.config.layout.loading);\n $.get('home/testBoxcar2', {\n accesstoken: boxcar2.accesstoken\n }).done(data => {\n $('#testBoxcar2-result').html(data);\n $('#testBoxcar2').prop('disabled', false);\n });\n },\n\n testPushover() {\n const pushover = {};\n pushover.userkey = $('#pushover_userkey').val();\n pushover.apikey = $('#pushover_apikey').val();\n\n if (!pushover.userkey || !pushover.apikey) {\n $('#testPushover-result').html('Please fill out the necessary fields above.');\n $('#pushover_userkey').addRemoveWarningClass(pushover.userkey);\n $('#pushover_apikey').addRemoveWarningClass(pushover.apikey);\n return;\n }\n\n $('#pushover_userkey,#pushover_apikey').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testPushover-result').html(MEDUSA.config.layout.loading);\n $.get('home/testPushover', {\n userKey: pushover.userkey,\n apiKey: pushover.apikey\n }).done(data => {\n $('#testPushover-result').html(data);\n $('#testPushover').prop('disabled', false);\n });\n },\n\n testLibnotify() {\n $('#testLibnotify-result').html(MEDUSA.config.layout.loading);\n $.get('home/testLibnotify', data => {\n $('#testLibnotify-result').html(data);\n });\n },\n\n settingsNMJ() {\n const nmj = {};\n nmj.host = $('#nmj_host').val();\n\n if (nmj.host) {\n $('#testNMJ-result').html(MEDUSA.config.layout.loading);\n $.get('home/settingsNMJ', {\n host: nmj.host\n }, data => {\n if (data === null) {\n $('#nmj_database').removeAttr('readonly');\n $('#nmj_mount').removeAttr('readonly');\n }\n\n const JSONData = $.parseJSON(data);\n $('#testNMJ-result').html(JSONData.message);\n $('#nmj_database').val(JSONData.database);\n $('#nmj_mount').val(JSONData.mount);\n\n if (JSONData.database) {\n $('#nmj_database').prop('readonly', true);\n } else {\n $('#nmj_database').removeAttr('readonly');\n }\n\n if (JSONData.mount) {\n $('#nmj_mount').prop('readonly', true);\n } else {\n $('#nmj_mount').removeAttr('readonly');\n }\n });\n } else {\n alert('Please fill in the Popcorn IP address'); // eslint-disable-line no-alert\n\n $('#nmj_host').focus();\n }\n },\n\n testNMJ() {\n const nmj = {};\n nmj.host = $.trim($('#nmj_host').val());\n nmj.database = $('#nmj_database').val();\n nmj.mount = $('#nmj_mount').val();\n\n if (nmj.host) {\n $('#nmj_host').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testNMJ-result').html(MEDUSA.config.layout.loading);\n $.get('home/testNMJ', {\n host: nmj.host,\n database: nmj.database,\n mount: nmj.mount\n }).done(data => {\n $('#testNMJ-result').html(data);\n $('#testNMJ').prop('disabled', false);\n });\n } else {\n $('#testNMJ-result').html('Please fill out the necessary fields above.');\n $('#nmj_host').addClass('warning');\n }\n },\n\n settingsNMJv2() {\n const nmjv2 = {};\n nmjv2.host = $('#nmjv2_host').val();\n\n if (nmjv2.host) {\n $('#testNMJv2-result').html(MEDUSA.config.layout.loading);\n nmjv2.dbloc = '';\n const radios = document.getElementsByName('nmjv2_dbloc');\n\n for (let i = 0, len = radios.length; i < len; i++) {\n if (radios[i].checked) {\n nmjv2.dbloc = radios[i].value;\n break;\n }\n }\n\n nmjv2.dbinstance = $('#NMJv2db_instance').val();\n $.get('home/settingsNMJv2', {\n host: nmjv2.host,\n dbloc: nmjv2.dbloc,\n instance: nmjv2.dbinstance\n }, data => {\n if (data === null) {\n $('#nmjv2_database').removeAttr('readonly');\n }\n\n const JSONData = $.parseJSON(data);\n $('#testNMJv2-result').html(JSONData.message);\n $('#nmjv2_database').val(JSONData.database);\n\n if (JSONData.database) {\n $('#nmjv2_database').prop('readonly', true);\n } else {\n $('#nmjv2_database').removeAttr('readonly');\n }\n });\n } else {\n alert('Please fill in the Popcorn IP address'); // eslint-disable-line no-alert\n\n $('#nmjv2_host').focus();\n }\n },\n\n testNMJv2() {\n const nmjv2 = {};\n nmjv2.host = $.trim($('#nmjv2_host').val());\n\n if (nmjv2.host) {\n $('#nmjv2_host').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testNMJv2-result').html(MEDUSA.config.layout.loading);\n $.get('home/testNMJv2', {\n host: nmjv2.host\n }).done(data => {\n $('#testNMJv2-result').html(data);\n $('#testNMJv2').prop('disabled', false);\n });\n } else {\n $('#testNMJv2-result').html('Please fill out the necessary fields above.');\n $('#nmjv2_host').addClass('warning');\n }\n },\n\n testFreeMobile() {\n const freemobile = {};\n freemobile.id = $.trim($('#freemobile_id').val());\n freemobile.apikey = $.trim($('#freemobile_apikey').val());\n\n if (!freemobile.id || !freemobile.apikey) {\n $('#testFreeMobile-result').html('Please fill out the necessary fields above.');\n\n if (freemobile.id) {\n $('#freemobile_id').removeClass('warning');\n } else {\n $('#freemobile_id').addClass('warning');\n }\n\n if (freemobile.apikey) {\n $('#freemobile_apikey').removeClass('warning');\n } else {\n $('#freemobile_apikey').addClass('warning');\n }\n\n return;\n }\n\n $('#freemobile_id,#freemobile_apikey').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testFreeMobile-result').html(MEDUSA.config.layout.loading);\n $.get('home/testFreeMobile', {\n freemobile_id: freemobile.id,\n // eslint-disable-line camelcase\n freemobile_apikey: freemobile.apikey // eslint-disable-line camelcase\n\n }).done(data => {\n $('#testFreeMobile-result').html(data);\n $('#testFreeMobile').prop('disabled', false);\n });\n },\n\n testTelegram() {\n const telegram = {};\n telegram.id = $.trim($('#telegram_id').val());\n telegram.apikey = $.trim($('#telegram_apikey').val());\n\n if (!telegram.id || !telegram.apikey) {\n $('#testTelegram-result').html('Please fill out the necessary fields above.');\n $('#telegram_id').addRemoveWarningClass(telegram.id);\n $('#telegram_apikey').addRemoveWarningClass(telegram.apikey);\n return;\n }\n\n $('#telegram_id,#telegram_apikey').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testTelegram-result').html(MEDUSA.config.layout.loading);\n $.get('home/testTelegram', {\n telegram_id: telegram.id,\n // eslint-disable-line camelcase\n telegram_apikey: telegram.apikey // eslint-disable-line camelcase\n\n }).done(data => {\n $('#testTelegram-result').html(data);\n $('#testTelegram').prop('disabled', false);\n });\n },\n\n testDiscord() {\n const {\n notifiers\n } = this;\n\n if (!notifiers.discord.webhook) {\n $('#testDiscord-result').html('Please fill out the necessary fields above.');\n $('#discord_webhook').addRemoveWarningClass(notifiers.discord.webhook);\n return;\n }\n\n $('#discord_id,#discord_apikey').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testDiscord-result').html(MEDUSA.config.layout.loading);\n $.get('home/testDiscord', {\n discord_webhook: notifiers.discord.webhook,\n // eslint-disable-line camelcase\n discord_tts: notifiers.discord.tts,\n // eslint-disable-line camelcase\n discord_override_avatar: notifiers.discord.overrideAvatar // eslint-disable-line camelcase\n\n }).done(data => {\n $('#testDiscord-result').html(data);\n $('#testDiscord').prop('disabled', false);\n });\n },\n\n testSlack() {\n const slack = {};\n slack.webhook = $.trim($('#slack_webhook').val());\n\n if (!slack.webhook) {\n $('#testSlack-result').html('Please fill out the necessary fields above.');\n $('#slack_webhook').addRemoveWarningClass(slack.webhook);\n return;\n }\n\n $('#slack_webhook').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testSlack-result').html(MEDUSA.config.layout.loading);\n $.get('home/testslack', {\n slack_webhook: slack.webhook // eslint-disable-line camelcase\n\n }).done(data => {\n $('#testSlack-result').html(data);\n $('#testSlack').prop('disabled', false);\n });\n },\n\n async TraktRequestDeviceCode() {\n this.traktUserCode = '';\n this.traktRequestAuthenticated = false;\n const response = await (0,_api_js__WEBPACK_IMPORTED_MODULE_0__.apiRoute)('home/requestTraktDeviceCodeOauth');\n\n if (response.data) {\n this.traktVerificationUrl = response.data.verification_url;\n window.open(response.data.verification_url, 'popUp', 'toolbar=no, scrollbars=no, resizable=no, top=200, left=200, width=650, height=550');\n this.traktRequestSend = true;\n this.traktUserCode = response.data.user_code;\n this.checkTraktAuthenticated();\n }\n },\n\n checkTraktAuthenticated() {\n let counter = 0;\n const i = setInterval(() => {\n (0,_api_js__WEBPACK_IMPORTED_MODULE_0__.apiRoute)('home/checkTrakTokenOauth').then(response => {\n if (response.data) {\n this.traktRequestMessage = response.data.result;\n\n if (!response.data.error) {\n clearInterval(i);\n this.traktRequestAuthenticated = true;\n this.traktUserCode = '';\n }\n }\n });\n counter++;\n\n if (counter === 12) {\n clearInterval(i);\n this.traktRequestAuthenticated = false;\n this.traktUserCode = '';\n }\n }, 5000);\n },\n\n testTrakt() {\n const trakt = {};\n trakt.trendingBlacklist = $.trim($('#trakt_blacklist_name').val());\n\n if (/\\s/g.test(trakt.trendingBlacklist)) {\n $('#testTrakt-result').html('Check blacklist name; the value needs to be a trakt slug');\n $('#trakt_blacklist_name').addClass('warning');\n return;\n }\n\n $('#trakt_blacklist_name').removeClass('warning');\n $('#testTrakt-result').html(MEDUSA.config.layout.loading);\n (0,_api_js__WEBPACK_IMPORTED_MODULE_0__.apiRoute)(`home/testTrakt?blacklist_name=${trakt.trendingBlacklist}`).then(result => {\n $('#testTrakt-result').html(result.data);\n $('#testTrakt').prop('disabled', false);\n });\n },\n\n traktForceSync() {\n $('#testTrakt-result').html(MEDUSA.config.layout.loading);\n $.getJSON('home/forceTraktSync', data => {\n $('#testTrakt-result').html(data.result);\n });\n },\n\n testEmail() {\n let to = '';\n const status = $('#testEmail-result');\n status.html(MEDUSA.config.layout.loading);\n let host = $('#email_host').val();\n host = host.length > 0 ? host : null;\n let port = $('#email_port').val();\n port = port.length > 0 ? port : null;\n const tls = $('#email_tls').find('input').is(':checked') ? 1 : 0;\n let from = $('#email_from').val();\n from = from.length > 0 ? from : 'root@localhost';\n const user = $('#email_username').val().trim();\n const pwd = $('#email_password').val();\n let err = '';\n\n if (host === null) {\n err += '
  • You must specify an SMTP hostname!
  • ';\n }\n\n if (port === null) {\n err += '
  • You must specify an SMTP port!
  • ';\n } else if (port.match(/^\\d+$/) === null || Number.parseInt(port, 10) > 65535) {\n err += '
  • SMTP port must be between 0 and 65535!
  • ';\n }\n\n if (err.length > 0) {\n err = '
      ' + err + '
    ';\n status.html(err);\n } else {\n to = prompt('Enter an email address to send the test to:', null); // eslint-disable-line no-alert\n\n if (to === null || to.length === 0 || to.match(/.*@.*/) === null) {\n status.html('

    You must provide a recipient email address!

    ');\n } else {\n $.get('home/testEmail', {\n host,\n port,\n smtp_from: from,\n // eslint-disable-line camelcase\n use_tls: tls,\n // eslint-disable-line camelcase\n user,\n pwd,\n to\n }, msg => {\n $('#testEmail-result').html(msg);\n });\n }\n }\n },\n\n testPushalot() {\n const pushalot = {};\n pushalot.authToken = $.trim($('#pushalot_authorizationtoken').val());\n\n if (!pushalot.authToken) {\n $('#testPushalot-result').html('Please fill out the necessary fields above.');\n $('#pushalot_authorizationtoken').addClass('warning');\n return;\n }\n\n $('#pushalot_authorizationtoken').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testPushalot-result').html(MEDUSA.config.layout.loading);\n $.get('home/testPushalot', {\n authorizationToken: pushalot.authToken\n }).done(data => {\n $('#testPushalot-result').html(data);\n $('#testPushalot').prop('disabled', false);\n });\n }\n\n }\n});\n\n//# sourceURL=webpack://slim/./src/components/config-notifications.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-1%5B0%5D.rules%5B0%5D!./node_modules/vue-loader/lib/index.js??vue-loader-options"); /***/ }), @@ -1467,7 +1467,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"state\": () => (/* binding */ state),\n/* harmony export */ \"mutations\": () => (/* binding */ mutations),\n/* harmony export */ \"getters\": () => (/* binding */ getters),\n/* harmony export */ \"actions\": () => (/* binding */ actions),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nconst state = {\n enabled: null,\n notifyOnSnatch: null,\n notifyOnDownload: null,\n notifyOnSubtitleDownload: null,\n webhook: null,\n tts: null\n};\nconst mutations = {};\nconst getters = {};\nconst actions = {};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n state,\n mutations,\n getters,\n actions\n});\n\n//# sourceURL=webpack://slim/./src/store/modules/config/notifiers/discord.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"state\": () => (/* binding */ state),\n/* harmony export */ \"mutations\": () => (/* binding */ mutations),\n/* harmony export */ \"getters\": () => (/* binding */ getters),\n/* harmony export */ \"actions\": () => (/* binding */ actions),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nconst state = {\n enabled: null,\n notifyOnSnatch: null,\n notifyOnDownload: null,\n notifyOnSubtitleDownload: null,\n webhook: null,\n tts: null,\n overrideAvatar: null\n};\nconst mutations = {};\nconst getters = {};\nconst actions = {};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n state,\n mutations,\n getters,\n actions\n});\n\n//# sourceURL=webpack://slim/./src/store/modules/config/notifiers/discord.js?"); /***/ }), @@ -7233,7 +7233,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"render\": () => (/* binding */ render),\n/* harmony export */ \"staticRenderFns\": () => (/* binding */ staticRenderFns)\n/* harmony export */ });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { attrs: { id: \"config-notifications\" } },\n [\n _c(\"vue-snotify\"),\n _vm._v(\" \"),\n _c(\"div\", { attrs: { id: \"config\" } }, [\n _c(\"div\", { attrs: { id: \"config-content\" } }, [\n _c(\n \"form\",\n {\n attrs: { id: \"configForm\", method: \"post\" },\n on: {\n submit: function($event) {\n $event.preventDefault()\n return _vm.save()\n }\n }\n },\n [\n _c(\"div\", { attrs: { id: \"config-components\" } }, [\n _c(\"ul\", [\n _c(\n \"li\",\n [\n _c(\"app-link\", { attrs: { href: \"#home-theater-nas\" } }, [\n _vm._v(\"Home Theater / NAS\")\n ])\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"li\",\n [\n _c(\"app-link\", { attrs: { href: \"#devices\" } }, [\n _vm._v(\"Devices\")\n ])\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"li\",\n [\n _c(\"app-link\", { attrs: { href: \"#social\" } }, [\n _vm._v(\"Social\")\n ])\n ],\n 1\n )\n ]),\n _vm._v(\" \"),\n _c(\"div\", { attrs: { id: \"home-theater-nas\" } }, [\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-kodi\",\n attrs: { title: \"KODI\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"http://kodi.tv\" } },\n [_vm._v(\"KODI\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"A free and open source cross-platform media center and home entertainment system software with a 10-foot user interface designed for the living-room TV.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_kodi\",\n explanations: [\"Send KODI commands?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.kodi, \"enabled\", $$v)\n },\n expression: \"notifiers.kodi.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.kodi.enabled,\n expression: \"notifiers.kodi.enabled\"\n }\n ],\n attrs: { id: \"content-use-kodi\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Always on\",\n id: \"kodi_always_on\",\n explanations: [\"log errors when unreachable?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.alwaysOn,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi,\n \"alwaysOn\",\n $$v\n )\n },\n expression: \"notifiers.kodi.alwaysOn\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"kodi_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.kodi.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"kodi_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression: \"notifiers.kodi.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"kodi_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.kodi.notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.kodi.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Update library\",\n id: \"kodi_update_library\",\n explanations: [\n \"update KODI library when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.update.library,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi.update,\n \"library\",\n $$v\n )\n },\n expression: \"notifiers.kodi.update.library\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Full library update\",\n id: \"kodi_update_full\",\n explanations: [\n \"perform a full library update if update per-show fails?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.update.full,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi.update,\n \"full\",\n $$v\n )\n },\n expression: \"notifiers.kodi.update.full\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Clean library\",\n id: \"kodi_clean_library\",\n explanations: [\n \"clean KODI library when replaces a already downloaded episode?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.cleanLibrary,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi,\n \"cleanLibrary\",\n $$v\n )\n },\n expression: \"notifiers.kodi.cleanLibrary\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Only update first host\",\n id: \"kodi_update_onlyfirst\",\n explanations: [\n \"only send library updates/clean to the first active host?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.update.onlyFirst,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi.update,\n \"onlyFirst\",\n $$v\n )\n },\n expression: \"notifiers.kodi.update.onlyFirst\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n label: \"KODI IP:Port\",\n labelFor: \"kodi_host\"\n }\n },\n [\n _c(\"select-list\", {\n attrs: {\n name: \"kodi_host\",\n id: \"kodi_host\",\n \"list-items\": _vm.notifiers.kodi.host\n },\n on: {\n change: function($event) {\n _vm.notifiers.kodi.host = $event.map(\n function(x) {\n return x.value\n }\n )\n }\n }\n }),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"host running KODI (eg. 192.168.1.100:8080)\"\n )\n ])\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Username\",\n id: \"kodi_username\",\n explanations: [\n \"username for your KODI server (blank for none)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.username,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi,\n \"username\",\n $$v\n )\n },\n expression: \"notifiers.kodi.username\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n type: \"password\",\n label: \"Password\",\n id: \"kodi_password\",\n explanations: [\n \"password for your KODI server (blank for none)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.password,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi,\n \"password\",\n $$v\n )\n },\n expression: \"notifiers.kodi.password\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testKODI-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test KODI\",\n id: \"testKODI\"\n },\n on: { click: _vm.testKODI }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-plex\",\n attrs: { title: \"Plex Media Server\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://plex.tv\" } },\n [_vm._v(\"Plex Media Server\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Experience your media on a visually stunning, easy to use interface on your Mac connected to your TV. Your media library has never looked this good!\"\n )\n ]),\n _vm._v(\" \"),\n _vm.notifiers.plex.server.enabled\n ? _c(\"p\", { staticClass: \"plexinfo\" }, [\n _vm._v(\n \"For sending notifications to Plex Home Theater (PHT) clients, use the KODI notifier with port \"\n ),\n _c(\"b\", [_vm._v(\"3005\")]),\n _vm._v(\".\")\n ])\n : _vm._e()\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_plex_server\",\n explanations: [\"Send Plex server notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.plex.server.enabled,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.server,\n \"enabled\",\n $$v\n )\n },\n expression: \"notifiers.plex.server.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.plex.server.enabled,\n expression: \"notifiers.plex.server.enabled\"\n }\n ],\n attrs: { id: \"content-use-plex-server\" }\n },\n [\n _c(\n \"config-textbox\",\n {\n attrs: {\n label: \"Plex Media Server Auth Token\",\n id: \"plex_server_token\"\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.plex.server.token,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.server,\n \"token\",\n $$v\n )\n },\n expression: \"notifiers.plex.server.token\"\n }\n },\n [\n _c(\"p\", [_vm._v(\"Auth Token used by plex\")]),\n _vm._v(\" \"),\n _c(\"p\", [\n _c(\n \"span\",\n [\n _vm._v(\"See: \"),\n _c(\n \"app-link\",\n {\n staticClass: \"wiki\",\n attrs: {\n href:\n \"https://support.plex.tv/hc/en-us/articles/204059436-Finding-your-account-token-X-Plex-Token\"\n }\n },\n [\n _c(\"strong\", [\n _vm._v(\n \"Finding your account token\"\n )\n ])\n ]\n )\n ],\n 1\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Username\",\n id: \"plex_server_username\",\n explanations: [\"blank = no authentication\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.plex.server.username,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.server,\n \"username\",\n $$v\n )\n },\n expression: \"notifiers.plex.server.username\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n type: \"password\",\n label: \"Password\",\n id: \"plex_server_password\",\n explanations: [\"blank = no authentication\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.plex.server.password,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.server,\n \"password\",\n $$v\n )\n },\n expression: \"notifiers.plex.server.password\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Update Library\",\n id: \"plex_update_library\",\n explanations: [\"log errors when unreachable?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.plex.server.updateLibrary,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.server,\n \"updateLibrary\",\n $$v\n )\n },\n expression:\n \"notifiers.plex.server.updateLibrary\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"plex_server_host\",\n label: \"Plex Media Server IP:Port\"\n }\n },\n [\n _c(\"select-list\", {\n attrs: {\n name: \"plex_server_host\",\n id: \"plex_server_host\",\n \"list-items\":\n _vm.notifiers.plex.server.host\n },\n on: {\n change: function($event) {\n _vm.notifiers.plex.server.host = $event.map(\n function(x) {\n return x.value\n }\n )\n }\n }\n }),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"one or more hosts running Plex Media Server\"\n ),\n _c(\"br\"),\n _vm._v(\n \"(eg. 192.168.1.1:32400, 192.168.1.2:32400)\"\n )\n ])\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"HTTPS\",\n id: \"plex_server_https\",\n explanations: [\n \"use https for plex media server requests?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.plex.server.https,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.server,\n \"https\",\n $$v\n )\n },\n expression: \"notifiers.plex.server.https\"\n }\n }),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"field-pair\" }, [\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testPMS-result\" }\n },\n [\n _vm._v(\n \"Click below to test Plex Media Server(s)\"\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Plex Media Server\",\n id: \"testPMS\"\n },\n on: { click: _vm.testPMS }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n }),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"clear-left\" }, [\n _vm._v(\" \")\n ])\n ])\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-plexth\",\n attrs: { title: \"Plex Media Client\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://plex.tv\" } },\n [_vm._v(\"Plex Home Theater\")]\n )\n ],\n 1\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_plex_client\",\n explanations: [\n \"Send Plex Home Theater notifications?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.plex.client.enabled,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.client,\n \"enabled\",\n $$v\n )\n },\n expression: \"notifiers.plex.client.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.plex.client.enabled,\n expression: \"notifiers.plex.client.enabled\"\n }\n ],\n attrs: { id: \"content-use-plex-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"plex_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.plex.client.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.client,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression:\n \"notifiers.plex.client.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"plex_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.plex.client.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.client,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.plex.client.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"plex_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.plex.client\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.client,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.plex.client.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"plex_client_host\",\n label: \"Plex Home Theater IP:Port\"\n }\n },\n [\n _c(\"select-list\", {\n attrs: {\n name: \"plex_client_host\",\n id: \"plex_client_host\",\n \"list-items\":\n _vm.notifiers.plex.client.host\n },\n on: {\n change: function($event) {\n _vm.notifiers.plex.client.host = $event.map(\n function(x) {\n return x.value\n }\n )\n }\n }\n }),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"one or more hosts running Plex Home Theater\"\n ),\n _c(\"br\"),\n _vm._v(\n \"(eg. 192.168.1.100:3000, 192.168.1.101:3000)\"\n )\n ])\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Username\",\n id: \"plex_client_username\",\n explanations: [\"blank = no authentication\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.plex.client.username,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.client,\n \"username\",\n $$v\n )\n },\n expression: \"notifiers.plex.client.username\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n type: \"password\",\n label: \"Password\",\n id: \"plex_client_password\",\n explanations: [\"blank = no authentication\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.plex.client.password,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.client,\n \"password\",\n $$v\n )\n },\n expression: \"notifiers.plex.client.password\"\n }\n }),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"field-pair\" }, [\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testPHT-result\" }\n },\n [\n _vm._v(\n \"Click below to test Plex Home Theater(s)\"\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Plex Home Theater\",\n id: \"testPHT\"\n },\n on: { click: _vm.testPHT }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n }),\n _vm._v(\" \"),\n _vm._m(0)\n ])\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-emby\",\n attrs: { title: \"Emby\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"http://emby.media\" } },\n [_vm._v(\"Emby\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"A home media server built using other popular open source technologies.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_emby\",\n explanations: [\"Send update commands to Emby?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.emby.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.emby, \"enabled\", $$v)\n },\n expression: \"notifiers.emby.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.emby.enabled,\n expression: \"notifiers.emby.enabled\"\n }\n ],\n attrs: { id: \"content_use_emby\" }\n },\n [\n _c(\"config-textbox\", {\n attrs: {\n label: \"Emby IP:Port\",\n id: \"emby_host\",\n explanations: [\n \"host running Emby (eg. 192.168.1.100:8096)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.emby.host,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.emby, \"host\", $$v)\n },\n expression: \"notifiers.emby.host\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: { label: \"Api Key\", id: \"emby_apikey\" },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.emby.apiKey,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.emby, \"apiKey\", $$v)\n },\n expression: \"notifiers.emby.apiKey\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testEMBY-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Emby\",\n id: \"testEMBY\"\n },\n on: { click: _vm.testEMBY }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-nmj\",\n attrs: { title: \"Networked Media Jukebox\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n {\n attrs: { href: \"http://www.popcornhour.com/\" }\n },\n [_vm._v(\"NMJ\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"The Networked Media Jukebox, or NMJ, is the official media jukebox interface made available for the Popcorn Hour 200-series.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_nmj\",\n explanations: [\"Send update commands to NMJ?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.nmj.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.nmj, \"enabled\", $$v)\n },\n expression: \"notifiers.nmj.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.nmj.enabled,\n expression: \"notifiers.nmj.enabled\"\n }\n ],\n attrs: { id: \"content-use-nmj\" }\n },\n [\n _c(\"config-textbox\", {\n attrs: {\n label: \"Popcorn IP address\",\n id: \"nmj_host\",\n explanations: [\n \"IP address of Popcorn 200-series (eg. 192.168.1.100)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.nmj.host,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.nmj, \"host\", $$v)\n },\n expression: \"notifiers.nmj.host\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"settingsNMJ\",\n label: \"Get settings\"\n }\n },\n [\n _c(\"input\", {\n staticClass: \"btn-medusa btn-inline\",\n attrs: {\n type: \"button\",\n value: \"Get Settings\",\n id: \"settingsNMJ\"\n },\n on: { click: _vm.settingsNMJ }\n }),\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n \"the Popcorn Hour device must be powered on and NMJ running.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"NMJ database\",\n id: \"nmj_database\",\n explanations: [\n \"automatically filled via the 'Get Settings' button.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.nmj.database,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.nmj, \"database\", $$v)\n },\n expression: \"notifiers.nmj.database\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"NMJ mount\",\n id: \"nmj_mount\",\n explanations: [\n \"automatically filled via the 'Get Settings' button.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.nmj.mount,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.nmj, \"mount\", $$v)\n },\n expression: \"notifiers.nmj.mount\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testNMJ-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test NMJ\",\n id: \"testNMJ\"\n },\n on: { click: _vm.testNMJ }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-nmj\",\n attrs: { title: \"Networked Media Jukebox v2\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n {\n attrs: { href: \"http://www.popcornhour.com/\" }\n },\n [_vm._v(\"NMJv2\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"The Networked Media Jukebox, or NMJv2, is the official media jukebox interface made available for the Popcorn Hour 300 & 400-series.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_nmjv2\",\n explanations: [\n \"Send popcorn hour (nmjv2) notifications?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.nmjv2.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.nmjv2, \"enabled\", $$v)\n },\n expression: \"notifiers.nmjv2.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.nmjv2.enabled,\n expression: \"notifiers.nmjv2.enabled\"\n }\n ],\n attrs: { id: \"content-use-nmjv2\" }\n },\n [\n _c(\"config-textbox\", {\n attrs: {\n label: \"Popcorn IP address\",\n id: \"nmjv2_host\",\n explanations: [\n \"IP address of Popcorn 300/400-series (eg. 192.168.1.100)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.nmjv2.host,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.nmjv2, \"host\", $$v)\n },\n expression: \"notifiers.nmjv2.host\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"nmjv2_database_location\",\n label: \"Database location\"\n }\n },\n [\n _c(\n \"label\",\n {\n staticClass: \"space-right\",\n attrs: { for: \"NMJV2_DBLOC_A\" }\n },\n [\n _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.notifiers.nmjv2.dbloc,\n expression: \"notifiers.nmjv2.dbloc\"\n }\n ],\n attrs: {\n type: \"radio\",\n name: \"nmjv2_dbloc\",\n VALUE: \"local\",\n id: \"NMJV2_DBLOC_A\"\n },\n domProps: {\n checked: _vm._q(\n _vm.notifiers.nmjv2.dbloc,\n null\n )\n },\n on: {\n change: function($event) {\n return _vm.$set(\n _vm.notifiers.nmjv2,\n \"dbloc\",\n null\n )\n }\n }\n }),\n _vm._v(\n \"\\n PCH Local Media\\n \"\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"label\",\n { attrs: { for: \"NMJV2_DBLOC_B\" } },\n [\n _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.notifiers.nmjv2.dbloc,\n expression: \"notifiers.nmjv2.dbloc\"\n }\n ],\n attrs: {\n type: \"radio\",\n name: \"nmjv2_dbloc\",\n VALUE: \"network\",\n id: \"NMJV2_DBLOC_B\"\n },\n domProps: {\n checked: _vm._q(\n _vm.notifiers.nmjv2.dbloc,\n null\n )\n },\n on: {\n change: function($event) {\n return _vm.$set(\n _vm.notifiers.nmjv2,\n \"dbloc\",\n null\n )\n }\n }\n }),\n _vm._v(\n \"\\n PCH Network Media\\n \"\n )\n ]\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"nmjv2_database_instance\",\n label: \"Database instance\"\n }\n },\n [\n _c(\n \"select\",\n {\n staticClass: \"form-control input-sm\",\n attrs: { id: \"NMJv2db_instance\" }\n },\n [\n _c(\"option\", { attrs: { value: \"0\" } }, [\n _vm._v(\"#1 \")\n ]),\n _vm._v(\" \"),\n _c(\"option\", { attrs: { value: \"1\" } }, [\n _vm._v(\"#2 \")\n ]),\n _vm._v(\" \"),\n _c(\"option\", { attrs: { value: \"2\" } }, [\n _vm._v(\"#3 \")\n ]),\n _vm._v(\" \"),\n _c(\"option\", { attrs: { value: \"3\" } }, [\n _vm._v(\"#4 \")\n ]),\n _vm._v(\" \"),\n _c(\"option\", { attrs: { value: \"4\" } }, [\n _vm._v(\"#5 \")\n ]),\n _vm._v(\" \"),\n _c(\"option\", { attrs: { value: \"5\" } }, [\n _vm._v(\"#6 \")\n ]),\n _vm._v(\" \"),\n _c(\"option\", { attrs: { value: \"6\" } }, [\n _vm._v(\"#7 \")\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n \"adjust this value if the wrong database is selected.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"get_nmjv2_find_database\",\n label: \"Find database\"\n }\n },\n [\n _c(\"input\", {\n staticClass: \"btn-medusa btn-inline\",\n attrs: {\n type: \"button\",\n value: \"Find Database\",\n id: \"settingsNMJv2\"\n },\n on: { click: _vm.settingsNMJv2 }\n }),\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n \"the Popcorn Hour device must be powered on.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"NMJv2 database\",\n id: \"nmjv2_database\",\n explanations: [\n \"automatically filled via the 'Find Database' buttons.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.nmjv2.database,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.nmjv2,\n \"database\",\n $$v\n )\n },\n expression: \"notifiers.nmjv2.database\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testNMJv2-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test NMJv2\",\n id: \"testNMJv2\"\n },\n on: { click: _vm.testNMJv2 }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-syno1\",\n attrs: { title: \"Synology\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"http://synology.com/\" } },\n [_vm._v(\"Synology\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [_vm._v(\"The Synology DiskStation NAS.\")]),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Synology Indexer is the daemon running on the Synology NAS to build its media database.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"HTTPS\",\n id: \"use_synoindex\",\n explanations: [\n \"Note: requires Medusa to be running on your Synology NAS.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.synologyIndex.enabled,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.synologyIndex,\n \"enabled\",\n $$v\n )\n },\n expression: \"notifiers.synologyIndex.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.synologyIndex.enabled,\n expression: \"notifiers.synologyIndex.enabled\"\n }\n ],\n attrs: { id: \"content_use_synoindex\" }\n },\n [\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ]\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-syno2\",\n attrs: { title: \"Synology Indexer\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"http://synology.com/\" } },\n [_vm._v(\"Synology Notifier\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Synology Notifier is the notification system of Synology DSM\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_synologynotifier\",\n explanations: [\n \"Send notifications to the Synology Notifier?\",\n \"Note: requires Medusa to be running on your Synology DSM.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.synology.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.synology, \"enabled\", $$v)\n },\n expression: \"notifiers.synology.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.synology.enabled,\n expression: \"notifiers.synology.enabled\"\n }\n ],\n attrs: { id: \"content-use-synology-notifier\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.synology.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.synology,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression:\n \"notifiers.synology.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"synology_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.synology.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.synology,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.synology.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"synology_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.synology\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.synology,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.synology.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-pytivo\",\n attrs: { title: \"pyTivo\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n {\n attrs: {\n href:\n \"http://pytivo.sourceforge.net/wiki/index.php/PyTivo\"\n }\n },\n [_vm._v(\"pyTivo\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"pyTivo is both an HMO and GoBack server. This notifier will load the completed downloads to your Tivo.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_pytivo\",\n explanations: [\"Send notifications to pyTivo?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pyTivo.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.pyTivo, \"enabled\", $$v)\n },\n expression: \"notifiers.pyTivo.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.pyTivo.enabled,\n expression: \"notifiers.pyTivo.enabled\"\n }\n ],\n attrs: { id: \"content-use-pytivo\" }\n },\n [\n _c(\"config-textbox\", {\n attrs: {\n label: \"pyTivo IP:Port\",\n id: \"pytivo_host\",\n explanations: [\n \"host running pyTivo (eg. 192.168.1.1:9032)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pyTivo.host,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.pyTivo, \"host\", $$v)\n },\n expression: \"notifiers.pyTivo.host\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"pyTivo share name\",\n id: \"pytivo_name\",\n explanations: [\n \"(Messages & Settings > Account & System Information > System Information > DVR name)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pyTivo.shareName,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pyTivo,\n \"shareName\",\n $$v\n )\n },\n expression: \"notifiers.pyTivo.shareName\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Tivo name\",\n id: \"pytivo_tivo_name\",\n explanations: [\n \"value used in pyTivo Web Configuration to name the share.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pyTivo.name,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.pyTivo, \"name\", $$v)\n },\n expression: \"notifiers.pyTivo.name\"\n }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"br\"),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ]),\n _vm._v(\" \"),\n _c(\"div\", { attrs: { id: \"devices\" } }, [\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-growl\",\n attrs: { title: \"Growl\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"http://growl.info/\" } },\n [_vm._v(\"Growl\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"A cross-platform unobtrusive global notification system.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_growl_client\",\n explanations: [\"Send Growl notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.growl.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.growl, \"enabled\", $$v)\n },\n expression: \"notifiers.growl.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.growl.enabled,\n expression: \"notifiers.growl.enabled\"\n }\n ],\n attrs: { id: \"content-use-growl-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"growl_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.growl.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.growl,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.growl.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"growl_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.growl.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.growl,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression: \"notifiers.growl.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"growl_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.growl\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.growl,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.growl.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Growl IP:Port\",\n id: \"growl_host\",\n explanations: [\n \"host running Growl (eg. 192.168.1.100:23053)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.growl.host,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.growl, \"host\", $$v)\n },\n expression: \"notifiers.growl.host\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n type: \"password\",\n label: \"Password\",\n id: \"growl_password\",\n explanations: [\n \"may leave blank if Medusa is on the same host.\",\n \"otherwise Growl requires a password to be used.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.growl.password,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.growl,\n \"password\",\n $$v\n )\n },\n expression: \"notifiers.growl.password\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testGrowl-result\" }\n },\n [\n _vm._v(\n \"Click below to register and test Growl, this is required for Growl notifications to work.\"\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Register Growl\",\n id: \"testGrowl\"\n },\n on: { click: _vm.testGrowl }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-prowl\",\n attrs: { title: \"Prowl\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"http://www.prowlapp.com/\" } },\n [_vm._v(\"Prowl\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [_vm._v(\"A Growl client for iOS.\")])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_prowl\",\n explanations: [\"Send Prowl notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.prowl.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.prowl, \"enabled\", $$v)\n },\n expression: \"notifiers.prowl.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.prowl.enabled,\n expression: \"notifiers.prowl.enabled\"\n }\n ],\n attrs: { id: \"content-use-prowl\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"prowl_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.prowl.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.prowl,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.prowl.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"prowl_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.prowl.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.prowl,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression: \"notifiers.prowl.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"prowl_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.prowl\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.prowl,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.prowl.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Prowl Message Title\",\n id: \"prowl_message_title\"\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.prowl.messageTitle,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.prowl,\n \"messageTitle\",\n $$v\n )\n },\n expression: \"notifiers.prowl.messageTitle\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"prowl_api\",\n label: \"Api\"\n }\n },\n [\n _c(\"select-list\", {\n attrs: {\n name: \"prowl_api\",\n id: \"prowl_api\",\n \"csv-enabled\": \"\",\n \"list-items\": _vm.notifiers.prowl.api\n },\n on: { change: _vm.onChangeProwlApi }\n }),\n _vm._v(\" \"),\n _c(\n \"span\",\n [\n _vm._v(\n \"Prowl API(s) listed here, will receive notifications for \"\n ),\n _c(\"b\", [_vm._v(\"all\")]),\n _vm._v(\n \" shows.\\n Your Prowl API key is available at:\\n \"\n ),\n _c(\n \"app-link\",\n {\n attrs: {\n href:\n \"https://www.prowlapp.com/api_settings.php\"\n }\n },\n [\n _vm._v(\n \"\\n https://www.prowlapp.com/api_settings.php\"\n )\n ]\n ),\n _c(\"br\"),\n _vm._v(\n \"\\n (This field may be blank except when testing.)\\n \"\n )\n ],\n 1\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"prowl_show_notification_list\",\n label: \"Show notification list\"\n }\n },\n [\n _c(\"show-selector\", {\n attrs: {\n \"select-class\":\n \"form-control input-sm max-input350\",\n \"place-holder\": \"-- Select a Show --\"\n },\n on: {\n change: function($event) {\n return _vm.prowlUpdateApiKeys($event)\n }\n }\n })\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"form-group\" }, [\n _c(\"div\", { staticClass: \"row\" }, [\n _c(\n \"div\",\n {\n staticClass:\n \"offset-sm-2 col-sm-offset-2 col-sm-10 content\"\n },\n [\n _c(\"select-list\", {\n attrs: {\n name: \"prowl-show-list\",\n id: \"prowl-show-list\",\n \"list-items\":\n _vm.prowlSelectedShowApiKeys\n },\n on: {\n change: function($event) {\n return _vm.savePerShowNotifyList(\n \"prowl\",\n $event\n )\n }\n }\n }),\n _vm._v(\n \"\\n Configure per-show notifications here by entering Prowl API key(s), after selecting a show in the drop-down box.\\n Be sure to activate the 'Save for this show' button below after each entry.\\n \"\n ),\n _c(\"span\", [\n _vm._v(\n \"The values are automatically saved when adding the api key.\"\n )\n ])\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"prowl_priority\",\n label: \"Prowl priority\"\n }\n },\n [\n _c(\n \"select\",\n {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.notifiers.prowl.priority,\n expression: \"notifiers.prowl.priority\"\n }\n ],\n staticClass: \"form-control input-sm\",\n attrs: {\n id: \"prowl_priority\",\n name: \"prowl_priority\"\n },\n on: {\n change: function($event) {\n var $$selectedVal = Array.prototype.filter\n .call(\n $event.target.options,\n function(o) {\n return o.selected\n }\n )\n .map(function(o) {\n var val =\n \"_value\" in o\n ? o._value\n : o.value\n return val\n })\n _vm.$set(\n _vm.notifiers.prowl,\n \"priority\",\n $event.target.multiple\n ? $$selectedVal\n : $$selectedVal[0]\n )\n }\n }\n },\n _vm._l(_vm.prowlPriorityOptions, function(\n option\n ) {\n return _c(\n \"option\",\n {\n key: option.value,\n domProps: { value: option.value }\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(option.text) +\n \"\\n \"\n )\n ]\n )\n }),\n 0\n ),\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n \"priority of Prowl messages from Medusa.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testProwl-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Prowl\",\n id: \"testProwl\"\n },\n on: { click: _vm.testProwl }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-libnotify\",\n attrs: { title: \"Libnotify\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n {\n attrs: {\n href:\n \"http://library.gnome.org/devel/libnotify/\"\n }\n },\n [_vm._v(\"Libnotify\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"p\",\n [\n _vm._v(\n \"The standard desktop notification API for Linux/*nix systems. This notifier will only function if the pynotify module is installed (Ubuntu/Debian package \"\n ),\n _c(\n \"app-link\",\n { attrs: { href: \"apt:python-notify\" } },\n [_vm._v(\"python-notify\")]\n ),\n _vm._v(\").\")\n ],\n 1\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_libnotify_client\",\n explanations: [\"Send Libnotify notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.libnotify.enabled,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.libnotify,\n \"enabled\",\n $$v\n )\n },\n expression: \"notifiers.libnotify.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.libnotify.enabled,\n expression: \"notifiers.libnotify.enabled\"\n }\n ],\n attrs: { id: \"content-use-libnotify\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"libnotify_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.libnotify.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.libnotify,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression:\n \"notifiers.libnotify.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"libnotify_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.libnotify.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.libnotify,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.libnotify.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"libnotify_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.libnotify\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.libnotify,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.libnotify.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testLibnotify-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Libnotify\",\n id: \"testLibnotify\"\n },\n on: { click: _vm.testLibnotify }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-pushover\",\n attrs: { title: \"Pushover\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://pushover.net/\" } },\n [_vm._v(\"Pushover\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Pushover makes it easy to send real-time notifications to your Android and iOS devices.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_pushover_client\",\n explanations: [\"Send Pushover notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushover.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.pushover, \"enabled\", $$v)\n },\n expression: \"notifiers.pushover.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.pushover.enabled,\n expression: \"notifiers.pushover.enabled\"\n }\n ],\n attrs: { id: \"content-use-pushover\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"pushover_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushover.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushover,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression:\n \"notifiers.pushover.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"pushover_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.pushover.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushover,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.pushover.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"pushover_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.pushover\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushover,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.pushover.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Pushover User Key\",\n id: \"pushover_userkey\",\n explanations: [\n \"User Key of your Pushover account\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushover.userKey,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushover,\n \"userKey\",\n $$v\n )\n },\n expression: \"notifiers.pushover.userKey\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-textbox\",\n {\n attrs: {\n label: \"Pushover API Key\",\n id: \"pushover_apikey\"\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushover.apiKey,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushover,\n \"apiKey\",\n $$v\n )\n },\n expression: \"notifiers.pushover.apiKey\"\n }\n },\n [\n _c(\n \"span\",\n [\n _c(\n \"app-link\",\n {\n attrs: {\n href:\n \"https://pushover.net/apps/build/\"\n }\n },\n [_c(\"b\", [_vm._v(\"Click here\")])]\n ),\n _vm._v(\" to create a Pushover API key\")\n ],\n 1\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"pushover_device\",\n label: \"Pushover Devices\"\n }\n },\n [\n _c(\"select-list\", {\n attrs: {\n name: \"pushover_device\",\n id: \"pushover_device\",\n \"list-items\":\n _vm.notifiers.pushover.device\n },\n on: {\n change: function($event) {\n _vm.notifiers.pushover.device = $event.map(\n function(x) {\n return x.value\n }\n )\n }\n }\n }),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"List of pushover devices you want to send notifications to\"\n )\n ])\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"pushover_sound\",\n label: \"Pushover notification sound\"\n }\n },\n [\n _c(\n \"select\",\n {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.notifiers.pushover.sound,\n expression: \"notifiers.pushover.sound\"\n }\n ],\n staticClass: \"form-control\",\n attrs: {\n id: \"pushover_sound\",\n name: \"pushover_sound\"\n },\n on: {\n change: function($event) {\n var $$selectedVal = Array.prototype.filter\n .call(\n $event.target.options,\n function(o) {\n return o.selected\n }\n )\n .map(function(o) {\n var val =\n \"_value\" in o\n ? o._value\n : o.value\n return val\n })\n _vm.$set(\n _vm.notifiers.pushover,\n \"sound\",\n $event.target.multiple\n ? $$selectedVal\n : $$selectedVal[0]\n )\n }\n }\n },\n _vm._l(_vm.pushoverSoundOptions, function(\n option\n ) {\n return _c(\n \"option\",\n {\n key: option.value,\n domProps: { value: option.value }\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(option.text) +\n \"\\n \"\n )\n ]\n )\n }),\n 0\n ),\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\"Choose notification sound to use\")\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"pushover_priority\",\n label: \"Pushover notification priority\"\n }\n },\n [\n _c(\n \"select\",\n {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value:\n _vm.notifiers.pushover.priority,\n expression:\n \"notifiers.pushover.priority\"\n }\n ],\n staticClass: \"form-control\",\n attrs: {\n id: \"pushover_priority\",\n name: \"pushover_priority\"\n },\n on: {\n change: function($event) {\n var $$selectedVal = Array.prototype.filter\n .call(\n $event.target.options,\n function(o) {\n return o.selected\n }\n )\n .map(function(o) {\n var val =\n \"_value\" in o\n ? o._value\n : o.value\n return val\n })\n _vm.$set(\n _vm.notifiers.pushover,\n \"priority\",\n $event.target.multiple\n ? $$selectedVal\n : $$selectedVal[0]\n )\n }\n }\n },\n _vm._l(\n _vm.pushoverPriorityOptions,\n function(option) {\n return _c(\n \"option\",\n {\n key: option.value,\n domProps: { value: option.value }\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(option.text) +\n \"\\n \"\n )\n ]\n )\n }\n ),\n 0\n ),\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n \"priority of Pushover messages from Medusa\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testPushover-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Pushover\",\n id: \"testPushover\"\n },\n on: { click: _vm.testPushover }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-boxcar2\",\n attrs: { title: \"Boxcar 2\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://new.boxcar.io/\" } },\n [_vm._v(\"Boxcar 2\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Read your messages where and when you want them!\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_boxcar2\",\n explanations: [\"Send boxcar2 notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.boxcar2.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.boxcar2, \"enabled\", $$v)\n },\n expression: \"notifiers.boxcar2.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.boxcar2.enabled,\n expression: \"notifiers.boxcar2.enabled\"\n }\n ],\n attrs: { id: \"content-use-boxcar2-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"boxcar2_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.boxcar2.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.boxcar2,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.boxcar2.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"boxcar2_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.boxcar2.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.boxcar2,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.boxcar2.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"boxcar2_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.boxcar2\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.boxcar2,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.boxcar2.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Boxcar2 Access token\",\n id: \"boxcar2_accesstoken\",\n explanations: [\n \"access token for your Boxcar account.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.boxcar2.accessToken,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.boxcar2,\n \"accessToken\",\n $$v\n )\n },\n expression: \"notifiers.boxcar2.accessToken\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testBoxcar2-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Boxcar\",\n id: \"testBoxcar2\"\n },\n on: { click: _vm.testBoxcar2 }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-pushalot\",\n attrs: { title: \"Pushalot\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://pushalot.com\" } },\n [_vm._v(\"Pushalot\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Pushalot is a platform for receiving custom push notifications to connected devices running Windows Phone or Windows 8.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_pushalot\",\n explanations: [\"Send Pushalot notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushalot.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.pushalot, \"enabled\", $$v)\n },\n expression: \"notifiers.pushalot.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.pushalot.enabled,\n expression: \"notifiers.pushalot.enabled\"\n }\n ],\n attrs: { id: \"content-use-pushalot-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"pushalot_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushalot.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushalot,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression:\n \"notifiers.pushalot.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"pushalot_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.pushalot.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushalot,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.pushalot.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"pushalot_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.pushalot\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushalot,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.pushalot.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Pushalot authorization token\",\n id: \"pushalot_authorizationtoken\",\n explanations: [\n \"authorization token of your Pushalot account.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushalot.authToken,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushalot,\n \"authToken\",\n $$v\n )\n },\n expression: \"notifiers.pushalot.authToken\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testPushalot-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Pushalot\",\n id: \"testPushalot\"\n },\n on: { click: _vm.testPushalot }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-pushbullet\",\n attrs: { title: \"Pushbullet\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://www.pushbullet.com\" } },\n [_vm._v(\"Pushbullet\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Pushbullet is a platform for receiving custom push notifications to connected devices running Android and desktop Chrome browsers.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_pushbullet\",\n explanations: [\"Send pushbullet notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushbullet.enabled,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushbullet,\n \"enabled\",\n $$v\n )\n },\n expression: \"notifiers.pushbullet.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.pushbullet.enabled,\n expression: \"notifiers.pushbullet.enabled\"\n }\n ],\n attrs: { id: \"content-use-pushbullet-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"pushbullet_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.pushbullet.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushbullet,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression:\n \"notifiers.pushbullet.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"pushbullet_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.pushbullet.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushbullet,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.pushbullet.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"pushbullet_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.pushbullet\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushbullet,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.pushbullet.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Pushbullet API key\",\n id: \"pushbullet_api\",\n explanations: [\n \"API key of your Pushbullet account.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushbullet.api,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushbullet,\n \"api\",\n $$v\n )\n },\n expression: \"notifiers.pushbullet.api\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"pushbullet_device_list\",\n label: \"Pushbullet devices\"\n }\n },\n [\n _c(\"input\", {\n staticClass: \"btn-medusa btn-inline\",\n attrs: {\n type: \"button\",\n value: \"Update device list\",\n id: \"get-pushbullet-devices\"\n },\n on: {\n click: _vm.getPushbulletDeviceOptions\n }\n }),\n _vm._v(\" \"),\n _c(\n \"select\",\n {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value:\n _vm.notifiers.pushbullet.device,\n expression:\n \"notifiers.pushbullet.device\"\n }\n ],\n staticClass: \"form-control\",\n attrs: {\n id: \"pushbullet_device_list\",\n name: \"pushbullet_device_list\"\n },\n on: {\n change: function($event) {\n var $$selectedVal = Array.prototype.filter\n .call(\n $event.target.options,\n function(o) {\n return o.selected\n }\n )\n .map(function(o) {\n var val =\n \"_value\" in o\n ? o._value\n : o.value\n return val\n })\n _vm.$set(\n _vm.notifiers.pushbullet,\n \"device\",\n $event.target.multiple\n ? $$selectedVal\n : $$selectedVal[0]\n )\n }\n }\n },\n _vm._l(\n _vm.pushbulletDeviceOptions,\n function(option) {\n return _c(\n \"option\",\n {\n key: option.value,\n domProps: { value: option.value },\n on: {\n change: function($event) {\n _vm.pushbulletTestInfo =\n \"Don't forget to save your new pushbullet settings.\"\n }\n }\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(option.text) +\n \"\\n \"\n )\n ]\n )\n }\n ),\n 0\n ),\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\"select device you wish to push to.\")\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testPushbullet-resultsfsf\" }\n },\n [_vm._v(_vm._s(_vm.pushbulletTestInfo))]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Pushbullet\",\n id: \"testPushbullet\"\n },\n on: { click: _vm.testPushbulletApi }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-join\",\n attrs: { title: \"Join\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://joaoapps.com/join/\" } },\n [_vm._v(\"Join\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Join is a platform for receiving custom push notifications to connected devices running Android and desktop Chrome browsers.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_join\",\n explanations: [\"Send join notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.join.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.join, \"enabled\", $$v)\n },\n expression: \"notifiers.join.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.join.enabled,\n expression: \"notifiers.join.enabled\"\n }\n ],\n attrs: { id: \"content-use-join-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"join_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.join.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.join,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.join.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"join_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.join.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.join,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression: \"notifiers.join.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"join_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.join.notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.join,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.join.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Join API key\",\n id: \"join_api\",\n explanations: [\n \"API key of your Join account.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.join.api,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.join, \"api\", $$v)\n },\n expression: \"notifiers.join.api\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Join Device ID(s) key\",\n id: \"join_device\",\n explanations: [\n \"Enter DeviceID of the device(s) you wish to send notifications to, comma separated if using multiple.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.join.device,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.join, \"device\", $$v)\n },\n expression: \"notifiers.join.device\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testJoin-result\" }\n },\n [_vm._v(_vm._s(_vm.joinTestInfo))]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Join\",\n id: \"testJoin\"\n },\n on: { click: _vm.testJoinApi }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-freemobile\",\n attrs: { title: \"Free Mobile\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"http://mobile.free.fr/\" } },\n [_vm._v(\"Free Mobile\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Free Mobile is a famous French cellular network provider. It provides to their customer a free SMS API.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_freemobile\",\n explanations: [\"Send SMS notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.freemobile.enabled,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.freemobile,\n \"enabled\",\n $$v\n )\n },\n expression: \"notifiers.freemobile.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.freemobile.enabled,\n expression: \"notifiers.freemobile.enabled\"\n }\n ],\n attrs: { id: \"content-use-freemobile-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"freemobile_notify_onsnatch\",\n explanations: [\n \"send an SMS when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.freemobile.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.freemobile,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression:\n \"notifiers.freemobile.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"freemobile_notify_ondownload\",\n explanations: [\n \"send an SMS when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.freemobile.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.freemobile,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.freemobile.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"freemobile_notify_onsubtitledownload\",\n explanations: [\n \"send an SMS when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.freemobile\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.freemobile,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.freemobile.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Free Mobile customer ID\",\n id: \"freemobile_id\",\n explanations: [\n \"It's your Free Mobile customer ID (8 digits)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.freemobile.id,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.freemobile,\n \"id\",\n $$v\n )\n },\n expression: \"notifiers.freemobile.id\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Free Mobile API Key\",\n id: \"freemobile_apikey\",\n explanations: [\n \"Find your API Key in your customer portal.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.freemobile.api,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.freemobile,\n \"api\",\n $$v\n )\n },\n expression: \"notifiers.freemobile.api\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testFreeMobile-result\" }\n },\n [_vm._v(\"Click below to test your settings.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test SMS\",\n id: \"testFreeMobile\"\n },\n on: { click: _vm.testFreeMobile }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-telegram\",\n attrs: { title: \"Telegram\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://telegram.org/\" } },\n [_vm._v(\"Telegram\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Telegram is a cloud-based instant messaging service.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_telegram\",\n explanations: [\"Send Telegram notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.telegram.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.telegram, \"enabled\", $$v)\n },\n expression: \"notifiers.telegram.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.telegram.enabled,\n expression: \"notifiers.telegram.enabled\"\n }\n ],\n attrs: { id: \"content-use-telegram-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"telegram_notify_onsnatch\",\n explanations: [\n \"Send a message when a download starts??\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.telegram.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.telegram,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression:\n \"notifiers.telegram.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"telegram_notify_ondownload\",\n explanations: [\n \"send a message when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.telegram.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.telegram,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.telegram.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"telegram_notify_onsubtitledownload\",\n explanations: [\n \"send a message when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.telegram\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.telegram,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.telegram.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"User/group ID\",\n id: \"telegram_id\",\n explanations: [\n \"Contact @myidbot on Telegram to get an ID\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.telegram.id,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.telegram, \"id\", $$v)\n },\n expression: \"notifiers.telegram.id\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Bot API token\",\n id: \"telegram_apikey\",\n explanations: [\n \"Contact @BotFather on Telegram to set up one\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.telegram.api,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.telegram, \"api\", $$v)\n },\n expression: \"notifiers.telegram.api\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testTelegram-result\" }\n },\n [_vm._v(\"Click below to test your settings.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Telegram\",\n id: \"testTelegram\"\n },\n on: { click: _vm.testTelegram }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-discord\",\n attrs: { title: \"Discord\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://discordapp.com/\" } },\n [_vm._v(\"Discord\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Discord is a cloud-based All-in-one voice and text chat for gamers that's free, secure, and works on both your desktop and phone..\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_discord\",\n explanations: [\"Send Discord notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.discord.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.discord, \"enabled\", $$v)\n },\n expression: \"notifiers.discord.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.discord.enabled,\n expression: \"notifiers.discord.enabled\"\n }\n ],\n attrs: { id: \"content-use-discord-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"discord_notify_onsnatch\",\n explanations: [\n \"Send a message when a download starts??\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.discord.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.discord,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.discord.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"discord_notify_ondownload\",\n explanations: [\n \"send a message when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.discord.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.discord,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.discord.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"discord_notify_onsubtitledownload\",\n explanations: [\n \"send a message when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.discord\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.discord,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.discord.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Channel webhook\",\n id: \"discord_webhook\",\n explanations: [\n \"Add a webhook to a channel, use the returned url here\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.discord.webhook,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.discord,\n \"webhook\",\n $$v\n )\n },\n expression: \"notifiers.discord.webhook\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Text to speech\",\n id: \"discord_tts\",\n explanations: [\n \"Use discord text to speech feature\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.discord.tts,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.discord, \"tts\", $$v)\n },\n expression: \"notifiers.discord.tts\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Bot username\",\n id: \"discord_name\",\n explanations: [\n \"Create a username for the Discord Bot to use\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.discord.name,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.discord, \"name\", $$v)\n },\n expression: \"notifiers.discord.name\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testDiscord-result\" }\n },\n [_vm._v(\"Click below to test your settings.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Discord\",\n id: \"testDiscord\"\n },\n on: { click: _vm.testDiscord }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"br\"),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ]),\n _vm._v(\" \"),\n _c(\"div\", { attrs: { id: \"social\" } }, [\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-twitter\",\n attrs: { title: \"Twitter\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://www.twitter.com\" } },\n [_vm._v(\"Twitter\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"A social networking and microblogging service, enabling its users to send and read other users' messages called tweets.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_twitter\",\n explanations: [\n \"Should Medusa post tweets on Twitter?\",\n \"Note: you may want to use a secondary account.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.twitter.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.twitter, \"enabled\", $$v)\n },\n expression: \"notifiers.twitter.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.twitter.enabled,\n expression: \"notifiers.twitter.enabled\"\n }\n ],\n attrs: { id: \"content-use-twitter\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"twitter_notify_onsnatch\",\n explanations: [\n \"send an SMS when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.twitter.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.twitter,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.twitter.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"twitter_notify_ondownload\",\n explanations: [\n \"send an SMS when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.twitter.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.twitter,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.twitter.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"twitter_notify_onsubtitledownload\",\n explanations: [\n \"send an SMS when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.twitter\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.twitter,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.twitter.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Send direct message\",\n id: \"twitter_usedm\",\n explanations: [\n \"send a notification via Direct Message, not via status update\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.twitter.directMessage,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.twitter,\n \"directMessage\",\n $$v\n )\n },\n expression: \"notifiers.twitter.directMessage\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Send DM to\",\n id: \"twitter_dmto\",\n explanations: [\n \"Twitter account to send Direct Messages to (must follow you)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.twitter.dmto,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.twitter, \"dmto\", $$v)\n },\n expression: \"notifiers.twitter.dmto\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"twitterStep1\",\n label: \"Step 1\"\n }\n },\n [\n _c(\n \"span\",\n { staticStyle: { \"font-size\": \"11px\" } },\n [\n _vm._v(\n 'Click the \"Request Authorization\" button. '\n ),\n _c(\"br\"),\n _vm._v(\n \"This will open a new page containing an auth key. \"\n ),\n _c(\"br\"),\n _vm._v(\n \"Note: if nothing happens check your popup blocker.\"\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Request Authorization\",\n id: \"twitter-step-1\"\n },\n on: {\n click: function($event) {\n return _vm.twitterStep1($event)\n }\n }\n })\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"twitterStep2\",\n label: \"Step 2\"\n }\n },\n [\n _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.twitterKey,\n expression: \"twitterKey\"\n }\n ],\n staticClass:\n \"form-control input-sm max-input350\",\n staticStyle: { display: \"inline\" },\n attrs: {\n type: \"text\",\n id: \"twitter_key\",\n placeholder:\n \"Enter the key Twitter gave you, and click 'Verify Key'\"\n },\n domProps: { value: _vm.twitterKey },\n on: {\n input: function($event) {\n if ($event.target.composing) {\n return\n }\n _vm.twitterKey = $event.target.value\n }\n }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa btn-inline\",\n attrs: {\n type: \"button\",\n value: \"Verify Key\",\n id: \"twitter-step-2\"\n },\n on: {\n click: function($event) {\n return _vm.twitterStep2($event)\n }\n }\n })\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", {\n staticClass: \"testNotification\",\n attrs: { id: \"testTwitter-result\" },\n domProps: {\n innerHTML: _vm._s(_vm.twitterTestInfo)\n }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Twitter\",\n id: \"testTwitter\"\n },\n on: { click: _vm.twitterTest }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\"a\", { attrs: { href: \"#trakt\" } }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-trakt\",\n attrs: { title: \"Trakt\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://trakt.tv/\" } },\n [_vm._v(\"Trakt\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"trakt helps keep a record of what TV shows and movies you are watching. Based on your favorites, trakt recommends additional shows and movies you'll enjoy!\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_trakt\",\n explanations: [\"Send Trakt.tv notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.trakt.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.trakt, \"enabled\", $$v)\n },\n expression: \"notifiers.trakt.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.trakt.enabled,\n expression: \"notifiers.trakt.enabled\"\n }\n ],\n attrs: { id: \"content-use-trakt-client\" }\n },\n [\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"trakt_request_auth\",\n label: \"\"\n }\n },\n [\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Connect to your trakt account\",\n id: \"Trakt\"\n },\n on: { click: _vm.TraktRequestDeviceCode }\n }),\n _vm._v(\" \"),\n _vm.traktRequestSend && _vm.traktUserCode\n ? _c(\n \"span\",\n { staticStyle: { display: \"inline\" } },\n [\n _vm._v(\n \"Use this code in the popup: \" +\n _vm._s(_vm.traktUserCode)\n )\n ]\n )\n : _vm._e(),\n _vm._v(\" \"),\n _vm.traktRequestSend &&\n _vm.traktUserCode &&\n _vm.traktRequestMessage\n ? _c(\"p\", [\n _vm._v(\n \"Trakt request status: \" +\n _vm._s(_vm.traktRequestMessage)\n )\n ])\n : _vm._e(),\n _vm._v(\" \"),\n _vm.traktRequestAuthenticated &&\n _vm.traktRequestMessage\n ? _c(\"p\", [\n _vm._v(_vm._s(_vm.traktRequestMessage))\n ])\n : _vm._e()\n ]\n ),\n _vm._v(\" \"),\n _c(\"config-textbox-number\", {\n attrs: {\n label: \"API Timeout\",\n id: \"trakt_timeout\",\n explanations: [\n \"Seconds to wait for Trakt API to respond. (Use 0 to wait forever)\"\n ]\n },\n model: {\n value: _vm.notifiers.trakt.timeout,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"timeout\",\n $$v\n )\n },\n expression: \"notifiers.trakt.timeout\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"trakt_default_indexer\",\n label: \"Default indexer\"\n }\n },\n [\n _c(\n \"select\",\n {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value:\n _vm.notifiers.trakt.defaultIndexer,\n expression:\n \"notifiers.trakt.defaultIndexer\"\n }\n ],\n staticClass: \"form-control\",\n attrs: {\n id: \"trakt_default_indexer\",\n name: \"trakt_default_indexer\"\n },\n on: {\n change: function($event) {\n var $$selectedVal = Array.prototype.filter\n .call(\n $event.target.options,\n function(o) {\n return o.selected\n }\n )\n .map(function(o) {\n var val =\n \"_value\" in o\n ? o._value\n : o.value\n return val\n })\n _vm.$set(\n _vm.notifiers.trakt,\n \"defaultIndexer\",\n $event.target.multiple\n ? $$selectedVal\n : $$selectedVal[0]\n )\n }\n }\n },\n _vm._l(_vm.traktIndexersOptions, function(\n option\n ) {\n return _c(\n \"option\",\n {\n key: option.key,\n domProps: { value: option.value }\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(option.text) +\n \"\\n \"\n )\n ]\n )\n }),\n 0\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Sync libraries\",\n id: \"trakt_sync\",\n explanations: [\n \"Sync your Medusa show library with your Trakt collection.\",\n \"Note: Don't enable this setting if you use the Trakt addon for Kodi or any other script that syncs your library.\",\n \"Kodi detects that the episode was deleted and removes from collection which causes Medusa to re-add it. This causes a loop between Medusa and Kodi adding and deleting the episode.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.trakt.sync,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.trakt, \"sync\", $$v)\n },\n expression: \"notifiers.trakt.sync\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.trakt.sync,\n expression: \"notifiers.trakt.sync\"\n }\n ],\n attrs: { id: \"content-use-trakt-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Remove Episodes From Collection\",\n id: \"trakt_remove_watchlist\",\n explanations: [\n \"Remove an Episode from your Trakt Collection if it is not in your Medusa Library.\",\n \"Note:Don't enable this setting if you use the Trakt addon for Kodi or any other script that syncs your library.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.trakt.removeWatchlist,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"removeWatchlist\",\n $$v\n )\n },\n expression:\n \"notifiers.trakt.removeWatchlist\"\n }\n })\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Sync watchlist\",\n id: \"trakt_sync_watchlist\",\n explanations: [\n \"Sync your Medusa library with your Trakt Watchlist (either Show and Episode).\",\n \"Episode will be added on watch list when wanted or snatched and will be removed when downloaded\",\n \"Note: By design, Trakt automatically removes episodes and/or shows from watchlist as soon you have watched them.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.trakt.syncWatchlist,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"syncWatchlist\",\n $$v\n )\n },\n expression: \"notifiers.trakt.syncWatchlist\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.trakt.syncWatchlist,\n expression:\n \"notifiers.trakt.syncWatchlist\"\n }\n ],\n attrs: { id: \"content-use-trakt-client\" }\n },\n [\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"trakt_default_indexer\",\n label: \"Watchlist add method\"\n }\n },\n [\n _c(\n \"select\",\n {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value:\n _vm.notifiers.trakt.methodAdd,\n expression:\n \"notifiers.trakt.methodAdd\"\n }\n ],\n staticClass: \"form-control\",\n attrs: {\n id: \"trakt_method_add\",\n name: \"trakt_method_add\"\n },\n on: {\n change: function($event) {\n var $$selectedVal = Array.prototype.filter\n .call(\n $event.target.options,\n function(o) {\n return o.selected\n }\n )\n .map(function(o) {\n var val =\n \"_value\" in o\n ? o._value\n : o.value\n return val\n })\n _vm.$set(\n _vm.notifiers.trakt,\n \"methodAdd\",\n $event.target.multiple\n ? $$selectedVal\n : $$selectedVal[0]\n )\n }\n }\n },\n _vm._l(_vm.traktMethodOptions, function(\n option\n ) {\n return _c(\n \"option\",\n {\n key: option.key,\n domProps: { value: option.value }\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(option.text) +\n \"\\n \"\n )\n ]\n )\n }),\n 0\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"method in which to download episodes for new shows.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label:\n \"Sync medusa shows to your trakt watchlist\",\n id: \"sync_to_watchlist\",\n explanations: [\n \"Additionallly to adding shows from your watchlist to medusa, add shows from medusa to your watchlist\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.trakt.syncToWatchlist,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"syncToWatchlist\",\n $$v\n )\n },\n expression:\n \"notifiers.trakt.syncToWatchlist\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Remove episode\",\n id: \"trakt_remove_watchlist\",\n explanations: [\n \"remove an episode from your watchlist after it's downloaded.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.trakt.removeWatchlist,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"removeWatchlist\",\n $$v\n )\n },\n expression:\n \"notifiers.trakt.removeWatchlist\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Remove series\",\n id: \"trakt_remove_serieslist\",\n explanations: [\n \"remove the whole series from your watchlist after any download.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.trakt.removeSerieslist,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"removeSerieslist\",\n $$v\n )\n },\n expression:\n \"notifiers.trakt.removeSerieslist\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Remove watched show\",\n id: \"trakt_remove_show_from_application\",\n explanations: [\n \"remove the show from Medusa if it's ended and completely watched\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.trakt\n .removeShowFromApplication,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"removeShowFromApplication\",\n $$v\n )\n },\n expression:\n \"notifiers.trakt.removeShowFromApplication\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Start paused\",\n id: \"trakt_start_paused\",\n explanations: [\n \"shows grabbed from your trakt watchlist start paused.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.trakt.startPaused,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"startPaused\",\n $$v\n )\n },\n expression: \"notifiers.trakt.startPaused\"\n }\n })\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Trakt blackList name\",\n id: \"trakt_blacklist_name\",\n explanations: [\n \"Name(slug) of List on Trakt for blacklisting show on 'Add Trending Show' & 'Add Recommended Shows' pages\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.trakt.blacklistName,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"blacklistName\",\n $$v\n )\n },\n expression: \"notifiers.trakt.blacklistName\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testTrakt-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Trakt\",\n id: \"testTrakt\"\n },\n on: { click: _vm.testTrakt }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Force Sync\",\n id: \"forceSync\"\n },\n on: { click: _vm.traktForceSync }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n attrs: { type: \"hidden\", id: \"trakt_pin_url\" },\n domProps: { value: _vm.notifiers.trakt.pinUrl }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-email\",\n attrs: { title: \"Email\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n {\n attrs: {\n href:\n \"https://en.wikipedia.org/wiki/Comparison_of_webmail_providers\"\n }\n },\n [_vm._v(\"Email\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Allows configuration of email notifications on a per show basis.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_email\",\n explanations: [\"Send email notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.email, \"enabled\", $$v)\n },\n expression: \"notifiers.email.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.email.enabled,\n expression: \"notifiers.email.enabled\"\n }\n ],\n attrs: { id: \"content-use-email\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"email_notify_onsnatch\",\n explanations: [\n \"Send a message when a download starts??\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.email,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.email.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"email_notify_ondownload\",\n explanations: [\n \"send a message when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.email,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression: \"notifiers.email.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"email_notify_onsubtitledownload\",\n explanations: [\n \"send a message when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.email\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.email,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.email.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"SMTP host\",\n id: \"email_host\",\n explanations: [\n \"hostname of your SMTP email server.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.host,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.email, \"host\", $$v)\n },\n expression: \"notifiers.email.host\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox-number\", {\n attrs: {\n min: 1,\n step: 1,\n label: \"SMTP port\",\n id: \"email_port\",\n explanations: [\n \"port number used to connect to your SMTP host.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.port,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.email, \"port\", $$v)\n },\n expression: \"notifiers.email.port\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"SMTP from\",\n id: \"email_from\",\n explanations: [\n \"sender email address, some hosts require a real address.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.from,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.email, \"from\", $$v)\n },\n expression: \"notifiers.email.from\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Use TLS\",\n id: \"email_tls\",\n explanations: [\"check to use TLS encryption.\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.tls,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.email, \"tls\", $$v)\n },\n expression: \"notifiers.email.tls\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"SMTP username\",\n id: \"email_username\",\n explanations: [\n \"(optional) your SMTP server username.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.username,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.email,\n \"username\",\n $$v\n )\n },\n expression: \"notifiers.email.username\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n type: \"password\",\n label: \"SMTP password\",\n id: \"email_password\",\n explanations: [\n \"(optional) your SMTP server password.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.password,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.email,\n \"password\",\n $$v\n )\n },\n expression: \"notifiers.email.password\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"email_list\",\n label: \"Global email list\"\n }\n },\n [\n _c(\"select-list\", {\n attrs: {\n name: \"email_list\",\n id: \"email_list\",\n \"list-items\":\n _vm.notifiers.email.addressList\n },\n on: { change: _vm.emailUpdateAddressList }\n }),\n _vm._v(\n \"\\n Email addresses listed here, will receive notifications for \"\n ),\n _c(\"b\", [_vm._v(\"all\")]),\n _vm._v(\" shows.\"),\n _c(\"br\"),\n _vm._v(\n \"\\n (This field may be blank except when testing.)\\n \"\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Email Subject\",\n id: \"email_subject\",\n explanations: [\n \"Use a custom subject for some privacy protection?\",\n \"(Leave blank for the default Medusa subject)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.subject,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.email,\n \"subject\",\n $$v\n )\n },\n expression: \"notifiers.email.subject\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"email_show\",\n label: \"Show notification list\"\n }\n },\n [\n _c(\"show-selector\", {\n attrs: {\n \"select-class\":\n \"form-control input-sm max-input350\",\n \"place-holder\": \"-- Select a Show --\"\n },\n on: {\n change: function($event) {\n return _vm.emailUpdateShowEmail($event)\n }\n }\n })\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"form-group\" }, [\n _c(\"div\", { staticClass: \"row\" }, [\n _c(\n \"div\",\n {\n staticClass:\n \"offset-sm-2 col-sm-offset-2 col-sm-10 content\"\n },\n [\n _c(\"select-list\", {\n attrs: {\n name: \"email_list\",\n id: \"email_list\",\n \"list-items\":\n _vm.emailSelectedShowAdresses\n },\n on: {\n change: function($event) {\n return _vm.savePerShowNotifyList(\n \"email\",\n $event\n )\n }\n }\n }),\n _vm._v(\n \"\\n Email addresses listed here, will receive notifications for \"\n ),\n _c(\"b\", [_vm._v(\"all\")]),\n _vm._v(\" shows.\"),\n _c(\"br\"),\n _vm._v(\n \"\\n (This field may be blank except when testing.)\\n \"\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testEmail-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Email\",\n id: \"testEmail\"\n },\n on: { click: _vm.testEmail }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-slack\",\n attrs: { title: \"Slack\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://slack.com\" } },\n [_vm._v(\"Slack\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [_vm._v(\"Slack is a messaging app for teams.\")])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_slack_client\",\n explanations: [\"Send Slack notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.slack.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.slack, \"enabled\", $$v)\n },\n expression: \"notifiers.slack.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.slack.enabled,\n expression: \"notifiers.slack.enabled\"\n }\n ],\n attrs: { id: \"content-use-slack-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"slack_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.slack.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.slack,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.slack.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"slack_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.slack.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.slack,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression: \"notifiers.slack.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"slack_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.slack\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.slack,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.slack.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-textbox\",\n {\n attrs: {\n label: \"Slack Incoming Webhook\",\n id: \"slack_webhook\",\n explanations: [\n \"Create an incoming webhook, to communicate with your slack channel.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.slack.webhook,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.slack,\n \"webhook\",\n $$v\n )\n },\n expression: \"notifiers.slack.webhook\"\n }\n },\n [\n _c(\n \"app-link\",\n {\n attrs: {\n href:\n \"https://my.slack.com/services/new/incoming-webhook\"\n }\n },\n [\n _vm._v(\n \"https://my.slack.com/services/new/incoming-webhook/\"\n )\n ]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testSlack-result\" }\n },\n [_vm._v(\"Click below to test your settings.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Slack\",\n id: \"testSlack\"\n },\n on: { click: _vm.testSlack }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"br\"),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ])\n ])\n ]\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"clearfix\" })\n ],\n 1\n )\n}\nvar staticRenderFns = [\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"clear-left\" }, [\n _c(\"p\", [\n _c(\"b\", [_vm._v(\"Note:\")]),\n _vm._v(\" some Plex Home Theaters \"),\n _c(\"b\", { staticClass: \"boldest\" }, [_vm._v(\"do not\")]),\n _vm._v(\" support notifications e.g. Plexapp for Samsung TVs\")\n ])\n ])\n }\n]\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack://slim/./src/components/config-notifications.vue?./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"render\": () => (/* binding */ render),\n/* harmony export */ \"staticRenderFns\": () => (/* binding */ staticRenderFns)\n/* harmony export */ });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { attrs: { id: \"config-notifications\" } },\n [\n _c(\"vue-snotify\"),\n _vm._v(\" \"),\n _c(\"div\", { attrs: { id: \"config\" } }, [\n _c(\"div\", { attrs: { id: \"config-content\" } }, [\n _c(\n \"form\",\n {\n attrs: { id: \"configForm\", method: \"post\" },\n on: {\n submit: function($event) {\n $event.preventDefault()\n return _vm.save()\n }\n }\n },\n [\n _c(\"div\", { attrs: { id: \"config-components\" } }, [\n _c(\"ul\", [\n _c(\n \"li\",\n [\n _c(\"app-link\", { attrs: { href: \"#home-theater-nas\" } }, [\n _vm._v(\"Home Theater / NAS\")\n ])\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"li\",\n [\n _c(\"app-link\", { attrs: { href: \"#devices\" } }, [\n _vm._v(\"Devices\")\n ])\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"li\",\n [\n _c(\"app-link\", { attrs: { href: \"#social\" } }, [\n _vm._v(\"Social\")\n ])\n ],\n 1\n )\n ]),\n _vm._v(\" \"),\n _c(\"div\", { attrs: { id: \"home-theater-nas\" } }, [\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-kodi\",\n attrs: { title: \"KODI\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"http://kodi.tv\" } },\n [_vm._v(\"KODI\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"A free and open source cross-platform media center and home entertainment system software with a 10-foot user interface designed for the living-room TV.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_kodi\",\n explanations: [\"Send KODI commands?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.kodi, \"enabled\", $$v)\n },\n expression: \"notifiers.kodi.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.kodi.enabled,\n expression: \"notifiers.kodi.enabled\"\n }\n ],\n attrs: { id: \"content-use-kodi\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Always on\",\n id: \"kodi_always_on\",\n explanations: [\"log errors when unreachable?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.alwaysOn,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi,\n \"alwaysOn\",\n $$v\n )\n },\n expression: \"notifiers.kodi.alwaysOn\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"kodi_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.kodi.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"kodi_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression: \"notifiers.kodi.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"kodi_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.kodi.notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.kodi.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Update library\",\n id: \"kodi_update_library\",\n explanations: [\n \"update KODI library when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.update.library,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi.update,\n \"library\",\n $$v\n )\n },\n expression: \"notifiers.kodi.update.library\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Full library update\",\n id: \"kodi_update_full\",\n explanations: [\n \"perform a full library update if update per-show fails?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.update.full,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi.update,\n \"full\",\n $$v\n )\n },\n expression: \"notifiers.kodi.update.full\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Clean library\",\n id: \"kodi_clean_library\",\n explanations: [\n \"clean KODI library when replaces a already downloaded episode?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.cleanLibrary,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi,\n \"cleanLibrary\",\n $$v\n )\n },\n expression: \"notifiers.kodi.cleanLibrary\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Only update first host\",\n id: \"kodi_update_onlyfirst\",\n explanations: [\n \"only send library updates/clean to the first active host?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.update.onlyFirst,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi.update,\n \"onlyFirst\",\n $$v\n )\n },\n expression: \"notifiers.kodi.update.onlyFirst\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n label: \"KODI IP:Port\",\n labelFor: \"kodi_host\"\n }\n },\n [\n _c(\"select-list\", {\n attrs: {\n name: \"kodi_host\",\n id: \"kodi_host\",\n \"list-items\": _vm.notifiers.kodi.host\n },\n on: {\n change: function($event) {\n _vm.notifiers.kodi.host = $event.map(\n function(x) {\n return x.value\n }\n )\n }\n }\n }),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"host running KODI (eg. 192.168.1.100:8080)\"\n )\n ])\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Username\",\n id: \"kodi_username\",\n explanations: [\n \"username for your KODI server (blank for none)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.username,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi,\n \"username\",\n $$v\n )\n },\n expression: \"notifiers.kodi.username\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n type: \"password\",\n label: \"Password\",\n id: \"kodi_password\",\n explanations: [\n \"password for your KODI server (blank for none)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.password,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi,\n \"password\",\n $$v\n )\n },\n expression: \"notifiers.kodi.password\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testKODI-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test KODI\",\n id: \"testKODI\"\n },\n on: { click: _vm.testKODI }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-plex\",\n attrs: { title: \"Plex Media Server\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://plex.tv\" } },\n [_vm._v(\"Plex Media Server\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Experience your media on a visually stunning, easy to use interface on your Mac connected to your TV. Your media library has never looked this good!\"\n )\n ]),\n _vm._v(\" \"),\n _vm.notifiers.plex.server.enabled\n ? _c(\"p\", { staticClass: \"plexinfo\" }, [\n _vm._v(\n \"For sending notifications to Plex Home Theater (PHT) clients, use the KODI notifier with port \"\n ),\n _c(\"b\", [_vm._v(\"3005\")]),\n _vm._v(\".\")\n ])\n : _vm._e()\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_plex_server\",\n explanations: [\"Send Plex server notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.plex.server.enabled,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.server,\n \"enabled\",\n $$v\n )\n },\n expression: \"notifiers.plex.server.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.plex.server.enabled,\n expression: \"notifiers.plex.server.enabled\"\n }\n ],\n attrs: { id: \"content-use-plex-server\" }\n },\n [\n _c(\n \"config-textbox\",\n {\n attrs: {\n label: \"Plex Media Server Auth Token\",\n id: \"plex_server_token\"\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.plex.server.token,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.server,\n \"token\",\n $$v\n )\n },\n expression: \"notifiers.plex.server.token\"\n }\n },\n [\n _c(\"p\", [_vm._v(\"Auth Token used by plex\")]),\n _vm._v(\" \"),\n _c(\"p\", [\n _c(\n \"span\",\n [\n _vm._v(\"See: \"),\n _c(\n \"app-link\",\n {\n staticClass: \"wiki\",\n attrs: {\n href:\n \"https://support.plex.tv/hc/en-us/articles/204059436-Finding-your-account-token-X-Plex-Token\"\n }\n },\n [\n _c(\"strong\", [\n _vm._v(\n \"Finding your account token\"\n )\n ])\n ]\n )\n ],\n 1\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Username\",\n id: \"plex_server_username\",\n explanations: [\"blank = no authentication\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.plex.server.username,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.server,\n \"username\",\n $$v\n )\n },\n expression: \"notifiers.plex.server.username\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n type: \"password\",\n label: \"Password\",\n id: \"plex_server_password\",\n explanations: [\"blank = no authentication\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.plex.server.password,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.server,\n \"password\",\n $$v\n )\n },\n expression: \"notifiers.plex.server.password\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Update Library\",\n id: \"plex_update_library\",\n explanations: [\"log errors when unreachable?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.plex.server.updateLibrary,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.server,\n \"updateLibrary\",\n $$v\n )\n },\n expression:\n \"notifiers.plex.server.updateLibrary\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"plex_server_host\",\n label: \"Plex Media Server IP:Port\"\n }\n },\n [\n _c(\"select-list\", {\n attrs: {\n name: \"plex_server_host\",\n id: \"plex_server_host\",\n \"list-items\":\n _vm.notifiers.plex.server.host\n },\n on: {\n change: function($event) {\n _vm.notifiers.plex.server.host = $event.map(\n function(x) {\n return x.value\n }\n )\n }\n }\n }),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"one or more hosts running Plex Media Server\"\n ),\n _c(\"br\"),\n _vm._v(\n \"(eg. 192.168.1.1:32400, 192.168.1.2:32400)\"\n )\n ])\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"HTTPS\",\n id: \"plex_server_https\",\n explanations: [\n \"use https for plex media server requests?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.plex.server.https,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.server,\n \"https\",\n $$v\n )\n },\n expression: \"notifiers.plex.server.https\"\n }\n }),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"field-pair\" }, [\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testPMS-result\" }\n },\n [\n _vm._v(\n \"Click below to test Plex Media Server(s)\"\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Plex Media Server\",\n id: \"testPMS\"\n },\n on: { click: _vm.testPMS }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n }),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"clear-left\" }, [\n _vm._v(\" \")\n ])\n ])\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-plexth\",\n attrs: { title: \"Plex Media Client\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://plex.tv\" } },\n [_vm._v(\"Plex Home Theater\")]\n )\n ],\n 1\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_plex_client\",\n explanations: [\n \"Send Plex Home Theater notifications?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.plex.client.enabled,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.client,\n \"enabled\",\n $$v\n )\n },\n expression: \"notifiers.plex.client.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.plex.client.enabled,\n expression: \"notifiers.plex.client.enabled\"\n }\n ],\n attrs: { id: \"content-use-plex-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"plex_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.plex.client.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.client,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression:\n \"notifiers.plex.client.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"plex_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.plex.client.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.client,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.plex.client.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"plex_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.plex.client\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.client,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.plex.client.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"plex_client_host\",\n label: \"Plex Home Theater IP:Port\"\n }\n },\n [\n _c(\"select-list\", {\n attrs: {\n name: \"plex_client_host\",\n id: \"plex_client_host\",\n \"list-items\":\n _vm.notifiers.plex.client.host\n },\n on: {\n change: function($event) {\n _vm.notifiers.plex.client.host = $event.map(\n function(x) {\n return x.value\n }\n )\n }\n }\n }),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"one or more hosts running Plex Home Theater\"\n ),\n _c(\"br\"),\n _vm._v(\n \"(eg. 192.168.1.100:3000, 192.168.1.101:3000)\"\n )\n ])\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Username\",\n id: \"plex_client_username\",\n explanations: [\"blank = no authentication\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.plex.client.username,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.client,\n \"username\",\n $$v\n )\n },\n expression: \"notifiers.plex.client.username\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n type: \"password\",\n label: \"Password\",\n id: \"plex_client_password\",\n explanations: [\"blank = no authentication\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.plex.client.password,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.client,\n \"password\",\n $$v\n )\n },\n expression: \"notifiers.plex.client.password\"\n }\n }),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"field-pair\" }, [\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testPHT-result\" }\n },\n [\n _vm._v(\n \"Click below to test Plex Home Theater(s)\"\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Plex Home Theater\",\n id: \"testPHT\"\n },\n on: { click: _vm.testPHT }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n }),\n _vm._v(\" \"),\n _vm._m(0)\n ])\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-emby\",\n attrs: { title: \"Emby\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"http://emby.media\" } },\n [_vm._v(\"Emby\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"A home media server built using other popular open source technologies.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_emby\",\n explanations: [\"Send update commands to Emby?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.emby.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.emby, \"enabled\", $$v)\n },\n expression: \"notifiers.emby.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.emby.enabled,\n expression: \"notifiers.emby.enabled\"\n }\n ],\n attrs: { id: \"content_use_emby\" }\n },\n [\n _c(\"config-textbox\", {\n attrs: {\n label: \"Emby IP:Port\",\n id: \"emby_host\",\n explanations: [\n \"host running Emby (eg. 192.168.1.100:8096)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.emby.host,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.emby, \"host\", $$v)\n },\n expression: \"notifiers.emby.host\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: { label: \"Api Key\", id: \"emby_apikey\" },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.emby.apiKey,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.emby, \"apiKey\", $$v)\n },\n expression: \"notifiers.emby.apiKey\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testEMBY-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Emby\",\n id: \"testEMBY\"\n },\n on: { click: _vm.testEMBY }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-nmj\",\n attrs: { title: \"Networked Media Jukebox\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n {\n attrs: { href: \"http://www.popcornhour.com/\" }\n },\n [_vm._v(\"NMJ\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"The Networked Media Jukebox, or NMJ, is the official media jukebox interface made available for the Popcorn Hour 200-series.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_nmj\",\n explanations: [\"Send update commands to NMJ?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.nmj.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.nmj, \"enabled\", $$v)\n },\n expression: \"notifiers.nmj.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.nmj.enabled,\n expression: \"notifiers.nmj.enabled\"\n }\n ],\n attrs: { id: \"content-use-nmj\" }\n },\n [\n _c(\"config-textbox\", {\n attrs: {\n label: \"Popcorn IP address\",\n id: \"nmj_host\",\n explanations: [\n \"IP address of Popcorn 200-series (eg. 192.168.1.100)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.nmj.host,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.nmj, \"host\", $$v)\n },\n expression: \"notifiers.nmj.host\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"settingsNMJ\",\n label: \"Get settings\"\n }\n },\n [\n _c(\"input\", {\n staticClass: \"btn-medusa btn-inline\",\n attrs: {\n type: \"button\",\n value: \"Get Settings\",\n id: \"settingsNMJ\"\n },\n on: { click: _vm.settingsNMJ }\n }),\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n \"the Popcorn Hour device must be powered on and NMJ running.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"NMJ database\",\n id: \"nmj_database\",\n explanations: [\n \"automatically filled via the 'Get Settings' button.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.nmj.database,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.nmj, \"database\", $$v)\n },\n expression: \"notifiers.nmj.database\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"NMJ mount\",\n id: \"nmj_mount\",\n explanations: [\n \"automatically filled via the 'Get Settings' button.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.nmj.mount,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.nmj, \"mount\", $$v)\n },\n expression: \"notifiers.nmj.mount\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testNMJ-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test NMJ\",\n id: \"testNMJ\"\n },\n on: { click: _vm.testNMJ }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-nmj\",\n attrs: { title: \"Networked Media Jukebox v2\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n {\n attrs: { href: \"http://www.popcornhour.com/\" }\n },\n [_vm._v(\"NMJv2\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"The Networked Media Jukebox, or NMJv2, is the official media jukebox interface made available for the Popcorn Hour 300 & 400-series.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_nmjv2\",\n explanations: [\n \"Send popcorn hour (nmjv2) notifications?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.nmjv2.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.nmjv2, \"enabled\", $$v)\n },\n expression: \"notifiers.nmjv2.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.nmjv2.enabled,\n expression: \"notifiers.nmjv2.enabled\"\n }\n ],\n attrs: { id: \"content-use-nmjv2\" }\n },\n [\n _c(\"config-textbox\", {\n attrs: {\n label: \"Popcorn IP address\",\n id: \"nmjv2_host\",\n explanations: [\n \"IP address of Popcorn 300/400-series (eg. 192.168.1.100)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.nmjv2.host,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.nmjv2, \"host\", $$v)\n },\n expression: \"notifiers.nmjv2.host\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"nmjv2_database_location\",\n label: \"Database location\"\n }\n },\n [\n _c(\n \"label\",\n {\n staticClass: \"space-right\",\n attrs: { for: \"NMJV2_DBLOC_A\" }\n },\n [\n _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.notifiers.nmjv2.dbloc,\n expression: \"notifiers.nmjv2.dbloc\"\n }\n ],\n attrs: {\n type: \"radio\",\n name: \"nmjv2_dbloc\",\n VALUE: \"local\",\n id: \"NMJV2_DBLOC_A\"\n },\n domProps: {\n checked: _vm._q(\n _vm.notifiers.nmjv2.dbloc,\n null\n )\n },\n on: {\n change: function($event) {\n return _vm.$set(\n _vm.notifiers.nmjv2,\n \"dbloc\",\n null\n )\n }\n }\n }),\n _vm._v(\n \"\\n PCH Local Media\\n \"\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"label\",\n { attrs: { for: \"NMJV2_DBLOC_B\" } },\n [\n _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.notifiers.nmjv2.dbloc,\n expression: \"notifiers.nmjv2.dbloc\"\n }\n ],\n attrs: {\n type: \"radio\",\n name: \"nmjv2_dbloc\",\n VALUE: \"network\",\n id: \"NMJV2_DBLOC_B\"\n },\n domProps: {\n checked: _vm._q(\n _vm.notifiers.nmjv2.dbloc,\n null\n )\n },\n on: {\n change: function($event) {\n return _vm.$set(\n _vm.notifiers.nmjv2,\n \"dbloc\",\n null\n )\n }\n }\n }),\n _vm._v(\n \"\\n PCH Network Media\\n \"\n )\n ]\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"nmjv2_database_instance\",\n label: \"Database instance\"\n }\n },\n [\n _c(\n \"select\",\n {\n staticClass: \"form-control input-sm\",\n attrs: { id: \"NMJv2db_instance\" }\n },\n [\n _c(\"option\", { attrs: { value: \"0\" } }, [\n _vm._v(\"#1 \")\n ]),\n _vm._v(\" \"),\n _c(\"option\", { attrs: { value: \"1\" } }, [\n _vm._v(\"#2 \")\n ]),\n _vm._v(\" \"),\n _c(\"option\", { attrs: { value: \"2\" } }, [\n _vm._v(\"#3 \")\n ]),\n _vm._v(\" \"),\n _c(\"option\", { attrs: { value: \"3\" } }, [\n _vm._v(\"#4 \")\n ]),\n _vm._v(\" \"),\n _c(\"option\", { attrs: { value: \"4\" } }, [\n _vm._v(\"#5 \")\n ]),\n _vm._v(\" \"),\n _c(\"option\", { attrs: { value: \"5\" } }, [\n _vm._v(\"#6 \")\n ]),\n _vm._v(\" \"),\n _c(\"option\", { attrs: { value: \"6\" } }, [\n _vm._v(\"#7 \")\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n \"adjust this value if the wrong database is selected.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"get_nmjv2_find_database\",\n label: \"Find database\"\n }\n },\n [\n _c(\"input\", {\n staticClass: \"btn-medusa btn-inline\",\n attrs: {\n type: \"button\",\n value: \"Find Database\",\n id: \"settingsNMJv2\"\n },\n on: { click: _vm.settingsNMJv2 }\n }),\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n \"the Popcorn Hour device must be powered on.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"NMJv2 database\",\n id: \"nmjv2_database\",\n explanations: [\n \"automatically filled via the 'Find Database' buttons.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.nmjv2.database,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.nmjv2,\n \"database\",\n $$v\n )\n },\n expression: \"notifiers.nmjv2.database\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testNMJv2-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test NMJv2\",\n id: \"testNMJv2\"\n },\n on: { click: _vm.testNMJv2 }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-syno1\",\n attrs: { title: \"Synology\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"http://synology.com/\" } },\n [_vm._v(\"Synology\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [_vm._v(\"The Synology DiskStation NAS.\")]),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Synology Indexer is the daemon running on the Synology NAS to build its media database.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"HTTPS\",\n id: \"use_synoindex\",\n explanations: [\n \"Note: requires Medusa to be running on your Synology NAS.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.synologyIndex.enabled,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.synologyIndex,\n \"enabled\",\n $$v\n )\n },\n expression: \"notifiers.synologyIndex.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.synologyIndex.enabled,\n expression: \"notifiers.synologyIndex.enabled\"\n }\n ],\n attrs: { id: \"content_use_synoindex\" }\n },\n [\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ]\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-syno2\",\n attrs: { title: \"Synology Indexer\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"http://synology.com/\" } },\n [_vm._v(\"Synology Notifier\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Synology Notifier is the notification system of Synology DSM\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_synologynotifier\",\n explanations: [\n \"Send notifications to the Synology Notifier?\",\n \"Note: requires Medusa to be running on your Synology DSM.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.synology.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.synology, \"enabled\", $$v)\n },\n expression: \"notifiers.synology.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.synology.enabled,\n expression: \"notifiers.synology.enabled\"\n }\n ],\n attrs: { id: \"content-use-synology-notifier\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.synology.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.synology,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression:\n \"notifiers.synology.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"synology_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.synology.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.synology,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.synology.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"synology_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.synology\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.synology,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.synology.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-pytivo\",\n attrs: { title: \"pyTivo\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n {\n attrs: {\n href:\n \"http://pytivo.sourceforge.net/wiki/index.php/PyTivo\"\n }\n },\n [_vm._v(\"pyTivo\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"pyTivo is both an HMO and GoBack server. This notifier will load the completed downloads to your Tivo.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_pytivo\",\n explanations: [\"Send notifications to pyTivo?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pyTivo.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.pyTivo, \"enabled\", $$v)\n },\n expression: \"notifiers.pyTivo.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.pyTivo.enabled,\n expression: \"notifiers.pyTivo.enabled\"\n }\n ],\n attrs: { id: \"content-use-pytivo\" }\n },\n [\n _c(\"config-textbox\", {\n attrs: {\n label: \"pyTivo IP:Port\",\n id: \"pytivo_host\",\n explanations: [\n \"host running pyTivo (eg. 192.168.1.1:9032)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pyTivo.host,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.pyTivo, \"host\", $$v)\n },\n expression: \"notifiers.pyTivo.host\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"pyTivo share name\",\n id: \"pytivo_name\",\n explanations: [\n \"(Messages & Settings > Account & System Information > System Information > DVR name)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pyTivo.shareName,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pyTivo,\n \"shareName\",\n $$v\n )\n },\n expression: \"notifiers.pyTivo.shareName\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Tivo name\",\n id: \"pytivo_tivo_name\",\n explanations: [\n \"value used in pyTivo Web Configuration to name the share.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pyTivo.name,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.pyTivo, \"name\", $$v)\n },\n expression: \"notifiers.pyTivo.name\"\n }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"br\"),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ]),\n _vm._v(\" \"),\n _c(\"div\", { attrs: { id: \"devices\" } }, [\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-growl\",\n attrs: { title: \"Growl\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"http://growl.info/\" } },\n [_vm._v(\"Growl\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"A cross-platform unobtrusive global notification system.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_growl_client\",\n explanations: [\"Send Growl notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.growl.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.growl, \"enabled\", $$v)\n },\n expression: \"notifiers.growl.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.growl.enabled,\n expression: \"notifiers.growl.enabled\"\n }\n ],\n attrs: { id: \"content-use-growl-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"growl_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.growl.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.growl,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.growl.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"growl_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.growl.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.growl,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression: \"notifiers.growl.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"growl_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.growl\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.growl,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.growl.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Growl IP:Port\",\n id: \"growl_host\",\n explanations: [\n \"host running Growl (eg. 192.168.1.100:23053)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.growl.host,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.growl, \"host\", $$v)\n },\n expression: \"notifiers.growl.host\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n type: \"password\",\n label: \"Password\",\n id: \"growl_password\",\n explanations: [\n \"may leave blank if Medusa is on the same host.\",\n \"otherwise Growl requires a password to be used.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.growl.password,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.growl,\n \"password\",\n $$v\n )\n },\n expression: \"notifiers.growl.password\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testGrowl-result\" }\n },\n [\n _vm._v(\n \"Click below to register and test Growl, this is required for Growl notifications to work.\"\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Register Growl\",\n id: \"testGrowl\"\n },\n on: { click: _vm.testGrowl }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-prowl\",\n attrs: { title: \"Prowl\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"http://www.prowlapp.com/\" } },\n [_vm._v(\"Prowl\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [_vm._v(\"A Growl client for iOS.\")])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_prowl\",\n explanations: [\"Send Prowl notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.prowl.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.prowl, \"enabled\", $$v)\n },\n expression: \"notifiers.prowl.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.prowl.enabled,\n expression: \"notifiers.prowl.enabled\"\n }\n ],\n attrs: { id: \"content-use-prowl\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"prowl_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.prowl.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.prowl,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.prowl.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"prowl_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.prowl.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.prowl,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression: \"notifiers.prowl.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"prowl_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.prowl\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.prowl,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.prowl.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Prowl Message Title\",\n id: \"prowl_message_title\"\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.prowl.messageTitle,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.prowl,\n \"messageTitle\",\n $$v\n )\n },\n expression: \"notifiers.prowl.messageTitle\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"prowl_api\",\n label: \"Api\"\n }\n },\n [\n _c(\"select-list\", {\n attrs: {\n name: \"prowl_api\",\n id: \"prowl_api\",\n \"csv-enabled\": \"\",\n \"list-items\": _vm.notifiers.prowl.api\n },\n on: { change: _vm.onChangeProwlApi }\n }),\n _vm._v(\" \"),\n _c(\n \"span\",\n [\n _vm._v(\n \"Prowl API(s) listed here, will receive notifications for \"\n ),\n _c(\"b\", [_vm._v(\"all\")]),\n _vm._v(\n \" shows.\\n Your Prowl API key is available at:\\n \"\n ),\n _c(\n \"app-link\",\n {\n attrs: {\n href:\n \"https://www.prowlapp.com/api_settings.php\"\n }\n },\n [\n _vm._v(\n \"\\n https://www.prowlapp.com/api_settings.php\"\n )\n ]\n ),\n _c(\"br\"),\n _vm._v(\n \"\\n (This field may be blank except when testing.)\\n \"\n )\n ],\n 1\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"prowl_show_notification_list\",\n label: \"Show notification list\"\n }\n },\n [\n _c(\"show-selector\", {\n attrs: {\n \"select-class\":\n \"form-control input-sm max-input350\",\n \"place-holder\": \"-- Select a Show --\"\n },\n on: {\n change: function($event) {\n return _vm.prowlUpdateApiKeys($event)\n }\n }\n })\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"form-group\" }, [\n _c(\"div\", { staticClass: \"row\" }, [\n _c(\n \"div\",\n {\n staticClass:\n \"offset-sm-2 col-sm-offset-2 col-sm-10 content\"\n },\n [\n _c(\"select-list\", {\n attrs: {\n name: \"prowl-show-list\",\n id: \"prowl-show-list\",\n \"list-items\":\n _vm.prowlSelectedShowApiKeys\n },\n on: {\n change: function($event) {\n return _vm.savePerShowNotifyList(\n \"prowl\",\n $event\n )\n }\n }\n }),\n _vm._v(\n \"\\n Configure per-show notifications here by entering Prowl API key(s), after selecting a show in the drop-down box.\\n Be sure to activate the 'Save for this show' button below after each entry.\\n \"\n ),\n _c(\"span\", [\n _vm._v(\n \"The values are automatically saved when adding the api key.\"\n )\n ])\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"prowl_priority\",\n label: \"Prowl priority\"\n }\n },\n [\n _c(\n \"select\",\n {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.notifiers.prowl.priority,\n expression: \"notifiers.prowl.priority\"\n }\n ],\n staticClass: \"form-control input-sm\",\n attrs: {\n id: \"prowl_priority\",\n name: \"prowl_priority\"\n },\n on: {\n change: function($event) {\n var $$selectedVal = Array.prototype.filter\n .call(\n $event.target.options,\n function(o) {\n return o.selected\n }\n )\n .map(function(o) {\n var val =\n \"_value\" in o\n ? o._value\n : o.value\n return val\n })\n _vm.$set(\n _vm.notifiers.prowl,\n \"priority\",\n $event.target.multiple\n ? $$selectedVal\n : $$selectedVal[0]\n )\n }\n }\n },\n _vm._l(_vm.prowlPriorityOptions, function(\n option\n ) {\n return _c(\n \"option\",\n {\n key: option.value,\n domProps: { value: option.value }\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(option.text) +\n \"\\n \"\n )\n ]\n )\n }),\n 0\n ),\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n \"priority of Prowl messages from Medusa.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testProwl-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Prowl\",\n id: \"testProwl\"\n },\n on: { click: _vm.testProwl }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-libnotify\",\n attrs: { title: \"Libnotify\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n {\n attrs: {\n href:\n \"http://library.gnome.org/devel/libnotify/\"\n }\n },\n [_vm._v(\"Libnotify\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"p\",\n [\n _vm._v(\n \"The standard desktop notification API for Linux/*nix systems. This notifier will only function if the pynotify module is installed (Ubuntu/Debian package \"\n ),\n _c(\n \"app-link\",\n { attrs: { href: \"apt:python-notify\" } },\n [_vm._v(\"python-notify\")]\n ),\n _vm._v(\").\")\n ],\n 1\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_libnotify_client\",\n explanations: [\"Send Libnotify notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.libnotify.enabled,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.libnotify,\n \"enabled\",\n $$v\n )\n },\n expression: \"notifiers.libnotify.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.libnotify.enabled,\n expression: \"notifiers.libnotify.enabled\"\n }\n ],\n attrs: { id: \"content-use-libnotify\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"libnotify_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.libnotify.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.libnotify,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression:\n \"notifiers.libnotify.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"libnotify_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.libnotify.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.libnotify,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.libnotify.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"libnotify_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.libnotify\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.libnotify,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.libnotify.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testLibnotify-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Libnotify\",\n id: \"testLibnotify\"\n },\n on: { click: _vm.testLibnotify }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-pushover\",\n attrs: { title: \"Pushover\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://pushover.net/\" } },\n [_vm._v(\"Pushover\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Pushover makes it easy to send real-time notifications to your Android and iOS devices.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_pushover_client\",\n explanations: [\"Send Pushover notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushover.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.pushover, \"enabled\", $$v)\n },\n expression: \"notifiers.pushover.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.pushover.enabled,\n expression: \"notifiers.pushover.enabled\"\n }\n ],\n attrs: { id: \"content-use-pushover\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"pushover_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushover.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushover,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression:\n \"notifiers.pushover.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"pushover_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.pushover.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushover,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.pushover.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"pushover_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.pushover\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushover,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.pushover.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Pushover User Key\",\n id: \"pushover_userkey\",\n explanations: [\n \"User Key of your Pushover account\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushover.userKey,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushover,\n \"userKey\",\n $$v\n )\n },\n expression: \"notifiers.pushover.userKey\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-textbox\",\n {\n attrs: {\n label: \"Pushover API Key\",\n id: \"pushover_apikey\"\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushover.apiKey,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushover,\n \"apiKey\",\n $$v\n )\n },\n expression: \"notifiers.pushover.apiKey\"\n }\n },\n [\n _c(\n \"span\",\n [\n _c(\n \"app-link\",\n {\n attrs: {\n href:\n \"https://pushover.net/apps/build/\"\n }\n },\n [_c(\"b\", [_vm._v(\"Click here\")])]\n ),\n _vm._v(\" to create a Pushover API key\")\n ],\n 1\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"pushover_device\",\n label: \"Pushover Devices\"\n }\n },\n [\n _c(\"select-list\", {\n attrs: {\n name: \"pushover_device\",\n id: \"pushover_device\",\n \"list-items\":\n _vm.notifiers.pushover.device\n },\n on: {\n change: function($event) {\n _vm.notifiers.pushover.device = $event.map(\n function(x) {\n return x.value\n }\n )\n }\n }\n }),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"List of pushover devices you want to send notifications to\"\n )\n ])\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"pushover_sound\",\n label: \"Pushover notification sound\"\n }\n },\n [\n _c(\n \"select\",\n {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.notifiers.pushover.sound,\n expression: \"notifiers.pushover.sound\"\n }\n ],\n staticClass: \"form-control\",\n attrs: {\n id: \"pushover_sound\",\n name: \"pushover_sound\"\n },\n on: {\n change: function($event) {\n var $$selectedVal = Array.prototype.filter\n .call(\n $event.target.options,\n function(o) {\n return o.selected\n }\n )\n .map(function(o) {\n var val =\n \"_value\" in o\n ? o._value\n : o.value\n return val\n })\n _vm.$set(\n _vm.notifiers.pushover,\n \"sound\",\n $event.target.multiple\n ? $$selectedVal\n : $$selectedVal[0]\n )\n }\n }\n },\n _vm._l(_vm.pushoverSoundOptions, function(\n option\n ) {\n return _c(\n \"option\",\n {\n key: option.value,\n domProps: { value: option.value }\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(option.text) +\n \"\\n \"\n )\n ]\n )\n }),\n 0\n ),\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\"Choose notification sound to use\")\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"pushover_priority\",\n label: \"Pushover notification priority\"\n }\n },\n [\n _c(\n \"select\",\n {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value:\n _vm.notifiers.pushover.priority,\n expression:\n \"notifiers.pushover.priority\"\n }\n ],\n staticClass: \"form-control\",\n attrs: {\n id: \"pushover_priority\",\n name: \"pushover_priority\"\n },\n on: {\n change: function($event) {\n var $$selectedVal = Array.prototype.filter\n .call(\n $event.target.options,\n function(o) {\n return o.selected\n }\n )\n .map(function(o) {\n var val =\n \"_value\" in o\n ? o._value\n : o.value\n return val\n })\n _vm.$set(\n _vm.notifiers.pushover,\n \"priority\",\n $event.target.multiple\n ? $$selectedVal\n : $$selectedVal[0]\n )\n }\n }\n },\n _vm._l(\n _vm.pushoverPriorityOptions,\n function(option) {\n return _c(\n \"option\",\n {\n key: option.value,\n domProps: { value: option.value }\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(option.text) +\n \"\\n \"\n )\n ]\n )\n }\n ),\n 0\n ),\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n \"priority of Pushover messages from Medusa\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testPushover-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Pushover\",\n id: \"testPushover\"\n },\n on: { click: _vm.testPushover }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-boxcar2\",\n attrs: { title: \"Boxcar 2\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://new.boxcar.io/\" } },\n [_vm._v(\"Boxcar 2\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Read your messages where and when you want them!\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_boxcar2\",\n explanations: [\"Send boxcar2 notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.boxcar2.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.boxcar2, \"enabled\", $$v)\n },\n expression: \"notifiers.boxcar2.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.boxcar2.enabled,\n expression: \"notifiers.boxcar2.enabled\"\n }\n ],\n attrs: { id: \"content-use-boxcar2-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"boxcar2_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.boxcar2.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.boxcar2,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.boxcar2.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"boxcar2_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.boxcar2.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.boxcar2,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.boxcar2.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"boxcar2_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.boxcar2\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.boxcar2,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.boxcar2.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Boxcar2 Access token\",\n id: \"boxcar2_accesstoken\",\n explanations: [\n \"access token for your Boxcar account.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.boxcar2.accessToken,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.boxcar2,\n \"accessToken\",\n $$v\n )\n },\n expression: \"notifiers.boxcar2.accessToken\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testBoxcar2-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Boxcar\",\n id: \"testBoxcar2\"\n },\n on: { click: _vm.testBoxcar2 }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-pushalot\",\n attrs: { title: \"Pushalot\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://pushalot.com\" } },\n [_vm._v(\"Pushalot\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Pushalot is a platform for receiving custom push notifications to connected devices running Windows Phone or Windows 8.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_pushalot\",\n explanations: [\"Send Pushalot notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushalot.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.pushalot, \"enabled\", $$v)\n },\n expression: \"notifiers.pushalot.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.pushalot.enabled,\n expression: \"notifiers.pushalot.enabled\"\n }\n ],\n attrs: { id: \"content-use-pushalot-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"pushalot_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushalot.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushalot,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression:\n \"notifiers.pushalot.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"pushalot_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.pushalot.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushalot,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.pushalot.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"pushalot_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.pushalot\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushalot,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.pushalot.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Pushalot authorization token\",\n id: \"pushalot_authorizationtoken\",\n explanations: [\n \"authorization token of your Pushalot account.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushalot.authToken,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushalot,\n \"authToken\",\n $$v\n )\n },\n expression: \"notifiers.pushalot.authToken\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testPushalot-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Pushalot\",\n id: \"testPushalot\"\n },\n on: { click: _vm.testPushalot }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-pushbullet\",\n attrs: { title: \"Pushbullet\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://www.pushbullet.com\" } },\n [_vm._v(\"Pushbullet\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Pushbullet is a platform for receiving custom push notifications to connected devices running Android and desktop Chrome browsers.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_pushbullet\",\n explanations: [\"Send pushbullet notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushbullet.enabled,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushbullet,\n \"enabled\",\n $$v\n )\n },\n expression: \"notifiers.pushbullet.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.pushbullet.enabled,\n expression: \"notifiers.pushbullet.enabled\"\n }\n ],\n attrs: { id: \"content-use-pushbullet-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"pushbullet_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.pushbullet.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushbullet,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression:\n \"notifiers.pushbullet.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"pushbullet_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.pushbullet.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushbullet,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.pushbullet.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"pushbullet_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.pushbullet\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushbullet,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.pushbullet.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Pushbullet API key\",\n id: \"pushbullet_api\",\n explanations: [\n \"API key of your Pushbullet account.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushbullet.api,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushbullet,\n \"api\",\n $$v\n )\n },\n expression: \"notifiers.pushbullet.api\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"pushbullet_device_list\",\n label: \"Pushbullet devices\"\n }\n },\n [\n _c(\"input\", {\n staticClass: \"btn-medusa btn-inline\",\n attrs: {\n type: \"button\",\n value: \"Update device list\",\n id: \"get-pushbullet-devices\"\n },\n on: {\n click: _vm.getPushbulletDeviceOptions\n }\n }),\n _vm._v(\" \"),\n _c(\n \"select\",\n {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value:\n _vm.notifiers.pushbullet.device,\n expression:\n \"notifiers.pushbullet.device\"\n }\n ],\n staticClass: \"form-control\",\n attrs: {\n id: \"pushbullet_device_list\",\n name: \"pushbullet_device_list\"\n },\n on: {\n change: function($event) {\n var $$selectedVal = Array.prototype.filter\n .call(\n $event.target.options,\n function(o) {\n return o.selected\n }\n )\n .map(function(o) {\n var val =\n \"_value\" in o\n ? o._value\n : o.value\n return val\n })\n _vm.$set(\n _vm.notifiers.pushbullet,\n \"device\",\n $event.target.multiple\n ? $$selectedVal\n : $$selectedVal[0]\n )\n }\n }\n },\n _vm._l(\n _vm.pushbulletDeviceOptions,\n function(option) {\n return _c(\n \"option\",\n {\n key: option.value,\n domProps: { value: option.value },\n on: {\n change: function($event) {\n _vm.pushbulletTestInfo =\n \"Don't forget to save your new pushbullet settings.\"\n }\n }\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(option.text) +\n \"\\n \"\n )\n ]\n )\n }\n ),\n 0\n ),\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\"select device you wish to push to.\")\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testPushbullet-resultsfsf\" }\n },\n [_vm._v(_vm._s(_vm.pushbulletTestInfo))]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Pushbullet\",\n id: \"testPushbullet\"\n },\n on: { click: _vm.testPushbulletApi }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-join\",\n attrs: { title: \"Join\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://joaoapps.com/join/\" } },\n [_vm._v(\"Join\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Join is a platform for receiving custom push notifications to connected devices running Android and desktop Chrome browsers.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_join\",\n explanations: [\"Send join notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.join.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.join, \"enabled\", $$v)\n },\n expression: \"notifiers.join.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.join.enabled,\n expression: \"notifiers.join.enabled\"\n }\n ],\n attrs: { id: \"content-use-join-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"join_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.join.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.join,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.join.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"join_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.join.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.join,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression: \"notifiers.join.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"join_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.join.notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.join,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.join.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Join API key\",\n id: \"join_api\",\n explanations: [\n \"API key of your Join account.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.join.api,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.join, \"api\", $$v)\n },\n expression: \"notifiers.join.api\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Join Device ID(s) key\",\n id: \"join_device\",\n explanations: [\n \"Enter DeviceID of the device(s) you wish to send notifications to, comma separated if using multiple.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.join.device,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.join, \"device\", $$v)\n },\n expression: \"notifiers.join.device\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testJoin-result\" }\n },\n [_vm._v(_vm._s(_vm.joinTestInfo))]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Join\",\n id: \"testJoin\"\n },\n on: { click: _vm.testJoinApi }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-freemobile\",\n attrs: { title: \"Free Mobile\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"http://mobile.free.fr/\" } },\n [_vm._v(\"Free Mobile\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Free Mobile is a famous French cellular network provider. It provides to their customer a free SMS API.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_freemobile\",\n explanations: [\"Send SMS notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.freemobile.enabled,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.freemobile,\n \"enabled\",\n $$v\n )\n },\n expression: \"notifiers.freemobile.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.freemobile.enabled,\n expression: \"notifiers.freemobile.enabled\"\n }\n ],\n attrs: { id: \"content-use-freemobile-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"freemobile_notify_onsnatch\",\n explanations: [\n \"send an SMS when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.freemobile.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.freemobile,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression:\n \"notifiers.freemobile.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"freemobile_notify_ondownload\",\n explanations: [\n \"send an SMS when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.freemobile.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.freemobile,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.freemobile.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"freemobile_notify_onsubtitledownload\",\n explanations: [\n \"send an SMS when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.freemobile\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.freemobile,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.freemobile.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Free Mobile customer ID\",\n id: \"freemobile_id\",\n explanations: [\n \"It's your Free Mobile customer ID (8 digits)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.freemobile.id,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.freemobile,\n \"id\",\n $$v\n )\n },\n expression: \"notifiers.freemobile.id\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Free Mobile API Key\",\n id: \"freemobile_apikey\",\n explanations: [\n \"Find your API Key in your customer portal.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.freemobile.api,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.freemobile,\n \"api\",\n $$v\n )\n },\n expression: \"notifiers.freemobile.api\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testFreeMobile-result\" }\n },\n [_vm._v(\"Click below to test your settings.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test SMS\",\n id: \"testFreeMobile\"\n },\n on: { click: _vm.testFreeMobile }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-telegram\",\n attrs: { title: \"Telegram\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://telegram.org/\" } },\n [_vm._v(\"Telegram\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Telegram is a cloud-based instant messaging service.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_telegram\",\n explanations: [\"Send Telegram notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.telegram.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.telegram, \"enabled\", $$v)\n },\n expression: \"notifiers.telegram.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.telegram.enabled,\n expression: \"notifiers.telegram.enabled\"\n }\n ],\n attrs: { id: \"content-use-telegram-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"telegram_notify_onsnatch\",\n explanations: [\n \"Send a message when a download starts??\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.telegram.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.telegram,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression:\n \"notifiers.telegram.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"telegram_notify_ondownload\",\n explanations: [\n \"send a message when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.telegram.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.telegram,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.telegram.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"telegram_notify_onsubtitledownload\",\n explanations: [\n \"send a message when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.telegram\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.telegram,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.telegram.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"User/group ID\",\n id: \"telegram_id\",\n explanations: [\n \"Contact @myidbot on Telegram to get an ID\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.telegram.id,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.telegram, \"id\", $$v)\n },\n expression: \"notifiers.telegram.id\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Bot API token\",\n id: \"telegram_apikey\",\n explanations: [\n \"Contact @BotFather on Telegram to set up one\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.telegram.api,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.telegram, \"api\", $$v)\n },\n expression: \"notifiers.telegram.api\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testTelegram-result\" }\n },\n [_vm._v(\"Click below to test your settings.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Telegram\",\n id: \"testTelegram\"\n },\n on: { click: _vm.testTelegram }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-discord\",\n attrs: { title: \"Discord\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://discordapp.com/\" } },\n [_vm._v(\"Discord\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Discord is a cloud-based All-in-one voice and text chat for gamers that's free, secure, and works on both your desktop and phone..\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_discord\",\n explanations: [\"Send Discord notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.discord.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.discord, \"enabled\", $$v)\n },\n expression: \"notifiers.discord.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.discord.enabled,\n expression: \"notifiers.discord.enabled\"\n }\n ],\n attrs: { id: \"content-use-discord-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"discord_notify_onsnatch\",\n explanations: [\n \"Send a message when a download starts??\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.discord.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.discord,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.discord.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"discord_notify_ondownload\",\n explanations: [\n \"send a message when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.discord.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.discord,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.discord.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"discord_notify_onsubtitledownload\",\n explanations: [\n \"send a message when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.discord\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.discord,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.discord.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Channel webhook\",\n id: \"discord_webhook\",\n explanations: [\n \"Add a webhook to a channel, use the returned url here\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.discord.webhook,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.discord,\n \"webhook\",\n $$v\n )\n },\n expression: \"notifiers.discord.webhook\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Text to speech\",\n id: \"discord_tts\",\n explanations: [\n \"Use discord text to speech feature\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.discord.tts,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.discord, \"tts\", $$v)\n },\n expression: \"notifiers.discord.tts\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Override webhook avatar\",\n id: \"override_avatar\",\n explanations: [\n \"Override Discords default avatar with a Medusa icon\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.discord.overrideAvatar,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.discord,\n \"overrideAvatar\",\n $$v\n )\n },\n expression: \"notifiers.discord.overrideAvatar\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Bot username\",\n id: \"discord_name\",\n explanations: [\n \"Create a username for the Discord Bot to use\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.discord.name,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.discord, \"name\", $$v)\n },\n expression: \"notifiers.discord.name\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testDiscord-result\" }\n },\n [_vm._v(\"Click below to test your settings.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Discord\",\n id: \"testDiscord\"\n },\n on: { click: _vm.testDiscord }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"br\"),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ]),\n _vm._v(\" \"),\n _c(\"div\", { attrs: { id: \"social\" } }, [\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-twitter\",\n attrs: { title: \"Twitter\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://www.twitter.com\" } },\n [_vm._v(\"Twitter\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"A social networking and microblogging service, enabling its users to send and read other users' messages called tweets.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_twitter\",\n explanations: [\n \"Should Medusa post tweets on Twitter?\",\n \"Note: you may want to use a secondary account.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.twitter.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.twitter, \"enabled\", $$v)\n },\n expression: \"notifiers.twitter.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.twitter.enabled,\n expression: \"notifiers.twitter.enabled\"\n }\n ],\n attrs: { id: \"content-use-twitter\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"twitter_notify_onsnatch\",\n explanations: [\n \"send an SMS when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.twitter.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.twitter,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.twitter.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"twitter_notify_ondownload\",\n explanations: [\n \"send an SMS when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.twitter.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.twitter,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.twitter.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"twitter_notify_onsubtitledownload\",\n explanations: [\n \"send an SMS when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.twitter\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.twitter,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.twitter.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Send direct message\",\n id: \"twitter_usedm\",\n explanations: [\n \"send a notification via Direct Message, not via status update\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.twitter.directMessage,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.twitter,\n \"directMessage\",\n $$v\n )\n },\n expression: \"notifiers.twitter.directMessage\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Send DM to\",\n id: \"twitter_dmto\",\n explanations: [\n \"Twitter account to send Direct Messages to (must follow you)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.twitter.dmto,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.twitter, \"dmto\", $$v)\n },\n expression: \"notifiers.twitter.dmto\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"twitterStep1\",\n label: \"Step 1\"\n }\n },\n [\n _c(\n \"span\",\n { staticStyle: { \"font-size\": \"11px\" } },\n [\n _vm._v(\n 'Click the \"Request Authorization\" button. '\n ),\n _c(\"br\"),\n _vm._v(\n \"This will open a new page containing an auth key. \"\n ),\n _c(\"br\"),\n _vm._v(\n \"Note: if nothing happens check your popup blocker.\"\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Request Authorization\",\n id: \"twitter-step-1\"\n },\n on: {\n click: function($event) {\n return _vm.twitterStep1($event)\n }\n }\n })\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"twitterStep2\",\n label: \"Step 2\"\n }\n },\n [\n _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.twitterKey,\n expression: \"twitterKey\"\n }\n ],\n staticClass:\n \"form-control input-sm max-input350\",\n staticStyle: { display: \"inline\" },\n attrs: {\n type: \"text\",\n id: \"twitter_key\",\n placeholder:\n \"Enter the key Twitter gave you, and click 'Verify Key'\"\n },\n domProps: { value: _vm.twitterKey },\n on: {\n input: function($event) {\n if ($event.target.composing) {\n return\n }\n _vm.twitterKey = $event.target.value\n }\n }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa btn-inline\",\n attrs: {\n type: \"button\",\n value: \"Verify Key\",\n id: \"twitter-step-2\"\n },\n on: {\n click: function($event) {\n return _vm.twitterStep2($event)\n }\n }\n })\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", {\n staticClass: \"testNotification\",\n attrs: { id: \"testTwitter-result\" },\n domProps: {\n innerHTML: _vm._s(_vm.twitterTestInfo)\n }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Twitter\",\n id: \"testTwitter\"\n },\n on: { click: _vm.twitterTest }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\"a\", { attrs: { href: \"#trakt\" } }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-trakt\",\n attrs: { title: \"Trakt\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://trakt.tv/\" } },\n [_vm._v(\"Trakt\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"trakt helps keep a record of what TV shows and movies you are watching. Based on your favorites, trakt recommends additional shows and movies you'll enjoy!\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_trakt\",\n explanations: [\"Send Trakt.tv notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.trakt.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.trakt, \"enabled\", $$v)\n },\n expression: \"notifiers.trakt.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.trakt.enabled,\n expression: \"notifiers.trakt.enabled\"\n }\n ],\n attrs: { id: \"content-use-trakt-client\" }\n },\n [\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"trakt_request_auth\",\n label: \"\"\n }\n },\n [\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Connect to your trakt account\",\n id: \"Trakt\"\n },\n on: { click: _vm.TraktRequestDeviceCode }\n }),\n _vm._v(\" \"),\n _vm.traktRequestSend && _vm.traktUserCode\n ? _c(\n \"span\",\n { staticStyle: { display: \"inline\" } },\n [\n _vm._v(\n \"Use this code in the popup: \" +\n _vm._s(_vm.traktUserCode)\n )\n ]\n )\n : _vm._e(),\n _vm._v(\" \"),\n _vm.traktRequestSend &&\n _vm.traktUserCode &&\n _vm.traktRequestMessage\n ? _c(\"p\", [\n _vm._v(\n \"Trakt request status: \" +\n _vm._s(_vm.traktRequestMessage)\n )\n ])\n : _vm._e(),\n _vm._v(\" \"),\n _vm.traktRequestAuthenticated &&\n _vm.traktRequestMessage\n ? _c(\"p\", [\n _vm._v(_vm._s(_vm.traktRequestMessage))\n ])\n : _vm._e()\n ]\n ),\n _vm._v(\" \"),\n _c(\"config-textbox-number\", {\n attrs: {\n label: \"API Timeout\",\n id: \"trakt_timeout\",\n explanations: [\n \"Seconds to wait for Trakt API to respond. (Use 0 to wait forever)\"\n ]\n },\n model: {\n value: _vm.notifiers.trakt.timeout,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"timeout\",\n $$v\n )\n },\n expression: \"notifiers.trakt.timeout\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"trakt_default_indexer\",\n label: \"Default indexer\"\n }\n },\n [\n _c(\n \"select\",\n {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value:\n _vm.notifiers.trakt.defaultIndexer,\n expression:\n \"notifiers.trakt.defaultIndexer\"\n }\n ],\n staticClass: \"form-control\",\n attrs: {\n id: \"trakt_default_indexer\",\n name: \"trakt_default_indexer\"\n },\n on: {\n change: function($event) {\n var $$selectedVal = Array.prototype.filter\n .call(\n $event.target.options,\n function(o) {\n return o.selected\n }\n )\n .map(function(o) {\n var val =\n \"_value\" in o\n ? o._value\n : o.value\n return val\n })\n _vm.$set(\n _vm.notifiers.trakt,\n \"defaultIndexer\",\n $event.target.multiple\n ? $$selectedVal\n : $$selectedVal[0]\n )\n }\n }\n },\n _vm._l(_vm.traktIndexersOptions, function(\n option\n ) {\n return _c(\n \"option\",\n {\n key: option.key,\n domProps: { value: option.value }\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(option.text) +\n \"\\n \"\n )\n ]\n )\n }),\n 0\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Sync libraries\",\n id: \"trakt_sync\",\n explanations: [\n \"Sync your Medusa show library with your Trakt collection.\",\n \"Note: Don't enable this setting if you use the Trakt addon for Kodi or any other script that syncs your library.\",\n \"Kodi detects that the episode was deleted and removes from collection which causes Medusa to re-add it. This causes a loop between Medusa and Kodi adding and deleting the episode.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.trakt.sync,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.trakt, \"sync\", $$v)\n },\n expression: \"notifiers.trakt.sync\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.trakt.sync,\n expression: \"notifiers.trakt.sync\"\n }\n ],\n attrs: { id: \"content-use-trakt-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Remove Episodes From Collection\",\n id: \"trakt_remove_watchlist\",\n explanations: [\n \"Remove an Episode from your Trakt Collection if it is not in your Medusa Library.\",\n \"Note:Don't enable this setting if you use the Trakt addon for Kodi or any other script that syncs your library.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.trakt.removeWatchlist,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"removeWatchlist\",\n $$v\n )\n },\n expression:\n \"notifiers.trakt.removeWatchlist\"\n }\n })\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Sync watchlist\",\n id: \"trakt_sync_watchlist\",\n explanations: [\n \"Sync your Medusa library with your Trakt Watchlist (either Show and Episode).\",\n \"Episode will be added on watch list when wanted or snatched and will be removed when downloaded\",\n \"Note: By design, Trakt automatically removes episodes and/or shows from watchlist as soon you have watched them.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.trakt.syncWatchlist,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"syncWatchlist\",\n $$v\n )\n },\n expression: \"notifiers.trakt.syncWatchlist\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.trakt.syncWatchlist,\n expression:\n \"notifiers.trakt.syncWatchlist\"\n }\n ],\n attrs: { id: \"content-use-trakt-client\" }\n },\n [\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"trakt_default_indexer\",\n label: \"Watchlist add method\"\n }\n },\n [\n _c(\n \"select\",\n {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value:\n _vm.notifiers.trakt.methodAdd,\n expression:\n \"notifiers.trakt.methodAdd\"\n }\n ],\n staticClass: \"form-control\",\n attrs: {\n id: \"trakt_method_add\",\n name: \"trakt_method_add\"\n },\n on: {\n change: function($event) {\n var $$selectedVal = Array.prototype.filter\n .call(\n $event.target.options,\n function(o) {\n return o.selected\n }\n )\n .map(function(o) {\n var val =\n \"_value\" in o\n ? o._value\n : o.value\n return val\n })\n _vm.$set(\n _vm.notifiers.trakt,\n \"methodAdd\",\n $event.target.multiple\n ? $$selectedVal\n : $$selectedVal[0]\n )\n }\n }\n },\n _vm._l(_vm.traktMethodOptions, function(\n option\n ) {\n return _c(\n \"option\",\n {\n key: option.key,\n domProps: { value: option.value }\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(option.text) +\n \"\\n \"\n )\n ]\n )\n }),\n 0\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"method in which to download episodes for new shows.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label:\n \"Sync medusa shows to your trakt watchlist\",\n id: \"sync_to_watchlist\",\n explanations: [\n \"Additionallly to adding shows from your watchlist to medusa, add shows from medusa to your watchlist\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.trakt.syncToWatchlist,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"syncToWatchlist\",\n $$v\n )\n },\n expression:\n \"notifiers.trakt.syncToWatchlist\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Remove episode\",\n id: \"trakt_remove_watchlist\",\n explanations: [\n \"remove an episode from your watchlist after it's downloaded.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.trakt.removeWatchlist,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"removeWatchlist\",\n $$v\n )\n },\n expression:\n \"notifiers.trakt.removeWatchlist\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Remove series\",\n id: \"trakt_remove_serieslist\",\n explanations: [\n \"remove the whole series from your watchlist after any download.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.trakt.removeSerieslist,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"removeSerieslist\",\n $$v\n )\n },\n expression:\n \"notifiers.trakt.removeSerieslist\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Remove watched show\",\n id: \"trakt_remove_show_from_application\",\n explanations: [\n \"remove the show from Medusa if it's ended and completely watched\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.trakt\n .removeShowFromApplication,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"removeShowFromApplication\",\n $$v\n )\n },\n expression:\n \"notifiers.trakt.removeShowFromApplication\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Start paused\",\n id: \"trakt_start_paused\",\n explanations: [\n \"shows grabbed from your trakt watchlist start paused.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.trakt.startPaused,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"startPaused\",\n $$v\n )\n },\n expression: \"notifiers.trakt.startPaused\"\n }\n })\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Trakt blackList name\",\n id: \"trakt_blacklist_name\",\n explanations: [\n \"Name(slug) of List on Trakt for blacklisting show on 'Add Trending Show' & 'Add Recommended Shows' pages\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.trakt.blacklistName,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"blacklistName\",\n $$v\n )\n },\n expression: \"notifiers.trakt.blacklistName\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testTrakt-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Trakt\",\n id: \"testTrakt\"\n },\n on: { click: _vm.testTrakt }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Force Sync\",\n id: \"forceSync\"\n },\n on: { click: _vm.traktForceSync }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n attrs: { type: \"hidden\", id: \"trakt_pin_url\" },\n domProps: { value: _vm.notifiers.trakt.pinUrl }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-email\",\n attrs: { title: \"Email\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n {\n attrs: {\n href:\n \"https://en.wikipedia.org/wiki/Comparison_of_webmail_providers\"\n }\n },\n [_vm._v(\"Email\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Allows configuration of email notifications on a per show basis.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_email\",\n explanations: [\"Send email notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.email, \"enabled\", $$v)\n },\n expression: \"notifiers.email.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.email.enabled,\n expression: \"notifiers.email.enabled\"\n }\n ],\n attrs: { id: \"content-use-email\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"email_notify_onsnatch\",\n explanations: [\n \"Send a message when a download starts??\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.email,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.email.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"email_notify_ondownload\",\n explanations: [\n \"send a message when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.email,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression: \"notifiers.email.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"email_notify_onsubtitledownload\",\n explanations: [\n \"send a message when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.email\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.email,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.email.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"SMTP host\",\n id: \"email_host\",\n explanations: [\n \"hostname of your SMTP email server.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.host,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.email, \"host\", $$v)\n },\n expression: \"notifiers.email.host\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox-number\", {\n attrs: {\n min: 1,\n step: 1,\n label: \"SMTP port\",\n id: \"email_port\",\n explanations: [\n \"port number used to connect to your SMTP host.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.port,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.email, \"port\", $$v)\n },\n expression: \"notifiers.email.port\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"SMTP from\",\n id: \"email_from\",\n explanations: [\n \"sender email address, some hosts require a real address.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.from,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.email, \"from\", $$v)\n },\n expression: \"notifiers.email.from\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Use TLS\",\n id: \"email_tls\",\n explanations: [\"check to use TLS encryption.\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.tls,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.email, \"tls\", $$v)\n },\n expression: \"notifiers.email.tls\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"SMTP username\",\n id: \"email_username\",\n explanations: [\n \"(optional) your SMTP server username.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.username,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.email,\n \"username\",\n $$v\n )\n },\n expression: \"notifiers.email.username\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n type: \"password\",\n label: \"SMTP password\",\n id: \"email_password\",\n explanations: [\n \"(optional) your SMTP server password.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.password,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.email,\n \"password\",\n $$v\n )\n },\n expression: \"notifiers.email.password\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"email_list\",\n label: \"Global email list\"\n }\n },\n [\n _c(\"select-list\", {\n attrs: {\n name: \"email_list\",\n id: \"email_list\",\n \"list-items\":\n _vm.notifiers.email.addressList\n },\n on: { change: _vm.emailUpdateAddressList }\n }),\n _vm._v(\n \"\\n Email addresses listed here, will receive notifications for \"\n ),\n _c(\"b\", [_vm._v(\"all\")]),\n _vm._v(\" shows.\"),\n _c(\"br\"),\n _vm._v(\n \"\\n (This field may be blank except when testing.)\\n \"\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Email Subject\",\n id: \"email_subject\",\n explanations: [\n \"Use a custom subject for some privacy protection?\",\n \"(Leave blank for the default Medusa subject)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.subject,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.email,\n \"subject\",\n $$v\n )\n },\n expression: \"notifiers.email.subject\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"email_show\",\n label: \"Show notification list\"\n }\n },\n [\n _c(\"show-selector\", {\n attrs: {\n \"select-class\":\n \"form-control input-sm max-input350\",\n \"place-holder\": \"-- Select a Show --\"\n },\n on: {\n change: function($event) {\n return _vm.emailUpdateShowEmail($event)\n }\n }\n })\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"form-group\" }, [\n _c(\"div\", { staticClass: \"row\" }, [\n _c(\n \"div\",\n {\n staticClass:\n \"offset-sm-2 col-sm-offset-2 col-sm-10 content\"\n },\n [\n _c(\"select-list\", {\n attrs: {\n name: \"email_list\",\n id: \"email_list\",\n \"list-items\":\n _vm.emailSelectedShowAdresses\n },\n on: {\n change: function($event) {\n return _vm.savePerShowNotifyList(\n \"email\",\n $event\n )\n }\n }\n }),\n _vm._v(\n \"\\n Email addresses listed here, will receive notifications for \"\n ),\n _c(\"b\", [_vm._v(\"all\")]),\n _vm._v(\" shows.\"),\n _c(\"br\"),\n _vm._v(\n \"\\n (This field may be blank except when testing.)\\n \"\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testEmail-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Email\",\n id: \"testEmail\"\n },\n on: { click: _vm.testEmail }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-slack\",\n attrs: { title: \"Slack\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://slack.com\" } },\n [_vm._v(\"Slack\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [_vm._v(\"Slack is a messaging app for teams.\")])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_slack_client\",\n explanations: [\"Send Slack notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.slack.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.slack, \"enabled\", $$v)\n },\n expression: \"notifiers.slack.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.slack.enabled,\n expression: \"notifiers.slack.enabled\"\n }\n ],\n attrs: { id: \"content-use-slack-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"slack_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.slack.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.slack,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.slack.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"slack_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.slack.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.slack,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression: \"notifiers.slack.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"slack_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.slack\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.slack,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.slack.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-textbox\",\n {\n attrs: {\n label: \"Slack Incoming Webhook\",\n id: \"slack_webhook\",\n explanations: [\n \"Create an incoming webhook, to communicate with your slack channel.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.slack.webhook,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.slack,\n \"webhook\",\n $$v\n )\n },\n expression: \"notifiers.slack.webhook\"\n }\n },\n [\n _c(\n \"app-link\",\n {\n attrs: {\n href:\n \"https://my.slack.com/services/new/incoming-webhook\"\n }\n },\n [\n _vm._v(\n \"https://my.slack.com/services/new/incoming-webhook/\"\n )\n ]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testSlack-result\" }\n },\n [_vm._v(\"Click below to test your settings.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Slack\",\n id: \"testSlack\"\n },\n on: { click: _vm.testSlack }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"br\"),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\",\n disabled: _vm.saving\n }\n })\n ])\n ])\n ]\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"clearfix\" })\n ],\n 1\n )\n}\nvar staticRenderFns = [\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"clear-left\" }, [\n _c(\"p\", [\n _c(\"b\", [_vm._v(\"Note:\")]),\n _vm._v(\" some Plex Home Theaters \"),\n _c(\"b\", { staticClass: \"boldest\" }, [_vm._v(\"do not\")]),\n _vm._v(\" support notifications e.g. Plexapp for Samsung TVs\")\n ])\n ])\n }\n]\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack://slim/./src/components/config-notifications.vue?./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options"); /***/ }), From 0efa884af75b5e1b90912704e75301bc08b5b153 Mon Sep 17 00:00:00 2001 From: p0psicles Date: Wed, 16 Feb 2022 10:40:14 +0100 Subject: [PATCH 2/3] Improve namings * FIx tests --- medusa/__main__.py | 4 ++-- medusa/app.py | 2 +- medusa/notifiers/discord.py | 2 +- medusa/server/api/v2/config.py | 4 ++-- tests/apiv2/test_config.py | 6 +++++- 5 files changed, 11 insertions(+), 7 deletions(-) diff --git a/medusa/__main__.py b/medusa/__main__.py index 87aee20766..830da68a0b 100755 --- a/medusa/__main__.py +++ b/medusa/__main__.py @@ -800,7 +800,7 @@ def initialize(self, console_logging=True): check_setting_int(app.CFG, 'Discord', 'discord_notify_onsubtitledownload', 0)) app.DISCORD_WEBHOOK = check_setting_str(app.CFG, 'Discord', 'discord_webhook', '', censor_log='normal') app.DISCORD_TTS = check_setting_bool(app.CFG, 'Discord', 'discord_tts', 0) - app.OVERRIDE_AVATAR = check_setting_bool(app.CFG, 'Discord', 'override_avatar', 0) + app.DISCORD_OVERRIDE_AVATAR = check_setting_bool(app.CFG, 'Discord', 'override_avatar', 0) app.DISCORD_NAME = check_setting_str(app.CFG, 'Discord', 'discord_name', '', censor_log='normal') app.USE_PROWL = bool(check_setting_int(app.CFG, 'Prowl', 'use_prowl', 0)) @@ -1908,7 +1908,7 @@ def save_config(): new_config['Discord']['discord_notify_onsubtitledownload'] = int(app.DISCORD_NOTIFY_ONSUBTITLEDOWNLOAD) new_config['Discord']['discord_webhook'] = app.DISCORD_WEBHOOK new_config['Discord']['discord_tts'] = int(app.DISCORD_TTS) - new_config['Discord']['override_avatar'] = int(app.OVERRIDE_AVATAR) + new_config['Discord']['override_avatar'] = int(app.DISCORD_OVERRIDE_AVATAR) new_config['Discord']['discord_name'] = app.DISCORD_NAME new_config['Prowl'] = {} diff --git a/medusa/app.py b/medusa/app.py index 84e209c740..f8a8398e6b 100644 --- a/medusa/app.py +++ b/medusa/app.py @@ -435,7 +435,7 @@ def __init__(self): self.DISCORD_NAME = 'pymedusa' self.DISCORD_AVATAR_URL = '{base_url}/images/ico/favicon-144.png'.format(base_url=self.BASE_PYMEDUSA_URL) self.DISCORD_TTS = False - self.OVERRIDE_AVATAR = False + self.DISCORD_OVERRIDE_AVATAR = False self.USE_PROWL = False self.PROWL_NOTIFY_ONSNATCH = False diff --git a/medusa/notifiers/discord.py b/medusa/notifiers/discord.py index 8d40b0f313..d3f09f4d88 100644 --- a/medusa/notifiers/discord.py +++ b/medusa/notifiers/discord.py @@ -37,7 +37,7 @@ def _send_discord_msg(self, title, msg, webhook=None, tts=None, override_avatar= """Collect the parameters and send the message to the discord webhook.""" webhook = app.DISCORD_WEBHOOK if webhook is None else webhook tts = app.DISCORD_TTS if tts is None else tts - override_avatar = app.DISCORD_AVATAR_URL if override_avatar is None else override_avatar + override_avatar = app.DISCORD_OVERRIDE_AVATAR if override_avatar is None else override_avatar log.debug('Discord in use with API webhook: {webhook}', {'webhook': webhook}) diff --git a/medusa/server/api/v2/config.py b/medusa/server/api/v2/config.py index c71a7fd786..7293b156ed 100644 --- a/medusa/server/api/v2/config.py +++ b/medusa/server/api/v2/config.py @@ -432,7 +432,7 @@ class ConfigHandler(BaseRequestHandler): 'notifiers.discord.enabled': BooleanField(app, 'USE_DISCORD'), 'notifiers.discord.webhook': StringField(app, 'DISCORD_WEBHOOK'), 'notifiers.discord.tts': BooleanField(app, 'DISCORD_TTS'), - 'notifiers.discord.overrideAvatar': BooleanField(app, 'OVERRIDE_AVATAR'), + 'notifiers.discord.overrideAvatar': BooleanField(app, 'DISCORD_OVERRIDE_AVATAR'), 'notifiers.discord.notifyOnSnatch': BooleanField(app, 'DISCORD_NOTIFY_ONSNATCH'), 'notifiers.discord.notifyOnDownload': BooleanField(app, 'DISCORD_NOTIFY_ONDOWNLOAD'), 'notifiers.discord.notifyOnSubtitleDownload': BooleanField(app, 'DISCORD_NOTIFY_ONSUBTITLEDOWNLOAD'), @@ -1055,7 +1055,7 @@ def data_notifiers(): section_data['discord']['notifyOnSubtitleDownload'] = bool(app.DISCORD_NOTIFY_ONSUBTITLEDOWNLOAD) section_data['discord']['webhook'] = app.DISCORD_WEBHOOK section_data['discord']['tts'] = bool(app.DISCORD_TTS) - section_data['discord']['overrideAvatar'] = bool(app.OVERRIDE_AVATAR) + section_data['discord']['overrideAvatar'] = bool(app.DISCORD_OVERRIDE_AVATAR) section_data['discord']['name'] = app.DISCORD_NAME section_data['twitter'] = {} diff --git a/tests/apiv2/test_config.py b/tests/apiv2/test_config.py index b334b06715..9d11037e08 100644 --- a/tests/apiv2/test_config.py +++ b/tests/apiv2/test_config.py @@ -432,6 +432,9 @@ def config_postprocessing(): section_data['deleteRarContent'] = bool(app.DELRARCONTENTS) section_data['noDelete'] = bool(app.NO_DELETE) section_data['processMethod'] = app.PROCESS_METHOD + section_data['specificProcessMethod'] = bool(app.USE_SPECIFIC_PROCESS_METHOD) + section_data['processMethodTorrent'] = app.PROCESS_METHOD_TORRENT + section_data['processMethodNzb'] = app.PROCESS_METHOD_NZB section_data['reflinkAvailable'] = bool(pkgutil.find_loader('reflink')) section_data['autoPostprocessorFrequency'] = int(app.AUTOPOSTPROCESSOR_FREQUENCY) section_data['syncFiles'] = app.SYNC_FILES @@ -695,6 +698,7 @@ def config_notifiers(): section_data['discord']['notifyOnSubtitleDownload'] = bool(app.DISCORD_NOTIFY_ONSUBTITLEDOWNLOAD) section_data['discord']['webhook'] = app.DISCORD_WEBHOOK section_data['discord']['tts'] = bool(app.DISCORD_TTS) + section_data['discord']['overrideAvatar'] = bool(app.DISCORD_OVERRIDE_AVATAR) section_data['discord']['name'] = app.DISCORD_NAME section_data['twitter'] = {} @@ -910,7 +914,7 @@ def config_subtitles(): @pytest.mark.gen_test -async def test_config_get_postprocessing(http_client, create_url, auth_headers, config_subtitles): +async def test_config_get_subtitles(http_client, create_url, auth_headers, config_subtitles): # given expected = config_subtitles From 0a1970b247fde1e31b61b64e9c551af28e028d77 Mon Sep 17 00:00:00 2001 From: p0psicles Date: Wed, 16 Feb 2022 10:48:31 +0100 Subject: [PATCH 3/3] fix pytest --- tests/apiv2/test_config.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/apiv2/test_config.py b/tests/apiv2/test_config.py index 9d11037e08..3bcf7f3beb 100644 --- a/tests/apiv2/test_config.py +++ b/tests/apiv2/test_config.py @@ -419,6 +419,7 @@ def config_postprocessing(): section_data['naming']['animeNamingType'] = int_default(app.NAMING_ANIME, 3) section_data['naming']['stripYear'] = bool(app.NAMING_STRIP_YEAR) section_data['showDownloadDir'] = app.TV_DOWNLOAD_DIR + section_data['defaultClientPath'] = app.DEFAULT_CLIENT_PATH section_data['processAutomatically'] = bool(app.PROCESS_AUTOMATICALLY) section_data['postponeIfSyncFiles'] = bool(app.POSTPONE_IF_SYNC_FILES) section_data['postponeIfNoSubs'] = bool(app.POSTPONE_IF_NO_SUBS)