diff options
| -rw-r--r-- | god/streams/.gitignore | 1 | ||||
| -rw-r--r-- | god/streams/Makefile | 6 | ||||
| -rw-r--r-- | god/streams/README | 10 | ||||
| -rw-r--r-- | god/streams/README.md | 38 | ||||
| -rw-r--r-- | god/streams/bin/helper/streamfind | 10 | ||||
| -rw-r--r-- | god/streams/bin/helper/streamwrite | 6 | ||||
| -rwxr-xr-x | god/streams/bin/mpdstreams (renamed from god/streams/mpdstreams) | 3 | ||||
| -rwxr-xr-x | god/streams/bin/relaxxapi.py (renamed from god/streams/relaxxapi.py) | 0 | ||||
| -rwxr-xr-x | god/streams/bin/relaxxstreams (renamed from god/streams/relaxxstreams) | 4 | ||||
| -rwxr-xr-x | god/streams/bin/stream-starter (renamed from god/streams/stream-starter) | 0 | ||||
| -rwxr-xr-x[-rw-r--r--] | god/streams/bin/streams (renamed from god/streams/streams) | 2 | ||||
| -rw-r--r-- | god/streams/db/direct.db | 78 | ||||
| -rw-r--r-- | god/streams/db/stream.db (renamed from god/streams/stream.db) | 4 | ||||
| -rw-r--r-- | god/streams/doc/relaxxplayer.api (renamed from god/streams/relaxxplayer.api) | 2 | 
14 files changed, 143 insertions, 21 deletions
| diff --git a/god/streams/.gitignore b/god/streams/.gitignore new file mode 100644 index 00000000..0d20b648 --- /dev/null +++ b/god/streams/.gitignore @@ -0,0 +1 @@ +*.pyc diff --git a/god/streams/Makefile b/god/streams/Makefile index ab5d1429..2d0056f4 100644 --- a/god/streams/Makefile +++ b/god/streams/Makefile @@ -4,10 +4,10 @@ streams = $(shell cut -d\  -f2 stream.db)  CURRDIR = ${PWD}  .PHONY: all $(streams) -local: ../bin/streams +local: ../../bin/streams -../bin/streams: -	ln -sf $$PWD/streams ../bin/streams +../../bin/streams: +	ln -sf $$PWD/bin/streams ../../bin/streams  all: $(streams)  	@update-rc.d groove defaults 2>/dev/null || echo "[31;1m**[31;1;5m put groove daemon in DAEMONS in /etc/rc.conf[m" diff --git a/god/streams/README b/god/streams/README deleted file mode 100644 index 82300c24..00000000 --- a/god/streams/README +++ /dev/null @@ -1,10 +0,0 @@ -streams done right - -deepmix,groovesalad and radiotux are now init.d scrips which can be -started and stopped. - -scripts are dumped into /etc/init.d and groovesalad will be set as -default via update-rc.d - -mplayer will be started in a tmux session either by creating a new -session or starting a new window inside the first existing one diff --git a/god/streams/README.md b/god/streams/README.md new file mode 100644 index 00000000..cc763ede --- /dev/null +++ b/god/streams/README.md @@ -0,0 +1,38 @@ +# streams done right(tm) + +There are numerous ways to start streams ( make your computer or some server  +output streamed audio). Currently implemented are: + +# Streams Modules +1. pure streams  - will start mpd on your local machine +2. mpdstreams    - will use a given mpd server to start a stream +3. relaxxstreams - will contact the relaxxplayer (mpd front-end) if the direct  +                   connection to the mpd is prohibited by firewall rules +# Database +Currently there are a number of possible streams saved in the database files +which contain of a link, a space, and the name of the stream. the database  +can be found in db/ . + +Currently there are two kinds of databases: +1. streams.db - contains links to playlists of streams +2. direct.db  - contains links directly to the stream, not the playlist + +to generate direct.db from a list of playlists use the helper/* scripts + +# initscripts + +the most convenient way to start streams is to use stream-starter which is  +a script which, when symlinked with a name of a stream, invokes the streams +tool with its own name as parameter. + +An example: + +    ln -s /krebs/god/streams/bin/stream-starter /etc/init.d/groove +    /etc/init.d/groove start + +# Remarks +deepmix,groovesalad and radiotux are now init.d scrips which can be +started and stopped. + +scripts are dumped into /etc/init.d and groovesalad will be set as +default via update-rc.d diff --git a/god/streams/bin/helper/streamfind b/god/streams/bin/helper/streamfind new file mode 100644 index 00000000..32b84a4e --- /dev/null +++ b/god/streams/bin/helper/streamfind @@ -0,0 +1,10 @@ +#!/bin/sh +cat stream.db | while read url name;do +    curl $url --max-time 1 2>/dev/null| sed -n 's/[fF]ile[0-9]=\(.*\)/\1/p' > "streamfinder/$name" +    if [ "x`cat \"streamfinder/$name\"`" == "x" ];then +        rm "streamfinder/$name" +        echo "$name empty or not a stream" +    else +        echo "wrote $name" +    fi +done diff --git a/god/streams/bin/helper/streamwrite b/god/streams/bin/helper/streamwrite new file mode 100644 index 00000000..a10fb155 --- /dev/null +++ b/god/streams/bin/helper/streamwrite @@ -0,0 +1,6 @@ +for i in `ls -1 streamfinder/`; +do +    for j in `cat "$i"`;do +        echo "$j $i" >> direct.db +    done +done diff --git a/god/streams/mpdstreams b/god/streams/bin/mpdstreams index d9132937..a2a5f77c 100755 --- a/god/streams/mpdstreams +++ b/god/streams/bin/mpdstreams @@ -8,9 +8,8 @@ from subprocess import Popen, PIPE  os.chdir(os.path.dirname(os.path.realpath(sys.argv[0])))  pidfile = "/tmp/krebs.stream.pid"  host="lounge.mpd.shack" -url_file = os.environ.get("STREAM_DB", "stream.db") +url_file = os.environ.get("STREAM_DB", "../db/stream.db")  urls = [] -#urls = [ url,f for (url,f) in open(url_file).readline() ]  for line in open(url_file):      urls.append(line.split())  #print urls diff --git a/god/streams/relaxxapi.py b/god/streams/bin/relaxxapi.py index f367caef..f367caef 100755 --- a/god/streams/relaxxapi.py +++ b/god/streams/bin/relaxxapi.py diff --git a/god/streams/relaxxstreams b/god/streams/bin/relaxxstreams index 57cfb05b..0d3813a7 100755 --- a/god/streams/relaxxstreams +++ b/god/streams/bin/relaxxstreams @@ -15,9 +15,9 @@ from subprocess import Popen, PIPE  os.chdir(os.path.dirname(os.path.realpath(sys.argv[0])))  pidfile = "/tmp/krebs.stream.pid" -baseurl="http://elab.mpd.shack/" +baseurl="http://lounge.mpd.shack/"  url=baseurl+"include/controller-playlist.php?action=%s&value=%s&json=%s" -url_file = os.environ.get("STREAM_DB", "direct.db") +url_file = os.environ.get("STREAM_DB", "../db/direct.db")  urls = []  for line in open(url_file): diff --git a/god/streams/stream-starter b/god/streams/bin/stream-starter index 4d3a406f..4d3a406f 100755 --- a/god/streams/stream-starter +++ b/god/streams/bin/stream-starter diff --git a/god/streams/streams b/god/streams/bin/streams index 65669b2d..ea6e9a90 100644..100755 --- a/god/streams/streams +++ b/god/streams/bin/streams @@ -5,7 +5,7 @@ from subprocess import Popen, PIPE  os.chdir(os.path.dirname(os.path.realpath(sys.argv[0])))  pidfile = "/tmp/krebs.stream.pid" -url_file = os.environ.get("STREAM_DB", "stream.db") +url_file = os.environ.get("STREAM_DB", "../db/stream.db")  urls = []  #urls = [ url,f for (url,f) in open(url_file).readline() ]  for line in open(url_file): diff --git a/god/streams/db/direct.db b/god/streams/db/direct.db new file mode 100644 index 00000000..02da4608 --- /dev/null +++ b/god/streams/db/direct.db @@ -0,0 +1,78 @@ +http://ice.somafm.com/groovesalad groove +http://ice.somafm.com/u80s underground80s +http://de.scenemusic.net/necta192.mp3 demoscene +http://radio.krautchan.net:8000/radio.mp3 radiofreieskrautchan +http://stream2.jungletrain.net:8000 jungletrain +http://streams.xenim.de/radiotux.ogg radiotux +http://localhost:8000/stream.ogg icecast +http://localhost:8000/shice.ogg shice +http://sfstream1.somafm.com:9090 480min +http://mp1.somafm.com:8080 480min +http://ice.somafm.com/480min 480min +http://shouthostdirect11.streams.bassdrive.com:8398 bassdrive +http://sanjose1.serverhostingcenter.streams.bassdrive.com:8600 bassdrive +http://arces.net.streams.bassdrive.com:8000 bassdrive +http://amsterdam1.serverhostingcenter.streams.bassdrive.com:8000 bassdrive +http://shouthostdirect10.streams.bassdrive.com:8200 bassdrive +http://shouthostdirect13.streams.bassdrive.com:8202 bassdrive +http://czech1.serverhostingcenter.streams.bassdrive.com:8200 bassdrive +http://shouthostdirect12.streams.bassdrive.com:8200 bassdrive +http://beezle.streams.bassdrive.com:8765 bassdrive +http://sfstream1.somafm.com:8384 beatblender +http://sfstream1.somafm.com:8388 beatblender +http://ice.somafm.com/beatblender beatblender +http://sfstream1.somafm.com:8040 blackrockfm +http://ice.somafm.com/brfm blackrockfm +http://sfstream1.somafm.com:7000 bootliquor +http://207.200.96.230:8014 bootliquor +http://mp1.somafm.com:9004 bootliquor +http://ice.somafm.com/bootliquor bootliquor +http://sfstream1.somafm.com:8062 cliqhop +http://mp2.somafm.com:2668 cliqhop +http://ice.somafm.com/cliqhop cliqhop +http://sfstream1.somafm.com:8700 covers +http://ice.somafm.com/covers covers +http://85.21.79.93:8040 deepmix +http://212.7.194.133:8128 deepmix +http://85.21.79.31:7128 deepmix +http://69.163.134.109:8128 deepmix +http://194.183.224.59:8128 deepmix +http://radio.cdn.deluxemusic.tv/deluxemusic.tv/radio_web/mp3 deluxe +http://sfstream1.somafm.com:8900 digitalis +http://ice.somafm.com/digitalis digitalis +http://205.234.246.42:8300 doomed +http://sfstream1.somafm.com:8300 doomed +http://ice.somafm.com/doomed doomed +http://streamer-dtc-aa01.somafm.com:80/stream/1032 dronezone +http://sfstream1.somafm.com:8014 dronezone +http://mp2.somafm.com:8002 dronezone +http://ice.somafm.com/dronezone dronezone +http://sfstream1.somafm.com:8500 illstreet +http://ice.somafm.com/illstreet illstreet +http://sfstream1.somafm.com:8090 indypop +http://ice.somafm.com/indiepop indypop +http://sfstream1.somafm.com:8800 lush +http://mp1.somafm.com:8800 lush +http://ice.somafm.com/lush lush +http://sfstream1.somafm.com:2020 missioncontrol +http://mp1.somafm.com:2020 missioncontrol +http://ice.somafm.com/missioncontrol missioncontrol +http://sfstream1.somafm.com:2200 poptron +http://ice.somafm.com/poptron poptron +http://sfstream1.somafm.com:8002 secretagent +http://mp2.somafm.com:9016 secretagent +http://ice.somafm.com/secretagent secretagent +http://sfstream1.somafm.com:8600 sonicuniverse +http://mp2.somafm.com:8600 sonicuniverse +http://ice.somafm.com/sonicuniverse sonicuniverse +http://mp2.somafm.com:5400 southbysoma +http://ice.somafm.com/sxfm southbysoma +http://sfstream1.somafm.com:8000 spacestationsoma +http://mp2.somafm.com:2666 spacestationsoma +http://ice.somafm.com/spacestation spacestationsoma +http://sfstream1.somafm.com:8850 suburbsofgoa +http://ice.somafm.com/suburbsofgoa suburbsofgoa +http://205.188.215.230:8010 tagstrip +http://ice.somafm.com/tags tagstrip +http://sfstream1.somafm.com:8880 underground80s +http://ice.somafm.com/u80s underground80s diff --git a/god/streams/stream.db b/god/streams/db/stream.db index 2e873843..1d9b51bc 100644 --- a/god/streams/stream.db +++ b/god/streams/db/stream.db @@ -7,7 +7,7 @@ http://stream2.jungletrain.net:8000 jungletrain  http://playlist.tormentedradio.com/tormentedradio.pls tormented  http://filebitch.shack:8000 mpd  http://radio.krautchan.net:8000/radio.mp3 radiofreieskrautchan -http://nl1.streamhosting.ch/listen.pls lounge +http://nl1.streamhosting.ch:80 lounge  http://deluxetelevision.com/livestreams/radio/DELUXE_RADIO.pls deluxe  http://livestream.radiodarmstadt.de:8000 darmstadt  http://somafm.com/sxfm.pls southbysoma @@ -26,7 +26,7 @@ http://somafm.com/bootliquor.pls bootliquor  http://somafm.com/covers.pls covers  http://somafm.com/illstreet.pls illstreet  http://somafm.com/tags.pls tagstrip -http://somafm.com/groovesalad.pls groove  +http://somafm.com/groovesalad.pls groove  http://somafm.com/lush.pls lush  http://somafm.com/digitalis.pls digitalis  http://somafm.com/sonicuniverse.pls sonicuniverse diff --git a/god/streams/relaxxplayer.api b/god/streams/doc/relaxxplayer.api index 6e8af577..50d25af2 100644 --- a/god/streams/relaxxplayer.api +++ b/god/streams/doc/relaxxplayer.api @@ -2,7 +2,7 @@ http://lounge.mpd.shack/include/controller-playback.php?action=setCrossfade&valu  http://lounge.mpd.shack/include/controller-playback.php?action=repeat&value=1&json=null  http://lounge.mpd.shack/include/controller-playlist.php?action=clear&value=&json=null  http://lounge.mpd.shack/include/controller-playlist.php?action=addSong&value=http%3A%2F%2F212.7.194.133%3A8128&json=null -http://lounge.mpd.shack/include/controller- playlist.php?action=getPlaylistInfo&value=0&json= +http://lounge.mpd.shack/include/controller-playlist.php?action=getPlaylistInfo&value=0&json=  [{                                                                     "file": "http:\/\/212.7.194.133:8128",    "Title": "Max & Dima - Sapovnela Studio: Batut", | 
