Skip to content

Commit

Permalink
Fix SoundCloud title bug.
Browse files Browse the repository at this point in the history
  • Loading branch information
stefansundin committed Feb 8, 2021
1 parent d937eb9 commit 4b82eee
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 9 deletions.
23 changes: 17 additions & 6 deletions app.rb
Original file line number Diff line number Diff line change
Expand Up @@ -813,27 +813,38 @@
response = App::Soundcloud.get("/users/#{id}/tracks")
next "Error: That user no longer exist." if response.code == 500 && response.body == '{"error":"Match failed"}'
raise(App::SoundcloudError, response) if !response.success?
response.json["collection"].map do |track|

data = response.json["collection"]
if data.length > 0
user = data[0]["user"]["username"]
user_permalink = data[0]["user"]["permalink"]
end
tracks = data.map do |track|
{
"id" => track["id"],
"created_at" => track["created_at"],
"username" => track["user"]["username"],
"title" => track["title"],
"description" => track["description"],
"duration" => (track["duration"] / 1000),
"artwork_url" => track["artwork_url"],
"permalink_url" => track["permalink_url"],
}
end.to_json
end

{
"user" => user,
"username" => user_permalink,
"tracks" => tracks,
}.to_json
end
return [422, "Something went wrong. Try again later."] if data.nil?
return [422, data] if data.start_with?("Error:")

@data = JSON.parse(data)
@username = @data[0]["user"]["permalink"] rescue CGI.unescape(username)
@user = @data[0]["user"]["username"] rescue CGI.unescape(username)
@user = @data["user"] || CGI.unescape(username)
@username = @data["username"] || CGI.unescape(username)

@data.map do |track|
@data["tracks"].map do |track|
track["description"]
end.compact.map(&:grep_urls).flatten.tap { |urls| App::URL.resolve(urls) }

Expand Down
6 changes: 3 additions & 3 deletions views/soundcloud.atom.erb
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,19 @@
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<id>soundcloud:<%= @id %></id>
<title><%= @user %> on SoundCloud</title>
<title><%= @user.esc %> on SoundCloud</title>
<icon>https://soundcloud.com/favicon.ico</icon>
<link href="<%= request.original_url.esc %>" rel="self" />
<link href="https://soundcloud.com/<%= @username %>" rel="alternate" />
<updated><%= @updated_at %></updated>
<%- @data.each do |track| -%>
<%- @data["tracks"].each do |track| -%>

<entry>
<id>soundcloud:track:<%= track["id"] %><%= ":#{params[:cachebuster]}" if params[:cachebuster] %></id>
<title>[<%= track["duration"].to_duration %>] <%= track["title"].to_line.esc %></title>
<link href="<%= track["permalink_url"].esc %>" />
<updated><%= Time.parse(track["created_at"]) %></updated>
<author><name><%= track["username"].esc %></name></author>
<author><name><%= @user.esc %></name></author>
<content type="html">
&lt;iframe width="100%" height="185" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/<%= track["id"] %>" frameborder="0" scrolling="no" allowfullscreen referrerpolicy="no-referrer">&lt;/iframe>

Expand Down

0 comments on commit 4b82eee

Please sign in to comment.