Skip to content

Commit 5299e45

Browse files
authored
⚑ feat (release πŸ€–): Stelle v3.8 πŸŽ‰
2 parents 594c746 + 9a8a4cb commit 5299e45

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

75 files changed

+904
-649
lines changed

β€Ž.env.example

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,18 @@ ERRORS_WEBHOOK = "the-supremacy-is-here"
2727
REDIS_HOST = "for-rex-lapis"
2828

2929
# The redis server port.
30-
# Replace the "0212" with your own redis server port.
31-
REDIS_PORT = 0212
30+
# Replace the "1202" with your own redis server port.
31+
# Can you guess what this represents? (Hint: cocogoat)
32+
REDIS_PORT = 1202
3233

3334
# The redis server password.
3435
# Replace the "no-touchin!" with your own redis server password.
3536
REDIS_PASSWORD = "no-touchin!"
3637

38+
# The redis server username.
39+
# Replace the "default" with your own redis server username.
40+
REDIS_USERNAME = "default"
41+
3742
#
3843
# Aaand... That's all, you can add whatever you want.
3944
#

β€Ž.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,5 @@ logs
44
generated
55
cache
66

7+
local.config.*
78
.env

β€Ž.husky/pre-commit

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
pnpm tsc --noEmit && pnpm lint-staged
1+
pnpm typecheck && pnpm lint-staged

β€ŽREADME.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
Stelle was created with the purpose of exploring, learning and using the possibilities offered by [`Seyfert`](https://github.com/tiramisulabs/seyfert) a new library to interact with the Discord API.
1010

11-
[![Invite](https://img.shields.io/badge/Add%20the%20bot-%235865F2.svg?style=for-the-badge&logo=discord&logoColor=white)](https://discord.com/oauth2/authorize?client_id=1241085977544359968&permissions=36793344&integration_type=0&scope=bot+applications.commands)
11+
[![Invite](https://img.shields.io/badge/Add%20the%20bot-%235865F2.svg?style=for-the-badge&logo=discord&logoColor=white)](https://discord.com/oauth2/authorize?client_id=1241085977544359968&permissions=36793408&integration_type=0&scope=bot+applications.commands)
1212
[![Server](https://img.shields.io/badge/Support%20Server-%235865F2.svg?style=for-the-badge&logo=discord&logoColor=white)](https://discord.com/invite/4JmKY8wgB6)
1313

1414
![Stelle](https://i.imgur.com/cDBZPmd.png)

β€Žassets/application.yml

Lines changed: 109 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
server:
22
port: 2333
33
address: 0.0.0.0
4+
http2:
5+
enabled: false # Whether to enable HTTP/2 support
46
lavalink:
57
server:
68
sources:
@@ -12,7 +14,7 @@ lavalink:
1214
vimeo: true
1315
nico: true
1416
http: false # warning: keeping HTTP enabled without a proxy configured could expose your server's IP address.
15-
local: false
17+
local: true
1618
filters: # All filters are enabled by default
1719
volume: true
1820
equalizer: true
@@ -28,141 +30,159 @@ lavalink:
2830
bufferDurationMs: 225
2931
frameBufferDurationMs: 5000
3032
youtubePlaylistLoadLimit: 3
31-
opusEncodingQuality: 5
32-
resamplingQuality: MEDIUM
33+
opusEncodingQuality: 10
34+
resamplingQuality: HIGH
3335
trackStuckThresholdMs: 5000
3436
playerUpdateInterval: 3
3537
useSeekGhosting: true
3638
youtubeSearchEnabled: true
3739
soundcloudSearchEnabled: true
3840
gc-warnings: true
3941
plugins:
40-
- dependency: "com.github.topi314.lavasrc:lavasrc-plugin:4.3.0" # LavaSrc - extra sources like deezer, spotify, etc. https://github.com/topi314/LavaSrc
41-
snapshot: false
42-
- dependency: "com.github.topi314.lavasearch:lavasearch-plugin:1.0.0" # https://github.com/topi314/LavaSearch
42+
- dependency: "com.github.topi314.lavasrc:lavasrc-plugin:4.7.2" # https://github.com/topi314/LavaSrc
4343
snapshot: false
44+
- dependency: "com.github.topi314.lavasearch:lavasearch-plugin:2edfc1b" # https://github.com/topi314/LavaSearch
45+
snapshot: true
4446
- dependency: "com.dunctebot:skybot-lavalink-plugin:1.7.0" # https://github.com/DuncteBot/skybot-lavalink-plugin
4547
snapshot: false
46-
- dependency: "com.github.devoxin:lavadspx-plugin:0.0.5" # https://github.com/devoxin/LavaDSPX-Plugin
48+
- dependency: "com.github.Devoxin:LavaDSPX-Plugin:0.0.5" # https://github.com/devoxin/LavaDSPX-Plugin
4749
repository: "https://jitpack.io"
4850
snapshot: false
49-
- dependency: "dev.lavalink.youtube:youtube-plugin:1.11.1" # https://github.com/lavalink-devs/youtube-source
51+
- dependency: "dev.lavalink.youtube:youtube-plugin:1.13.3" # https://github.com/lavalink-devs/youtube-source
5052
snapshot: false
51-
- dependency: "com.github.topi314.lavalyrics:lavalyrics-plugin:1.0.0" # https://github.com/topi314/LavaLyrics
53+
- dependency: "com.github.topi314.lavalyrics:lavalyrics-plugin:7d60077" # https://github.com/topi314/LavaLyrics
54+
snapshot: true
55+
- dependency: "me.duncte123:java-lyrics-plugin:1.6.6" # https://github.com/DuncteBot/java-timed-lyrics
5256
snapshot: false
53-
- dependency: "me.duncte123:java-lyrics-plugin:1.6.5" # https://github.com/DuncteBot/java-timed-lyrics
57+
- dependency: "com.github.topi314.sponsorblock:sponsorblock-plugin:3.0.1" # https://github.com/topi314/SponsorBlock-Plugin
5458
snapshot: false
59+
- dependency: "net.esmbot:lava-xm-plugin:0.2.7" # https://github.com/esmBot/lava-xm-plugin
60+
repository: "https://repo.projectlounge.pw/maven/releases"
5561
plugins:
5662
youtube:
5763
enabled: true
58-
# See: https://github.com/lavalink-devs/youtube-source?tab=readme-ov-file#using-oauth-tokens
5964
oauth:
6065
enabled: true
61-
# Uncomment the 'refreshToken' section when you get a valid refresh token.
62-
#refreshToken: "your account access token"
63-
skipInitialization: false
64-
# Only if you need/want use the pot data
65-
# See: https://github.com/lavalink-devs/youtube-source?tab=readme-ov-file#using-a-potoken
66-
#pot:
67-
# token: "your pot token"
68-
# visitorData: "the visitor data"
66+
refreshToken: "the-refresh-token"
67+
skipInitialization: true
68+
pot:
69+
token: "the-pot-token"
70+
visitorData: "the-visitor-data"
6971
allowSearch: true
7072
allowDirectVideoIds: true
7173
allowDirectPlaylistIds: true
72-
# See: https://github.com/lavalink-devs/youtube-source?tab=readme-ov-file#available-clients
7374
clients:
74-
- MUSIC
75-
- ANDROID_MUSIC
76-
- ANDROID_VR
77-
- WEB
78-
- MWEB
79-
- WEBEMBEDDED
80-
- TVHTML5EMBEDDED
75+
- "TV"
76+
- "TVHTML5EMBEDDED"
77+
- "WEB"
78+
- "MWEB"
79+
- "WEBEMBEDDED"
80+
- "MUSIC"
81+
- "ANDROID_VR"
82+
- "ANDROID_MUSIC"
83+
- "IOS"
8184
clientOptions:
82-
ANDROID_MUSIC:
83-
playback: false
85+
TV: # OAuth
8486
playlistLoading: false
87+
videoLoading: false
8588
searching: false
89+
playback: true
90+
TVHTML5EMBEDDED: # OAuth
91+
playlistLoading: false
92+
videoLoading: false
93+
searching: false
94+
playback: true
95+
ANDROID_MUSIC:
96+
playlistLoading: false
8697
videoLoading: true
87-
ANDROID_VR:
98+
searching: true
99+
playback: true
100+
MUSIC:
101+
playlistLoading: false
102+
videoLoading: false
103+
searching: true
88104
playback: false
105+
WEB:
89106
playlistLoading: true
90-
searching: true
91107
videoLoading: true
108+
searching: true
109+
playback: true
92110
MWEB:
93-
playback: false
94111
playlistLoading: true
95-
searching: true
96112
videoLoading: true
97-
MUSIC:
98-
playback: true
99-
playlistLoading: false
100-
searching: true
101-
videoLoading: false
102-
TVHTML5EMBEDDED:
113+
searching: false
103114
playback: true
115+
WEBEMBEDDED:
104116
playlistLoading: false
105-
searching: false
106117
videoLoading: true
107-
WEB:
108-
playback: false
118+
searching: false
119+
playback: true
120+
ANDROID_VR:
109121
playlistLoading: true
110-
searching: true
111-
videoLoading: false
112-
WEBEMBEDDED:
113-
playback: false
122+
videoLoading: true
123+
searching: false
124+
playback: true
125+
IOS:
114126
playlistLoading: false
127+
videoLoading: true
115128
searching: false
116-
videoLoading: false
129+
playback: true
117130
lyrics:
118131
countryCode: us #country code for resolving isrc tracks
119-
geniusApiKey: "Your Genius Client Access Token" # leave this out to disable genius searching. Get your api key (Client Access Token) from https://genius.com/api-clients
132+
geniusApiKey: "the-lyrics-genius-token" # leave this out to disable genius searching. Get your api key (Client Access Token) from https://genius.com/api-clients
120133
lavalyrics:
121134
sources:
122135
- spotify
123136
- youtube
124-
- deezerf
137+
- deezer
125138
- yandexMusic
126139
lavasrc:
127140
providers:
141+
- "dzsearch:%QUERY%"
142+
- "qbsearch:%QUERY%"
143+
- "scsearch:%QUERY%"
128144
- 'ytsearch:"%ISRC%"'
129145
- "ytmsearch:%QUERY%"
130146
- "ytsearch:%QUERY%"
131-
- "scsearch:%QUERY%"
147+
- "amsearch:%QUERY%"
132148
- "spsearch:%QUERY%"
133149
sources:
134150
spotify: true # Enable Spotify source
135-
applemusic: false # Enable Apple Music source
136-
deezer: false # Enable Deezer source
137-
yandexmusic: false # Enable Yandex Music source
151+
applemusic: true # Enable Apple Music source
152+
deezer: true # Enable Deezer source
153+
yandexmusic: true # Enable Yandex Music source
138154
flowerytts: true # Enable Flowery TTS source
139155
youtube: true # Enable YouTube search source (https://github.com/topi314/LavaSearch)
140156
vkmusic: false # Enable Vk Music source
157+
tidal: false # Enable Tidal source
158+
qobuz: true # Enabled qobuz source
159+
ytdlp: false # Enable yt-dlp source
141160
lyrics-sources:
142-
spotify: false # Enable Spotify lyrics source
161+
spotify: true # Enable Spotify lyrics source
143162
deezer: false # Enable Deezer lyrics source
144163
youtube: true # Enable YouTube lyrics source
145-
yandexmusic: false # Enable Yandex Music lyrics source
164+
yandexmusic: true # Enable Yandex Music lyrics source
146165
vkmusic: false # Enable Vk Music lyrics source
147166
youtube:
148167
countryCode: "US"
149168
playlistLoadLimit: 1 # The number of pages at 100 tracks each
150169
albumLoadLimit: 1 # The number of pages at 50 tracks each
151170
artistLoadLimit: 1 # The number of pages at 10 tracks each
152171
yandexmusic:
153-
accessToken: "your yandex token" # the token used for accessing the yandex music api. See https://github.com/TopiSenpai/LavaSrc#yandex-music
172+
accessToken: "the-yandex-access-token" # the token used for accessing the yandex music api. See https://github.com/TopiSenpai/LavaSrc#yandex-music
154173
playlistLoadLimit: 1 # The number of pages at 100 tracks each
155174
albumLoadLimit: 1 # The number of pages at 50 tracks each
156175
artistLoadLimit: 1 # The number of pages at 10 tracks each
157176
spotify:
158-
# clientId: "your client id"
159-
# clientSecret: "your client secret"
160-
# spDc: "your sp dc cookie" # the sp dc cookie used for accessing the spotify lyrics api
177+
clientId: "the-spotify-client-id"
178+
clientSecret: "the-spotify-client-secret"
179+
spDc: "the-spdc-cookie" # the sp dc cookie used for accessing the spotify lyrics api
161180
countryCode: "US" # the country code you want to use for filtering the artists top tracks. See https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
162181
playlistLoadLimit: 6 # The number of pages at 100 tracks each
163182
albumLoadLimit: 6 # The number of pages at 50 tracks each
164183
resolveArtistsInSearch: true # Whether to resolve artists in track search results (can be slow)
165184
localFiles: false # Enable local files support with Spotify playlists. Please note `uri` & `isrc` will be `null` & `identifier` will be `"local"`
185+
preferAnonymousToken: true # Whether to use the anonymous token for resolving tracks, artists and albums. Playlists are always resolved with the anonymous token to support autogenerated playlists.
166186
flowerytts:
167187
voice: "Olivia" # (case-sensitive) get default voice from here https://api.flowery.pw/v1/tts/voices
168188
translate: false # whether to translate the text to the native language of voice
@@ -183,25 +203,47 @@ plugins:
183203
soundgasm: true # soundgasm.net
184204
applemusic:
185205
countryCode: "US" # the country code you want to use for filtering the artists top tracks and language. See https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
186-
mediaAPIToken: "your apple music api token" # apple music api token
206+
mediaAPIToken: "the-apple-music-token" # apple music api token
187207
# or specify an apple music key
188208
keyID: "your key id"
189209
teamID: "your team id"
190210
musicKitKey: |
191211
-----BEGIN PRIVATE KEY-----
192212
your key
193-
-----END PRIVATE KEY-----
213+
-----END PRIVATE KEY-----
194214
playlistLoadLimit: 6 # The number of pages at 300 tracks each
195215
albumLoadLimit: 6 # The number of pages at 300 tracks each
196216
deezer:
197-
masterDecryptionKey: "your master decryption key" # the master key used for decrypting the deezer tracks. (yes this is not here you need to get it from somewhere else)
198-
# arl: "your deezer arl" # the arl cookie used for accessing the deezer api this is optional but required for formats above MP3_128
199-
formats: [ "FLAC", "MP3_320", "MP3_256", "MP3_128", "MP3_64", "AAC_64" ] # the formats you want to use for the deezer tracks. "FLAC", "MP3_320", "MP3_256" & "AAC_64" are only available for premium users and require a valid arl
217+
masterDecryptionKey: "the-deezer-key" # the master key used for decrypting the deezer tracks. (yes this is not here you need to get it from somewhere else)
218+
arl: "the-arl-cookie" # the arl cookie used for accessing the deezer api this is optional but required for formats above MP3_128
219+
formats: ["FLAC", "MP3_320", "MP3_256", "MP3_128", "MP3_64", "AAC_64"] # the formats you want to use for the deezer tracks. "FLAC", "MP3_320", "MP3_256" & "AAC_64" are only available for premium users and require a valid arl
200220
vkmusic:
201221
userToken: "your user token" # This token is needed for authorization in the api. Guide: https://github.com/topi314/LavaSrc#vk-music
202222
playlistLoadLimit: 1 # The number of pages at 50 tracks each
203223
artistLoadLimit: 1 # The number of pages at 10 tracks each
204-
recommendationsLoadLimit: 10 # Number of tracks
224+
recommendationsLoadLimit: 10 # Number of
225+
tidal:
226+
countryCode: "US" # the country code for accessing region-specific content on Tidal (ISO 3166-1 alpha-2).
227+
searchLimit: 6 # How many search results should be returned
228+
token: "your-tidal-token" # the token used for accessing the tidal api. See https://github.com/topi314/LavaSrc#tidal
229+
qobuz:
230+
userOauthToken: "the-qobuz-user-token" #This token is needed for authorization in the api. Guide: https://github.com/topi314/LavaSrc#qobuz
231+
appId: "the-qobuz-app-id" #(Only pass it when you are using an old userOauthToken)
232+
appSecret: "the-qobuz-app-secret" #(Only pass it when you are using an old userOauthToken)
233+
ytdlp:
234+
path: "yt-dlp" # the path to the yt-dlp executable.
235+
searchLimit: 10 # How many search results should be returned
236+
#customLoadArgs: ["-q", "--no-warnings", "--flat-playlist", "--skip-download", "-J"] # Custom arguments to pass to yt-dlp
237+
#customPlaybackArgs: ["-q", "--no-warnings", "-f", "bestaudio", "-J"] # Custom arguments for yt-dlp
238+
xm:
239+
ampFactor: 1 # Amplification factor, can be between 0 and 3
240+
interpolation: 1 # Mixer interpolation type (0 = Nearest neighbor, 1 = Linear, 2 = Cublic spline)
241+
vblank: false # Uses vblank timing during playback
242+
fx9Bug: false # Emulates the FX9 effect bug from Protracker 2.x
243+
fixSampleLoop: false # Divides sample loop start values in half
244+
amigaMixer: false # Emulates the Paula mixer in Amiga modules
245+
defaultPan: 50 # Default stereo panning, can be between 0 and 100
246+
205247
metrics:
206248
prometheus:
207249
enabled: false
@@ -213,11 +255,10 @@ logging:
213255
file:
214256
max-history: 5
215257
max-size: 10MB
216-
path: ./logs/
258+
path: ./logs/
217259
level:
218260
root: INFO
219261
lavalink: INFO
220-
dev.lavalink.youtube.http.YoutubeOauth2Handler: INFO
221262
request:
222263
enabled: true
223264
includeClientInfo: true
@@ -228,4 +269,4 @@ logging:
228269
logback:
229270
rollingpolicy:
230271
max-file-size: 10MB
231-
max-history: 5
272+
max-history: 5

0 commit comments

Comments
Β (0)