E sambata seara, ma cam plictisesc si am zis sa mai postez un script. Un script care afiseaza pe website-ul personal ce melodie asculti in winamp-ul la momentul respectiv, daca este inchis, ultima melodie ascultata.
De inceput ai nevoie de un plugin (Info Sender) pentru winamp, un script PHP si o baza de date (eu am folosit MySQL). Plugin-ul il poti descarca de aici.
amp.css
body {
background: #FFFFFF;
color: #0064A6;
margin: 1px;
padding: 1px;
font: 11px verdana,tahoma,arial,sans-serif;
}
#arhiva {
background: #FFFFFF;
width: 760;
margin: 2px;
padding: 2px;
font: 11px verdana,tahoma,arial,sans-serif;
border:1px solid #BFDFF9;
}
amp_arhiva.php
<html>
<head>
<title>Winamp status
</head>
<meta http-equiv=refresh content="120; url=amp_arhiva.php">
<link rel="stylesheet" href="amp.css" type="text/css" />
<?php
// conectarea la bd (mysql)
$db = mysql_connect("localhost","mysql_user","mysql_pass") or die("Could not connect.");
if (!$db)
{
die("no db");
}
if (!mysql_select_db("mysql_db",$db))
{
die("No database selected.");
}
// cate afisari avem pe pagina
$nr_melodii = $_GET['nr'];
if (!$_GET['nr'])
{
$nr_melodii = "20";
}
// extragere nume melodii din db
$interogare = "SELECT *
FROM song
ORDER BY id DESC
LIMIT 0, $nr_melodii";
$rezultat = mysql_query($interogare) OR die ("Nu se poate executa interogarea!");
// variabilele culorilor ce se vor alterna
$color1 = '#FCDBBC';
$color2 = '#BFDFF9';
// se pleaca de la valoarea zero a randului (deci primul rand va avea culoarea 1)
$nr_rand = 0;
?>
<table id="arhiva" align="center">
<tr>
<td colspan="4" align="center"><b>Ultimele 20 de melodii ascultate cu Winamp-ul:</b>
</tr>
<tr>
<td colspan="4" align="left">[ Afiseaza ultimele: <a href="amp_arhiva.php?nr=50">50 | <a href="amp_arhiva.php?nr=100">100 | <a href="amp_arhiva.php?nr=500">500 | <a href="amp_arhiva.php?nr=1000">1000 | <a href="amp_arhiva.php?nr=2000">2000 melodii (default <a href="amp_arhiva.php">20) ]</td>
</tr>
<tr>
<td align="center"><b> Nr </b></td>
<td align="center"><b> Data si ora </b></td>
<td align="center"><b> Melodia </b></td>
<td align="center"><b> Ip </b></td>
</tr>
<?php
while ($rand = mysql_fetch_array($rezultat, MYSQL_BOTH))
{
// daca numarul randului este par foloseste culoarea 1 dak este impar foloseste culoarea 2
$culoare_rand = ($nr_rand % 2) ? $color1 : $color2;
?>
<tr>
<td bgcolor="<?php echo $culoare_rand; ?>" align="center"><?php echo $rand['id']; ?></td>
<td bgcolor="<?php echo $culoare_rand; ?>" align="center"><?php echo $rand['arhiva_data']; ?></td>
<td bgcolor="<?php echo $culoare_rand; ?>" align="center"><?php echo $rand['arhiva_melodie']; ?></td>
<td bgcolor="<?php echo $culoare_rand; ?>" align="center"><?php echo $rand['ip']; ?></td>
</tr>
<?php
//incrementeaza nr randului
$nr_rand++;
}
?>
</table>
<?php mysql_close($db); ?>
amp_status.php
<?php
// conectarea la db
$db = mysql_connect("localhost","mysql_user","mysql_pass") or die("Could not connect.");
if(!$db)
{
die("no db");
}
if (!mysql_select_db("mysql_db",$db))
{
die("No database selected.");
}
// extragerea numelui melodiei din db
$rezultat = mysql_query("SELECT *
FROM song
WHERE id='1'") or die(mysql_error());
$row = mysql_fetch_array($rezultat);
$timp = date("gi");
// setam dif de timp
$time_1 = $row['timp'] + "10";
// verificam daca acum se asculta muzica sau e oprit winamp-ul
if ($time_1 > $timp)
{
echo 'Acum ascult: <b>' . $row['melodie'] . '</b>';
}
else
{
echo 'Winamp-ul este acum inchis,<br />Ultima melodie ascultata: <b>' . $row['melodie'] . '</b>';
}
amp_write.php
<?php
// citirea melodiei si setarea orei actualizarii bazei de date
$titlumel = $_GET['song'];
$timp = date("gi");
// colectare informatii utilizator (dupa preferinta se poate seta o adresa..)
$iphost = $_SERVER['REMOTE_ADDR'];
if ($iphost == "81.181.xxx.xxx")
{
$ip = "Home";
}
elseif ($iphost == "195.234.xxx.xxx")
{
$ip = "Munca";
}
else
{
$ip = $_SERVER['REMOTE_ADDR'];
}
// conectarea la db (mysql)
$db = mysql_connect("localhost","mysql_user","mysql_pass") or die("Could not connect.");
if (!$db)
{
die("no db");
}
if (!mysql_select_db("mysql_db",$db))
{
die("No database selected.");
}
// scrierea melodiei in db
mysql_query("UPDATE song
SET melodie = '$titlumel', timp = '$timp'
WHERE id = '1'") or die(mysql_error());
// arhiva melodii ascultate
$data = date("Y:m:j H:i:s");
mysql_query("INSERT INTO song (arhiva_melodie, arhiva_data, ip)
VALUES('$titlumel', '$data','$ip')") or die (mysql_error());
mysql.txt
CREATE TABLE song (
id int(25) NOT NULL auto_increment,
arhiva_data datetime NOT NULL default '0000-00-00 00:00:00',
arhiva_melodie varchar(50) NOT NULL,
nr varchar(25) NOT NULL default '1',
melodie varchar(50) NOT NULL default '',
timp varchar(25) NOT NULL default '00:00',
ip varchar(25) NOT NULL,
PRIMARY KEY (id)
) TYPE = MYISAM
Dupa descarcarea plugin-ului in calculator, dezarhiveaza si o sa vezi ca este un fisier gen_sender.dll, acest .dll il copii in folderul unde e instalat winamp-ul, in plugins (ex: C:\Program Files\Winamp\Plugins).
Acum pornim winampul si la Plug-ins -> General Purpose o sa vezi printre celelalte plugin-uri si unul cu numele: Luke’s Info Sender (gen_sender.dll), dai dublu click pe el si setezi adresa unde plugin-ul va trimite melodia pe care o asculti, la fel ca in poza de mai jos. Ok, am terminat cu setarea plugin-ului.
Despre fiecare fisier, ce face:
amp.css – codul css pentru amp_arhiva.php
amp_arhiva.php – pagina care afiseaza arhiva de melodii ascultate
amp_status.php – pagina care afiseaza in timp real starea winamp-ului
amp_write.php – pagina care scrie in db inregistrarile cu numele solistului si a melodiei
mysql.txt – codul sql pentru crearea tabelului song in care vom lucra
Info: Scriptul in actiune arata cam asa:
Acum ascult: Don Omar – Pobre Diabla
sau
Winamp-ul este acum inchis,
Ultima melodie ascultata: Don Omar – Pobre Diabla
Ca sa apara si la tine pe pagina cum e mai sus incluzi amp_status.php in pagina (functia include() din PHP). Scriptul poate fi modificat si inbunatatit, asta este si ideea de baza. Pentru nelamuriri sau sfaturi astept commentariu.
Szucs Alfred nu prea. PHP este un limbaj de programare care poate lucra cu baze de date iar contorizarea necesita stocarea informatiei undeva.. un fisier text sau o baza de date.
Pentru html nu exista ceva de acest gen,numai pentru php?
merge si pe freewebs ? te rog s m ajuti dak merge…rasp p mail….ms
http://e.rnst.name/projects/infosender
Eu am o problema cu un plug-in care afiseaza la statusul de la Yahoo ce melodie ascult cu Winamp-ul.
Am folosit 2 Y!M status changer si W2WY si ambele dadaeau aceasi eroare: nu afisau ce doream eu chiar daca erau “Embed”;afisau “Be Right Back”, “Busy” si “On the Phone”.
De ce?Ce pot face?
dar cum schimb shy yo fonyu la el k satusu imy mere e bun da mam plic d fontu ala demodat
Qm dau p tahoma red(ex)????????