From a2d5130fb5520cfc2896924d03663b608851bbeb Mon Sep 17 00:00:00 2001 From: maniacikarus Date: Tue, 3 Jul 2007 19:59:13 +0000 Subject: [PATCH] MPFire Streaming beigebracht, zumindest m3u Files VPN-Watch nochmal angepasst DHCP Start Delay kleiner gesetzt UpdateBooster um ein paar Icons bereichert Favicon transparent gemacht, der FF will dennoch nicht damit git-svn-id: http://svn.ipfire.org/svn/ipfire/trunk@658 ea5c0bd1-69bd-2848-81d8-4f18e57aeed8 --- config/mpfire/mpfire.pl | 42 ++++++++++++++++++++++++++++++--- config/mpfire/webradio | 5 ++++ doc/language_issues.de | 1 - html/cgi-bin/mpfire.cgi | 42 ++++++++++++++++++++++++++------- html/cgi-bin/updatexlrator.cgi | 8 +++---- html/html/favicon.ico | Bin 3128 -> 5430 bytes html/html/images/tux.png | Bin 0 -> 885 bytes langs/de/cgi-bin/de.pl | 5 ++-- langs/en/cgi-bin/en.pl | 2 ++ lfs/mpfire | 1 + src/initscripts/init.d/dhcp | 2 +- src/scripts/vpn-watch | 10 ++++++-- 12 files changed, 97 insertions(+), 21 deletions(-) create mode 100644 config/mpfire/webradio create mode 100644 html/html/images/tux.png diff --git a/config/mpfire/mpfire.pl b/config/mpfire/mpfire.pl index ee21f4a2a6..a3bfb9d7fd 100644 --- a/config/mpfire/mpfire.pl +++ b/config/mpfire/mpfire.pl @@ -9,7 +9,7 @@ require "${General::swroot}/header.pl"; my $filename = ""; my %songs = ""; -my $debug = 0; +my $debug = 1; if ($ARGV[0] eq 'scan') { my $command = "find "; @@ -43,8 +43,11 @@ if ($ARGV[0] eq 'play') { if ($ARGV[0] eq 'stop') { my $PID = `ps -ef | grep mpg123 | grep playlist | head -1 | awk '{ print \$2 }'`; - if ($debug){print "Stopping $PID\n";} - system("kill -KILL $PID"); + if ( $PID ne "" ){ + if ($debug){print "Stopping $PID\n";} + system("kill -KILL $PID"); + } + else {&stopweb();} } if ($ARGV[0] eq 'volup') { @@ -80,6 +83,39 @@ if ($ARGV[0] eq 'next') { system("kill -SIGINT $PID"); } +if ($ARGV[0] eq 'song') { + my $song = `lsof -nX \| grep mpg123 \| grep REG \| grep mem | grep mp3`; + my @song = split(/\//,$song); + my $i = @song; + print $song[$i-1]; + } + +if ($ARGV[0] eq 'playweb') { + &General::readhash("${General::swroot}/proxy/settings", \%proxysettings); + if ($debug){print "Playing webstream\n";} + if ($proxysettings{'UPSTREAM_PROXY'}) { + if ($proxysettings{'UPSTREAM_USER'}) { + system("wget -qO - `wget -qO - $ARGV[1]` | mpg123 -b 1024 --aggressive -Zq - -p $proxysettings{'UPSTREAM_USER'}:$proxysettings{'UPSTREAM_PASSWORD'}@$proxysettings{'UPSTREAM_PROXY'} 2>/dev/null >/dev/null &"); + } + else { system("wget -qO - `wget -qO - $ARGV[1]` | mpg123 -b 1024 --aggressive -Zq - -p $proxysettings{'UPSTREAM_PROXY'} 2>/dev/null >/dev/null &");} + } else { + system("wget -qO - `wget -qO - $ARGV[1]` | mpg123 -b 1024 --aggressive -Zq - 2>/dev/null >/dev/null &"); + } + } + +if ($ARGV[0] eq 'stopweb') { + &stopweb(); + } + +sub stopweb(){ + my $PID = `ps -ef | grep wget | grep EXTM3U | head -1 | awk '{ print \$2 }'`; + if ($debug){print "Stopping $PID\n";} + system("kill -KILL $PID"); + my $PID = `ps -ef | grep "mpg123 -b 1024 --aggressive -Zq -" | head -1 | awk '{ print \$2 }'`; + if ($debug){print "Killing Process $PID\n";} + system("kill -KILL $PID"); + } + sub getSongInfo(){ my $mp3 = MP3::Tag->new($filename); my ($title, $track, $artist, $album, $comment, $year, $genre) = $mp3->autoinfo(); diff --git a/config/mpfire/webradio b/config/mpfire/webradio new file mode 100644 index 0000000000..b7bc5aa1f6 --- /dev/null +++ b/config/mpfire/webradio @@ -0,0 +1,5 @@ +http://www.89.0rtl.de/webradio/rtl-high.m3u|89.0 RTL Hitradio +http://metafiles.gl-systemhaus.de/wdr/channel_einslive.m3u|Einslive +http://www.deepinside.co.uk/ecoute-deepinside-wmp.m3u|Deepinside Radio European +http://www.bigfm.de/webradio/bigfm-high.m3u|BigFM +http://www.brocken.de/webradio/brocken-high.m3u|Hit-Radio Brocken diff --git a/doc/language_issues.de b/doc/language_issues.de index 5e89b1a3d9..11216b3cc2 100644 --- a/doc/language_issues.de +++ b/doc/language_issues.de @@ -375,7 +375,6 @@ WARNING: translation string unused: urlfilter update results WARNING: translation string unused: use WARNING: translation string unused: used memory WARNING: translation string unused: used swap -WARNING: translation string unused: user cpu WARNING: translation string unused: user cpu usage WARNING: translation string unused: view log WARNING: translation string unused: vpn on blue diff --git a/html/cgi-bin/mpfire.cgi b/html/cgi-bin/mpfire.cgi index 4716426aea..dcf6c17649 100644 --- a/html/cgi-bin/mpfire.cgi +++ b/html/cgi-bin/mpfire.cgi @@ -33,11 +33,9 @@ close(DATEI); &Header::showhttpheaders(); &Header::getcgihash(\%mpfiresettings); -&Header::openpage($Lang::tr{'mpfire'}, 1, ''); +&Header::openpage($Lang::tr{'mpfire'}, 1, ""); &Header::openbigbox('100%', 'left', '', $errormessage); -sub refreshpage{&Header::openbox( 'Waiting', 1, "" );} - ############################################################################################################################ ######################################## Scanne Verzeichnisse nach Mp3 Dateien ############################################# @@ -48,11 +46,13 @@ delete $mpfiresettings{'__CGI__'};delete $mpfiresettings{'x'};delete $mpfiresett system("/usr/local/bin/mpfirectrl scan $mpfiresettings{'SCANDIR'} $mpfiresettings{'SCANDIRDEPS'}"); } -if ( $mpfiresettings{'ACTION'} eq ">" ){system("/usr/local/bin/mpfirectrl","play","\"$mpfiresettings{'FILE'}\""); print $mpfiresettings{'FILE'};} +if ( $mpfiresettings{'ACTION'} eq ">" ){system("/usr/local/bin/mpfirectrl","play","\"$mpfiresettings{'FILE'}\"");} if ( $mpfiresettings{'ACTION'} eq "x" ){system("/usr/local/bin/mpfirectrl stop");} if ( $mpfiresettings{'ACTION'} eq "||" ){system("/usr/local/bin/mpfirectrl pause");} if ( $mpfiresettings{'ACTION'} eq "|>" ){system("/usr/local/bin/mpfirectrl resume");} if ( $mpfiresettings{'ACTION'} eq ">>" ){system("/usr/local/bin/mpfirectrl next");} +if ( $mpfiresettings{'ACTION'} eq "stopweb" ){system("/usr/local/bin/mpfirectrl stopweb");} +if ( $mpfiresettings{'ACTION'} eq "playweb" ){system("/usr/local/bin/mpfirectrl","playweb","\"$mpfiresettings{'FILE'}\"");} if ( $mpfiresettings{'ACTION'} eq "+" ){system("/usr/local/bin/mpfirectrl volup 5");} if ( $mpfiresettings{'ACTION'} eq "-" ){system("/usr/local/bin/mpfirectrl voldown 5");} if ( $mpfiresettings{'ACTION'} eq "++" ){system("/usr/local/bin/mpfirectrl volup 10");} @@ -119,7 +119,7 @@ $mpfiresettings{'SHOWLIST'} = "off"; if ( $message ne "" ) { print "$message"; } &Header::openbox('100%', 'center', $Lang::tr{'mpfire scanning'}); - + print < @@ -135,8 +135,11 @@ END ; &Header::closebox(); +my $song = qx(/usr/local/bin/mpfirectrl song); +if ( $song eq "" ){$song = "None";} + &Header::openbox('100%', 'center', $Lang::tr{'mpfire controls'}); -print "
"; +print "
"; print <
@@ -245,8 +248,6 @@ print "
-= $song =-

"; &Header::openbox('100%', 'center', $Lang::tr{'mpfire playlist'}); -; - open(DATEI, "<${General::swroot}/mpfire/playlist") || die "Could not open playlist"; my @playlist = ; close(DATEI); @@ -264,5 +265,30 @@ END ; &Header::closebox(); +&Header::openbox('100%', 'center', $Lang::tr{'mpfire webradio'}); + +open(DATEI, "<${General::swroot}/mpfire/webradio") || die "Could not open playlist"; +my @webradio = ; +close(DATEI); + +print < +$Lang::tr{'webradio playlist'} +Stream +END +; +foreach (@webradio){ + my @stream = split(/\|/,$_); + print <$stream[1] +
+
+ +END +; + } +print ""; +&Header::closebox(); + &Header::closebigbox(); &Header::closepage(); diff --git a/html/cgi-bin/updatexlrator.cgi b/html/cgi-bin/updatexlrator.cgi index 5fc631a554..4b2082ada8 100644 --- a/html/cgi-bin/updatexlrator.cgi +++ b/html/cgi-bin/updatexlrator.cgi @@ -464,10 +464,10 @@ END print "Avast \n"; } elsif ($metadata[1] eq 'IPFire') { - print "IPFire \n"; + print "IPFire \n"; } elsif ($metadata[1] eq 'Linux') { - print "Linux \n"; + print "Linux \n"; } else { print "$Lang::tr{ \n"; @@ -552,10 +552,10 @@ print <   - IPFire + IPFire IPFire   - Linux + Linux Linux   Avast diff --git a/html/html/favicon.ico b/html/html/favicon.ico index 1bab5b0de401dd799f468287ce2c79954a7f46b2..52da262f76e9a6b7bd9e07a0229013bc2beae51f 100644 GIT binary patch literal 5430 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 LNkvXXu0mjfFU5Nc literal 0 Hc-jL100001 diff --git a/langs/de/cgi-bin/de.pl b/langs/de/cgi-bin/de.pl index 0408248293..2d9bc39e7b 100644 --- a/langs/de/cgi-bin/de.pl +++ b/langs/de/cgi-bin/de.pl @@ -1033,6 +1033,7 @@ 'mpfire playlist' => 'MPFire Playlist', 'mpfire scanning' => 'Nach neuen Dateien suchen', 'mpfire songs' => 'MPFire Songliste', +'mpfire webradio' => 'MPFire Webradio', 'my new share' => 'Meine neue Freigabe', 'name' => 'Name', 'name is invalid' => 'Name ist ungültig', @@ -1793,8 +1794,7 @@ 'used memory' => 'Genutzter Speicher', 'used swap' => 'Genutzter Swap', 'user' => 'Benutzer', -'user cpu' => 'Benutzer CPU Nutzung', -'user cpu usage' => 'Benutzer CPU', +'user cpu usage' => 'Benutzer CPU Nutzung', 'user log' => 'Benutzer Log', 'user proxy logs' => 'Benutzer Proxy Log', 'username' => 'Benutzername:', @@ -1842,6 +1842,7 @@ 'web proxy' => 'Web-Proxy', 'web proxy configuration' => 'Web-Proxy-Konfiguration', 'web server' => 'Web-Server', +'webradio playlist' => 'Webradio Playlist', 'website' => 'Website', 'wednesday' => 'Mittwoch', 'week' => 'Woche', diff --git a/langs/en/cgi-bin/en.pl b/langs/en/cgi-bin/en.pl index e92d9015d2..63f61f5bfd 100644 --- a/langs/en/cgi-bin/en.pl +++ b/langs/en/cgi-bin/en.pl @@ -1045,6 +1045,7 @@ 'mpfire playlist' => 'MPFire Playlist', 'mpfire scanning' => 'Scan for new files', 'mpfire songs' => 'MPFire songlist', +'mpfire webradio' => 'MPFire Webradio', 'my new share' => 'My new share', 'name' => 'Name', 'name is invalid' => 'Name is invalid', @@ -1847,6 +1848,7 @@ 'web proxy' => 'Web proxy', 'web proxy configuration' => 'Web proxy configuration', 'web server' => 'Web server', +'webradio playlist' => 'Webradio Playlist', 'website' => 'Website', 'wednesday' => 'Wednesday', 'week' => 'Week', diff --git a/lfs/mpfire b/lfs/mpfire index fb04dbb005..b12dc39292 100644 --- a/lfs/mpfire +++ b/lfs/mpfire @@ -66,4 +66,5 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) touch /var/ipfire/mpfire/db/songs.db chown nobody.nobody /var/ipfire/mpfire/{settings,playlist} install -v -m 755 $(DIR_SRC)/config/mpfire/mpfire.pl /var/ipfire/mpfire/bin + install -v -m 644 $(DIR_SRC)/config/mpfire/webradio /var/ipfire/mpfire/ @$(POSTBUILD) diff --git a/src/initscripts/init.d/dhcp b/src/initscripts/init.d/dhcp index b9bd42442e..2da8d64dfc 100644 --- a/src/initscripts/init.d/dhcp +++ b/src/initscripts/init.d/dhcp @@ -25,7 +25,7 @@ case "$1" in boot_mesg "Starting DHCP Server..." loadproc /usr/sbin/dhcpd -q ${devices} - (sleep 20 && chmod 644 /var/run/dhcpd.pid) & # Fix because silly dhcpd creates its pid with mode 640 + (sleep 5 && chmod 644 /var/run/dhcpd.pid) & # Fix because silly dhcpd creates its pid with mode 640 ;; stop) diff --git a/src/scripts/vpn-watch b/src/scripts/vpn-watch index 3abb7f5c1f..c900c23dc8 100755 --- a/src/scripts/vpn-watch +++ b/src/scripts/vpn-watch @@ -11,7 +11,13 @@ my $i = 0; my $file = "/var/run/vpn-watch.pid"; my $debug = 0; -if ( -e $file ){logger("There my be another vpn-watch runnning $file exists, vpn-watch will not start.");exit 1;} +if ( -e $file ){ + logger("There my be another vpn-watch runnning because $file exists, vpn-watch will try kill the process."); + open(FILE, "<$file"); + my $PID = ; + close(FILE); + system("kill -9 $PID"); + } if ($debug){logger("Call of vpn-watch pid not is not existing.");} system("echo $$ > $file"); @@ -20,7 +26,7 @@ while ( $i == 0){ sleep(300); if ($debug){logger("We will wait 300 seconds before next action.");} - if (open(FILE, "${General::swroot}/vpn/config")) { + if (open(FILE, "<${General::swroot}/vpn/config")) { @vpnsettings = ; close(FILE); unless(@vpnsettings) {exit 1;} -- 2.39.2