Add files via upload
This commit is contained in:
parent
07f2ed525b
commit
6e7f0c1505
37 changed files with 4084 additions and 20 deletions
82
extras/go/main.go
Normal file
82
extras/go/main.go
Normal file
|
|
@ -0,0 +1,82 @@
|
|||
// extras/go — decorative, not wired into the build. a toy CLI that mirrors
|
||||
// the shape of backend/search.py's result cards (title/artist/cover/duration)
|
||||
// without actually calling anything. run with: go run main.go
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// SearchResult mirrors the dicts returned by backend/search.py's
|
||||
// search_youtube / search_soundcloud / search_apple_music.
|
||||
type SearchResult struct {
|
||||
Title string
|
||||
Artist string
|
||||
CoverURL string
|
||||
Duration string
|
||||
Source string
|
||||
}
|
||||
|
||||
func (r SearchResult) String() string {
|
||||
return fmt.Sprintf("[%s] %s -- %s (%s)", strings.ToUpper(r.Source), r.Artist, r.Title, r.Duration)
|
||||
}
|
||||
|
||||
type AudioFormat struct {
|
||||
Ext string
|
||||
Lossless bool
|
||||
}
|
||||
|
||||
var formats = []AudioFormat{
|
||||
{"mp3", false},
|
||||
{"flac", true},
|
||||
{"wav", true},
|
||||
{"m4a", false},
|
||||
{"alac", true},
|
||||
{"ogg", false},
|
||||
{"opus", false},
|
||||
}
|
||||
|
||||
func losslessFormats() []string {
|
||||
var out []string
|
||||
for _, f := range formats {
|
||||
if f.Lossless {
|
||||
out = append(out, f.Ext)
|
||||
}
|
||||
}
|
||||
return out
|
||||
}
|
||||
|
||||
func renderProgress(label string, percent int, width int) string {
|
||||
if percent > 100 {
|
||||
percent = 100
|
||||
}
|
||||
if percent < 0 {
|
||||
percent = 0
|
||||
}
|
||||
filled := width * percent / 100
|
||||
bar := strings.Repeat("#", filled) + strings.Repeat("-", width-filled)
|
||||
return fmt.Sprintf("%-20s [%s] %3d%%", label, bar, percent)
|
||||
}
|
||||
|
||||
func main() {
|
||||
results := []SearchResult{
|
||||
{"MATADORA (Extended)", "SUKA.", "", "3:42", "youtube"},
|
||||
{"Aria Math (Epic Version)", "Logan Feece", "", "4:10", "soundcloud"},
|
||||
}
|
||||
|
||||
fmt.Println("nexdex.space -- go toy search demo")
|
||||
for _, r := range results {
|
||||
fmt.Println(r)
|
||||
}
|
||||
|
||||
fmt.Println("\nlossless formats:", strings.Join(losslessFormats(), ", "))
|
||||
|
||||
fmt.Println()
|
||||
for pct := 0; pct <= 100; pct += 20 {
|
||||
fmt.Println(renderProgress("MATADORA (Extended)", pct, 30))
|
||||
}
|
||||
|
||||
fmt.Println("\nmade by savsis with <3")
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue