XBL
08/05/05, 17:16
Ok, het boeit waarschijnlijk niemand, maar ik had zo snel niet iemand voor me om even blij te doen over een heel leuk nieuw php scriptje (die allerlei technieken combineerd), dus plaats ik het hier.
Even voor de duidelijkheid: het is nu een heel ruw script, met hoogst waarschijnlijk wat security issues (hoewel de user input minimaal is) en veel errors die niet gecheckt worden, ik ga nog een verbeterde versie schrijven. Ook zit de MySQL support er nog niet in, het is uiteindelijk de bedoeling dat alle verzamelde informatie in de database komt en er weinig dingen gedaan hoeven worden dan de info uit de database te halen.
Wat doet het dan, vraag je je waarschijnlijk af. Het script ontvangt via een plugin voor Winamp (url (http://www.cc.jyu.fi/~ltnevala/nowplaying/)) post variabelen. Artiest, Titel, Album, of Winamp wel of niet speelt (als je 'stop' klikt stuurt hij nogmaals de info, dit maal met Playing op '0' ipv '1').
Dit is opzich natuurlijk niet zo intressant, maar het intressante is wel dat ik er vervolgens de volgende banner mee genereer (en m'n sig is op fora waar je een dergelijk plaatje in je sig mag hebben):
http://vanleeuwen.at/np.png (de img tag wordt bij mij weer eens een url... Mogen plaatjes niet?).
Zoals je ziet staat hier ook op het plaatje 'album art' van het album waar de huidige track van is. Dit plaatje heb ik niet geupload ofzo. Sterker nog, enkel het recenste plaatje wordt opgeslagen en dat ook enkel omdat dat plaatje geresized moet worden (als je het plaatje niet resized, hoeft dat zelfs niet). Het plaatje wordt namelijk van Amazon gegapt.
Via hun webservices (http://amazon.com/webservices) vraag ik informatie op, wat ik vervolgens in een XML document terug krijg. Met SimpleXML (PHP5 only) gap ik vervolgens het nummer van het eerste item eruit resize dit en plaats dit vervolgens op het uiteindelijke plaatje (het is dus niet foolproof, het kan voorkomen dat er een totaal verkeerd plaatje komt omdat het eerste item niet het album is van het huidige liedje).
Daarnaast schrijf ik ook of de muziek aan is en welke artiest+liedje op dit moment spelen naar het plaatje. Dit plaatje sla ik uiteindelijk op, met bovenstaand plaatje als resultaat.
Gebruikte technieken:
- PHP (duh)
- SimpleXML (PHP5 specifiek)
- GD Library (Freetype nodig)
- Amazon AWS API
- Straks: MySQL (met album art als blob)
Tips, ideeën, bedanktjes (;)), etc, altijd welkom :).
Jochem
Even voor de duidelijkheid: het is nu een heel ruw script, met hoogst waarschijnlijk wat security issues (hoewel de user input minimaal is) en veel errors die niet gecheckt worden, ik ga nog een verbeterde versie schrijven. Ook zit de MySQL support er nog niet in, het is uiteindelijk de bedoeling dat alle verzamelde informatie in de database komt en er weinig dingen gedaan hoeven worden dan de info uit de database te halen.
Wat doet het dan, vraag je je waarschijnlijk af. Het script ontvangt via een plugin voor Winamp (url (http://www.cc.jyu.fi/~ltnevala/nowplaying/)) post variabelen. Artiest, Titel, Album, of Winamp wel of niet speelt (als je 'stop' klikt stuurt hij nogmaals de info, dit maal met Playing op '0' ipv '1').
Dit is opzich natuurlijk niet zo intressant, maar het intressante is wel dat ik er vervolgens de volgende banner mee genereer (en m'n sig is op fora waar je een dergelijk plaatje in je sig mag hebben):
http://vanleeuwen.at/np.png (de img tag wordt bij mij weer eens een url... Mogen plaatjes niet?).
Zoals je ziet staat hier ook op het plaatje 'album art' van het album waar de huidige track van is. Dit plaatje heb ik niet geupload ofzo. Sterker nog, enkel het recenste plaatje wordt opgeslagen en dat ook enkel omdat dat plaatje geresized moet worden (als je het plaatje niet resized, hoeft dat zelfs niet). Het plaatje wordt namelijk van Amazon gegapt.
Via hun webservices (http://amazon.com/webservices) vraag ik informatie op, wat ik vervolgens in een XML document terug krijg. Met SimpleXML (PHP5 only) gap ik vervolgens het nummer van het eerste item eruit resize dit en plaats dit vervolgens op het uiteindelijke plaatje (het is dus niet foolproof, het kan voorkomen dat er een totaal verkeerd plaatje komt omdat het eerste item niet het album is van het huidige liedje).
Daarnaast schrijf ik ook of de muziek aan is en welke artiest+liedje op dit moment spelen naar het plaatje. Dit plaatje sla ik uiteindelijk op, met bovenstaand plaatje als resultaat.
Gebruikte technieken:
- PHP (duh)
- SimpleXML (PHP5 specifiek)
- GD Library (Freetype nodig)
- Amazon AWS API
- Straks: MySQL (met album art als blob)
Tips, ideeën, bedanktjes (;)), etc, altijd welkom :).
Jochem