feat(tauticord) add tauticord (#9977)
**Description** A Discord bot that displays live data from Tautulli. ⚒️ Fixes # <!--(issue)--> **⚙️ Type of change** - [X] ⚙️ Feature/App addition - [ ] 🪛 Bugfix - [ ] ⚠️ Breaking change (fix or feature that would cause existing functionality to not work as expected) - [ ] 🔃 Refactor of current code **🧪 How Has This Been Tested?** <!-- Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration --> **📃 Notes:** <!-- Please enter any other relevant information here --> **✔️ Checklist:** - [X] ⚖️ My code follows the style guidelines of this project - [X] 👀 I have performed a self-review of my own code - [ ] #️⃣ I have commented my code, particularly in hard-to-understand areas - [ ] 📄 I have made corresponding changes to the documentation - [ ] ⚠️ My changes generate no new warnings - [ ] 🧪 I have added tests to this description that prove my fix is effective or that my feature works - [ ] ⬆️ I increased versions for any altered app according to semantic versioning **➕ App addition** If this PR is an app addition please make sure you have done the following. - [X] 🪞 I have opened a PR on [truecharts/containers](https://github.com/truecharts/containers) adding the container to TrueCharts mirror repo. - [X] 🖼️ I have added an icon in the Chart's root directory called `icon.png` --- _Please don't blindly check all the boxes. Read them and only check those that apply. Those checkboxes are there for the reviewer to see what is this all about and the status of this PR with a quick glance._ --------- Signed-off-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com> Co-authored-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com>
This commit is contained in:
@@ -13,6 +13,7 @@ excluded-charts:
|
||||
- charts/dependency/subchart
|
||||
- charts/incubator/orbital-sync
|
||||
- charts/incubator/plex-meta-manager
|
||||
- charts/incubator/tauticord
|
||||
- charts/library/common
|
||||
- charts/stable/alertmanager-bot
|
||||
- charts/stable/alertmanager-bot
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
# Patterns to ignore when building packages.
|
||||
# This supports shell glob matching, relative path matching, and
|
||||
# negation (prefixed with !). Only one pattern per line.
|
||||
.DS_Store
|
||||
# Common VCS dirs
|
||||
.git/
|
||||
.gitignore
|
||||
.bzr/
|
||||
.bzrignore
|
||||
.hg/
|
||||
.hgignore
|
||||
.svn/
|
||||
# Common backup files
|
||||
*.swp
|
||||
*.bak
|
||||
*.tmp
|
||||
*~
|
||||
# Various IDEs
|
||||
.project
|
||||
.idea/
|
||||
*.tmproj
|
||||
.vscode/
|
||||
# OWNERS file for Kubernetes
|
||||
OWNERS
|
||||
# helm-docs templates
|
||||
*.gotmpl
|
||||
# docs folder
|
||||
/docs
|
||||
# icon
|
||||
icon.png
|
||||
@@ -0,0 +1 @@
|
||||
# Changelog
|
||||
@@ -0,0 +1,29 @@
|
||||
apiVersion: v2
|
||||
appVersion: "3.8.0"
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://library-charts.truecharts.org
|
||||
version: 12.14.6
|
||||
deprecated: false
|
||||
description: A Discord bot that displays live data from Tautulli.
|
||||
home: https://truecharts.org/charts/incubator/tauticord
|
||||
icon: https://truecharts.org/img/hotlink-ok/chart-icons/tauticord.png
|
||||
keywords:
|
||||
- tauticord
|
||||
- tautulli
|
||||
- discord
|
||||
kubeVersion: ">=1.16.0-0"
|
||||
maintainers:
|
||||
- email: info@truecharts.org
|
||||
name: TrueCharts
|
||||
url: https://truecharts.org
|
||||
name: tauticord
|
||||
sources:
|
||||
- https://github.com/truecharts/charts/tree/master/charts/incubator/tauticord
|
||||
- https://github.com/nwithan8/tauticord
|
||||
type: application
|
||||
version: 0.0.1
|
||||
annotations:
|
||||
truecharts.org/catagories: |
|
||||
- discord
|
||||
truecharts.org/SCALE-support: "true"
|
||||
@@ -0,0 +1 @@
|
||||
# README
|
||||
@@ -0,0 +1,29 @@
|
||||
# Installation Notes
|
||||
|
||||
basic Notes for tauticord.
|
||||
|
||||
:::note requirements
|
||||
|
||||
- A Plex Media Server
|
||||
- Tautulli (formerly known as PlexPy)
|
||||
- A Discord server
|
||||
- A Discord bot token, a simple guide [here](https://www.digitaltrends.com/gaming/how-to-make-a-discord-bot/).
|
||||
- Permissions required:
|
||||
- Manage Channels
|
||||
- View Channels
|
||||
- Send Messages
|
||||
- Manage Messages
|
||||
- Read Message History
|
||||
- Add Reactions
|
||||
- Manage Emojis
|
||||
- Example bot invite link: `https://discord.com/oauth2/authorize?client_id=YOUR_APPLICATION_ID&scope=bot&permissions=1073818704`
|
||||
|
||||
:::
|
||||
|
||||
:::note Common Issues
|
||||
|
||||
- On startup, Tauticord attempts to upload a set of custom emojis that it will use when displaying stream information ( if they do not already exist). Your bot will need to have the Manage Emojis permission in order to do this.
|
||||
- Discord has a limit of 50 custom emojis per server. If you have reached this limit, you will need to remove some of your existing emojis before Tauticord can upload its own.
|
||||
- If you do not want to remove any of your existing emojis, Tauticord will simply skip uploading its own emojis and use the default emojis that Discord provides instead.
|
||||
|
||||
:::
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 38 KiB |
@@ -0,0 +1,356 @@
|
||||
# Include{groups}
|
||||
portals: {}
|
||||
questions:
|
||||
# Include{global}
|
||||
# Include{workload}
|
||||
# Include{workloadDeployment}
|
||||
|
||||
# Include{replicas1}
|
||||
# Include{podSpec}
|
||||
# Include{containerMain}
|
||||
|
||||
- variable: env
|
||||
group: "App Configuration"
|
||||
label: "Image Environment"
|
||||
schema:
|
||||
additional_attrs: true
|
||||
type: dict
|
||||
attrs:
|
||||
- variable: TC_DISCORD_BOT_TOKEN
|
||||
label: "Discord Bot Token"
|
||||
description: "Discord Bot Token."
|
||||
schema:
|
||||
type: string
|
||||
required: true
|
||||
private: true
|
||||
default: ""
|
||||
- variable: TC_DISCORD_SERVER_ID
|
||||
label: "Discord Server ID"
|
||||
description: "Discord Server ID."
|
||||
schema:
|
||||
type: string
|
||||
required: true
|
||||
default: ""
|
||||
- variable: TC_TAUTULLI_URL
|
||||
label: "Tautulli URL"
|
||||
description: "IP/cluster URL of your Tautulli server."
|
||||
schema:
|
||||
type: string
|
||||
required: true
|
||||
default: ""
|
||||
- variable: TC_TAUTULLI_KEY
|
||||
label: "Tautulli Key"
|
||||
description: "API key for Tautulli server."
|
||||
schema:
|
||||
type: string
|
||||
required: true
|
||||
private: true
|
||||
default: ""
|
||||
- variable: TC_PLEX_PASS
|
||||
label: "Plex Pass"
|
||||
description: "Enable PlexPass Features."
|
||||
schema:
|
||||
type: string
|
||||
default: "False"
|
||||
enum:
|
||||
- value: "False"
|
||||
description: "False"
|
||||
- value: "True"
|
||||
description: "True"
|
||||
- variable: TC_REFRESH_SECONDS
|
||||
label: "Refresh Seconds"
|
||||
description: "Seconds between updates."
|
||||
schema:
|
||||
type: int
|
||||
default: 15
|
||||
min: 5
|
||||
max: 60
|
||||
- variable: TC_TERMINATE_MESSAGE
|
||||
label: "Terminate Message"
|
||||
description: "Message sent to users when a stream is killed."
|
||||
schema:
|
||||
type: string
|
||||
default: "Your stream has ended."
|
||||
- variable: TC_SERVER_NAME
|
||||
label: "Server Name"
|
||||
description: "Name of the Plex server."
|
||||
schema:
|
||||
type: string
|
||||
default: "Plex"
|
||||
- variable: TC_USE_24_HOUR_TIME
|
||||
label: "Use 24 Hour Time"
|
||||
description: "Whether to display times in 24-hour time."
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
- variable: hide_info
|
||||
label: Show Hidden Info Settings
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
show_subquestions_if: true
|
||||
subquestions:
|
||||
- variable: TC_HIDE_USERNAMES
|
||||
label: "Hide Usernames"
|
||||
description: "Whether to hide usernames in the streams view."
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
- variable: TC_HIDE_PLATFORMS
|
||||
label: "Hide Platforms"
|
||||
description: "Whether to hide platforms in the streams view."
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
- variable: TC_HIDE_PLAYER_NAMES
|
||||
label: "Hide Player Names"
|
||||
description: "Whether to hide player names in the streams view."
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
- variable: TC_HIDE_QUALITY
|
||||
label: "Hide Quality"
|
||||
description: "Whether to hide quality profiles in the streams view."
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
- variable: TC_HIDE_BANDWIDTH
|
||||
label: "Hide Bandwidth"
|
||||
description: "Whether to hide bandwidth in the streams view."
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
- variable: TC_HIDE_TRANSCODE
|
||||
label: "Hide Transcode"
|
||||
description: "Whether to hide transcoding statuses in the streams view."
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
- variable: TC_HIDE_PROGRESS
|
||||
label: "Hide Progress"
|
||||
description: "Whether to hide stream progress in the streams view."
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
- variable: TC_HIDE_ETA
|
||||
label: "Hide ETA"
|
||||
description: "Whether to hide stream ETAs in the streams view."
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
- variable: tc_vc_stats
|
||||
label: Show VC Stats Settings
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
show_subquestions_if: true
|
||||
subquestions:
|
||||
- variable: TC_VC_STATS_CATEGORY_NAME
|
||||
label: "VC Stats Category Name"
|
||||
description: "Name of the stats voice channel category."
|
||||
schema:
|
||||
type: string
|
||||
default: "Tautulli Stats"
|
||||
- variable: TC_VC_STREAM_COUNT
|
||||
label: "VC Stream Count"
|
||||
description: "Whether to display current stream count in a voice channel."
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
- variable: TC_VC_TRANSCODE_COUNT
|
||||
label: "VC Transcode Count"
|
||||
description: "Whether to display current transcode count in a voice channel."
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
- variable: TC_VC_BANDWIDTH
|
||||
label: "VC Bandwidth"
|
||||
description: "Whether to display current bandwidth in a voice channel."
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
- variable: TC_VC_LOCAL_BANDWIDTH
|
||||
label: "VC Local Bandwidth"
|
||||
description: "Whether to display current local bandwidth in a voice channel."
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
- variable: TC_VC_REMOTE_BANDWIDTH
|
||||
label: "VC Remote Bandwidth"
|
||||
description: "Whether to display current remote bandwidth in a voice channel."
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
- variable: TC_VC_PLEX_STATUS
|
||||
label: "VC Plex Status"
|
||||
description: "Whether to display Plex online status in a voice channel."
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
- variable: tc_vc_libraries
|
||||
label: Show VC Libraries Settings
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
show_subquestions_if: true
|
||||
subquestions:
|
||||
- variable: TC_VC_LIBRARIES_CATEGORY_NAME
|
||||
label: "VC Libraries Category Name"
|
||||
description: "Name of the libraries voice channel category."
|
||||
schema:
|
||||
type: string
|
||||
default: "Tautulli Libraries"
|
||||
- variable: TC_VC_LIBRARY_STATS
|
||||
label: "VC Library Stats"
|
||||
description: "Whether to display library statistics in voice channels."
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
- variable: TC_VC_LIBRARY_NAMES
|
||||
label: "VC Library Names"
|
||||
description: "Comma-separated list of libraries to display statistics of."
|
||||
schema:
|
||||
type: string
|
||||
default: "Movies,TV Shows,Music"
|
||||
- variable: TC_VC_LIBRARY_REFRESH_SECONDS
|
||||
label: "VC Library Names"
|
||||
description: "Seconds between updates."
|
||||
schema:
|
||||
type: int
|
||||
default: 3600
|
||||
min: 300
|
||||
- variable: TC_VC_LIBRARY_USE_EMOJIS
|
||||
label: "VC Library Use Emojis"
|
||||
description: "Whether to use emojis to symbolize library types."
|
||||
schema:
|
||||
type: boolean
|
||||
default: true
|
||||
- variable: TC_VC_TV_SERIES_COUNT
|
||||
label: "VC TV Series Count"
|
||||
description: "Display series counts for all selected series libraries."
|
||||
schema:
|
||||
type: boolean
|
||||
default: true
|
||||
- variable: TC_VC_TV_EPISODE_COUNT
|
||||
label: "VC TV Episode Count"
|
||||
description: "Display episode counts for all selected series libraries."
|
||||
schema:
|
||||
type: boolean
|
||||
default: true
|
||||
- variable: TC_VC_MUSIC_ARTIST_COUNT
|
||||
label: "VC Music Artist Count"
|
||||
description: "Display artist counts for all selected music libraries."
|
||||
schema:
|
||||
type: boolean
|
||||
default: true
|
||||
- variable: TC_VC_MUSIC_TRACK_COUNT
|
||||
label: "VC Music Track Count"
|
||||
description: "Display track counts for all selected music libraries."
|
||||
schema:
|
||||
type: boolean
|
||||
default: true
|
||||
- variable: tc_vc_performance
|
||||
label: Show VC Performance Settings
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
show_subquestions_if: true
|
||||
subquestions:
|
||||
- variable: TC_VC_PERFORMANCE_CATEGORY_NAME
|
||||
label: "VC Performance Category Name"
|
||||
description: "Name of the performance voice channel category."
|
||||
schema:
|
||||
type: string
|
||||
default: "Performance"
|
||||
- variable: TC_MONITOR_CPU
|
||||
label: "Monitor CPU"
|
||||
description: "Whether to monitor CPU performance."
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
- variable: TC_MONITOR_MEMORY
|
||||
label: "Monitor Memory"
|
||||
description: "Whether to monitor RAM performance."
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
- variable: TC_DISCORD_ADMIN_IDS
|
||||
label: "Discord Admin IDS"
|
||||
description: "Comma separated of Discord IDs with admin privileges."
|
||||
schema:
|
||||
type: string
|
||||
default: ""
|
||||
- variable: TC_DISCORD_POST_SUMMARY_MESSAGE
|
||||
label: "Discord Admin IDS"
|
||||
description: "Whether to post a stat summary text message."
|
||||
schema:
|
||||
type: boolean
|
||||
default: true
|
||||
- variable: TC_DISCORD_CHANNEL_NAME
|
||||
label: "Discord Channel Name"
|
||||
description: "Channel name for stats summary text message."
|
||||
schema:
|
||||
type: string
|
||||
default: "Tautulli Status"
|
||||
- variable: TC_DISCORD_NITRO
|
||||
label: "Discord Nitro"
|
||||
description: "Whether the Discord server has a Nitro subscription. (bot will upload custom emojis)"
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
- variable: TC_ALLOW_ANALYTICS
|
||||
label: "TC Allow Analytics"
|
||||
description: "Allow Anonymous Crash Analytics"
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
|
||||
# Include{containerBasic}
|
||||
# Include{containerAdvanced}
|
||||
|
||||
# Include{containerConfig}
|
||||
# Include{podOptions}
|
||||
# Include{serviceExpertRoot}
|
||||
# Include{serviceExpert}
|
||||
# Include{serviceList}
|
||||
# Include{persistenceRoot}
|
||||
- variable: logs
|
||||
label: "App Logs Storage"
|
||||
description: "Stores the Application Logs."
|
||||
schema:
|
||||
additional_attrs: true
|
||||
type: dict
|
||||
attrs:
|
||||
# Include{persistenceBasic}
|
||||
# Include{persistenceList}
|
||||
# Include{securityContextRoot}
|
||||
|
||||
- variable: runAsUser
|
||||
label: "runAsUser"
|
||||
description: "The UserID of the user running the application"
|
||||
schema:
|
||||
type: int
|
||||
default: 0
|
||||
- variable: runAsGroup
|
||||
label: "runAsGroup"
|
||||
description: "The groupID this App of the user running the application"
|
||||
schema:
|
||||
type: int
|
||||
default: 0
|
||||
# Include{securityContextContainer}
|
||||
# Include{securityContextAdvanced}
|
||||
# Include{securityContextPod}
|
||||
- variable: fsGroup
|
||||
label: "fsGroup"
|
||||
description: "The group that should own ALL storage."
|
||||
schema:
|
||||
type: int
|
||||
default: 568
|
||||
|
||||
# Include{resources}
|
||||
# Include{advanced}
|
||||
# Include{addons}
|
||||
# Include{codeserver}
|
||||
# Include{netshoot}
|
||||
# Include{vpn}
|
||||
# Include{documentation}
|
||||
@@ -0,0 +1 @@
|
||||
{{- include "tc.v1.common.lib.chart.notes" $ -}}
|
||||
@@ -0,0 +1 @@
|
||||
{{ include "tc.v1.common.loader.all" . }}
|
||||
@@ -0,0 +1,87 @@
|
||||
image:
|
||||
repository: tccr.io/truecharts/tauticord
|
||||
pullPolicy: IfNotPresent
|
||||
tag: v3.8.0@sha256:3f834aac482c202963b6882ff78be23d94cc34e29f16a7642010a9db9ee9cdc1
|
||||
|
||||
securityContext:
|
||||
container:
|
||||
runAsNonRoot: false
|
||||
readOnlyRootFilesystem: false
|
||||
runAsUser: 0
|
||||
runAsGroup: 0
|
||||
|
||||
service:
|
||||
main:
|
||||
enabled: false
|
||||
ports:
|
||||
main:
|
||||
enabled: false
|
||||
|
||||
workload:
|
||||
main:
|
||||
podSpec:
|
||||
containers:
|
||||
main:
|
||||
probes:
|
||||
liveness:
|
||||
enabled: false
|
||||
readiness:
|
||||
enabled: false
|
||||
startup:
|
||||
enabled: false
|
||||
env:
|
||||
TC_DISCORD_BOT_TOKEN: ""
|
||||
TC_DISCORD_SERVER_ID: ""
|
||||
TC_TAUTULLI_KEY: ""
|
||||
TC_TAUTULLI_URL: ""
|
||||
TC_PLEX_PASS: false
|
||||
TC_REFRESH_SECONDS: 15
|
||||
TC_TERMINATE_MESSAGE: "Your stream has ended."
|
||||
TC_SERVER_NAME: "Plex"
|
||||
TC_USE_24_HOUR_TIME: false
|
||||
# Hide Info
|
||||
TC_HIDE_USERNAMES: false
|
||||
TC_HIDE_PLATFORMS: false
|
||||
TC_HIDE_PLAYER_NAMES: false
|
||||
TC_HIDE_QUALITY: false
|
||||
TC_HIDE_BANDWIDTH: false
|
||||
TC_HIDE_TRANSCODE: false
|
||||
TC_HIDE_PROGRESS: false
|
||||
TC_HIDE_ETA: false
|
||||
# Stats Cat
|
||||
TC_VC_STATS_CATEGORY_NAME: "Plex Stream Stats"
|
||||
TC_VC_STREAM_COUNT: false
|
||||
TC_VC_TRANSCODE_COUNT: false
|
||||
TC_VC_BANDWIDTH: false
|
||||
TC_VC_LOCAL_BANDWIDTH: false
|
||||
TC_VC_REMOTE_BANDWIDTH: false
|
||||
TC_VC_PLEX_STATUS: false
|
||||
# Libraries Cat
|
||||
TC_VC_LIBRARIES_CATEGORY_NAME: "Plex Library Stats"
|
||||
TC_VC_LIBRARY_STATS: false
|
||||
TC_VC_LIBRARY_NAMES: Movies,TV Shows,Music
|
||||
TC_VC_LIBRARY_REFRESH_SECONDS: 3600
|
||||
TC_VC_LIBRARY_USE_EMOJIS: true
|
||||
TC_VC_TV_SERIES_COUNT: true
|
||||
TC_VC_TV_EPISODE_COUNT: true
|
||||
TC_VC_MUSIC_ARTIST_COUNT: true
|
||||
TC_VC_MUSIC_TRACK_COUNT: true
|
||||
# Performance Cat
|
||||
TC_VC_PERFORMANCE_CATEGORY_NAME: "Performance"
|
||||
TC_MONITOR_CPU: false
|
||||
TC_MONITOR_MEMORY: false
|
||||
# Other
|
||||
TC_DISCORD_ADMIN_IDS: ""
|
||||
TC_DISCORD_POST_SUMMARY_MESSAGE: true
|
||||
TC_DISCORD_CHANNEL_NAME: "Tautulli Status"
|
||||
TC_DISCORD_NITRO: false
|
||||
TC_ALLOWS_ANALYTICS: false
|
||||
|
||||
persistence:
|
||||
logs:
|
||||
enabled: true
|
||||
mountPath: "/logs"
|
||||
|
||||
portal:
|
||||
open:
|
||||
enabled: false
|
||||
Reference in New Issue
Block a user