|
d94c029fda
|
In ListenerCounter struct also keep track of overall number of listeners for a song and its max simultaneous number of listeners. These parameters are being reset with a Reset() method that returns its values.
|
2024-05-11 04:21:00 +04:00 |
|
|
1682362779
|
Do not alter Song struct listeners with its methods, use a ListenerCounter to populate Listeners and MaxListeners. Eliminates the need for a mutex and SetFrom(), UpdateMaxListeners() and IncListeners() methods.
|
2024-05-11 04:18:28 +04:00 |
|
|
84e23b5b85
|
Remove an http.Error() func call from an anonym func that is spawned in a separate thread because that w (http.ResponseWriter) could be not available.
|
2024-05-10 04:39:56 +04:00 |
|
|
ec6c1df474
|
For Song struct a method SetFrom was added.
|
2024-05-10 00:08:59 +04:00 |
|
|
c1d64700ff
|
A separate MostListenedSong struct is not needed anymore.
|
2024-05-10 00:07:57 +04:00 |
|
|
71844a106d
|
Updated internal/http.
|
2024-05-10 00:07:07 +04:00 |
|
|
816a8d88a7
|
Introduce a statistics DB implemented in SQLite3.
|
2024-05-09 23:53:33 +04:00 |
|
|
9ef0771389
|
SongList struct was removed. A Song struct got UpdateMaxListeners() and IncListeners() methods. A mutex was Introduced for it. A Listeners field to store overall number of listeners during a song playing was introduced as well. A comment for the Song struct was removed.
|
2024-05-09 20:30:17 +04:00 |
|
|
ec5b6a028b
|
In ListenerCounter struct int -> int64.
|
2024-05-09 20:18:06 +04:00 |
|
|
0244f6afd5
|
A unified ServeAsset() func was introduced. AssetsGetFile() now will panic if a file doesn't exists, because it must not be the case.
|
2024-04-20 18:54:05 +04:00 |
|
|
7d4de3f6a6
|
Add 5 seconds to time.Now() to more accurately represent the time when a song actually starts to play.
|
2023-10-09 01:15:05 +04:00 |
|
|
c9e30f76e6
|
Let's actually hide RWMutex's methods to clean a namespace.
|
2023-10-09 00:21:44 +04:00 |
|
|
fb46a912f7
|
In song.go updated comments.
|
2023-10-09 00:05:28 +04:00 |
|
|
f960d8516a
|
Since SongList.Current() now return a copy then this code is no longer needed.
|
2023-10-08 23:55:55 +04:00 |
|
|
e63f0aead3
|
Make a SongList.Current() return a copy of a current song.
|
2023-10-08 23:52:10 +04:00 |
|
|
04e09dd800
|
Removed debug fmt.Println from ListenersUpdate.
|
2023-10-08 23:07:04 +04:00 |
|
|
27affc5e73
|
Let's actually remove unused handlers.
|
2023-10-08 22:50:36 +04:00 |
|
|
dbf71f3f64
|
Fixed listeners number update, well, on-dis/connect in mount is for a SOURCE. To get listeners you need to use <authentication type="url">.
Also, disabled all listener handler, added POST /api/listener/icecast handler.
|
2023-10-08 22:17:56 +04:00 |
|
|
24ce8115e7
|
MostListenedDateFormat was changed.
|
2023-10-08 04:08:27 +04:00 |
|
|
83955866c9
|
Alter an artist tag to tell that there is nothing left to play, so a fallback song is used to fill a silence.
|
2023-10-08 02:56:19 +04:00 |
|
|
f0aa00b932
|
Added a fallback song option. Altered a PlaylistNext() header to use it.
|
2023-10-08 02:52:37 +04:00 |
|
|
0d8032da46
|
MostListenedSong was rewritten.
|
2023-10-08 00:52:40 +04:00 |
|
|
d84d985962
|
In ListenerCounter a sync.Mutex was replaced by a sync.RWMutex.
|
2023-10-07 23:21:00 +04:00 |
|
|
da4e97f1aa
|
In Playlist.load() a check for an empty file was added.
|
2023-10-07 23:17:42 +04:00 |
|
|
131ea35341
|
A reduntant method Song.ArtistTitle() was removed.
|
2023-10-07 21:31:00 +04:00 |
|
|
b8afed6e1b
|
In PlaylistNext() CheckAndUpdateMostListenedSong() call was moved after songList.Add to avoid nil pointer dereferencing.
|
2023-10-07 05:34:50 +04:00 |
|
|
020676f113
|
While I want thread safety I also want a not set current song to not appear in a status JSON object.
|
2023-10-07 05:23:45 +04:00 |
|
|
07b0199193
|
In a PlaylistNext() handler pass a current song as a copy.
|
2023-10-07 05:20:27 +04:00 |
|
|
f53f30963d
|
sync.Mutex was replaced by sync.RWMutex for SongList.
|
2023-10-07 05:16:16 +04:00 |
|
|
1d50bbe790
|
In MarshalJSON() for Song a string field Duration was removed, just msec left.
|
2023-10-07 05:11:58 +04:00 |
|
|
2f96976f19
|
In DJHandlers.Status in an anonymous struct removed a pointer to Song.
|
2023-10-05 18:54:44 +04:00 |
|
|
9beb179cc0
|
SongList.Current() now returns a copy of Song instead of a pointer.
|
2023-10-05 18:52:18 +04:00 |
|
|
9b14d7846b
|
In CheckAndUpdateMostListenedSong() accept Song by value instead of a pointer.
|
2023-10-05 18:19:41 +04:00 |
|
|
c7f6b3072d
|
Embedded a sync.Mutex to a ListenerCounter.
|
2023-10-05 18:18:48 +04:00 |
|
|
f1eaba016f
|
In DJHandlers.ListenersInc() a code for updating max listeners was replaced by a function call to UpdateCurrentMaxListeners().
|
2023-10-05 18:05:27 +04:00 |
|
|
eeadbc4f96
|
To a SongList a method UpdateCurrentMaxListeners() was added, it checks and updates max listeners for a current song in a thread safe manner.
|
2023-10-05 18:04:15 +04:00 |
|
|
b659464118
|
For Song.ArtistTitle() a comment was updated.
|
2023-10-05 18:02:33 +04:00 |
|
|
f8fd13f8ed
|
In playlist load() add an error message.
|
2023-10-05 17:36:02 +04:00 |
|
|
e0fa65fbd7
|
Decided to remove inotify watcher from playlist.
|
2023-10-05 17:31:12 +04:00 |
|
|
6ae8a40493
|
In oggtag.go a struct named OggFIle was created, ReadFile turned into a constructor NewOggFile. And GetTag and GetDuration turned into methods.
|
2023-10-05 17:26:13 +04:00 |
|
|
10bc3a3785
|
In Playlist embed a sync.Mutex instead.
|
2023-10-04 18:37:13 +04:00 |
|
|
1c6d288cd7
|
In song.go: added comments; embed sync.Mutex in SongList instead of having it as a field; changed a json field name duration_milliseconds to duration_msec; listMaxLen field was renamed to maxLen; Len() was renamed to MaxLen().
|
2023-10-04 18:10:17 +04:00 |
|
|
98ed4035a7
|
In ListenersDec() handler added a missing return.
|
2023-10-02 18:09:25 +04:00 |
|
|
0bf81f93c8
|
In Song.DurationString() updated format.
|
2023-10-02 18:08:57 +04:00 |
|
|
64c2868fcf
|
Updated CheckAndUpdateMostListenedSong() func.
|
2023-10-02 15:04:51 +04:00 |
|
|
1990f1c7f0
|
In a PlaylistNext handler return a \n character as well.
|
2023-10-02 15:03:47 +04:00 |
|
|
29714b30ca
|
A file listeners.go was renamed to listener_counter.go.
|
2023-10-02 04:33:11 +04:00 |
|
|
9757f5f748
|
Oh, time.Duration works a little differently...
|
2023-10-02 03:55:17 +04:00 |
|
|
f1e2eca876
|
Added a DurationString() method for a Song that returns time in format 04:05 or 15:04:05 if a song is one hour or more long.
|
2023-10-02 03:52:26 +04:00 |
|
|
010774d775
|
Return a formatted string alongside with duration in milliseconds.
|
2023-10-02 03:48:31 +04:00 |
|