| Uutiset | Koodikirjasto | Wiki | Keskustelut | FAQ | Info |
httpQraspi 26.05.02 20:58 Kontrolloi winamppia netistä. (v1.1)
%%%%%%%%%%%%% httpqs.php: <?php // salasana $passu = "salis"; // portti $portti = 4800; // kone, jolla httpQ pyörii $osote = "127.0.0.1"; // näytetäänkö playlist? $show_pl = 1; // näytetäänkö login? $show_li = 1; ?> %%%%%%%%%%%%% httpq.php: <?php /* httpQ PHP 1.1 Kontrolloi winamppia netistä 1.1 paranneltu värejä yms. 1.0 ensimmäinen julkaisu. Vaatimukset: winamp : http://www.winamp.com/ httpQ: http://www.csc.uvic.ca/~karvanit/winamp/ php: http://www.php.net/ apache: http://httpd.apache.org/ shoutcast: http://www.shoutcast.com/ raspi 2002 http://bittivuoto.org/~raspi/ */ if(isset($_GET["ss"]) && $_GET["ss"] == 1) {die(show_source($_SERVER["PHP_SELF"]));} require_once("httpqs.php"); // asetukset if(isset($_POST["enc"]) && $_POST["enc"] != "") { $encpass = asc2bin($_POST["enc"]); if($_POST["enc"] == $passu) { Header("Location: http://{$_SERVER["HTTP_HOST"]}{$_SERVER["PHP_SELF"]}?p=$encpass\n"); } else { Header("Location: http://{$_SERVER["HTTP_HOST"]}{$_SERVER["PHP_SELF"]}\n"); } } if(isset($_GET["act"]) && $_GET["act"] != "" && $_GET["p"] == asc2bin($passu)) { if(substr($_GET["act"], 0, 1) == "P") { httpq($passu, "SetPlayListPos", substr($_GET["act"], 1, strlen($_GET["act"])) -1); httpq($passu, "Play", ''); } if($_GET["act"] == "shoutcast") {httpq($passu, "ShoutCast_Connect", '');} if($_GET["act"] == "next") {httpq($passu, "Next", '');} if($_GET["act"] == "prev") {httpq($passu, "Prev", '');} if($_GET["act"] == "pause") {httpq($passu, "Pause", '');} if($_GET["act"] == "play") {httpq($passu, "Play", '');} if($_GET["act"] == "stop") {httpq($passu, "Stop", '');} if($_GET["act"] == "restart") {httpq($passu, "Restart", '');} if($_GET["act"] == "clear") { httpq($passu, "Stop", ''); httpq($passu, "Delete", ''); } if($_GET["act"] == "shuffle") { if (httpq($passu, "Shuffle_Status", '')) { httpq($passu, "Shuffle", "0"); } else { httpq($passu, "Shuffle", "1"); } } if($_GET["act"] == "repeat") { if (httpq($passu, "Repeat_Status", '')) { httpq($passu, "Repeat", "0"); } else { httpq($passu, "Repeat", "1"); } } Header("Location: http://{$_SERVER["HTTP_HOST"]}{$_SERVER["PHP_SELF"]}?p=" . asc2bin($passu) . "\n"); } if(isset($_GET["vol"]) && $_GET["vol"] != "" && is_numeric($_GET["vol"]) && $_GET["vol"] >= 0 && $_GET["vol"] <= 255 && $_GET["vol"] && $_GET["p"] == asc2bin($passu)) { httpq($passu, "SetVolume", "{$_GET["vol"]}"); Header("Location: http://{$_SERVER["HTTP_HOST"]}{$_SERVER["PHP_SELF"]}?p=" . asc2bin($passu) . "\n"); } /* ---------------------------------------------------------------------------------------------------- */ function httpq ($salasana, $komento, $a) { global $osote, $portti; $fp = fsockopen($osote, $portti); if (is_resource($fp)) { $q = "GET /{$komento}?"; if (isset($salasana) && $salasana != "") {$q .= "p={$salasana}";} if (isset($a) && $a != "") { if(isset($salasana) && $salasana != "") {$q .= "&";} $q .= "a={$a}"; } $q .= " HTTP/1.0\r\n"; fputs($fp, $q); $o = ''; while (!feof($fp)) {$o .= fgets($fp, 1024);} fclose($fp); $o = preg_replace("/(\015\012)|(\015)|(\012)/", "\n", $o); $d = explode("\n\n", $o); unset($o); unset($d[0]); reset($d); $d = array_shift($d); return $d; } else { return -10; // socket error } } function asc2bin ($data) { $o = ''; for($i = 0; $i < strlen($data); $i++) { $o .= substr("00000000" . decbin(ord(substr("$data", $i, 1))), -8); } return $o; } /* ---------------------------------------------------------------------------------------------------- */ Header("Pragma: no-cache\n"); ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15"> <title>httpQ+winamp+PHP - (c) raspi 2002</title> <style type="text/css"> <!-- body {background-color: #e0e8f0; color: #000000;} a {color: #0000f0; text-decoration: none;} table.percent {background-color: #d0d8e0; width: 400px; border: solid #000000 1px;} table.progress {background-color: #c0c8d0; border-right: solid #000000 1px;} td.a {background-color: #e0e0e0;} td.b {background-color: #d2d2d2;} td.np {color: #202020; background-color: #d0f0d0; font-weight: bold; border-top: 1px solid #000000; border-bottom: 1px solid #000000;} td.pl {border: 1px solid #000000;} --> </style> </head> <body> <?php $q_salasana = httpq('', "Validate_Password", $passu); if ($q_salasana == 1) { $q_status = httpq($passu, "IsPlaying", ''); if ($q_status == 1) {$out = "Playing";} elseif ($q_status == 3) {$out = "Paused";} elseif ($q_status == 0) {$out = "Stopped";} if($q_status == 1 || $q_status == 3 || $q_status == 0) { $q_len = httpq($passu, "GetOutputTime", "1"); $q_pos = round(httpq($passu, "GetOutputTime", "0") / 1000); if ($q_len >= 3600) { $q_lenh = date("H:i:s", mktime(0, 0, $q_len)); $q_posh = date("H:i:s", mktime(0, 0, $q_pos)); } else { $q_lenh = date("i:s", mktime(0, 0, $q_len)); $q_posh = date("i:s", mktime(0, 0, $q_pos)); } if ($q_len > 0) { $q_pros = round(($q_pos / $q_len) * 100); } else {$q_pros = 0;} $q_samplerate = httpq($passu, "GetInfo", "0"); $q_bitrate = httpq($passu, "GetInfo", "1"); $q_chans = httpq($passu, "GetInfo", "2"); if ($q_chans == 1) {$q_chans = "Mono";} elseif ($q_chans == 2) {$q_chans = "Stereo";} else {$q_chans .= " channels";} $q_playlist = httpq($passu, "GetPlayListTitle", ''); $q_playlista = split('<br>', $q_playlist); $q_listlen = httpq($passu, "GetListLength", ''); $q_num = httpq($passu, "GetListPos", ''); echo "<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" width=\"100%\">\n"; echo " <tr>\n"; echo " <td>\n"; echo " <a href=\"http://www.winamp.com/\">Winamp</a> & <a href=\"http://www.csc.uvic.ca/~karvanit/winamp/\">httpQ</a> <b>::</b> "; echo " (Shuffle: <b>"; if (httpq($passu, "Shuffle_Status", '')) {echo "On";} else {echo "Off";} echo "</b> Repeat: <b>"; if (httpq($passu, "Repeat_Status", '')) {echo "On";} else {echo "Off";} echo "</b> Shoutcast: <b>"; if (httpq($passu, "ShoutCast_Status", '') != 0) {echo "On";} else {echo "Off";} echo "</b>)\n"; echo " </td>\n"; echo " </tr>\n"; echo " <tr>\n"; echo " <td>\n"; echo " <b>$out</b>: " . $q_playlista[$q_num] . " <small>[{$q_samplerate}kHz {$q_bitrate}kbps ($q_chans)]</small>\n"; echo " </td>\n"; echo " </tr>\n"; echo " <tr>\n"; echo " <td>\n"; echo " <table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" class=\"percent\">\n"; echo " <tr>\n"; echo " <td>\n"; echo " <table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" style=\"width: " . ($q_pros*4) . "px;\" class=\"progress\">\n"; echo " <tr>\n"; echo " <td> </td>\n"; echo " </tr>\n"; echo " </table>\n"; echo " </td>\n"; echo " </tr>\n"; echo " </table>\n"; echo " </td>\n"; echo " </tr>\n"; echo " <tr>\n"; echo " <td><small>($q_pros%) $q_posh / $q_lenh</small></td>\n"; echo " </tr>\n"; // login if ($show_li == 1 && !isset($_GET["p"])) { echo " <tr>\n"; echo " <td><hr></td>\n"; echo " </tr>\n"; echo " <tr>\n"; echo " <td>\n"; echo " <!-- LOGIN -->\n"; echo " <form method=\"POST\" action=\"{$_SERVER["PHP_SELF"]}\">\n"; echo " <input type=\"password\" name=\"enc\" size=\"12\">\n"; echo " <input type=\"submit\" value=\" Login \">\n"; echo " </form>\n"; echo " </td>\n"; echo " </tr>\n"; } // /login if(isset($_GET["p"]) && $_GET["p"] == asc2bin($passu)) { echo " <tr>\n"; echo " <td><hr></td>\n"; echo " </tr>\n"; echo " <tr>\n"; echo " <td>\n"; echo " <b>C o n t r o l</b> :\n"; // volume echo " <form method=\"GET\" action=\"{$_SERVER["PHP_SELF"]}\">\n"; echo " <input type=\"hidden\" name=\"p\" value=\"{$_GET["p"]}\">\n"; echo " Volume: <input type=\"text\" name=\"vol\" size=\"3\"value=\"\"> (0-255)\n"; echo " <input type=\"submit\" value=\" ok \">\n"; echo " </form>\n"; // /volume echo " [<a href=\"{$_SERVER["PHP_SELF"]}\">Logout</a>]\n"; echo " [<a href=\"{$_SERVER["PHP_SELF"]}?p={$_GET["p"]}&act=prev\">Prev</a>]\n"; echo " [<a href=\"{$_SERVER["PHP_SELF"]}?p={$_GET["p"]}&act=next\">Next</a>]\n"; echo " [<a href=\"{$_SERVER["PHP_SELF"]}?p={$_GET["p"]}&act=play\">Play</a>]\n"; echo " [<a href=\"{$_SERVER["PHP_SELF"]}?p={$_GET["p"]}&act=pause\">Pause</a>]\n"; echo " [<a href=\"{$_SERVER["PHP_SELF"]}?p={$_GET["p"]}&act=stop\">Stop</a>]\n"; echo " [<a href=\"{$_SERVER["PHP_SELF"]}?p={$_GET["p"]}&act=repeat\">Repeat</a>]\n"; echo " [<a href=\"{$_SERVER["PHP_SELF"]}?p={$_GET["p"]}&act=shuffle\">Shuffle</a>]\n"; echo " [<a href=\"{$_SERVER["PHP_SELF"]}?p={$_GET["p"]}&act=shoutcast\">Start Shoutcast</a>]\n"; if(httpq($passu, "GetAutoService", '')) { echo " [<a href=\"{$_SERVER["PHP_SELF"]}?p={$_GET["p"]}&act=restart\">Restart</a>]\n"; } echo " </td>\n"; echo " </tr>\n"; } // playlist if (($q_listlen > 0 && $show_pl == 1) || ($show_li == 1 && isset($_GET["p"]) && $_GET["p"] == asc2bin($passu))) { echo " <!-- PLAYLIST -->\n"; echo " <tr>\n"; echo " <td><hr></td>\n"; echo " </tr>\n"; echo " <tr>\n"; echo " <td>\n"; echo " <b>P l a y l i s t</b> :\n"; if(isset($_GET["p"]) && $_GET["p"] == asc2bin($passu)) { echo "(<a href=\"{$_SERVER["PHP_SELF"]}?p={$_GET["p"]}&act=clear\">Clear</a>)"; } echo " </td>\n"; echo " </tr>\n"; echo " <tr>\n"; echo " <td class=\"pl\">\n"; echo " <table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" width=\"100%\">\n"; for ($i = 0; $i < $q_listlen; $i++) { if ($i & 1) {$kolor = "a";} else {$kolor = "b";} if ($i == $q_num) {$kolor = "np";} echo " <tr>\n"; echo " <td align=\"right\" valign=\"top\" class=\"$kolor\">\n "; echo $i+1 . "."; if(isset($_GET["p"]) && $_GET["p"] == asc2bin($passu)) { echo "(<a href=\"{$_SERVER["PHP_SELF"]}?p={$_GET["p"]}&act=P" . ($i+1) . "\">P</a>)"; } echo " \n </td>\n"; echo " <td align=\"left\" valign=\"top\" width=\"100%\" class=\"$kolor\">\n"; echo " $q_playlista[$i]\n"; echo " </td>\n"; echo " </tr>\n"; } echo " </table>\n"; } // /playlist echo " </td>\n"; echo " </tr>\n"; echo " <tr>\n"; echo " <td><br><hr></td>\n"; echo " </tr>\n"; echo "</table>\n"; } else { echo "music not playing<br>\n"; } /* ---------------------------------------------------------------------------------------------------- */ } elseif ($q_salasana == 0) { echo "ERHE: salasana on vaeaerin!<br>\n"; } else { echo "ERHE: socketissa häikkää tai winamp ei oo pyörimässä<br>\n"; } ?> <br> <small>© raspi 2002</small><br> <a href="<?php echo "{$_SERVER["PHP_SELF"]}?ss=1";?>">source</a><br> </body> </html> empty 00:29 21.3.03 Aika jees. Itseasiassa todella jees. molliolli 17:57 11.9.03 toi httpQ: http://www.csc.uvic.ca/~karvanit/winamp/ osote ei toimi ja mä en saanu tota toimii tulee Warning: Cannot modify header information - headers already sent by (output started at D:\meitsin\httpqs.php:13) in D:\meitsin\httpq.php on line 107 ERHE: salasana on vaeaerin! © raspi 2002 source janitam 09:14 25.11.03 samaa sanoo mulla :) .. mitä mahtokaan jäädä huomioimatta eis 16:16 12.5.05 |
![]() Haku
|