|
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 |
|
|
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 |
|