Automatic IceCast Streamer & IRC Bot, easily deployable. Currently supports only mp3 audio files. Website requests not available atm (TODO).
This started as (planned) winter pastime project. If you ever heard of r/a/dio, this is essentially easily deployable Hanyuu-sama, written from scratch in Nim. Might not be as fancy, but does the job.
Note: This is not a rewrite or copy of Hanyuu-sama in other language, but an emulation i.e: 'imitation of behavior'.
Why (call it) emulation ?
- Developed purely from the knowledge of Hanyuu's behavior from the IRC chat.
- Haven't seen Hanyuu's source code in more than a year.
- More fun & challenging than rewritting existing code. No know-how.
- Web requests support (ETA: When testing website is finished (might take a while, since i just picked up webdev) )
- More audio formats (flac, ogg ..)
- Will update when i think of more.
Follow this guide or use SenShi's Vagrant
- Install IceCast & MySQL server & client libraries & taglib
- Arch Linux example:
pacman -S mariadb mariadb-clients libmariadbclient icecast libshout taglib
- Set the configs to your needs.. or not
- Install Nim devel tools Nim & nimble
- Install this library
nimble install ndbex
- Follow the below Compiling guide
- Use git to clone OR download and extract the source files & cd into it
- Compile SenShi with
nim c --threads:on senshi.nim
(optionaly -d:release flag) - Compile this helper tool to create SenShi database for you
nim c -d:release ./other/createDatabase.nim
- (Optional) If you ever in future want to add tracks to your DB easily
nim c -d:release ./other/fillTracks.nim
- Run
./other/createDatabase
and let it do its job. - Run SenShi and go trough its setup.
TLDR:
git clone https://github.com/Senketsu/SenShi
cd SenShi/src
nim c --threads:on senshi.nim
nim c -d:release ./other/createDatabase.nim
./other/createDatabase
When running SenShi for the first time, you will go trough config setup.
- Feedback , thoughts , bug reports ?
- Feel free to contact me on twitter ,or visit stormbit IRC network
- Or create issue on SenShi Github page.