refactor: Remove Recently Played section from profile page

Removed the Recently Played UI section from profile as redundant.
The listening history backend and APIs remain intact for future use.
Previous commit (0359e59) preserves the full implementation.
This commit is contained in:
glenneth 2025-12-21 12:53:10 +03:00
parent 0359e5909a
commit 2c49092c01
2 changed files with 0 additions and 102 deletions

View File

@ -120,37 +120,6 @@
(update-element "session-count" "0") (update-element "session-count" "0")
(update-element "favorite-genre" "Unknown"))))) (update-element "favorite-genre" "Unknown")))))
(defun load-recent-tracks ()
(ps:chain
(fetch "/api/asteroid/user/recent-tracks?limit=3")
(then (lambda (response) (ps:chain response (json))))
(then (lambda (result)
(let ((data (or (ps:@ result data) result)))
(if (and (= (ps:@ data status) "success")
(ps:@ data tracks)
(> (ps:@ data tracks length) 0))
(ps:chain data tracks
(for-each (lambda (track index)
(let ((track-num (+ index 1)))
(update-element (+ "recent-track-" track-num "-title")
(or (ps:@ track title) "Unknown Track"))
(update-element (+ "recent-track-" track-num "-artist")
(or (ps:@ track artist) "Unknown Artist"))
(update-element (+ "recent-track-" track-num "-duration")
(format-duration (or (ps:@ track duration) 0)))
(update-element (+ "recent-track-" track-num "-played-at")
(format-relative-time (ps:@ track played_at)))))))
(loop for i from 1 to 3
do (let* ((track-item-selector (+ "[data-text=\"recent-track-" i "-title\"]"))
(track-item-el (ps:chain document (query-selector track-item-selector)))
(track-item (when track-item-el (ps:chain track-item-el (closest ".track-item")))))
(when (and track-item
(or (not (ps:@ data tracks))
(not (ps:getprop (ps:@ data tracks) (- i 1)))))
(setf (ps:@ track-item style display) "none"))))))))
(catch (lambda (error)
(ps:chain console (error "Error loading recent tracks:" error))))))
(defun load-top-artists () (defun load-top-artists ()
(ps:chain (ps:chain
(fetch "/api/asteroid/user/top-artists?limit=5") (fetch "/api/asteroid/user/top-artists?limit=5")
@ -355,43 +324,12 @@
(show-error "Error loading profile data")))) (show-error "Error loading profile data"))))
(load-listening-stats) (load-listening-stats)
(load-recent-tracks)
(load-favorites) (load-favorites)
(load-top-artists) (load-top-artists)
(load-activity-chart) (load-activity-chart)
(load-avatar)) (load-avatar))
;; Track offset for pagination
(defvar *recent-tracks-offset* 3)
;; Action functions ;; Action functions
(defun load-more-recent-tracks ()
(ps:chain console (log "Loading more recent tracks..."))
(ps:chain
(fetch (+ "/api/asteroid/user/recent-tracks?limit=10&offset=" *recent-tracks-offset*))
(then (lambda (response) (ps:chain response (json))))
(then (lambda (result)
(let ((data (or (ps:@ result data) result))
(container (ps:chain document (get-element-by-id "recent-tracks-list"))))
(when container
(if (and (= (ps:@ data status) "success")
(ps:@ data tracks)
(> (ps:@ data tracks length) 0))
(progn
(ps:chain (ps:@ data tracks) (for-each (lambda (track)
(let ((item (ps:chain document (create-element "div"))))
(setf (ps:@ item class-name) "track-item")
(setf (ps:@ item inner-h-t-m-l)
(+ "<span class=\"track-title\">" (or (ps:@ track title) "Unknown") "</span>"
"<span class=\"track-time\">" (or (ps:@ track played_at) "") "</span>"))
(ps:chain container (append-child item))))))
(setf *recent-tracks-offset* (+ *recent-tracks-offset* (ps:@ data tracks length)))
(show-message (+ "Loaded " (ps:@ data tracks length) " more tracks") "success"))
(show-message "No more tracks to load" "info"))))))
(catch (lambda (error)
(ps:chain console (error "Error loading more tracks:" error))
(show-message "Error loading tracks" "error")))))
(defun edit-profile () (defun edit-profile ()
(ps:chain console (log "Edit profile clicked")) (ps:chain console (log "Edit profile clicked"))
(show-message "Profile editing coming soon!" "info")) (show-message "Profile editing coming soon!" "info"))

View File

@ -75,46 +75,6 @@
</div> </div>
</div> </div>
<!-- Recently Played Tracks -->
<div class="admin-section">
<h2>🎵 Recently Played</h2>
<div class="tracks-list" id="recent-tracks">
<div class="track-item">
<div class="track-info">
<span class="track-title" data-text="recent-track-1-title">No recent tracks</span>
<span class="track-artist" data-text="recent-track-1-artist"></span>
</div>
<div class="track-meta">
<span class="track-duration" data-text="recent-track-1-duration"></span>
<span class="track-played-at" data-text="recent-track-1-played-at"></span>
</div>
</div>
<div class="track-item">
<div class="track-info">
<span class="track-title" data-text="recent-track-2-title"></span>
<span class="track-artist" data-text="recent-track-2-artist"></span>
</div>
<div class="track-meta">
<span class="track-duration" data-text="recent-track-2-duration"></span>
<span class="track-played-at" data-text="recent-track-2-played-at"></span>
</div>
</div>
<div class="track-item">
<div class="track-info">
<span class="track-title" data-text="recent-track-3-title"></span>
<span class="track-artist" data-text="recent-track-3-artist"></span>
</div>
<div class="track-meta">
<span class="track-duration" data-text="recent-track-3-duration"></span>
<span class="track-played-at" data-text="recent-track-3-played-at"></span>
</div>
</div>
</div>
<div class="profile-actions">
<button class="btn btn-secondary" onclick="loadMoreRecentTracks()">Load More</button>
</div>
</div>
<!-- Favorite Tracks --> <!-- Favorite Tracks -->
<div class="admin-section"> <div class="admin-section">
<h2>❤️ Favorite Tracks</h2> <h2>❤️ Favorite Tracks</h2>