Commit Graph

42 Commits

Author SHA1 Message Date
Hamid Reza Mohammadi
f305394ad7 people tags #387 2026-09-30 18:17:44 +03:30
Hamid Reza Mohammadi
e23d11450b people tags #387 2026-09-30 07:38:53 +03:30
Hamid Reza Mohammadi
0cb288228d people tags #387 2026-09-29 21:10:46 +03:30
Hamid Reza Mohammadi
20b13cd0e7 people tags #387 2026-09-28 21:45:58 +03:30
Hamid Reza Mohammadi
7a722455ec CSRF antiforgery fixes 2026-09-27 14:03:38 +03:30
Hamid Reza Mohammadi
b6552e3e43 comments styling fixes 2026-09-27 07:50:57 +03:30
Hamid Reza Mohammadi
ab254fefd5 commennt sanitization 2026-09-26 21:32:02 +03:30
Hamid Reza Mohammadi
ca84dab8d5 removing half baked music link page 2026-09-15 12:05:22 +03:30
Hamid Reza Mohammadi
1b2525346a tiymce bug fix applied again 2026-09-15 07:52:44 +03:30
Ehsan Mohandesi
cb7b1b03a3 Replace Spotify search with a validated music link box
The Spotify Web API integration stopped working, leaving /spotify unable to
suggest songs at all. Replace the artist/album/track search flow with a single
box where the user pastes a link to the track on a music service.

Links are checked against a hardcoded allow-list of legal streaming and store
domains so links to ripped audio cannot be submitted. The check lives in the
service layer, not just the page: any authenticated user can POST to
/api/ganjoor/song directly and bypass the UI. Hosts are matched against the
full host or a dot-prefixed suffix, so look-alikes such as
open.spotify.com.evil.com are rejected; https is required, and userinfo and
non-default ports are refused. Accepted URLs are canonicalised - https,
lowercased host, tracking parameters stripped - so the same track always yields
the same stored URL and duplicate detection actually works.

Links are stored under one new type, PoemMusicTrackType.MusicUrl, with the
platform derived from the host at render time. That needs no migration or
backfill, and supporting another service later needs no new enum value. The
duplicate check no longer keys on TrackType, which closes a gap where the same
URL could be resubmitted as a different type. Several links per poem remain
allowed; only an identical URL for the same poem is refused.

The Spotify search page and its OAuth plumbing are kept and simply redirect to
/musiclink while the existing SpotifyWorking flag is false, so the old flow can
be restored if that API ever works again.

Track URLs are no longer written through Html.Raw into href attributes. They
previously came from the Spotify API; now that they are user supplied, encoding
them prevents stored XSS.

Also fixes two latent bugs in SuggestSong that this flow would have hit: a null
dereference when TrackUrl is empty, and a singer lookup that matched any singer
with an empty Url.
2026-09-13 22:16:18 -05:00
Hamid Reza Mohammadi
fb87847d65 recitation icons fix 2026-09-12 12:23:36 +03:30
Hamid Reza Mohammadi
157565496d lock on recitation 2026-09-12 12:15:01 +03:30
Hamid Reza Mohammadi
566ff6d002 go to current position of recitation 2026-09-12 09:42:42 +03:30
Hamid Reza Mohammadi
5ebf07d485 bottpm audio player 2026-09-12 07:38:52 +03:30
Hamid Reza Mohammadi
fca38516d3 improving partials 2026-09-02 14:18:37 +03:30
Hamid Reza Mohammadi
ce4ff283d5 tinymce initialization bug fix 2026-09-02 13:34:30 +03:30
Hamid Reza Mohammadi
537ac26cb3 jump button removed for cats with no desc 2026-09-02 07:46:59 +03:30
Hamid Reza Mohammadi
73fbfd7f76 improving accessing contents in the bio section 2026-09-01 21:44:25 +03:30
Hamid Reza Mohammadi
d07a73c165 rollng back items 2026-09-01 20:49:46 +03:30
Hamid Reza Mohammadi
bccee50ed5 make ganjoor page links visible 2026-09-01 19:44:10 +03:30
Hamid Reza Mohammadi
2291bb80b1 nav fixes 2026-09-01 17:47:15 +03:30
Hamid Reza Mohammadi
93a5090346 fixing nav links 2026-09-01 17:40:27 +03:30
Hamid Reza Mohammadi
186348a148 navigation fixes 2026-09-01 17:32:54 +03:30
Hamid Reza Mohammadi
6ef7969486 poemm navigation fix 2026-09-01 17:27:53 +03:30
Hamid Reza Mohammadi
061853a365 fixes 2026-08-16 16:11:46 +03:30
Hamid Reza Mohammadi
2fcf7241f2 new sorting option 2026-08-04 20:58:05 +03:30
Hamid Reza Mohammadi
1e4527591c #495 comments pagination 2026-08-04 19:00:08 +03:30
Hamid Reza Mohammadi
ff3e82e897 #495 comment ratings 2026-08-04 18:24:35 +03:30
Hamid Reza Mohammadi
cc13bb6157 #495 bug fix 2026-08-04 16:25:07 +03:30
Hamid Reza Mohammadi
d7bb49b771 ui fixes 2026-07-20 17:15:54 +03:30
Hamid Reza Mohammadi
b99b6439b1 ui fix 2026-07-20 17:10:32 +03:30
Hamid Reza Mohammadi
232aa543a4 refactoring 2026-07-20 15:39:03 +03:30
Hamid Reza Mohammadi
bc6c059ded ganjoor.net/vazn fix 2026-07-20 15:02:03 +03:30
Hamid Reza Mohammadi
f0eea6f655 fixes for ganjoor.net/vazn 2026-07-20 14:48:25 +03:30
Hamid Reza Mohammadi
5fa9eaf7db fixing ganjoor.net/vazn 2026-07-20 14:02:58 +03:30
Hamid Reza Mohammadi
2f1e711074 refactoring 2026-07-20 13:42:26 +03:30
Hamid Reza Mohammadi
8f2261e1cb fixing ganjoo.net/vazn page 2026-07-20 13:33:44 +03:30
Hamid Reza Mohammadi
3626ce2a58 refactoring 2026-07-19 17:02:18 +03:30
Hamid Reza Mohammadi
469460d0ec refactoring 2026-07-19 16:50:22 +03:30
Hamid Reza Mohammadi
d94f84606e fix 2026-07-17 13:38:07 +03:30
Hamid Reza Mohammadi
497e769c6d refactoring 2026-07-17 08:53:51 +03:30
Hamid Reza Mohammadi
9a93cdd962 refactoring 2026-07-17 08:53:07 +03:30