refactor: remove emojis from Go backend code

- Remove emoji detection (checkmark/cross) from GoLog() in logbuffer.go

- Remove emojis from log messages in tidal.go, qobuz.go, amazon.go

- Add code-style.md steering rule for no emojis in code

- Update logging.md to remove emoji examples
This commit is contained in:
zarzet committed 2026-01-31 15:12:09 +07:00
1 parent 21a732379b
commit 62e2e1703c
4 files changed
+24 -22

No files matched your search

+1 -1
View File
@@ -405,7 +405,7 @@ func downloadFromAmazon(req DownloadRequest) (AmazonDownloadResult, error) {
GoLog("[Amazon] No lyrics available from parallel fetch\n") GoLog("[Amazon] No lyrics available from parallel fetch\n")
} }
GoLog("[Amazon] ✓ Downloaded successfully from Amazon Music\n") GoLog("[Amazon] Downloaded successfully from Amazon Music\n")
quality, err := GetAudioQuality(outputPath) quality, err := GetAudioQuality(outputPath)
if err != nil { if err != nil {
+2 -2
View File
@@ -150,11 +150,11 @@ func GoLog(format string, args ...interface{}) {
// Determine level from message content // Determine level from message content
msgLower := strings.ToLower(message) msgLower := strings.ToLower(message)
if strings.Contains(msgLower, "error") || strings.Contains(msgLower, "failed") || strings.HasPrefix(message, "✗") { if strings.Contains(msgLower, "error") || strings.Contains(msgLower, "failed") {
level = "ERROR" level = "ERROR"
} else if strings.Contains(msgLower, "warning") || strings.Contains(msgLower, "warn") { } else if strings.Contains(msgLower, "warning") || strings.Contains(msgLower, "warn") {
level = "WARN" level = "WARN"
} else if strings.HasPrefix(message, "✓") || strings.Contains(msgLower, "success") || strings.Contains(msgLower, "match found") { } else if strings.Contains(msgLower, "success") || strings.Contains(msgLower, "match found") {
level = "INFO" level = "INFO"
} else if strings.Contains(msgLower, "searching") || strings.Contains(msgLower, "trying") || strings.Contains(msgLower, "found") { } else if strings.Contains(msgLower, "searching") || strings.Contains(msgLower, "trying") || strings.Contains(msgLower, "found") {
level = "DEBUG" level = "DEBUG"
+5 -5
View File
@@ -752,12 +752,12 @@ func (q *QobuzDownloader) SearchTrackByMetadataWithDuration(trackName, artistNam
if len(durationMatches) > 0 { if len(durationMatches) > 0 {
for _, track := range durationMatches { for _, track := range durationMatches {
if track.MaximumBitDepth >= 24 { if track.MaximumBitDepth >= 24 {
GoLog("[Qobuz] ✓ Match found: '%s' by '%s' (title+duration verified, hi-res)\n", GoLog("[Qobuz] Match found: '%s' by '%s' (title+duration verified, hi-res)\n",
track.Title, track.Performer.Name) track.Title, track.Performer.Name)
return track, nil return track, nil
} }
} }
GoLog("[Qobuz] ✓ Match found: '%s' by '%s' (title+duration verified)\n", GoLog("[Qobuz] Match found: '%s' by '%s' (title+duration verified)\n",
durationMatches[0].Title, durationMatches[0].Performer.Name) durationMatches[0].Title, durationMatches[0].Performer.Name)
return durationMatches[0], nil return durationMatches[0], nil
} }
@@ -768,14 +768,14 @@ func (q *QobuzDownloader) SearchTrackByMetadataWithDuration(trackName, artistNam
// No duration verification, return best quality from title matches // No duration verification, return best quality from title matches
for _, track := range tracksToCheck { for _, track := range tracksToCheck {
if track.MaximumBitDepth >= 24 { if track.MaximumBitDepth >= 24 {
GoLog("[Qobuz] ✓ Match found: '%s' by '%s' (title verified, hi-res)\n", GoLog("[Qobuz] Match found: '%s' by '%s' (title verified, hi-res)\n",
track.Title, track.Performer.Name) track.Title, track.Performer.Name)
return track, nil return track, nil
} }
} }
if len(tracksToCheck) > 0 { if len(tracksToCheck) > 0 {
GoLog("[Qobuz] ✓ Match found: '%s' by '%s' (title verified)\n", GoLog("[Qobuz] Match found: '%s' by '%s' (title verified)\n",
tracksToCheck[0].Title, tracksToCheck[0].Performer.Name) tracksToCheck[0].Title, tracksToCheck[0].Performer.Name)
return tracksToCheck[0], nil return tracksToCheck[0], nil
} }
@@ -872,7 +872,7 @@ func getQobuzDownloadURLParallel(apis []string, trackID int64, quality string) (
for i := 0; i < len(apis); i++ { for i := 0; i < len(apis); i++ {
result := <-resultChan result := <-resultChan
if result.err == nil { if result.err == nil {
GoLog("[Qobuz] [Parallel] ✓ Got response from %s in %v\n", result.apiURL, result.duration) GoLog("[Qobuz] [Parallel] Got response from %s in %v\n", result.apiURL, result.duration)
// Drain remaining results to avoid goroutine leaks // Drain remaining results to avoid goroutine leaks
go func(remaining int) { go func(remaining int) {
+16 -14
View File
@@ -122,14 +122,16 @@ func NewTidalDownloader() *TidalDownloader {
// GetAvailableAPIs returns list of available Tidal APIs // GetAvailableAPIs returns list of available Tidal APIs
func (t *TidalDownloader) GetAvailableAPIs() []string { func (t *TidalDownloader) GetAvailableAPIs() []string {
encodedAPIs := []string{ encodedAPIs := []string{
"dGlkYWwua2lub3BsdXMub25saW5l", "dGlkYWwua2lub3BsdXMub25saW5l", // tidal.kinoplus.online
"dGlkYWwtYXBpLmJpbmltdW0ub3Jn", "dGlkYWwtYXBpLmJpbmltdW0ub3Jn", // tidal-api.binimum.org
"dHJpdG9uLnNxdWlkLnd0Zg==", "dHJpdG9uLnNxdWlkLnd0Zg==", // triton.squid.wtf
"dm9nZWwucXFkbC5zaXRl", "aGlmaS1vbmUuc3BvdGlzYXZlci5uZXQ=", // hifi-one.spotisaver.net
"bWF1cy5xcWRsLnNpdGU=", "aGlmaS10d28uc3BvdGlzYXZlci5uZXQ=", // hifi-two.spotisaver.net
"aHVuZC5xcWRsLnNpdGU=", "dm9nZWwucXFkbC5zaXRl", // vogel.qqdl.site
"a2F0emUucXFkbC5zaXRl", "bWF1cy5xcWRsLnNpdGU=", // maus.qqdl.site
"d29sZi5xcWRsLnNpdGU=", "aHVuZC5xcWRsLnNpdGU=", // hund.qqdl.site
"a2F0emUucXFkbC5zaXRl", // katze.qqdl.site
"d29sZi5xcWRsLnNpdGU=", // wolf.qqdl.site
} }
var apis []string var apis []string
@@ -442,13 +444,13 @@ func (t *TidalDownloader) SearchTrackByMetadataWithISRC(trackName, artistName, s
durationDiff = -durationDiff durationDiff = -durationDiff
} }
if durationDiff <= 3 { if durationDiff <= 3 {
GoLog("[Tidal] ✓ ISRC match: '%s' (duration verified)\n", track.Title) GoLog("[Tidal] ISRC match: '%s' (duration verified)\n", track.Title)
return track, nil return track, nil
} }
GoLog("[Tidal] ISRC match but duration mismatch (expected %ds, got %ds), continuing...\n", GoLog("[Tidal] ISRC match but duration mismatch (expected %ds, got %ds), continuing...\n",
expectedDuration, track.Duration) expectedDuration, track.Duration)
} else { } else {
GoLog("[Tidal] ✓ ISRC match: '%s'\n", track.Title) GoLog("[Tidal] ISRC match: '%s'\n", track.Title)
return track, nil return track, nil
} }
} }
@@ -487,7 +489,7 @@ func (t *TidalDownloader) SearchTrackByMetadataWithISRC(trackName, artistName, s
} }
if len(durationVerifiedMatches) > 0 { if len(durationVerifiedMatches) > 0 {
GoLog("[Tidal] ✓ ISRC match with duration verification: '%s' (expected %ds, found %ds)\n", GoLog("[Tidal] ISRC match with duration verification: '%s' (expected %ds, found %ds)\n",
durationVerifiedMatches[0].Title, expectedDuration, durationVerifiedMatches[0].Duration) durationVerifiedMatches[0].Title, expectedDuration, durationVerifiedMatches[0].Duration)
return durationVerifiedMatches[0], nil return durationVerifiedMatches[0], nil
} }
@@ -498,11 +500,11 @@ func (t *TidalDownloader) SearchTrackByMetadataWithISRC(trackName, artistName, s
expectedDuration, isrcMatches[0].Duration) expectedDuration, isrcMatches[0].Duration)
} }
GoLog("[Tidal] ✓ ISRC match (no duration verification): '%s'\n", isrcMatches[0].Title) GoLog("[Tidal] ISRC match (no duration verification): '%s'\n", isrcMatches[0].Title)
return isrcMatches[0], nil return isrcMatches[0], nil
} }
GoLog("[Tidal] ✗ No ISRC match found for: %s\n", spotifyISRC) GoLog("[Tidal] No ISRC match found for: %s\n", spotifyISRC)
return nil, fmt.Errorf("ISRC mismatch: no track found with ISRC %s on Tidal", spotifyISRC) return nil, fmt.Errorf("ISRC mismatch: no track found with ISRC %s on Tidal", spotifyISRC)
} }
@@ -669,7 +671,7 @@ func getDownloadURLParallel(apis []string, trackID int64, quality string) (strin
for i := 0; i < len(apis); i++ { for i := 0; i < len(apis); i++ {
result := <-resultChan result := <-resultChan
if result.err == nil { if result.err == nil {
GoLog("[Tidal] [Parallel] ✓ Got response from %s (%d-bit/%dHz) in %v\n", GoLog("[Tidal] [Parallel] Got response from %s (%d-bit/%dHz) in %v\n",
result.apiURL, result.info.BitDepth, result.info.SampleRate, result.duration) result.apiURL, result.info.BitDepth, result.info.SampleRate, result.duration)
go func(remaining int) { go func(remaining int) {