self.sonarr.get('rootfolder').then(function(result) { if (!result.length) { throw new Error('Could not get folders, try searching again'); } var folders = result; logger.info('user: %s, message: requested to get folder list', self.username); var folderList = [], keyboardList = []; var response = ['*Found ' + folders.length + ' folders*']; _.forEach(folders, function(n, key) { folderList.push({ 'path': n.path, 'folderId': n.id }); response.push('➸ ' + n.path); keyboardList.push([n.path]); }); response.push(i18n.__('selectFromMenu')); logger.info('user: %s, message: found the following folders %s', self.username, keyboardList.join(',')); // set cache self.cache.set('seriesTypeId' + self.user.id, type.type); self.cache.set('seriesFolderList' + self.user.id, folderList); self.cache.set('state' + self.user.id, state.sonarr.SEASON_FOLDER); return self._sendMessage(response.join('\n'), keyboardList); })
topic: function() { i18stub = {}; i18stub.locale = ""; i18stub.data = {}; i18stub.setLocale = function(str) { i18stub.locale = str; }; i18stub.__ = function(str) { if(i18stub.data[str]) { i18stub.data[str].push(i18stub.locale); } else { i18stub.data[str] = [ i18stub.locale ]; } }; fg.setLocalesGeneration(i18stub, [ 'en', 'ru']); var f = new fg.Form("TForm", null, null, [ "field1", "text" ], [ "field2", "text", { "class" : fg.__("_name") } ], [ "set", "fieldset", null, [ "field3", "text" ], [ "field4", "text" ] ], [ "field5", "text" ], [ "field6", "text" ] ); return i18stub.data; },
/* * verify admin of the bot */ function verifyAdmin(userId) { if (isAuthorized(userId)) { promptOwnerConfig(userId); } if (config.bot.owner !== userId) { return replyWithError(userId, new Error(i18n.__('adminOnly'))); } }
bot.onText(/\/revoke/, function(msg) { var fromId = msg.from.id; verifyAdmin(fromId); var opts = {}; if (!acl.allowedUsers.length) { var message = 'There aren\'t any allowed users.'; opts = { 'disable_web_page_preview': true, 'parse_mode': 'Markdown', 'selective': 2, }; return bot.sendMessage(fromId, message, opts); } var keyboardList = [], keyboardRow = [], revokeList = []; var response = ['*Allowed Users:*']; _.forEach(acl.allowedUsers, function(n, key) { revokeList.push({ 'id': key + 1, 'userId': n.id, 'keyboardValue': getTelegramName(n) }); response.push('➸ ' + getTelegramName(n)); keyboardRow.push(getTelegramName(n)); if (keyboardRow.length === 2) { keyboardList.push(keyboardRow); keyboardRow = []; } }); response.push(i18n.__('selectFromMenu')); if (keyboardRow.length === 1) { keyboardList.push([keyboardRow[0]]); } // set cache cache.set('state' + fromId, state.admin.REVOKE); cache.set('revokeUserList' + fromId, revokeList); return bot.sendMessage(fromId, response.join('\n'), { 'disable_web_page_preview': true, 'parse_mode': 'Markdown', 'selective': 2, 'reply_markup': JSON.stringify({ keyboard: keyboardList, one_time_keyboard: true }), }); });
topic: function() { var f = new fg.Form("TForm", null, null, [ "field1", "text" ], [ "field2", "text", { "class" : fg.__("_name") } ], [ "set", "fieldset", null, [ "field3", "text" ], [ "field4", "text" ] ], [ "field5", "text" ], [ "field6", "text" ] ); return f.getContent(i18n); },
SonarrMessage.prototype.sendSeasonFolderList = function(folderName) { var self = this; var folderList = self.cache.get('seriesFolderList' + self.user.id); if (!folderList) { return self._sendMessage(new Error('Something went wrong, try searching again')); } var folder = _.filter(folderList, function(item) { return item.path === folderName; })[0]; if (!folder) { return self._sendMessage(new Error('Something went wrong, try searching again')); } logger.info('user: %s, message: requested to get season folders list', self.username); var seasonFolder = ['yes', 'no']; var seasonFolderList = [], keyboardList = [], keyboardRow = []; var response = ['*Would you like to use season folders?*']; _.forEach(seasonFolder, function(n, key) { seasonFolderList.push({ 'type': n }); response.push('➸ ' + n); keyboardRow.push(n); if (keyboardRow.length === 2) { keyboardList.push(keyboardRow); keyboardRow = []; } }); if (keyboardRow.length === 1) { keyboardList.push([keyboardRow[0]]); } response.push(i18n.__('selectFromMenu')); logger.info('user: %s, message: found the following seasons folder types %s', self.username, keyboardList.join(',')); self.cache.set('seriesFolderId' + self.user.id, folder.folderId); self.cache.set('seriesSeasonFolderList' + self.user.id, seasonFolderList); self.cache.set('state' + self.user.id, state.sonarr.ADD_SERIES); return self._sendMessage(response.join('\n'), keyboardList); };
SonarrMessage.prototype.sendTypeList = function(monitorName) { var self = this; var monitorList = self.cache.get('seriesMonitorList' + self.user.id); if (!monitorList) { return self._sendMessage(new Error('Something went wrong, try searching again')); } var monitor = _.filter(monitorList, function(item) { return item.type === monitorName; })[0]; if (!monitor) { return self._sendMessage(new Error('Something went wrong, try searching again')); } logger.info('user: %s, message: requested to get series types list', self.username); var type = ['standard', 'airs daily', 'anime']; var typeList = [], keyboardList = [], keyboardRow = []; var response = ['*Select which type of series*']; _.forEach(type, function(n, key) { typeList.push({ 'type': n }); response.push('➸ ' + n); keyboardRow.push(n); if (keyboardRow.length === 2) { keyboardList.push(keyboardRow); keyboardRow = []; } }); if (keyboardRow.length === 1) { keyboardList.push([keyboardRow[0]]); } response.push(i18n.__('selectFromMenu')); logger.info('user: %s, message: found the following series types %s', self.username, keyboardList.join(',')); self.cache.set('seriesMonitorId' + self.user.id, monitor.type); self.cache.set('seriesTypeList' + self.user.id, typeList); self.cache.set('state' + self.user.id, state.sonarr.FOLDER); return self._sendMessage(response.join('\n'), keyboardList); };
SonarrMessage.prototype.sendMonitorList = function(profileName) { var self = this; var profileList = self.cache.get('seriesProfileList' + self.user.id); if (!profileList) { return self._sendMessage(new Error('Something went wrong, try searching again')); } var profile = _.filter(profileList, function(item) { return item.name === profileName; })[0]; if (!profile) { return self._sendMessage(new Error('Something went wrong, try searching again')); } logger.info('user: %s, message: requested to get monitor list', self.username); var monitor = ['future', 'all', 'none', 'latest', 'first']; var monitorList = [], keyboardList = [], keyboardRow = []; var response = ['*Select which seasons to monitor*']; _.forEach(monitor, function(n, key) { monitorList.push({ 'type': n }); response.push('➸ ' + n); keyboardRow.push(n); if (keyboardRow.length === 2) { keyboardList.push(keyboardRow); keyboardRow = []; } }); if (keyboardRow.length === 1) { keyboardList.push([keyboardRow[0]]); } response.push(i18n.__('selectFromMenu')); logger.info('user: %s, message: found the following monitor types %s', self.username, keyboardList.join(',')); self.cache.set('seriesProfileId' + self.user.id, profile.profileId); self.cache.set('seriesMonitorList' + self.user.id, monitorList); self.cache.set('state' + self.user.id, state.sonarr.TYPE); return self._sendMessage(response.join('\n'), keyboardList); };
self.sonarr.get('series/lookup', { 'term': seriesName }).then(function(result) { if (!result.length) { throw new Error('could not find ' + seriesName + ', try searching again'); } var series = result; logger.info('user: %s, message: requested to search for series "%s"', self.username, seriesName); var seriesList = [], keyboardList = []; series.length = (series.length > config.bot.maxResults ? config.bot.maxResults : series.length); var response = ['*Found ' + series.length + ' series *']; _.forEach(series, function(n, key) { var id = key + 1; var keyboardValue = n.title + (n.year ? ' - ' + n.year : ''); seriesList.push({ 'id': id, 'title': n.title, 'year': n.year, 'tvdbId': n.tvdbId, 'titleSlug': n.titleSlug, 'seasons': n.seasons, 'keyboardValue': keyboardValue }); keyboardList.push([keyboardValue]); response.push('➸ ['+keyboardValue+'](http://thetvdb.com/?tab=series&id='+n.tvdbId+')'); }); response.push(i18n.__('selectFromMenu')); logger.info('user: %s, message: found the following series %s', self.username, keyboardList.join(',')); // set cache self.cache.set('seriesList' + self.user.id, seriesList); self.cache.set('state' + self.user.id, state.sonarr.PROFILE); return self._sendMessage(response.join('\n'), keyboardList); })
self.sonarr.get('profile').then(function(result) { if (!result.length) { throw new Error('Could not get profiles, try searching again'); } var profiles = result; logger.info('user: %s, message: requested to get profile list', self.username); var profileList = [], keyboardList = [], keyboardRow = []; var response = ['*Found ' + profiles.length + ' profiles*']; _.forEach(profiles, function(n, key) { profileList.push({ 'name': n.name, 'profileId': n.id }); response.push('➸ ' + n.name); // Profile names are short, put two on each custom // keyboard row to reduce scrolling keyboardRow.push(n.name); if (keyboardRow.length === 2) { keyboardList.push(keyboardRow); keyboardRow = []; } }); if (keyboardRow.length === 1) { keyboardList.push([keyboardRow[0]]); } response.push(i18n.__('selectFromMenu')); logger.info('user: %s, message: found the following profiles %s', self.username, keyboardList.join(',')); // set cache self.cache.set('state' + self.user.id, state.sonarr.MONITOR); self.cache.set('seriesId' + self.user.id, series.id); self.cache.set('seriesProfileList' + self.user.id, profileList); return self._sendMessage(response.join('\n'), keyboardList); })
/* * verify user can use the bot */ function verifyUser(userId) { if (_.some(acl.allowedUsers, { 'id': userId }) !== true) { return replyWithError(userId, new Error(i18n.__('notAuthorized'))); } }
fail: function () { $('#upgradeloading').hide(); alert(il8n.__('Network requests failed, please try again')); }
it('__', function () { assert.equal('vaca', i18n.__('cow')); });