mirror of
https://git.maid.zone/stuff/soundcloak.git
synced 2026-01-03 01:19:37 +05:00
start work on search; write some readme up
This commit is contained in:
@@ -22,4 +22,7 @@ const UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
|
||||
// time-to-live for dns cache
|
||||
const DNSCacheTTL = 10 * time.Minute
|
||||
|
||||
// run soundcloak on this address (localhost:4664 by default)
|
||||
const Addr = ":4664"
|
||||
|
||||
var JSON = jsoniter.ConfigFastest
|
||||
|
||||
@@ -36,6 +36,8 @@ var httpc = fasthttp.HostClient{
|
||||
|
||||
var usersCache = map[string]cached[User]{}
|
||||
var tracksCache = map[string]cached[Track]{}
|
||||
var userSearchCache = map[string]cached[Paginated[User]]{}
|
||||
var trackSearchCache = map[string]cached[Paginated[Track]]{}
|
||||
|
||||
var verRegex = regexp.MustCompile(`(?m)^<script>window\.__sc_version="([0-9]{10})"</script>$`)
|
||||
var scriptsRegex = regexp.MustCompile(`(?m)^<script crossorigin src="(https://a-v2\.sndcdn\.com/assets/.+\.js)"></script>$`)
|
||||
@@ -308,3 +310,33 @@ func (t Track) GetStream() (string, error) {
|
||||
|
||||
return s.URL, nil
|
||||
}
|
||||
|
||||
func SearchTracks(args string) (*Paginated[Track], error) {
|
||||
cid, err := GetClientID()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
p := Paginated[Track]{Next: "https://api-v2.soundcloud.com/search/tracks" + args + "&client_id=" + cid}
|
||||
err = p.Proceed()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return &p, nil
|
||||
}
|
||||
|
||||
func SearchUsers(args string) (*Paginated[User], error) {
|
||||
cid, err := GetClientID()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
p := Paginated[User]{Next: "https://api-v2.soundcloud.com/search/users" + args + "&client_id=" + cid}
|
||||
err = p.Proceed()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return &p, nil
|
||||
}
|
||||
|
||||
@@ -73,6 +73,7 @@ type Track struct {
|
||||
|
||||
type Paginated[T any] struct {
|
||||
Collection []T `json:"collection"`
|
||||
Total int `json:"total_results"`
|
||||
Next string `json:"next_href"`
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user