1
0
Commit Graph

283 Commits

Author SHA1 Message Date
e8ad10a16d
In CheckAndUpdateMostListenedSong pass cur and prev songs by pointer. 2023-09-15 03:17:44 +04:00
2cf6e1a6cb
append() was replaced with more efficient copy() (only 1 allocation with make). 2023-09-14 18:20:47 +04:00
978b4c6454
Removed unused error returning (error is always nil). 2023-09-14 17:59:14 +04:00
a6f92b56da
Reorganised Handlers struct fields. 2023-09-14 17:58:35 +04:00
eccf0ff4e9
Removed unused const FormatISO8601. 2023-09-14 17:51:15 +04:00
c020031127
Do not overwrite mostlistenedsong file if a song wasn't changed. 2023-09-10 18:23:06 +04:00
e082527edc
In case of an http error show Offline in a Now playing field. 2023-08-21 18:31:06 +04:00
9ac60e9f28
Don't show server start date and time on a page. 2023-08-21 18:30:21 +04:00
5c16576fa4
Removed one nesting level by removing select statement. 2023-08-21 06:08:21 +04:00
76b3e2e8ad
For some log messages changed capital letter to lowercase. 2023-08-21 05:45:12 +04:00
f9b2afdd50
Added log for failed attempts on retrieving songs from playlist.log. 2023-08-20 18:03:51 +04:00
48bbd32eb8
Remove a debug print accidenatlly commited. 2023-08-20 03:27:08 +04:00
075e171b40
Populate a freshly created cache with songs if there are any. 2023-08-20 03:26:14 +04:00
7df94bef12
Only then call make on cache if it is nil. 2023-08-20 03:20:49 +04:00
1df162445e
Removed configuration file. 2023-08-06 03:19:26 +04:00
a1bf9cf30a
Use flags instead of config file. Also replaced HttpServer with a new code. 2023-08-06 03:17:18 +04:00
4cc4d0138a
Return an empty IcecastStatus struct instead of nil in case of an error. 2023-07-22 23:08:18 +04:00
877b5d4013
Playlist file renamed to playlist.m3u. 2023-07-22 22:58:42 +04:00
38f04aa9f8
Removed code for liquidsoap. 2023-07-22 22:15:24 +04:00
cac5751ede
Removed AssetsFS() since it is not needed anymore. 2023-05-27 00:36:03 +04:00
8b439bbd5a
Removed httprouter. 2023-05-26 23:55:40 +04:00
3e513087ca
Let's dynamically calculate bufferSize with 320 bytes per line. 2023-05-21 23:11:15 +04:00
47bc1a8e02
Added sitemap.xml. 2023-05-21 22:44:09 +04:00
2987cf4a2a
Moved RobotsTxt handler out of Handlers struct. 2023-05-21 22:42:17 +04:00
ca4391784a
Added /favicon.svg endpoint. 2023-05-21 22:35:37 +04:00
eb6b0c68b3
No need in preloading. Because in this moment liquidsoap starts and adds a new song that Icecast writes in playlist.log so IN_MODIFY is being triggered. 2023-03-13 05:35:39 +04:00
c02442ebcd
Okay, there is actually a new line at the end of file. Let's skip that. 2023-03-13 05:10:17 +04:00
31a892e43d
Remove log section from config, since it is not used anymore. 2023-03-13 03:31:40 +04:00
8e0d5e4fb7
Date format was moved out to a const. 2023-03-13 02:12:21 +04:00
95e9d97a22
Updated web.Index() call in a handler. 2023-03-13 02:12:02 +04:00
0fffbce646
First try to load currently playing song. 2023-03-13 01:53:52 +04:00
2e60f2bb8a
Check for empty prev song. 2023-03-13 01:42:24 +04:00
f24953ae7c
Amount of listeners of next song is actually how much listeners was by the end of a prev song. 2023-03-13 01:42:00 +04:00
1b91f70edd
Added most_listened_song_file_path option. 2023-03-13 01:40:30 +04:00
e84a811a1d
Update most listened song. 2023-03-13 00:04:34 +04:00
8f16b5d96f
Implemented a functionality for storing and showing most listened song. 2023-03-13 00:03:59 +04:00
53d24c5781
Store current song in a separate variable. A base for most listened song functionality. 2023-03-12 22:25:58 +04:00
63fcb36e60
Nah, 3KiB should be enought to read. 2023-03-12 22:06:15 +04:00
d48972caa0
Okay, now let's return original idea of adding songs one by one. 2023-03-12 21:48:01 +04:00
6d4a276dd8
IcecastLastSongs() (formerly known as IcecastLastPlayedSongs()) args were changed, so let's delete unneeded arg. 2023-03-12 21:32:29 +04:00
517dd0e534
Fixed last songs displaying. 2023-03-12 21:31:18 +04:00
0409da3ca3
Oh, last commit led to loading of full list of prev songs. Let's remove this code. 2023-03-12 04:01:32 +04:00
10048c671e
Prevent reading latest song from a log right after a service started. 2023-03-12 03:53:09 +04:00
db02047268
Now lastPlayedCache's initial capacity is not hardcoded to 10. And it will be filled slowly, instead of initial read of last N songs from a playlist.log. 2023-03-12 02:19:07 +04:00
47e3ff37ba
Reduced bufferSize because 16KiB is more than enough for a max of 10 songs. 2023-03-12 02:16:55 +04:00
83cdc222c7
Change arav.top to arav.su. 2023-02-23 17:49:01 +04:00
edfcb9526b
Fixed MIME type to text/html. 2023-02-19 22:26:25 +04:00
77183bb14e
Added Content-Type header for filelist. 2023-02-19 21:41:58 +04:00
aa0d818488
Added robots.txt endpoint. 2023-02-19 21:22:56 +04:00
182a4c02c9
Added reading of filelist.html file from disk. 2023-02-19 21:18:36 +04:00
6d26d695ec
Pass ListLastNSongs to an Index template in handlers.go. 2023-02-07 02:46:10 +04:00
dc8ec51530
Func LoadConfiguration() was renamed to Load(). Added a comment for it. Edited a comment for SplitNetworkAddress() func. 2023-02-07 02:29:45 +04:00
bde8a59a31
Removed a comment for type Configuration that was from httpprocprobed service. 2023-02-07 02:28:54 +04:00
7c5e1465af
handlers moved to internal/http. Logging changed to std log. Type RadioHandlers renamed to Handlers. 2023-02-07 02:27:30 +04:00
91329ceaec
Server moved to internal/http. 2023-02-07 02:26:10 +04:00
192fa0d58f
Removed ToStdout option from Configuration. 2023-02-07 02:24:44 +04:00
7e83be82cb
Calculate offset for ReadAt() instead of using Seek().
Fixed going out of bounds.
2022-09-21 04:56:06 +04:00
f631fdfa7c
Playlist log watcher was made into a struct. 2022-09-19 01:55:09 +04:00
3727f44381
lastPlayedSongs changed to icecastLastPlayedSongs. playlistFired changed to playlistChanged. 2022-09-19 01:37:47 +04:00
e8e3570a8f
Liquidsoap code moved to radio package. ErrNotRunning -> ErrLiquidsoapNotRunning. 2022-09-19 01:32:23 +04:00
73fc9861fd
Renamed Song() method to more clear name SongName(). 2022-08-31 00:52:50 +04:00
98b0a8085a
No, it skips 2 tracks instead of 1. Let's get back to -2. 2022-08-30 18:20:24 +04:00
0620f82940
lastPlayedSong was made into lastPlayedSongs. Now it retrieves up to n songs from a log. 2022-08-30 02:29:11 +04:00
64eed7ac7e
Oops, last line also has a newline. So the last one is empty. 2022-08-30 00:51:21 +04:00
1e6b51a2c0
IsRunning() method had no use. 2022-08-29 23:12:47 +04:00
f211602a4b
Implemented sane script validation. WTF did I think later..? 2022-08-29 23:10:39 +04:00
7dd517ea8f
Check if path is valid. Simplified error handling. 2022-08-29 22:20:05 +04:00
16e849eb65
Rewritten lastPlayedSong() in a sane way. Hope it will work. 2022-08-29 12:47:06 +04:00
d43b2fe897
Removed handling of imposible cases. 2022-08-29 09:19:35 +04:00
1996743470
Cache vars moved to the top of the file. 2022-08-29 09:08:08 +04:00
c935db8ce7
Implemented lastPlayedSong() function that retrieves one song from a playlist.log file that doesn't run external commands for it.
And now we start with an empty list.
2022-08-29 08:58:35 +04:00
0da8077ab7
Implemented a liquidsoap process launcher. 2022-08-29 07:20:36 +04:00
e94973920e
Added configuration fields for a liquidsoap. 2022-08-29 07:17:40 +04:00
b5d8b58b81
Template was replaced with a pre-compiled to a Go source file. 2022-06-13 18:35:36 +04:00
60dcf2c11c
ModMask replaced wuth ModIgnMask. Now IN_IGNORED being watched, it makes watcher to reinstantiate. 2022-05-24 23:20:19 +04:00
f2fcadd0c5
Removed not used NotFoundData structure. 2022-05-24 19:46:33 +04:00
74ae6f4213
Now index template is a variable. 2022-05-24 19:41:04 +04:00
6155b593b2
Robots handler removed. 2022-05-24 18:41:50 +04:00
4d5fb47a15
Template and assets moved off to web directory in root. 2022-05-24 18:30:45 +04:00
a335ae4803
Web dir with a template and assets was moved off to web directory in root. 2022-05-24 18:29:15 +04:00
3ec15fbd2a
Now Index page will be shown even if Icecast status cannot be retrieved. 2022-05-24 18:26:59 +04:00
6f607c830e
Use time format specified in radio package. 2022-04-02 04:29:58 +04:00
88e047d210
Moved time formats to constanst. 2022-04-02 04:29:23 +04:00
1b5dea899e
I found why time was being further altered. The reason is that slices are pointing to original array. Okay. The problem fixed. 2022-04-02 02:00:28 +04:00
db8e8c3ebf
Forgot to change time format in Index handler as well. 2022-04-01 23:35:14 +04:00
c4532fea24
According to tests it is equal performance wise, so why not make a code shorter. 2022-04-01 23:20:04 +04:00
7d447be786
Initialise playlistFired at definition. 2022-04-01 22:35:30 +04:00
1ed81fdd36
Fixed deadlock caused by misunderstanding of how defer works. 2022-04-01 21:12:54 +04:00
21995ea4cd
Added mutex for lastPlayedCache. 2022-04-01 20:44:32 +04:00
4f3993515a
Changed displayed on-air since date to RFC1123. 2022-04-01 20:43:10 +04:00
066208def4
Reduced main.js a little. 2022-04-01 18:42:13 +04:00
b035476fb7
Oh, here must be used html/template functions! Gotcha! Nice. 2022-03-31 23:04:58 +04:00
0360efc147
If there was no listeners on a track, then print nothing. 2022-03-31 22:46:47 +04:00
ee10fc1c9e
Okay, didn't work. Let it be like that for now. 2022-03-31 22:43:39 +04:00
7c67151ee8
Let's try negate it. 2022-03-31 22:42:01 +04:00
75473aff1f
Let's try unless. 2022-03-31 20:12:18 +04:00
8c1fdb0e44
Ah, yes... It doesn't work like that. 2022-03-31 20:09:56 +04:00
88163a6bea
Actually, 2rem would be enough for listeners column. 2022-03-31 20:06:26 +04:00
d243f82c7e
CSS updated for a new last played table. 2022-03-31 20:05:46 +04:00
f51b623b08
Updated main.js for a new last played layout. 2022-03-31 20:03:45 +04:00
52696c026e
New last played table rows: time, listeners and song. If there was no listeners then this col is empty. 2022-03-31 20:02:17 +04:00
0844b917dc
Now last played songs are consist of time, listeners and song name combined with artist. 2022-03-31 20:01:13 +04:00
93f50458ec
Forgot about ReadFile() method of embed.FS. 2022-03-31 18:34:33 +04:00
981bbd8968
In this case it is safer to compare with Time field. What if it is a problem with just this song? 2022-03-31 18:24:41 +04:00
4b5289223d
Remove whitespace in IcecastLastPlayedSongs. 2022-03-31 18:14:20 +04:00
a9b6e5a056
Compute lastPlayedCache length once a call. 2022-03-31 18:13:49 +04:00
d3563abba1
Remove inteermidiate variable and instantiate struct in return statement. 2022-03-31 18:11:04 +04:00
0d113d30a1
Replace Sprintf with way more performant simple concatenation. 2022-03-31 18:05:47 +04:00
b077fa053c
It is better to call here lastPlayedSongs directly. 2022-03-31 18:02:04 +04:00
0983a0f0c5
This conversion to UTC is excessive. 2022-03-31 17:58:42 +04:00
790a507f0d
Comparison by time is enough. 2022-03-31 17:55:36 +04:00
ee96af31ad
Added a robots.txt file and a handler for it. 2022-03-31 17:01:51 +04:00
2b18204a6c
Changed start_time_local field to time in main.js. 2022-03-31 16:27:17 +04:00
1dad2ffa5f
Removed another forgotten debug println. 2022-03-31 15:45:49 +04:00
b591346177
Removed forgotten debug println. 2022-03-31 15:44:17 +04:00
70580298d2
Rewrote LastSong handler using caching IcecastLastSong function. And IcecastLastPlayedSongs is using cache as well. Now it takes between 300 nanoseconds to 2 microseconds to get a list of last songs. 2022-03-31 15:39:51 +04:00
3b51fffa60
Added last played list cache with updating using Inotify watcher. 2022-03-31 15:35:04 +04:00
80d618347e
Oh, oops. range copies values, that's why nothing happens. Use good old for now. 2022-03-31 04:02:49 +04:00
1e7819e1aa
Hmm, time conversion fails, let's see what happened. 2022-03-31 03:45:59 +04:00
e1310e211e
Implemented timezone conversion in handlers. 2022-03-31 02:55:34 +04:00
00c4b5a8b3
Added timezone for TZ converting purposes. 2022-03-31 02:55:05 +04:00
b4cbb236aa
Fixed an error in a time format. 2022-03-31 02:16:34 +04:00
942bad3b9d
It should be server_start_date. 2022-03-31 02:16:15 +04:00
9d2e52aec3
Added missing JSON Content-Type. 2022-03-31 02:15:16 +04:00
4740f9ddc3
Well, this Jade implementation works really weird. while you must specify a name for item in each you must NOT use it, lol. Now this works, kinda. Strange thing is that if else statement doesn't support comparison operators. And as stated in examples such code as len(items) >0 should work, but no! It doesn't. Okay, at least now it works. 2022-03-31 02:14:54 +04:00
f605475f75
Working radio online status. 2022-03-31 02:11:23 +04:00
b258e6f7ef
Added Xiph directory link over a player. 2022-03-31 02:10:33 +04:00
c68c99e528
Return error for IcecastLastPlayedSongs. 2022-03-30 20:21:18 +04:00
306ddb2b53
Error logging for last played songs. 2022-03-30 20:20:30 +04:00
2664d24c5f
Uncommenting last-played table. 2022-03-30 20:02:07 +04:00
97935ac3e3
Commenting out lst-played. 2022-03-30 19:58:24 +04:00
924245e9c9
A little refactor. Better errors handling. 2022-03-30 19:13:55 +04:00
4216c9c82a
Moved IcecastStatusDTO's method Song() under its struct. 2022-03-30 18:54:50 +04:00
588be2c2bb
Updated favicon. 2022-03-30 18:51:55 +04:00
66be1c0e97
Move font's license out of assets dir. 2022-03-30 18:49:20 +04:00
f42c239b27
Uhm, okay. it is actually .Songs. 2022-03-10 00:37:18 +04:00
db5ec743bd
Should work now. 2022-03-10 00:33:45 +04:00
deb6a2088e
Fixing a template. 2022-03-10 00:30:47 +04:00
85751b4cd8
Another try to fix template. 2022-03-10 00:29:34 +04:00
c6c06fa014
Found a typo. 2022-03-10 00:22:37 +04:00
abb4c91dee
Uncomment even more in a template. 2022-03-10 00:19:30 +04:00
8d4ef85e99
Another fix for index.jade. 2022-03-10 00:17:58 +04:00
91f9c1c17b
It yells at me telling that ] is invalid. 2022-03-10 00:16:34 +04:00
fb17938fed
Fixed vars in template. 2022-03-10 00:13:30 +04:00
72b026c04f
Uncomment more in index.jade. 2022-03-10 00:11:45 +04:00
6a61c56891
We are closer for working IcecastLastPlayedSongs(). 2022-03-10 00:10:00 +04:00
c4ea8aef8c
Debug Icecast. 2022-03-10 00:06:09 +04:00
637f7c0280
Oh, I found the problem. It's cut command. 2022-03-10 00:02:44 +04:00
65212103a3
Debug Icecast 2. 2022-03-10 00:00:52 +04:00
f756cedae7
Debugging Icecast. 2022-03-09 23:59:25 +04:00