mixin radioStatus(date, iso) if (date != "n/a") p #[span#radio-status On-air since #[time(datetime=iso)= date]] else p #[span#radio-status Radio is offline.] doctype html html(lang='en') head title Arav's dwelling #{title} meta(charset='utf-8') meta(http-equiv='X-UA-Compatible' content='IE=edge') meta(name='viewport' content='width=device-width, initial-scale=1.0') meta(name='theme-color' content='#cd2682') meta(name='description' content=description) link(rel='icon' href='/shared/img/favicon.svg' sizes='any' type='image/svg+xml') link(href='/assets/css/main.css' rel='stylesheet') script(src='/assets/js/main.js' defer) body header svg#logo(viewBox='0 -25 216 40') text.logo Arav's dwelling text.under(y='11') Welcome to my sacred place, wanderer nav a(href=main_site) Back to main website h1 Radio section small.player-links a(href="/filelist") file list a(href="/playlist") playlist (.m3u) a(href="/live/stream.ogg") direct link a(href="http://radio.arav.top:8000/stream.ogg") direct link (http) a(href="http://moq7aejnf4xk5k2bkaltli3ftkhusy2mbrd3pj23nrca343ku2mgk4yd.onion/radio/live/stream.ogg") direct link (Tor) a(href="http://t42fkp6zp5dfqywantq3zp427ig3q2onrmfv246tyaztpg4ckb5a.b32.i2p/radio/live/stream.ogg") direct link (I2P) | OGG 128 Kb/s audio(preload='none' controls) source(src="/live/stream.ogg" type="audio/ogg") | Your browser doesn't support an audio element, it's sad... But you always can take the #[a(href="/playlist") playlist]! +radioStatus(radio_status.server_start_date, radio_status.server_start_iso8601) p Now playing: #[span#radio-song= radio_status.song] p Current/peak listeners: #[span#radio-listeners= radio_status.listeners] / #[span#radio-listener-peak= radio_status.listener_peak] p small Notice: information updates every 45 seconds. But you can #[a(href="javascript:updateAll()") update] it forcibly. if (last_songs) section h2 Last 10 songs table#last-played each song in last_songs tr td= song.artist td= song.title section h2 About the radio p This project grew from MPD I used to stream music over LAN for myself. Then I let it out and placed a player on my Neocities website. Then I added Icecast to see if there are listeners. I wasn't happy on how MPD was nearly overloading CPU, and later on, when I moved radio off to a laptop, I found a great tool for streams called Liquidsoap. p Radio is also available through HTTP port 8000, but browsers may try to redirect to HTTPS. Any other applications should work fine. p Radio is listed in #[a(href="https://dir.xiph.org/search?q=arav's+dwelling") Xiph directory]. section h2 Donation p Okay, let's say you enjoy this radio and think that the author deserves getting some reward for doing all that. Better, contact me through e-mail, since I often check it. p I have Paypal, QIWI, Bitcoin, and a money transfer link for my bank account. section h2 Privacy statements p I collect access logs that include access date and time, IP-address, User-Agent, referer URL that tells me where have you came from, request that you sent to me. In addition there are GeoIP information added based on your IP-address that includes country, region, and city for my convenience. p This website makes use of JavaScript for a dynamic update of a radio status and last 10 songs list. footer | 2017—2021 Arav <#[a(href='mailto:me@arav.top') me@arav.top]>