├── .dockerignore ├── .github ├── WORKFLOWS.md ├── copilot-instructions.md ├── dependabot.yml └── workflows │ ├── confluence-changelog.yml │ ├── coverage.yml │ ├── docker-image.yml │ ├── snyk-security.yml │ └── test.yml ├── .gitignore ├── LICENSE ├── README.md ├── ai-handler.js ├── app.manifest.json ├── config ├── config.json.example └── track-blacklist.json ├── discord.js ├── docker ├── Dockerfile ├── Dockerfile-local └── docker-compose-example.yml ├── docs ├── AI_FEATURE.md ├── APP_DIRECTORY.md ├── CHANGELOG.md ├── CHANNEL_OPTIMIZATION.md ├── DISCORD.md ├── INSTALL ├── PRIVACY_POLICY.md ├── QUICK_START.md ├── SETUP_GUIDE.md ├── SLACK.md ├── SOUNDCRAFT.md ├── TELEMETRY.md ├── TERMS_OF_SERVICE.md ├── TESTING.md ├── TROUBLESHOOTING.md └── images │ ├── Screenshot 1.png │ ├── Screenshot 2.png │ ├── Screenshot 3.png │ ├── Screenshot 4.png │ ├── Screenshot 5.png │ ├── Screenshot 6.png │ ├── Screenshot 7.png │ ├── Screenshot Testing.png │ ├── SlackONOS-Icon.jpg │ └── SlackONOS.png ├── index.js ├── lib ├── auth-handler.js ├── discord-validator.js ├── setup-handler.js ├── slack-validator.js ├── sonos-discovery.js ├── spotify-validator.js └── webauthn-handler.js ├── logger.js ├── music-helper.js ├── package.json ├── public └── setup │ ├── SlackONOS.png │ ├── admin.html │ ├── admin.js │ ├── index.html │ ├── login.html │ ├── setup.css │ ├── setup.js │ └── webauthn-client.js ├── slack.js ├── soundcraft-handler.js ├── spotify-async.js ├── telemetry.js ├── templates ├── help │ ├── helpText.txt │ └── helpTextAdmin.txt └── messages │ ├── gong.txt │ ├── tts.txt │ └── vote.txt ├── test ├── INTEGRATION_TESTING.md ├── README.md ├── ai-handler.test.mjs ├── channel-lookup.test.mjs ├── config │ ├── .gitignore │ ├── README.md │ └── test-config.json.example ├── error-handling.test.mjs ├── fixtures │ └── spotify-responses.json ├── integration.test.mjs ├── memory-management.test.mjs ├── parser.test.mjs ├── setup-wizard.test.mjs ├── spotify.test.mjs ├── test.mjs ├── text-cleaning.test.mjs ├── tools │ ├── check-scopes.mjs │ ├── integration-test-helper.mjs │ ├── integration-test-suite.mjs │ ├── list-bot-channels.mjs │ ├── record-spotify-responses.mjs │ └── send-test-message.mjs └── voting.test.mjs ├── utils.js └── voting.js /.dockerignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/.dockerignore -------------------------------------------------------------------------------- /.github/WORKFLOWS.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/.github/WORKFLOWS.md -------------------------------------------------------------------------------- /.github/copilot-instructions.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/.github/copilot-instructions.md -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/.github/dependabot.yml -------------------------------------------------------------------------------- /.github/workflows/confluence-changelog.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/.github/workflows/confluence-changelog.yml -------------------------------------------------------------------------------- /.github/workflows/coverage.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/.github/workflows/coverage.yml -------------------------------------------------------------------------------- /.github/workflows/docker-image.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/.github/workflows/docker-image.yml -------------------------------------------------------------------------------- /.github/workflows/snyk-security.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/.github/workflows/snyk-security.yml -------------------------------------------------------------------------------- /.github/workflows/test.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/.github/workflows/test.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/.gitignore -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/README.md -------------------------------------------------------------------------------- /ai-handler.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/ai-handler.js -------------------------------------------------------------------------------- /app.manifest.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/app.manifest.json -------------------------------------------------------------------------------- /config/config.json.example: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/config/config.json.example -------------------------------------------------------------------------------- /config/track-blacklist.json: -------------------------------------------------------------------------------- 1 | [] 2 | -------------------------------------------------------------------------------- /discord.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/discord.js -------------------------------------------------------------------------------- /docker/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/docker/Dockerfile -------------------------------------------------------------------------------- /docker/Dockerfile-local: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/docker/Dockerfile-local -------------------------------------------------------------------------------- /docker/docker-compose-example.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/docker/docker-compose-example.yml -------------------------------------------------------------------------------- /docs/AI_FEATURE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/docs/AI_FEATURE.md -------------------------------------------------------------------------------- /docs/APP_DIRECTORY.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/docs/APP_DIRECTORY.md -------------------------------------------------------------------------------- /docs/CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/docs/CHANGELOG.md -------------------------------------------------------------------------------- /docs/CHANNEL_OPTIMIZATION.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/docs/CHANNEL_OPTIMIZATION.md -------------------------------------------------------------------------------- /docs/DISCORD.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/docs/DISCORD.md -------------------------------------------------------------------------------- /docs/INSTALL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/docs/INSTALL -------------------------------------------------------------------------------- /docs/PRIVACY_POLICY.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/docs/PRIVACY_POLICY.md -------------------------------------------------------------------------------- /docs/QUICK_START.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/docs/QUICK_START.md -------------------------------------------------------------------------------- /docs/SETUP_GUIDE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/docs/SETUP_GUIDE.md -------------------------------------------------------------------------------- /docs/SLACK.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/docs/SLACK.md -------------------------------------------------------------------------------- /docs/SOUNDCRAFT.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/docs/SOUNDCRAFT.md -------------------------------------------------------------------------------- /docs/TELEMETRY.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/docs/TELEMETRY.md -------------------------------------------------------------------------------- /docs/TERMS_OF_SERVICE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/docs/TERMS_OF_SERVICE.md -------------------------------------------------------------------------------- /docs/TESTING.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/docs/TESTING.md -------------------------------------------------------------------------------- /docs/TROUBLESHOOTING.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/docs/TROUBLESHOOTING.md -------------------------------------------------------------------------------- /docs/images/Screenshot 1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/docs/images/Screenshot 1.png -------------------------------------------------------------------------------- /docs/images/Screenshot 2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/docs/images/Screenshot 2.png -------------------------------------------------------------------------------- /docs/images/Screenshot 3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/docs/images/Screenshot 3.png -------------------------------------------------------------------------------- /docs/images/Screenshot 4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/docs/images/Screenshot 4.png -------------------------------------------------------------------------------- /docs/images/Screenshot 5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/docs/images/Screenshot 5.png -------------------------------------------------------------------------------- /docs/images/Screenshot 6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/docs/images/Screenshot 6.png -------------------------------------------------------------------------------- /docs/images/Screenshot 7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/docs/images/Screenshot 7.png -------------------------------------------------------------------------------- /docs/images/Screenshot Testing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/docs/images/Screenshot Testing.png -------------------------------------------------------------------------------- /docs/images/SlackONOS-Icon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/docs/images/SlackONOS-Icon.jpg -------------------------------------------------------------------------------- /docs/images/SlackONOS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/docs/images/SlackONOS.png -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/index.js -------------------------------------------------------------------------------- /lib/auth-handler.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/lib/auth-handler.js -------------------------------------------------------------------------------- /lib/discord-validator.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/lib/discord-validator.js -------------------------------------------------------------------------------- /lib/setup-handler.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/lib/setup-handler.js -------------------------------------------------------------------------------- /lib/slack-validator.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/lib/slack-validator.js -------------------------------------------------------------------------------- /lib/sonos-discovery.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/lib/sonos-discovery.js -------------------------------------------------------------------------------- /lib/spotify-validator.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/lib/spotify-validator.js -------------------------------------------------------------------------------- /lib/webauthn-handler.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/lib/webauthn-handler.js -------------------------------------------------------------------------------- /logger.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/logger.js -------------------------------------------------------------------------------- /music-helper.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/music-helper.js -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/package.json -------------------------------------------------------------------------------- /public/setup/SlackONOS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/public/setup/SlackONOS.png -------------------------------------------------------------------------------- /public/setup/admin.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/public/setup/admin.html -------------------------------------------------------------------------------- /public/setup/admin.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/public/setup/admin.js -------------------------------------------------------------------------------- /public/setup/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/public/setup/index.html -------------------------------------------------------------------------------- /public/setup/login.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/public/setup/login.html -------------------------------------------------------------------------------- /public/setup/setup.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/public/setup/setup.css -------------------------------------------------------------------------------- /public/setup/setup.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/public/setup/setup.js -------------------------------------------------------------------------------- /public/setup/webauthn-client.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/public/setup/webauthn-client.js -------------------------------------------------------------------------------- /slack.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/slack.js -------------------------------------------------------------------------------- /soundcraft-handler.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/soundcraft-handler.js -------------------------------------------------------------------------------- /spotify-async.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/spotify-async.js -------------------------------------------------------------------------------- /telemetry.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/telemetry.js -------------------------------------------------------------------------------- /templates/help/helpText.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/templates/help/helpText.txt -------------------------------------------------------------------------------- /templates/help/helpTextAdmin.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/templates/help/helpTextAdmin.txt -------------------------------------------------------------------------------- /templates/messages/gong.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/templates/messages/gong.txt -------------------------------------------------------------------------------- /templates/messages/tts.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/templates/messages/tts.txt -------------------------------------------------------------------------------- /templates/messages/vote.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/templates/messages/vote.txt -------------------------------------------------------------------------------- /test/INTEGRATION_TESTING.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/test/INTEGRATION_TESTING.md -------------------------------------------------------------------------------- /test/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/test/README.md -------------------------------------------------------------------------------- /test/ai-handler.test.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/test/ai-handler.test.mjs -------------------------------------------------------------------------------- /test/channel-lookup.test.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/test/channel-lookup.test.mjs -------------------------------------------------------------------------------- /test/config/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/test/config/.gitignore -------------------------------------------------------------------------------- /test/config/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/test/config/README.md -------------------------------------------------------------------------------- /test/config/test-config.json.example: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/test/config/test-config.json.example -------------------------------------------------------------------------------- /test/error-handling.test.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/test/error-handling.test.mjs -------------------------------------------------------------------------------- /test/fixtures/spotify-responses.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/test/fixtures/spotify-responses.json -------------------------------------------------------------------------------- /test/integration.test.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/test/integration.test.mjs -------------------------------------------------------------------------------- /test/memory-management.test.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/test/memory-management.test.mjs -------------------------------------------------------------------------------- /test/parser.test.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/test/parser.test.mjs -------------------------------------------------------------------------------- /test/setup-wizard.test.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/test/setup-wizard.test.mjs -------------------------------------------------------------------------------- /test/spotify.test.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/test/spotify.test.mjs -------------------------------------------------------------------------------- /test/test.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/test/test.mjs -------------------------------------------------------------------------------- /test/text-cleaning.test.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/test/text-cleaning.test.mjs -------------------------------------------------------------------------------- /test/tools/check-scopes.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/test/tools/check-scopes.mjs -------------------------------------------------------------------------------- /test/tools/integration-test-helper.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/test/tools/integration-test-helper.mjs -------------------------------------------------------------------------------- /test/tools/integration-test-suite.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/test/tools/integration-test-suite.mjs -------------------------------------------------------------------------------- /test/tools/list-bot-channels.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/test/tools/list-bot-channels.mjs -------------------------------------------------------------------------------- /test/tools/record-spotify-responses.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/test/tools/record-spotify-responses.mjs -------------------------------------------------------------------------------- /test/tools/send-test-message.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/test/tools/send-test-message.mjs -------------------------------------------------------------------------------- /test/voting.test.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/test/voting.test.mjs -------------------------------------------------------------------------------- /utils.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/utils.js -------------------------------------------------------------------------------- /voting.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/htilly/SlackONOS/HEAD/voting.js --------------------------------------------------------------------------------