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:
Xstar97TheNoob
2023-06-30 02:39:54 -04:00
committed by GitHub
parent ced929739d
commit 12dca0f51f
11 changed files with 536 additions and 0 deletions
+1
View File
@@ -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
+30
View File
@@ -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
+1
View File
@@ -0,0 +1 @@
# Changelog
+29
View File
@@ -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"
+1
View File
@@ -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

+356
View File
@@ -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" . }}
+87
View File
@@ -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