diff --git a/src/backend/variables/builtin-variable-loader.js b/src/backend/variables/builtin-variable-loader.js index d4fc49cb4..df53986e4 100644 --- a/src/backend/variables/builtin-variable-loader.js +++ b/src/backend/variables/builtin-variable-loader.js @@ -1,7 +1,5 @@ "use strict"; - const replaceVariableManager = require("./replace-variable-manager"); - exports.loadReplaceVariables = () => { [ 'account-creation-date', @@ -164,6 +162,7 @@ exports.loadReplaceVariables = () => { 'sub-points', 'sub-streak', 'sub-type', + 'sub-users', 'target', 'text-capitalize', 'text-contains', @@ -210,4 +209,5 @@ exports.loadReplaceVariables = () => { const definition = require(`./builtin/${filename}`); replaceVariableManager.registerReplaceVariable(definition); }); -}; \ No newline at end of file +}; +//# sourceMappingURL=builtin-variable-loader.js.map \ No newline at end of file diff --git a/src/backend/variables/builtin/sub-users.js b/src/backend/variables/builtin/sub-users.js new file mode 100644 index 000000000..121395b8d --- /dev/null +++ b/src/backend/variables/builtin/sub-users.js @@ -0,0 +1,33 @@ +'use strict'; +const { OutputDataType } = require("../../../shared/variable-constants"); +const api = require("../../twitch-api/api"); +const accountAccess = require("../../common/account-access"); +const logger = require("../../logwrapper"); +const model = { + definition: { + handle: "subNames", + description: "Returns an array of user names, of all the subs you currently have. Items contain 'username', 'tier' and 'isGift' properties", + possibleDataOutput: [OutputDataType.TEXT] + }, + evaluator: async () => { + const { streamer } = accountAccess.getAccounts(); + let viewers = []; + try { + const response = await api.streamerClient.subscriptions + .getSubscriptionsPaginated(streamer.channelId).getAll(); + if (response && response.length) { + viewers = response.map(sub => ({ + username: sub.userName, + tier: sub.tier, + isGift: sub.isGift + })); + } + } + catch (err) { + logger.error("Error while fetching streamer subscriptions", err); + } + return JSON.stringify(viewers); + } +}; +module.exports = model; +//# sourceMappingURL=sub-users.js.map \ No newline at end of file