2022-12-31 14:25:43 +01:00
|
|
|
require "uri"
|
|
|
|
require "http/client"
|
|
|
|
require "digest/sha256"
|
|
|
|
|
|
|
|
include CrystalGauntlet
|
|
|
|
|
|
|
|
NEWGROUNDS_AUDIO_URL_REGEX = /(?<!\\)"url":"(.+?)(?<!\\)"/
|
|
|
|
|
|
|
|
def unescape_string(s : String) : String
|
|
|
|
s.gsub(/\\(.)/) { |v| v[1] }
|
|
|
|
end
|
|
|
|
|
|
|
|
CrystalGauntlet.endpoints["/getGJSongInfo.php"] = ->(body : String): String {
|
|
|
|
params = URI::Params.parse(body)
|
|
|
|
puts params.inspect
|
|
|
|
|
|
|
|
song_id = params["songID"].to_i32
|
|
|
|
|
2023-01-02 07:51:41 +01:00
|
|
|
song = Songs.fetch_song(song_id, true)
|
2022-12-31 14:25:43 +01:00
|
|
|
|
2023-01-02 07:51:41 +01:00
|
|
|
if song != nil
|
|
|
|
begin
|
|
|
|
song_name, song_author_id, song_author_name, song_size, song_download = song.not_nil!
|
|
|
|
rescue
|
|
|
|
return "-1"
|
|
|
|
else
|
2022-12-31 14:25:43 +01:00
|
|
|
return Format.fmt_song({
|
|
|
|
1 => song_id,
|
|
|
|
2 => song_name,
|
2023-01-02 07:51:41 +01:00
|
|
|
3 => song_author_id,
|
|
|
|
4 => song_author_name,
|
|
|
|
5 => (song_size || 0) / (1000 * 1000),
|
2022-12-31 14:25:43 +01:00
|
|
|
6 => "",
|
2023-01-02 07:51:41 +01:00
|
|
|
10 => song_download || "",
|
2022-12-31 14:25:43 +01:00
|
|
|
7 => "",
|
2023-01-02 07:51:41 +01:00
|
|
|
8 => "1"
|
2022-12-31 14:25:43 +01:00
|
|
|
})
|
|
|
|
end
|
|
|
|
else
|
2023-01-02 07:51:41 +01:00
|
|
|
return "-2"
|
2022-12-31 14:25:43 +01:00
|
|
|
end
|
|
|
|
}
|