37 lines
881 B
Crystal
37 lines
881 B
Crystal
require "uri"
|
|
require "http/client"
|
|
require "digest/sha256"
|
|
|
|
include CrystalGauntlet
|
|
|
|
CrystalGauntlet.endpoints["/getGJSongInfo.php"] = ->(body : String): String {
|
|
params = URI::Params.parse(body)
|
|
LOG.debug { params.inspect }
|
|
|
|
song_id = params["songID"].to_i32
|
|
|
|
song = Songs.fetch_song(song_id, true)
|
|
|
|
if song != nil
|
|
begin
|
|
song_name, song_author_id, song_author_name, song_size, song_download = song.not_nil!
|
|
rescue
|
|
return "-1"
|
|
else
|
|
return Format.fmt_song({
|
|
1 => song_id,
|
|
2 => song_name,
|
|
3 => song_author_id,
|
|
4 => song_author_name,
|
|
5 => (song_size || 0) / (1000 * 1000),
|
|
6 => "", # yt video id; unused i think?
|
|
7 => "", # yt video url; unused also??
|
|
8 => "1", # if the song is verified/scouted
|
|
10 => song_download || "",
|
|
})
|
|
end
|
|
else
|
|
return "-2"
|
|
end
|
|
}
|