From 4a9bf38ef61b39e482458ba56cd1e6fea379b4d7 Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Fri, 21 Nov 2025 21:01:50 -0500 Subject: Added "listening to" box in sidebar --- lib/tasks/tasks.rake | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'lib') diff --git a/lib/tasks/tasks.rake b/lib/tasks/tasks.rake index fee22f4..91e196f 100644 --- a/lib/tasks/tasks.rake +++ b/lib/tasks/tasks.rake @@ -1,3 +1,5 @@ +require 'net/http' + namespace :thoughts do desc "Email a review of the last day's upvotes" task :email_upvote_report => :environment do @@ -7,4 +9,23 @@ namespace :thoughts do VoteMailer.with(votes: votes).daily_report_email.deliver end end + + desc "Refresh the recently listened tracks" + task :refresh_scrobbles => :environment do + Scrobble.destroy_all + + api_key = Rails.application.credentials.lastfm_api_key + url = URI.parse("http://ws.audioscrobbler.com/2.0/?method=user.getrecenttracks&user=fefferburbia&api_key=#{api_key}&format=json") + req = Net::HTTP::Get.new(url.to_s) + res = Net::HTTP.start(url.host, url.port) {|http| + http.request(req) + } + output = JSON.parse(res.body) + + items = output["recenttracks"]["track"].map {|p| [p["name"], p["artist"]["#text"], p["album"]["#text"], p["image"][2]["#text"]]}.sort.uniq + + items.each do |item| + Scrobble.create!(title: item[0], artist: item[1], album: item[2], image: item[3]) + end + end end -- cgit 1.4.1