1
0
Commit Graph

255 Commits

Author SHA1 Message Date
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
9c2a2c67bb
Add debug println. 2022-03-09 23:53:35 +04:00
2ec461a90f
It may panic because of this. 2022-03-09 23:49:01 +04:00
1e1d614301
Debug println. 2022-03-08 03:41:19 +04:00
9628a41a44
Okay, looks like it's a ine 39. 2022-03-08 03:32:54 +04:00
d63c299391
Now it failed again with ] character. 2022-03-08 03:31:26 +04:00
76f3f17235
Okay, then these lines. 2022-03-08 03:30:23 +04:00
e58cb07d1d
Okay, now it compiles. Let's uncomment line 52. 2022-03-08 03:29:07 +04:00
38152642d8
Interesting now function song is undefined. 2022-03-08 03:27:58 +04:00
4c941c6847
Let's comment out everything and debug it step by step. 2022-03-08 03:26:36 +04:00
050fc18949
Let's try without this code at all. 2022-03-08 03:22:32 +04:00
e3c413d3c7
Weird errors it gives. And it just that Song() func that doesn't exist anymore for IcecastStatus struct. 2022-03-08 03:21:23 +04:00
35c65bf528
Does it work at all without that? 2022-03-08 03:16:32 +04:00
1e392ba387
Why it doesn't just work... Oh... 2022-03-08 03:15:01 +04:00
f95685ec67
function "isDateNA" not defined 2022-03-08 03:07:34 +04:00
c06eba7341
Unexpected ! in if. 2022-03-08 03:05:54 +04:00
092d07a3a6
WTF this Jade doesn't support comparing? 2022-03-08 03:04:56 +04:00
89c587e5ac
I don't get it... 2022-03-08 03:02:25 +04:00
e5c1247ebd
Maybe it will work. 2022-03-08 03:01:26 +04:00
72885b0ccf
WTF does mean unexpected ! operand? Puto... 2022-03-08 02:51:53 +04:00
5589397d64
Kurwa, index.jade. 2022-03-08 02:50:25 +04:00
6a44747bdd
Let's try this. 2022-03-08 02:49:01 +04:00
8b34a5bddf
Now it tells me of unexpected ! operand... 2022-03-08 02:46:40 +04:00
5273131f10
Okey, let's get rid of mixin. 2022-03-08 02:44:21 +04:00
07e4542a36
index.jade still won't compile. 2022-03-08 02:41:48 +04:00
2753fd4801
Another fix for index.jade. 2022-03-08 02:36:30 +04:00
9a719430dc
index.jade. Oh, date function undefined error again... 2022-03-08 02:32:21 +04:00
87c8e62ffa
index.jade fix 4. 2022-03-08 02:31:00 +04:00
f160d258b6
index.jade 3. 2022-03-08 02:30:05 +04:00