Upload XML Parser to Web view project
LMAO la 4A
This commit is contained in:
parent
054882fe3b
commit
18c5f03c80
BIN
ENSIM/Java/tp-deezer3-squelette/.DS_Store
vendored
Normal file
BIN
ENSIM/Java/tp-deezer3-squelette/.DS_Store
vendored
Normal file
Binary file not shown.
14
ENSIM/Java/tp-deezer3-squelette/.classpath
Normal file
14
ENSIM/Java/tp-deezer3-squelette/.classpath
Normal file
@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="src" path="src"/>
|
||||
<classpathentry kind="src" path="test"/>
|
||||
<classpathentry kind="lib" path="lib/log4j-1.2.14.jar"/>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
|
||||
<attributes>
|
||||
<attribute name="module" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="lib" path="lib/gagawa-1.0.1.jar"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
</classpath>
|
17
ENSIM/Java/tp-deezer3-squelette/.project
Normal file
17
ENSIM/Java/tp-deezer3-squelette/.project
Normal file
@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>tp-deezer3-HerbronTanguy</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
@ -0,0 +1,12 @@
|
||||
eclipse.preferences.version=1
|
||||
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
||||
org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
|
||||
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
|
||||
org.eclipse.jdt.core.compiler.compliance=1.7
|
||||
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
|
||||
org.eclipse.jdt.core.compiler.debug.localVariable=generate
|
||||
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
|
||||
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.source=1.7
|
@ -0,0 +1,4 @@
|
||||
activeProfiles=
|
||||
eclipse.preferences.version=1
|
||||
resolveWorkspaceProjects=true
|
||||
version=1
|
67
ENSIM/Java/tp-deezer3-squelette/47685332.html
Normal file
67
ENSIM/Java/tp-deezer3-squelette/47685332.html
Normal file
@ -0,0 +1,67 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><head><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css"></link><script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script></head></head><body><body><div><nav style="background-color: #3A3A3A">
|
||||
<div class="nav-wrapper">
|
||||
<a href="#" class="brand-logo">Shaka Ponk</a>
|
||||
</div>
|
||||
</nav></div><div class="container"><div class="row"><div class="col s12 m6"> <div class="card blue-grey darken-1">
|
||||
<div class="card-content white-text">
|
||||
<ul class="collection with-header blue-grey darken-1">
|
||||
<li class="collection-header blue-grey darken-1"> <div> <img class="responsive-img circle" style="max-height: 50px; max-width: 50px" src="http://api.deezer.com/2.0/album/47685332/image"> <span class="card-title" style="display: inline-block;">The Evol’</span>
|
||||
</div> </li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Gung Ho</span><audio controls style="display: block"> <source src="http://cdn-preview-a.deezer.com/stream/c-abbf47cd151375ceee9a5d3835545268-4.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Fear Ya</span><audio controls style="display: block"> <source src="http://cdn-preview-f.deezer.com/stream/c-f2ff0cdc8bd8e4764f59d36ccf996d7c-4.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Faking Love</span><audio controls style="display: block"> <source src="http://cdn-preview-f.deezer.com/stream/c-fcb2d52821e6c04143c1f22e69d428b6-4.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Bunker</span><audio controls style="display: block"> <source src="http://cdn-preview-f.deezer.com/stream/c-fcf5ccb3299d1a1704830381fdab640c-4.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>On Fire</span><audio controls style="display: block"> <source src="http://cdn-preview-4.deezer.com/stream/c-4e49a416fde18e3d9f279d9d8abefaac-3.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Summer Camp</span><audio controls style="display: block"> <source src="http://cdn-preview-c.deezer.com/stream/c-c2faa52ad956a3f43c1eb9a0dd513b60-3.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Wrong Side</span><audio controls style="display: block"> <source src="http://cdn-preview-d.deezer.com/stream/c-df381a09642648d8366cb0599876861a-4.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Wataman</span><audio controls style="display: block"> <source src="http://cdn-preview-9.deezer.com/stream/c-95f2985340a37fc548e7d9ee59db221b-3.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Slam & Slam'Ed (feat. Edouard Baer)</span><audio controls style="display: block"> <source src="http://cdn-preview-e.deezer.com/stream/c-e78585cc5b14ad6b0722ac5155414ce5-3.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Rusty Fonky</span><audio controls style="display: block"> <source src="http://cdn-preview-e.deezer.com/stream/c-ee21b7bada5a57f30d22f2fc62b06ddf-5.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Share a Line</span><audio controls style="display: block"> <source src="http://cdn-preview-2.deezer.com/stream/c-23bb98abf95e1615764b974d1c091bb8-5.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Mysterious Ways</span><audio controls style="display: block"> <source src="http://cdn-preview-f.deezer.com/stream/c-f9924ab2fff9b4c5e9a133cadbbf191e-4.mp3" type="audio/mpeg"></li>
|
||||
</div></div></div><div class="col s12 m6"> <div class="card blue-grey darken-1">
|
||||
<div class="card-content white-text">
|
||||
<ul class="collection with-header blue-grey darken-1">
|
||||
<li class="collection-header blue-grey darken-1"> <div> <img class="responsive-img circle" style="max-height: 50px; max-width: 50px" src="http://api.deezer.com/2.0/album/1121440/image"> <span class="card-title" style="display: inline-block;">The Geeks And The Jerkin' Socks</span>
|
||||
</div> </li>
|
||||
</div></div></div></div><div class="row"><div class="col s12 m6"> <div class="card blue-grey darken-1">
|
||||
<div class="card-content white-text">
|
||||
<ul class="collection with-header blue-grey darken-1">
|
||||
<li class="collection-header blue-grey darken-1"> <div> <img class="responsive-img circle" style="max-height: 50px; max-width: 50px" src="http://api.deezer.com/2.0/album/7529289/image"> <span class="card-title" style="display: inline-block;">The White Pixel Ape (Smoking Isolate to Keep in Shape)</span>
|
||||
</div> </li>
|
||||
</div></div></div><div class="col s12 m6"> <div class="card blue-grey darken-1">
|
||||
<div class="card-content white-text">
|
||||
<ul class="collection with-header blue-grey darken-1">
|
||||
<li class="collection-header blue-grey darken-1"> <div> <img class="responsive-img circle" style="max-height: 50px; max-width: 50px" src="http://api.deezer.com/2.0/album/625593/image"> <span class="card-title" style="display: inline-block;">Bad Porn Movie Trax</span>
|
||||
</div> </li>
|
||||
</div></div></div></div><div class="row"><div class="col s12 m6"> <div class="card blue-grey darken-1">
|
||||
<div class="card-content white-text">
|
||||
<ul class="collection with-header blue-grey darken-1">
|
||||
<li class="collection-header blue-grey darken-1"> <div> <img class="responsive-img circle" style="max-height: 50px; max-width: 50px" src="http://api.deezer.com/2.0/album/8910295/image"> <span class="card-title" style="display: inline-block;">The Black Pixel Ape (Drinking Cigarettes to Take a Break) [Deezer Edition]</span>
|
||||
</div> </li>
|
||||
</div></div></div><div class="col s12 m6"> <div class="card blue-grey darken-1">
|
||||
<div class="card-content white-text">
|
||||
<ul class="collection with-header blue-grey darken-1">
|
||||
<li class="collection-header blue-grey darken-1"> <div> <img class="responsive-img circle" style="max-height: 50px; max-width: 50px" src="http://api.deezer.com/2.0/album/7084004/image"> <span class="card-title" style="display: inline-block;">Monkeys in Bercy</span>
|
||||
</div> </li>
|
||||
</div></div></div></div><div class="row"><div class="col s12 m6"> <div class="card blue-grey darken-1">
|
||||
<div class="card-content white-text">
|
||||
<ul class="collection with-header blue-grey darken-1">
|
||||
<li class="collection-header blue-grey darken-1"> <div> <img class="responsive-img circle" style="max-height: 50px; max-width: 50px" src="http://api.deezer.com/2.0/album/56633592/image"> <span class="card-title" style="display: inline-block;">Smells Like Teen Spirit</span>
|
||||
</div> </li>
|
||||
</div></div></div><div class="col s12 m6"> <div class="card blue-grey darken-1">
|
||||
<div class="card-content white-text">
|
||||
<ul class="collection with-header blue-grey darken-1">
|
||||
<li class="collection-header blue-grey darken-1"> <div> <img class="responsive-img circle" style="max-height: 50px; max-width: 50px" src="http://api.deezer.com/2.0/album/637662/image"> <span class="card-title" style="display: inline-block;">Loco Con Da Frenchy Talkin' (Recycled version 2009)</span>
|
||||
</div> </li>
|
||||
</div></div></div></div><div class="row"><div class="col s12 m6"> <div class="card blue-grey darken-1">
|
||||
<div class="card-content white-text">
|
||||
<ul class="collection with-header blue-grey darken-1">
|
||||
<li class="collection-header blue-grey darken-1"> <div> <img class="responsive-img circle" style="max-height: 50px; max-width: 50px" src="http://api.deezer.com/2.0/album/43199651/image"> <span class="card-title" style="display: inline-block;">ApeTizer - EP</span>
|
||||
</div> </li>
|
||||
</div></div></div><div class="col s12 m6"> <div class="card blue-grey darken-1">
|
||||
<div class="card-content white-text">
|
||||
<ul class="collection with-header blue-grey darken-1">
|
||||
<li class="collection-header blue-grey darken-1"> <div> <img class="responsive-img circle" style="max-height: 50px; max-width: 50px" src="http://api.deezer.com/2.0/album/7327738/image"> <span class="card-title" style="display: inline-block;">Wanna Get Free - Single</span>
|
||||
</div> </li>
|
||||
</div></div></div></div></div></body></body></html>
|
1
ENSIM/Java/tp-deezer3-squelette/83325.html
Normal file
1
ENSIM/Java/tp-deezer3-squelette/83325.html
Normal file
@ -0,0 +1 @@
|
||||
<?xml version="1.0" ?><root><album><title>The Evol’</title></album></root>
|
158
ENSIM/Java/tp-deezer3-squelette/Shaka Ponk.html
Normal file
158
ENSIM/Java/tp-deezer3-squelette/Shaka Ponk.html
Normal file
@ -0,0 +1,158 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><head><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css"></link><script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script></head></head><body><body><div><nav style="background-color: #3A3A3A">
|
||||
<div class="nav-wrapper">
|
||||
<a href="#" class="brand-logo">Shaka Ponk</a>
|
||||
</div>
|
||||
</nav></div><div class="container"><div class="row"><div class="col s12 m6"> <div class="card blue-grey darken-1">
|
||||
<div class="card-content white-text">
|
||||
<ul class="collection with-header blue-grey darken-1">
|
||||
<li class="collection-header blue-grey darken-1"> <div> <img class="responsive-img circle" style="max-height: 50px; max-width: 50px" src="http://api.deezer.com/2.0/album/47685332/image"> <span class="card-title" style="display: inline-block;">The Evol’</span>
|
||||
</div> </li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Gung Ho</span><audio controls style="display: block"> <source src="http://cdn-preview-a.deezer.com/stream/c-abbf47cd151375ceee9a5d3835545268-4.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Fear Ya</span><audio controls style="display: block"> <source src="http://cdn-preview-f.deezer.com/stream/c-f2ff0cdc8bd8e4764f59d36ccf996d7c-4.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Faking Love</span><audio controls style="display: block"> <source src="http://cdn-preview-f.deezer.com/stream/c-fcb2d52821e6c04143c1f22e69d428b6-4.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Bunker</span><audio controls style="display: block"> <source src="http://cdn-preview-f.deezer.com/stream/c-fcf5ccb3299d1a1704830381fdab640c-4.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>On Fire</span><audio controls style="display: block"> <source src="http://cdn-preview-4.deezer.com/stream/c-4e49a416fde18e3d9f279d9d8abefaac-3.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Summer Camp</span><audio controls style="display: block"> <source src="http://cdn-preview-c.deezer.com/stream/c-c2faa52ad956a3f43c1eb9a0dd513b60-3.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Wrong Side</span><audio controls style="display: block"> <source src="http://cdn-preview-d.deezer.com/stream/c-df381a09642648d8366cb0599876861a-4.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Wataman</span><audio controls style="display: block"> <source src="http://cdn-preview-9.deezer.com/stream/c-95f2985340a37fc548e7d9ee59db221b-3.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Slam & Slam'Ed (feat. Edouard Baer)</span><audio controls style="display: block"> <source src="http://cdn-preview-e.deezer.com/stream/c-e78585cc5b14ad6b0722ac5155414ce5-3.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Rusty Fonky</span><audio controls style="display: block"> <source src="http://cdn-preview-e.deezer.com/stream/c-ee21b7bada5a57f30d22f2fc62b06ddf-5.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Share a Line</span><audio controls style="display: block"> <source src="http://cdn-preview-2.deezer.com/stream/c-23bb98abf95e1615764b974d1c091bb8-5.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Mysterious Ways</span><audio controls style="display: block"> <source src="http://cdn-preview-f.deezer.com/stream/c-f9924ab2fff9b4c5e9a133cadbbf191e-4.mp3" type="audio/mpeg"></li>
|
||||
</div></div></div><div class="col s12 m6"> <div class="card blue-grey darken-1">
|
||||
<div class="card-content white-text">
|
||||
<ul class="collection with-header blue-grey darken-1">
|
||||
<li class="collection-header blue-grey darken-1"> <div> <img class="responsive-img circle" style="max-height: 50px; max-width: 50px" src="http://api.deezer.com/2.0/album/1121440/image"> <span class="card-title" style="display: inline-block;">The Geeks And The Jerkin' Socks</span>
|
||||
</div> </li>
|
||||
<li class="collection-item blue-grey darken-1"><span>The Geeks And The Jerkin' Socks</span><audio controls style="display: block"> <source src="http://cdn-preview-d.deezer.com/stream/c-df337b3bceea2691b9acf814e5e321c8-5.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Let's Bang</span><audio controls style="display: block"> <source src="http://cdn-preview-9.deezer.com/stream/c-9aa4310e377a9b523076097764a8f73c-11.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>I'm Picky</span><audio controls style="display: block"> <source src="http://cdn-preview-b.deezer.com/stream/c-b11fb72f08c6975eac04fa636b2335e4-11.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Brunette Localicious</span><audio controls style="display: block"> <source src="http://cdn-preview-2.deezer.com/stream/c-2ef3b3eb0de41cd472dc8463d7388b9a-11.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>I'm a Lady</span><audio controls style="display: block"> <source src="http://cdn-preview-1.deezer.com/stream/c-1ad5265e8481c5328bf624420b99ec47-12.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Sex Ball</span><audio controls style="display: block"> <source src="http://cdn-preview-c.deezer.com/stream/c-c83f92b3d8de59d7bb5f2f10de11bac9-11.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>My Name Is Stain</span><audio controls style="display: block"> <source src="http://cdn-preview-8.deezer.com/stream/c-8760266b1573ae556dd019b1704f775c-11.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Shiza Radio</span><audio controls style="display: block"> <source src="http://cdn-preview-3.deezer.com/stream/c-3eaa1f27ab97e220e634bc33a9f334cb-11.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Run Run Run</span><audio controls style="display: block"> <source src="http://cdn-preview-1.deezer.com/stream/c-14106b0b80c5a6084b2f68d7973c22d9-11.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Dancing Dead</span><audio controls style="display: block"> <source src="http://cdn-preview-9.deezer.com/stream/c-9151f5bd3290627100b4ad3212bc44d3-12.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Reset After All</span><audio controls style="display: block"> <source src="http://cdn-preview-8.deezer.com/stream/c-8221509d9f1a2ad64bc7ca650168d3a0-13.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Old School Rocka (feat. Beat Assailant)</span><audio controls style="display: block"> <source src="http://cdn-preview-5.deezer.com/stream/c-506783af2bb89daf3a0512a18d9b813f-11.mp3" type="audio/mpeg"></li>
|
||||
</div></div></div></div><div class="row"><div class="col s12 m6"> <div class="card blue-grey darken-1">
|
||||
<div class="card-content white-text">
|
||||
<ul class="collection with-header blue-grey darken-1">
|
||||
<li class="collection-header blue-grey darken-1"> <div> <img class="responsive-img circle" style="max-height: 50px; max-width: 50px" src="http://api.deezer.com/2.0/album/7529289/image"> <span class="card-title" style="display: inline-block;">The White Pixel Ape (Smoking Isolate to Keep in Shape)</span>
|
||||
</div> </li>
|
||||
<li class="collection-item blue-grey darken-1"><span>The White Pixel Ape (Smoking Isolate to Keep in Shape)</span><audio controls style="display: block"> <source src="http://cdn-preview-a.deezer.com/stream/c-af6e09963639a1cd1f6492adfefd0e27-11.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Lucky G1rl</span><audio controls style="display: block"> <source src="http://cdn-preview-9.deezer.com/stream/c-9fb119c61130fef8705650cb57e88630-3.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Wanna Get Free</span><audio controls style="display: block"> <source src="http://cdn-preview-2.deezer.com/stream/c-2bcbc9f39c306a91ab0f72c8af78368d-1.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>M0nkey On The Wall</span><audio controls style="display: block"> <source src="http://cdn-preview-5.deezer.com/stream/c-526683c69cf2c05823e22e91f13dad98-2.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Scarify</span><audio controls style="display: block"> <source src="http://cdn-preview-4.deezer.com/stream/c-4d022fc56665700b144f2563b64ecec5-1.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Black Listed</span><audio controls style="display: block"> <source src="http://cdn-preview-0.deezer.com/stream/c-05f52e7f38cebd0f83305c6a81e16cda-2.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>An Eloquent</span><audio controls style="display: block"> <source src="http://cdn-preview-4.deezer.com/stream/c-4fe0dbd5932582d631dc9993e1b6c613-2.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>W0tz Goin'ON</span><audio controls style="display: block"> <source src="http://cdn-preview-5.deezer.com/stream/c-5439934bbd426f7bd73bea24af37051d-1.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Story O' my LF</span><audio controls style="display: block"> <source src="http://cdn-preview-b.deezer.com/stream/c-b7a89c8e9a56d2089c4226e4ee87daf9-1.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Gimme Guitarrrrra</span><audio controls style="display: block"> <source src="http://cdn-preview-0.deezer.com/stream/c-00dee5f18e8ff1131fa279bac320d679-1.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Last Alone</span><audio controls style="display: block"> <source src="http://cdn-preview-d.deezer.com/stream/c-d022e232f5d3a7304726839f76ec082b-2.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Altered Native Soul</span><audio controls style="display: block"> <source src="http://cdn-preview-1.deezer.com/stream/c-1270a0d5dae3bbd69d8cdf97e09f3782-1.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Heal Me Kill Me</span><audio controls style="display: block"> <source src="http://cdn-preview-5.deezer.com/stream/c-5bb5defae1b799ff50de820e4dd5422d-2.mp3" type="audio/mpeg"></li>
|
||||
</div></div></div><div class="col s12 m6"> <div class="card blue-grey darken-1">
|
||||
<div class="card-content white-text">
|
||||
<ul class="collection with-header blue-grey darken-1">
|
||||
<li class="collection-header blue-grey darken-1"> <div> <img class="responsive-img circle" style="max-height: 50px; max-width: 50px" src="http://api.deezer.com/2.0/album/625593/image"> <span class="card-title" style="display: inline-block;">Bad Porn Movie Trax</span>
|
||||
</div> </li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Bad Porn Movie Trax</span><audio controls style="display: block"> <source src="http://cdn-preview-2.deezer.com/stream/c-27c90f127e672a730a26482e1279f755-1.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Twisted Minda</span><audio controls style="display: block"> <source src="http://cdn-preview-f.deezer.com/stream/c-f6836bb82e26d48edfe1f85cb3b82040-5.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Hombre que Soy</span><audio controls style="display: block"> <source src="http://cdn-preview-3.deezer.com/stream/c-356683c60ecab84e2bdd4690ca8f3a27-6.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Prima Scene</span><audio controls style="display: block"> <source src="http://cdn-preview-3.deezer.com/stream/c-3d9bb439b2bd7fd805cf8f13771726bd-5.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Some Guide</span><audio controls style="display: block"> <source src="http://cdn-preview-9.deezer.com/stream/c-9da93ee5fcd9e24de6583d6e863345b6-6.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>How we Kill Stars</span><audio controls style="display: block"> <source src="http://cdn-preview-9.deezer.com/stream/c-96348e661e8a58ce313f21c36a3adc41-6.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Mad o You</span><audio controls style="display: block"> <source src="http://cdn-preview-f.deezer.com/stream/c-f88927a62a150d6a582eca5762e9ee41-6.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Do</span><audio controls style="display: block"> <source src="http://cdn-preview-9.deezer.com/stream/c-9c1ae12fcee8bd5e06b4757bcced852d-6.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Te Gusta Me</span><audio controls style="display: block"> <source src="http://cdn-preview-6.deezer.com/stream/c-6bbe0e063607792756197eefbcce8507-7.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>French Touch Puta Madre</span><audio controls style="display: block"> <source src="http://cdn-preview-5.deezer.com/stream/c-5251539ffb220ac663df05685eeca91a-5.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Gotta Get Me High</span><audio controls style="display: block"> <source src="http://cdn-preview-b.deezer.com/stream/c-b62725e550901ec5d5e73d149906d08a-5.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Sum'Luv'</span><audio controls style="display: block"> <source src="http://cdn-preview-8.deezer.com/stream/c-8dca37c2b7ac0864ddea4f2fc8830bd5-7.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Alak'Okan</span><audio controls style="display: block"> <source src="http://cdn-preview-6.deezer.com/stream/c-6b3150cbe3211a33c88c7819ea1c49b9-5.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Make it Mine</span><audio controls style="display: block"> <source src="http://cdn-preview-a.deezer.com/stream/c-a24f234f7a7e6f196c241c32f4de0768-7.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Just a Nerd</span><audio controls style="display: block"> <source src="http://cdn-preview-d.deezer.com/stream/c-d0b80488d724ebf92d04c97160404650-6.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Stop the Bot</span><audio controls style="display: block"> <source src="http://cdn-preview-b.deezer.com/stream/c-b70686c995f53b125fb296234718c3b2-5.mp3" type="audio/mpeg"></li>
|
||||
</div></div></div></div><div class="row"><div class="col s12 m6"> <div class="card blue-grey darken-1">
|
||||
<div class="card-content white-text">
|
||||
<ul class="collection with-header blue-grey darken-1">
|
||||
<li class="collection-header blue-grey darken-1"> <div> <img class="responsive-img circle" style="max-height: 50px; max-width: 50px" src="http://api.deezer.com/2.0/album/8910295/image"> <span class="card-title" style="display: inline-block;">The Black Pixel Ape (Drinking Cigarettes to Take a Break) [Deezer Edition]</span>
|
||||
</div> </li>
|
||||
<li class="collection-item blue-grey darken-1"><span>The Black Pixel Ape (Drinking Cigarettes to Take a Break) [Deezer Edition]</span><audio controls style="display: block"> <source src="http://cdn-preview-0.deezer.com/stream/c-0a3ad322c317215909f16230d1669743-5.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>On the Ro'</span><audio controls style="display: block"> <source src="http://cdn-preview-0.deezer.com/stream/c-0af6cacd0e4c69710c73a494076b328e-5.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Come on Cama</span><audio controls style="display: block"> <source src="http://cdn-preview-d.deezer.com/stream/c-d683331577aa449192f799395ddc44ae-5.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>The Shell Maid Freak</span><audio controls style="display: block"> <source src="http://cdn-preview-2.deezer.com/stream/c-228c6db6e1c52fb4d79e8795617532e8-4.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>The Way Out</span><audio controls style="display: block"> <source src="http://cdn-preview-6.deezer.com/stream/c-6ee7ef5f78c14ea39652c5f162a6b323-5.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Lucky Boy</span><audio controls style="display: block"> <source src="http://cdn-preview-4.deezer.com/stream/c-45a5e360d94ed9308bae87e17efe57c8-4.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Frag Dog</span><audio controls style="display: block"> <source src="http://cdn-preview-8.deezer.com/stream/c-89b318ed2a0302eed48f2541737ae842-5.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Mocks the Party</span><audio controls style="display: block"> <source src="http://cdn-preview-1.deezer.com/stream/c-1243c0a270afc7a60e007a496ccf3291-4.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Happy Ape Rodeo</span><audio controls style="display: block"> <source src="http://cdn-preview-e.deezer.com/stream/c-e50a3ff9f86cfe1c1b5fc8517a6e040b-4.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Time Has Come</span><audio controls style="display: block"> <source src="http://cdn-preview-6.deezer.com/stream/c-65c9b16e05360c93623e39e71f2fa318-4.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Kitty Call (Hidden Track)</span><audio controls style="display: block"> <source src="http://cdn-preview-9.deezer.com/stream/c-974bc5aadf77598ba25e4ea81df3d8d0-4.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Yell</span><audio controls style="display: block"> <source src="http://cdn-preview-d.deezer.com/stream/c-dd83f280aa70a1d003f0b248e1516140-4.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>4Xget</span><audio controls style="display: block"> <source src="http://cdn-preview-d.deezer.com/stream/c-d6214d62cb113edf348522632296f377-4.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Morir Cantando</span><audio controls style="display: block"> <source src="http://cdn-preview-4.deezer.com/stream/c-48ad4e0e56d61afbb026dd7f8a0cb570-7.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Blacklisted (Live @ Deezer Session)</span><audio controls style="display: block"> <source src="http://cdn-preview-7.deezer.com/stream/c-7ecf53fb36007a7dd199ccc163f123ed-4.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Wanna Get Free (Live @ Deezer Session)</span><audio controls style="display: block"> <source src="http://cdn-preview-d.deezer.com/stream/c-d02b67e8462e20619232bfbdda4d766d-4.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Lucky G1rl (Live @ Deezer Session)</span><audio controls style="display: block"> <source src="http://cdn-preview-3.deezer.com/stream/c-3cd90a4f2e6aa9c138a6837ff0824861-4.mp3" type="audio/mpeg"></li>
|
||||
</div></div></div><div class="col s12 m6"> <div class="card blue-grey darken-1">
|
||||
<div class="card-content white-text">
|
||||
<ul class="collection with-header blue-grey darken-1">
|
||||
<li class="collection-header blue-grey darken-1"> <div> <img class="responsive-img circle" style="max-height: 50px; max-width: 50px" src="http://api.deezer.com/2.0/album/7084004/image"> <span class="card-title" style="display: inline-block;">Monkeys in Bercy</span>
|
||||
</div> </li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Monkeys in Bercy</span><audio controls style="display: block"> <source src="http://cdn-preview-0.deezer.com/stream/c-056cef35fcd4b402c0f67e49601dcc0a-5.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Intro (live)</span><audio controls style="display: block"> <source src="http://cdn-preview-7.deezer.com/stream/c-7e3b5dccbe8f962e5ed08d4ecd37afdb-1.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Shiza Radio (live)</span><audio controls style="display: block"> <source src="http://cdn-preview-3.deezer.com/stream/c-3d96a865c3b9d442e0693e0f6e34200f-1.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Reset After All (live)</span><audio controls style="display: block"> <source src="http://cdn-preview-e.deezer.com/stream/c-e265f695858bc9507f22324a6ab5dae1-1.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Hombre Que Soy (live)</span><audio controls style="display: block"> <source src="http://cdn-preview-b.deezer.com/stream/c-b94a7be7b3d25725a95ada1e5b7f3682-2.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Twisted Minda (live)</span><audio controls style="display: block"> <source src="http://cdn-preview-3.deezer.com/stream/c-38bafa59a9550fe282dd196e05af46ea-2.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Doors (live)</span><audio controls style="display: block"> <source src="http://cdn-preview-e.deezer.com/stream/c-e7034caf0c410bc21190fe345f609f55-1.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Sex Ball (live)</span><audio controls style="display: block"> <source src="http://cdn-preview-4.deezer.com/stream/c-443b06fb3165d5934ce321f1d80b77a2-2.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>I'm Picky (live)</span><audio controls style="display: block"> <source src="http://cdn-preview-f.deezer.com/stream/c-f963ce51728e18880676e560031899c7-1.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Let's Bang (live)</span><audio controls style="display: block"> <source src="http://cdn-preview-a.deezer.com/stream/c-a9592cc08e4b4458c3f2fb76bc106a52-2.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>My Name Is Stain (live)</span><audio controls style="display: block"> <source src="http://cdn-preview-3.deezer.com/stream/c-366e89f55b9b481d8e5a11de1f07d618-1.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Lady (live)</span><audio controls style="display: block"> <source src="http://cdn-preview-b.deezer.com/stream/c-b1093408041b8311e27e2e49c3297bac-1.mp3" type="audio/mpeg"></li>
|
||||
</div></div></div></div><div class="row"><div class="col s12 m6"> <div class="card blue-grey darken-1">
|
||||
<div class="card-content white-text">
|
||||
<ul class="collection with-header blue-grey darken-1">
|
||||
<li class="collection-header blue-grey darken-1"> <div> <img class="responsive-img circle" style="max-height: 50px; max-width: 50px" src="http://api.deezer.com/2.0/album/56633592/image"> <span class="card-title" style="display: inline-block;">Smells Like Teen Spirit</span>
|
||||
</div> </li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Smells Like Teen Spirit</span><audio controls style="display: block"> <source src="http://cdn-preview-4.deezer.com/stream/c-451485ed9ab0d6cb5a163600d6486381-1.mp3" type="audio/mpeg"></li>
|
||||
</div></div></div><div class="col s12 m6"> <div class="card blue-grey darken-1">
|
||||
<div class="card-content white-text">
|
||||
<ul class="collection with-header blue-grey darken-1">
|
||||
<li class="collection-header blue-grey darken-1"> <div> <img class="responsive-img circle" style="max-height: 50px; max-width: 50px" src="http://api.deezer.com/2.0/album/637662/image"> <span class="card-title" style="display: inline-block;">Loco Con Da Frenchy Talkin' (Recycled version 2009)</span>
|
||||
</div> </li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Loco Con Da Frenchy Talkin' (Recycled version 2009)</span><audio controls style="display: block"> <source src="http://cdn-preview-7.deezer.com/stream/c-715d7eecb5d2008b1fd0467ebf155308-4.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Disto Cake</span><audio controls style="display: block"> <source src="http://cdn-preview-1.deezer.com/stream/c-13e41a6e201bce29ad0c94f24d6b858d-2.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Eh là Mala Lama LAïco</span><audio controls style="display: block"> <source src="http://cdn-preview-6.deezer.com/stream/c-695f2157d772937d5b74839a9e76d111-3.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Hell'o</span><audio controls style="display: block"> <source src="http://cdn-preview-e.deezer.com/stream/c-eb3d01c6b250be6bfd42b915583e82d6-3.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Body Cult</span><audio controls style="display: block"> <source src="http://cdn-preview-4.deezer.com/stream/c-46d67b275151c24f7fe16f8f193ecb20-3.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Tekno Kills</span><audio controls style="display: block"> <source src="http://cdn-preview-5.deezer.com/stream/c-58d71c22dab880e85dd460d4d0708479-3.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Fonk Me</span><audio controls style="display: block"> <source src="http://cdn-preview-d.deezer.com/stream/c-df2842771c0e09173bc817fd7ae80bc6-3.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Watch'ha</span><audio controls style="display: block"> <source src="http://cdn-preview-f.deezer.com/stream/c-f8eb3d42322e7e1aab41fdf266ba6a3f-2.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Dot.Coma</span><audio controls style="display: block"> <source src="http://cdn-preview-2.deezer.com/stream/c-24e2745f1d9c4dd2a8bffe97de5cc5be-2.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>My Boom Is Bumping</span><audio controls style="display: block"> <source src="http://cdn-preview-c.deezer.com/stream/c-ce17f8839e52ca55c5519c232f6ed4a5-3.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Da Teen Town</span><audio controls style="display: block"> <source src="http://cdn-preview-d.deezer.com/stream/c-d74b38265de3ca7170aff29fced5d829-2.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Spit Low</span><audio controls style="display: block"> <source src="http://cdn-preview-5.deezer.com/stream/c-5d6c7dfe76fd9297ed9347d7762f1bda-3.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Popa Booya Boosta can</span><audio controls style="display: block"> <source src="http://cdn-preview-4.deezer.com/stream/c-4017a2268006763c219c18cd6fa8ec45-2.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Spit</span><audio controls style="display: block"> <source src="http://cdn-preview-e.deezer.com/stream/c-ede688744f57c13e5c77f8612fc2a0f5-4.mp3" type="audio/mpeg"></li>
|
||||
</div></div></div></div><div class="row"><div class="col s12 m6"> <div class="card blue-grey darken-1">
|
||||
<div class="card-content white-text">
|
||||
<ul class="collection with-header blue-grey darken-1">
|
||||
<li class="collection-header blue-grey darken-1"> <div> <img class="responsive-img circle" style="max-height: 50px; max-width: 50px" src="http://api.deezer.com/2.0/album/43199651/image"> <span class="card-title" style="display: inline-block;">ApeTizer - EP</span>
|
||||
</div> </li>
|
||||
<li class="collection-item blue-grey darken-1"><span>ApeTizer - EP</span><audio controls style="display: block"> <source src="http://cdn-preview-2.deezer.com/stream/c-2bdf924e7c5be3f5d26c2b85ce4e994b-3.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Gung Ho</span><audio controls style="display: block"> <source src="http://cdn-preview-d.deezer.com/stream/c-d39d18c52db8d243baa3a7a9954677f9-5.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Mysterious Ways</span><audio controls style="display: block"> <source src="http://cdn-preview-e.deezer.com/stream/c-ee6b307f0122004e8e46aedbc0177263-4.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Party</span><audio controls style="display: block"> <source src="http://cdn-preview-6.deezer.com/stream/c-6142fbb8779c84b787175c9636b67959-4.mp3" type="audio/mpeg"></li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Rocksta (feat. Skin, De Staat & KillASon)</span><audio controls style="display: block"> <source src="http://cdn-preview-4.deezer.com/stream/c-441bebe524c8a7ca1bd88eadd960fdd4-4.mp3" type="audio/mpeg"></li>
|
||||
</div></div></div><div class="col s12 m6"> <div class="card blue-grey darken-1">
|
||||
<div class="card-content white-text">
|
||||
<ul class="collection with-header blue-grey darken-1">
|
||||
<li class="collection-header blue-grey darken-1"> <div> <img class="responsive-img circle" style="max-height: 50px; max-width: 50px" src="http://api.deezer.com/2.0/album/7327738/image"> <span class="card-title" style="display: inline-block;">Wanna Get Free - Single</span>
|
||||
</div> </li>
|
||||
<li class="collection-item blue-grey darken-1"><span>Wanna Get Free - Single</span><audio controls style="display: block"> <source src="http://cdn-preview-2.deezer.com/stream/c-24e73c9faf5904179239df4861828154-4.mp3" type="audio/mpeg"></li>
|
||||
</div></div></div></div></div></body></body></html>
|
2
ENSIM/Java/tp-deezer3-squelette/bin/.gitignore
vendored
Normal file
2
ENSIM/Java/tp-deezer3-squelette/bin/.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
/.DS_Store
|
||||
/fr/
|
BIN
ENSIM/Java/tp-deezer3-squelette/lib/gagawa-1.0.1.jar
Normal file
BIN
ENSIM/Java/tp-deezer3-squelette/lib/gagawa-1.0.1.jar
Normal file
Binary file not shown.
BIN
ENSIM/Java/tp-deezer3-squelette/lib/log4j-1.2.14.jar
Normal file
BIN
ENSIM/Java/tp-deezer3-squelette/lib/log4j-1.2.14.jar
Normal file
Binary file not shown.
25
ENSIM/Java/tp-deezer3-squelette/log4J.xml
Normal file
25
ENSIM/Java/tp-deezer3-squelette/log4J.xml
Normal file
@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
|
||||
<log4j:configuration>
|
||||
<appender name="FILE" class="org.apache.log4j.RollingFileAppender">
|
||||
<param name="File" value="tp-xml.log" />
|
||||
<param name="Append" value="false" />
|
||||
<param name="MaxFileSize" value="5MB"/>
|
||||
<param name="MaxBackupIndex" value="2" />
|
||||
<layout class="org.apache.log4j.PatternLayout">
|
||||
<param name="ConversionPattern" value="%d{HH:mm:ss,SSS} %-5p %C - %m\n"/>
|
||||
</layout>
|
||||
</appender>
|
||||
<appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
|
||||
<layout class="org.apache.log4j.PatternLayout">
|
||||
<param name="ConversionPattern"
|
||||
value="%d{HH:mm:ss,SSS} %-5p %C - %m\n"/>
|
||||
</layout>
|
||||
</appender>
|
||||
<category name="fr.ensim"
|
||||
additivity="false">
|
||||
<level value="debug"/> <!-- Warn | Info | Error | Debug -->
|
||||
<appender-ref ref="FILE"/>
|
||||
<appender-ref ref="STDOUT"/>
|
||||
</category>
|
||||
</log4j:configuration>
|
28
ENSIM/Java/tp-deezer3-squelette/pom.xml
Normal file
28
ENSIM/Java/tp-deezer3-squelette/pom.xml
Normal file
@ -0,0 +1,28 @@
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>tp-deezer3-HerbronTanguy</groupId>
|
||||
<artifactId>tp-deezer3-HerbronTanguy</artifactId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
<build>
|
||||
<sourceDirectory>src</sourceDirectory>
|
||||
<testSourceDirectory>test</testSourceDirectory>
|
||||
<testResources>
|
||||
<testResource>
|
||||
<directory>test</directory>
|
||||
<excludes>
|
||||
<exclude>**/*.java</exclude>
|
||||
</excludes>
|
||||
</testResource>
|
||||
</testResources>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>3.7.0</version>
|
||||
<configuration>
|
||||
<source>1.7</source>
|
||||
<target>1.7</target>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
@ -0,0 +1,86 @@
|
||||
package fr.ensim.xml.deezer;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.net.URL;
|
||||
import java.util.List;
|
||||
|
||||
import javax.xml.parsers.ParserConfigurationException;
|
||||
|
||||
import org.apache.log4j.Logger;
|
||||
import org.xml.sax.SAXException;
|
||||
|
||||
import fr.ensim.xml.deezer.data.Album;
|
||||
|
||||
/**
|
||||
* @author Denis Apparicio
|
||||
*
|
||||
*/
|
||||
public abstract class AbstractSearchAlbum {
|
||||
private static final Logger LOG = Logger.getLogger(AbstractSearchAlbum.class);
|
||||
|
||||
/**
|
||||
* Restitue la liste des albums d'un auteur.
|
||||
*
|
||||
* @param author
|
||||
* l'auteur.
|
||||
* @throws IOException
|
||||
* @throws ParserConfigurationException
|
||||
* @throws SAXException
|
||||
*/
|
||||
public List<Album> find(String author) throws IOException,
|
||||
ParserConfigurationException,
|
||||
SAXException {
|
||||
LOG.debug(">>find author="+author);
|
||||
|
||||
// Constitution de l'URL
|
||||
StringBuilder sUrl = new StringBuilder();
|
||||
sUrl.append("http://api.deezer.com/2.0/search/album?q=");
|
||||
sUrl.append(author);
|
||||
sUrl.append("&output=xml");
|
||||
|
||||
URL url = new URL(sUrl.toString());
|
||||
LOG.debug(url);
|
||||
|
||||
HttpURLConnection cnx = (HttpURLConnection) url.openConnection();
|
||||
|
||||
List<Album> albums = null;
|
||||
try {
|
||||
|
||||
// recuperation du flux xml
|
||||
cnx.setConnectTimeout(5000);
|
||||
cnx.setReadTimeout(5000);
|
||||
cnx.setRequestMethod("GET");
|
||||
cnx.setDoInput(true);
|
||||
cnx.addRequestProperty("Accept-Language", "en;q=0.6,en-us;q=0.4,sv;q=0.2");
|
||||
if (cnx.getResponseCode() != HttpURLConnection.HTTP_OK) {
|
||||
throw new IOException("http status code " + cnx.getResponseCode());
|
||||
}
|
||||
|
||||
InputStream in = cnx.getInputStream();
|
||||
|
||||
// Lecture
|
||||
albums = readAlbums(in);
|
||||
}
|
||||
catch(Exception e) {
|
||||
LOG.error("", e);
|
||||
}
|
||||
finally {
|
||||
cnx.disconnect();
|
||||
}
|
||||
|
||||
LOG.debug("<<find");
|
||||
return albums;
|
||||
}
|
||||
|
||||
/**
|
||||
* Restitue la liste des albums à partir du flux xml.
|
||||
*
|
||||
* @param in
|
||||
* le flux xml.
|
||||
* @return la liste des albums.
|
||||
*/
|
||||
public abstract List<Album> readAlbums(InputStream in) throws Exception;
|
||||
|
||||
}
|
@ -0,0 +1,70 @@
|
||||
package fr.ensim.xml.deezer;
|
||||
|
||||
import java.io.InputStream;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.net.URL;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import fr.ensim.xml.deezer.data.Track;
|
||||
|
||||
/**
|
||||
* @author Denis Apparicio
|
||||
*
|
||||
*/
|
||||
public abstract class AbstractSearchAlbumTracks {
|
||||
private static Logger log = Logger.getLogger(AbstractSearchAlbumTracks.class);
|
||||
|
||||
/**
|
||||
* Restitue la liste des chansons d'un album.
|
||||
*
|
||||
* @param id
|
||||
* id de l'album.
|
||||
* @return la liste des chansons.
|
||||
* @throws Exception
|
||||
*/
|
||||
public List<Track> find(String id) throws Exception {
|
||||
log.debug(">>find");
|
||||
|
||||
// Constitution de l'URL
|
||||
StringBuilder sUrl = new StringBuilder();
|
||||
sUrl.append("http://api.deezer.com/2.0/album/");
|
||||
sUrl.append(id);
|
||||
sUrl.append("?output=xml");
|
||||
|
||||
URL url = new URL(sUrl.toString());
|
||||
|
||||
log.debug(url);
|
||||
|
||||
HttpURLConnection cnx = (HttpURLConnection) url.openConnection();
|
||||
cnx.setConnectTimeout(5000);
|
||||
cnx.setReadTimeout(5000);
|
||||
cnx.setRequestMethod("GET");
|
||||
cnx.setDoInput(true);
|
||||
cnx.addRequestProperty("Accept-Language", "en;q=0.6,en-us;q=0.4,sv;q=0.2");
|
||||
|
||||
try {
|
||||
if (cnx.getResponseCode() == HttpURLConnection.HTTP_OK) {
|
||||
return readTrack(cnx.getInputStream());
|
||||
}
|
||||
}
|
||||
finally {
|
||||
cnx.disconnect();
|
||||
}
|
||||
|
||||
log.debug("<<find");
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Restitue la liste des chansons d'un album à partir d'un flux.
|
||||
*
|
||||
* @param in
|
||||
* le flux.
|
||||
* @return la liste des chansons.
|
||||
* @throws Exception
|
||||
*/
|
||||
public abstract List<Track> readTrack(InputStream in) throws Exception;
|
||||
|
||||
}
|
@ -0,0 +1,81 @@
|
||||
package fr.ensim.xml.deezer;
|
||||
|
||||
import static org.junit.Assert.fail;
|
||||
|
||||
import java.awt.Desktop;
|
||||
import java.awt.Desktop.Action;
|
||||
import java.io.File;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.log4j.Logger;
|
||||
import org.apache.log4j.xml.DOMConfigurator;
|
||||
|
||||
import fr.ensim.xml.deezer.data.Album;
|
||||
import fr.ensim.xml.deezer.data.Track;
|
||||
import fr.ensim.xml.deezer.dom.SearchAlbumTracks;
|
||||
import fr.ensim.xml.deezer.sax.SAXSearchAlbums;
|
||||
import fr.ensim.xml.deezer.stax.HtmlAlbum;
|
||||
|
||||
|
||||
/**
|
||||
* @author Denis Apparicio
|
||||
*
|
||||
*/
|
||||
public class Main {
|
||||
|
||||
/**
|
||||
* @param args
|
||||
*/
|
||||
public static void main(String[] args) {
|
||||
// configuration du proxy et des logs
|
||||
DOMConfigurator.configure("log4J.xml");
|
||||
ProxyConfiguration.configure();
|
||||
|
||||
Logger log = Logger.getLogger(Main.class);
|
||||
|
||||
FileOutputStream out = null;
|
||||
|
||||
try {
|
||||
List<Album> listAlbum = new SAXSearchAlbums().find("Shaka%20Ponk");
|
||||
|
||||
// recuperation des titres de l album
|
||||
for(int i = 0; i < listAlbum.size(); i++)
|
||||
{
|
||||
listAlbum.get(i).setTracks(SearchAlbumTracks.find(listAlbum.get(i).getId()));
|
||||
}
|
||||
|
||||
// Ecriture de la page html
|
||||
File fileHtml = new File(listAlbum.get(0).getArtist().getName() + ".html");
|
||||
out = new FileOutputStream(fileHtml);
|
||||
HtmlAlbum.write(listAlbum, out);
|
||||
out.close();
|
||||
|
||||
// Ouverture de la page
|
||||
if (fileHtml.isFile()) {
|
||||
if (Desktop.isDesktopSupported()
|
||||
&& Desktop.getDesktop().isSupported(Action.BROWSE)) {
|
||||
Desktop.getDesktop().browse(fileHtml.toURI());
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception e) {
|
||||
log.error("", e);
|
||||
fail(e.getMessage());
|
||||
}
|
||||
finally {
|
||||
try {
|
||||
if (out != null) {
|
||||
out.close();
|
||||
}
|
||||
}
|
||||
catch (IOException e) {
|
||||
log.error("", e);
|
||||
}
|
||||
}
|
||||
|
||||
log.debug("<<main");
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,21 @@
|
||||
package fr.ensim.xml.deezer;
|
||||
|
||||
/**
|
||||
* Configuration du proxy pac de l'ensim.
|
||||
*
|
||||
* @author Denis Apparicio
|
||||
*
|
||||
*/
|
||||
public class ProxyConfiguration {
|
||||
|
||||
private ProxyConfiguration() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Configuration du proxy.
|
||||
*/
|
||||
public static void configure() {
|
||||
System.setProperty("http.proxyHost", "vproxy.univ-lemans.fr");
|
||||
System.setProperty("http.proxyPort", "3128");
|
||||
}
|
||||
}
|
@ -0,0 +1,68 @@
|
||||
package fr.ensim.xml.deezer.data;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author Denis Apparicio
|
||||
*/
|
||||
public class Album {
|
||||
|
||||
private Artist artist;
|
||||
|
||||
private String id;
|
||||
|
||||
private String title;
|
||||
|
||||
private String cover;
|
||||
|
||||
private List<Track> tracks = new ArrayList<Track>();
|
||||
|
||||
public Album() {
|
||||
}
|
||||
|
||||
public void addTrack(Track title) {
|
||||
tracks.add(title);
|
||||
}
|
||||
|
||||
public List<Track> getTracks() {
|
||||
return tracks;
|
||||
}
|
||||
|
||||
public void setTracks(List<Track> tracks) {
|
||||
this.tracks = tracks;
|
||||
}
|
||||
|
||||
public Artist getArtist() {
|
||||
return artist;
|
||||
}
|
||||
|
||||
public void setArtist(Artist artist) {
|
||||
this.artist = artist;
|
||||
}
|
||||
|
||||
public String getCover() {
|
||||
return cover;
|
||||
}
|
||||
|
||||
public void setCover(String cover) {
|
||||
this.cover = cover;
|
||||
}
|
||||
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(String id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getTitle() {
|
||||
return title;
|
||||
}
|
||||
|
||||
public void setTitle(String title) {
|
||||
this.title = title;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,48 @@
|
||||
package fr.ensim.xml.deezer.data;
|
||||
|
||||
/**
|
||||
* @author Denis Apparicio
|
||||
*/
|
||||
public class Artist {
|
||||
|
||||
private String id;
|
||||
|
||||
private String name;
|
||||
|
||||
private String link;
|
||||
|
||||
private String picture;
|
||||
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(String id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getLink() {
|
||||
return link;
|
||||
}
|
||||
|
||||
public void setLink(String link) {
|
||||
this.link = link;
|
||||
}
|
||||
|
||||
public String getPicture() {
|
||||
return picture;
|
||||
}
|
||||
|
||||
public void setPicture(String picture) {
|
||||
this.picture = picture;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,40 @@
|
||||
package fr.ensim.xml.deezer.data;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Denis Apparicio
|
||||
*
|
||||
*/
|
||||
public class Track {
|
||||
|
||||
private String title;
|
||||
|
||||
private String preview;
|
||||
|
||||
public Track() {
|
||||
super();
|
||||
}
|
||||
|
||||
public Track(String title, String preview) {
|
||||
super();
|
||||
this.title = title;
|
||||
this.preview = preview;
|
||||
}
|
||||
|
||||
public String getTitle() {
|
||||
return title;
|
||||
}
|
||||
|
||||
public void setTitle(String title) {
|
||||
this.title = title;
|
||||
}
|
||||
|
||||
public String getPreview() {
|
||||
return preview;
|
||||
}
|
||||
|
||||
public void setPreview(String preview) {
|
||||
this.preview = preview;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,43 @@
|
||||
package fr.ensim.xml.deezer.dom;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import javax.xml.parsers.ParserConfigurationException;
|
||||
|
||||
import org.apache.log4j.Logger;
|
||||
import org.xml.sax.SAXException;
|
||||
|
||||
import fr.ensim.xml.deezer.AbstractSearchAlbum;
|
||||
import fr.ensim.xml.deezer.data.Album;
|
||||
|
||||
/**
|
||||
* @author Denis Apparicio
|
||||
*
|
||||
*/
|
||||
public class DOMSearchAlbums extends AbstractSearchAlbum {
|
||||
private static final Logger LOG = Logger.getLogger(DOMSearchAlbumsTest.class);
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see
|
||||
* fr.ensim.xml.deezer.AbstractSearchAlbum#readAlbums(java.io.InputStream)
|
||||
*/
|
||||
@Override
|
||||
public List<Album> readAlbums(InputStream in) throws ParserConfigurationException,
|
||||
SAXException,
|
||||
IOException {
|
||||
LOG.debug(">>readAlbums");
|
||||
|
||||
List<Album> listAlbums = new ArrayList<Album>();
|
||||
|
||||
//TODO Recherche les albums en DOM
|
||||
|
||||
|
||||
LOG.debug("<<readAlbums");
|
||||
return listAlbums;
|
||||
}
|
||||
}
|
@ -0,0 +1,150 @@
|
||||
package fr.ensim.xml.deezer.dom;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.net.URL;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
import javax.xml.parsers.DocumentBuilder;
|
||||
import javax.xml.parsers.DocumentBuilderFactory;
|
||||
import javax.xml.parsers.ParserConfigurationException;
|
||||
|
||||
import org.apache.log4j.Logger;
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.Element;
|
||||
import org.w3c.dom.Node;
|
||||
import org.w3c.dom.NodeList;
|
||||
import org.xml.sax.SAXException;
|
||||
|
||||
import fr.ensim.xml.deezer.data.Track;
|
||||
|
||||
/**
|
||||
* @author Denis Apparicio
|
||||
*
|
||||
*/
|
||||
public class SearchAlbumTracks {
|
||||
private static Logger log = Logger.getLogger(SearchAlbumTracks.class);
|
||||
|
||||
/**
|
||||
* Restitue la liste des chansons d'un album.
|
||||
*
|
||||
* @param id
|
||||
* id de l'album.
|
||||
* @return la liste des chansons.
|
||||
* @throws IOException
|
||||
* @throws ParserConfigurationException
|
||||
* @throws SAXException
|
||||
*/
|
||||
|
||||
private static Track buildingTrack;
|
||||
|
||||
public static List<Track> find(String id) throws IOException,
|
||||
ParserConfigurationException,
|
||||
SAXException {
|
||||
log.debug(">>albums");
|
||||
|
||||
// Constitution de l'URL
|
||||
StringBuilder sUrl = new StringBuilder();
|
||||
sUrl.append("http://api.deezer.com/2.0/album/");
|
||||
sUrl.append(id);
|
||||
sUrl.append("?output=xml");
|
||||
|
||||
URL url = new URL(sUrl.toString());
|
||||
|
||||
log.debug(url);
|
||||
|
||||
HttpURLConnection cnx = (HttpURLConnection) url.openConnection();
|
||||
cnx.setConnectTimeout(5000);
|
||||
cnx.setReadTimeout(5000);
|
||||
cnx.setRequestMethod("GET");
|
||||
cnx.setDoInput(true);
|
||||
cnx.addRequestProperty("Accept-Language", "en;q=0.6,en-us;q=0.4,sv;q=0.2");
|
||||
|
||||
try {
|
||||
if (cnx.getResponseCode() == HttpURLConnection.HTTP_OK) {
|
||||
return find(cnx.getInputStream());
|
||||
}
|
||||
}
|
||||
finally {
|
||||
cnx.disconnect();
|
||||
}
|
||||
|
||||
log.debug("<<albums");
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Restitue la liste des chansons d'un album à partir d'un flux.
|
||||
*
|
||||
* @param in
|
||||
* le flux.
|
||||
* @return la liste des chansons.
|
||||
* @throws SAXException
|
||||
* @throws ParserConfigurationException
|
||||
* @throws IOException
|
||||
*/
|
||||
protected static List<Track> find(InputStream in) throws SAXException,
|
||||
ParserConfigurationException,
|
||||
IOException {
|
||||
log.debug(">>find");
|
||||
|
||||
ArrayList<Track> listTracks = new ArrayList<Track>();
|
||||
|
||||
//TODO Recherche les pistes d'albums en DOM
|
||||
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
|
||||
DocumentBuilder db = dbf.newDocumentBuilder();
|
||||
Document doc = db.parse(in);
|
||||
doc.normalize();
|
||||
|
||||
parseChildElements(doc.getDocumentElement(), listTracks);
|
||||
|
||||
log.debug(">>find");
|
||||
return listTracks;
|
||||
}
|
||||
|
||||
private static boolean isTrackBeingRead;
|
||||
|
||||
private static void parseChildElements(Element el, List<Track> listTracks)
|
||||
{
|
||||
if(el.getNodeName().equals("track"))
|
||||
{
|
||||
isTrackBeingRead = true;
|
||||
|
||||
if(isTrackBeingRead)
|
||||
{
|
||||
if(buildingTrack != null)
|
||||
{
|
||||
listTracks.add(buildingTrack);
|
||||
}
|
||||
|
||||
buildingTrack = new Track();
|
||||
}
|
||||
}
|
||||
|
||||
if(isTrackBeingRead)
|
||||
{
|
||||
switch(el.getNodeName())
|
||||
{
|
||||
case "title":
|
||||
buildingTrack.setTitle(el.getTextContent());
|
||||
break;
|
||||
case "preview":
|
||||
buildingTrack.setPreview(el.getTextContent());
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
NodeList nl = el.getChildNodes();
|
||||
for(int i = 0; i < nl.getLength(); i++)
|
||||
{
|
||||
Node n = nl.item(i);
|
||||
if(n instanceof Element)
|
||||
{
|
||||
parseChildElements((Element) n, listTracks);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,51 @@
|
||||
package fr.ensim.xml.deezer.sax;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.List;
|
||||
|
||||
import javax.xml.parsers.ParserConfigurationException;
|
||||
import javax.xml.parsers.SAXParser;
|
||||
import javax.xml.parsers.SAXParserFactory;
|
||||
|
||||
import org.apache.log4j.Logger;
|
||||
import org.xml.sax.SAXException;
|
||||
|
||||
import fr.ensim.xml.deezer.AbstractSearchAlbum;
|
||||
import fr.ensim.xml.deezer.data.Album;
|
||||
|
||||
/**
|
||||
* @author Denis Apparicio
|
||||
*
|
||||
*/
|
||||
public class SAXSearchAlbums extends AbstractSearchAlbum {
|
||||
private static final Logger LOG = Logger.getLogger(SAXSearchAlbums.class);
|
||||
|
||||
|
||||
@Override
|
||||
public List<Album> readAlbums(InputStream in) {
|
||||
LOG.debug(">>readAlbums");
|
||||
|
||||
//TODO Recherche les albums en SAX
|
||||
SAXSearchAlbumsHandler handler = new SAXSearchAlbumsHandler();
|
||||
SAXParserFactory factory = SAXParserFactory.newInstance();
|
||||
factory.setNamespaceAware(true);
|
||||
try {
|
||||
SAXParser parser = factory.newSAXParser();
|
||||
parser.parse(in, handler);
|
||||
} catch (ParserConfigurationException e) {
|
||||
// TODO Auto-generated catch block
|
||||
LOG.error("ParserConfigurationException", e);
|
||||
} catch (SAXException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
} catch (IOException e) {
|
||||
// TODO: handle exception
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
|
||||
LOG.debug("<<readAlbums");
|
||||
return handler.getListAlbum();
|
||||
}
|
||||
}
|
@ -0,0 +1,127 @@
|
||||
package fr.ensim.xml.deezer.sax;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.log4j.Logger;
|
||||
import org.xml.sax.Attributes;
|
||||
import org.xml.sax.SAXException;
|
||||
import org.xml.sax.helpers.DefaultHandler;
|
||||
|
||||
import fr.ensim.xml.deezer.data.Album;
|
||||
import fr.ensim.xml.deezer.data.Artist;
|
||||
|
||||
/**
|
||||
* @author Denis Apparicio
|
||||
*
|
||||
*/
|
||||
public class SAXSearchAlbumsHandler extends DefaultHandler {
|
||||
private static final Logger LOG = Logger.getLogger(SAXSearchAlbumsHandler.class);
|
||||
|
||||
private List<Album> listAlbum = new ArrayList<Album>();
|
||||
private String val;
|
||||
private Album buildingAlbum;
|
||||
private Artist buildingArtist;
|
||||
private boolean isArtist;
|
||||
|
||||
/**
|
||||
* Restitue la liste des albums.
|
||||
*
|
||||
* @return la liste des albums.
|
||||
*/
|
||||
public List<Album> getListAlbum() {
|
||||
return listAlbum;
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see org.xml.sax.helpers.DefaultHandler#startElement(java.lang.String,
|
||||
* java.lang.String, java.lang.String, org.xml.sax.Attributes)
|
||||
*/
|
||||
@Override
|
||||
public void startElement(String uri,
|
||||
String localName,
|
||||
String qName,
|
||||
Attributes attributes) throws SAXException {
|
||||
|
||||
if(localName.equals("album"))
|
||||
{
|
||||
buildingAlbum = new Album();
|
||||
}
|
||||
|
||||
if(localName.equals("artist"))
|
||||
{
|
||||
buildingArtist = new Artist();
|
||||
isArtist = true;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc) BufferedReader
|
||||
*
|
||||
* @see org.xml.sax.helpers.DefaultHandler#endElement(java.lang.String,
|
||||
* java.lang.String, java.lang.String)
|
||||
*/
|
||||
@Override
|
||||
public void endElement(String uri, String localName, String qName) throws SAXException {
|
||||
switch(localName)
|
||||
{
|
||||
case "album":
|
||||
listAlbum.add(buildingAlbum);
|
||||
break;
|
||||
case "id":
|
||||
updateId();
|
||||
break;
|
||||
case "title":
|
||||
if(buildingAlbum != null) buildingAlbum.setTitle(val);
|
||||
break;
|
||||
case "cover":
|
||||
if(buildingAlbum != null) buildingAlbum.setCover(val);
|
||||
break;
|
||||
case "name":
|
||||
buildingArtist.setName(val);
|
||||
break;
|
||||
case "link":
|
||||
updateLink();
|
||||
break;
|
||||
case "picture":
|
||||
buildingArtist.setPicture(val);
|
||||
break;
|
||||
case "artist":
|
||||
buildingAlbum.setArtist(buildingArtist);
|
||||
isArtist = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void updateLink()
|
||||
{
|
||||
if(isArtist)
|
||||
{
|
||||
buildingArtist.setLink(val);
|
||||
}
|
||||
}
|
||||
|
||||
private void updateId()
|
||||
{
|
||||
if(isArtist)
|
||||
{
|
||||
buildingArtist.setId(val);
|
||||
}
|
||||
else
|
||||
{
|
||||
buildingAlbum.setId(val);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see org.xml.sax.helpers.DefaultHandler#characters(char[], int, int)
|
||||
*/
|
||||
@Override
|
||||
public void characters(char[] ch, int start, int length) throws SAXException {
|
||||
val = new String(ch, start, length);
|
||||
}
|
||||
}
|
@ -0,0 +1,134 @@
|
||||
package fr.ensim.xml.deezer.stax;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
import java.io.PrintWriter;
|
||||
import java.util.List;
|
||||
import java.util.NavigableMap;
|
||||
|
||||
import javax.xml.stream.XMLStreamException;
|
||||
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import com.hp.gagawa.java.Document;
|
||||
import com.hp.gagawa.java.DocumentType;
|
||||
import com.hp.gagawa.java.elements.A;
|
||||
import com.hp.gagawa.java.elements.Body;
|
||||
import com.hp.gagawa.java.elements.Div;
|
||||
import com.hp.gagawa.java.elements.Head;
|
||||
import com.hp.gagawa.java.elements.Img;
|
||||
import com.hp.gagawa.java.elements.Link;
|
||||
import com.hp.gagawa.java.elements.Script;
|
||||
import com.hp.gagawa.java.elements.Style;
|
||||
|
||||
import fr.ensim.xml.deezer.data.Album;
|
||||
import fr.ensim.xml.deezer.data.Track;
|
||||
|
||||
/**
|
||||
* @author Denis Apparicio
|
||||
*
|
||||
*/
|
||||
public class HtmlAlbum {
|
||||
private static Logger log = Logger.getLogger(HtmlAlbum.class);
|
||||
|
||||
/**
|
||||
* Ecriture de la page HTML avec StAX.
|
||||
*
|
||||
* @param album
|
||||
* @param out
|
||||
* @throws XMLStreamException
|
||||
* @throws IOException
|
||||
*/
|
||||
public static void write(List<Album> albums, OutputStream outputStream) throws XMLStreamException,
|
||||
IOException {
|
||||
log.debug(">>write");
|
||||
|
||||
Document document = new Document(DocumentType.HTMLTransitional);
|
||||
|
||||
Head head = new Head();
|
||||
|
||||
Link cssLink = new Link();
|
||||
cssLink.setRel("stylesheet").setHref("https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css");
|
||||
Script matScript = new Script(null);
|
||||
matScript.setSrc("https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js");
|
||||
|
||||
head.appendChild(cssLink);
|
||||
head.appendChild(matScript);
|
||||
|
||||
Body body = new Body();
|
||||
Div navDiv = new Div();
|
||||
navDiv.appendText(
|
||||
"<nav style=\"background-color: #3A3A3A\">\r\n" +
|
||||
" <div class=\"nav-wrapper\">\r\n" +
|
||||
" <a href=\"#\" class=\"brand-logo\">" + albums.get(0).getArtist().getName() + "</a>\r\n" +
|
||||
" </div>\r\n" +
|
||||
" </nav>");
|
||||
|
||||
body.appendChild(navDiv);
|
||||
|
||||
Div container = new Div();
|
||||
container.setCSSClass("container");
|
||||
|
||||
int i = 0;
|
||||
|
||||
while(i < albums.size())
|
||||
{
|
||||
Div row = new Div();
|
||||
row.setCSSClass("row");
|
||||
|
||||
row.appendChild(createAlbumCard(albums.get(i).getTitle()
|
||||
, albums.get(i).getCover()
|
||||
, albums.get(i).getTracks()));
|
||||
|
||||
if(albums.size() > i+1)
|
||||
{
|
||||
i++;
|
||||
|
||||
row.appendChild(createAlbumCard(albums.get(i).getTitle()
|
||||
, albums.get(i).getCover()
|
||||
, albums.get(i).getTracks()));
|
||||
}
|
||||
|
||||
i++;
|
||||
|
||||
container.appendChild(row);
|
||||
}
|
||||
|
||||
body.appendChild(container);
|
||||
|
||||
document.head.appendChild(head);
|
||||
document.body.appendChild(body);
|
||||
|
||||
PrintWriter p = new PrintWriter(outputStream);
|
||||
p.write(document.write());
|
||||
p.close();
|
||||
|
||||
log.debug("<<write");
|
||||
}
|
||||
|
||||
private static Div createAlbumCard(String title, String cover, List<Track> tracks)
|
||||
{
|
||||
Div div = new Div().setCSSClass("col s12 m6").appendText(
|
||||
" <div class=\"card blue-grey darken-1\">\r\n" +
|
||||
" <div class=\"card-content white-text\">\r\n" +
|
||||
" <ul class=\"collection with-header blue-grey darken-1\">\r\n" +
|
||||
" <li class=\"collection-header blue-grey darken-1\">" +
|
||||
" <div>" +
|
||||
" <img class=\"responsive-img circle\" style=\"max-height: 50px; max-width: 50px\" src=\"" + cover + "\">" +
|
||||
" <span class=\"card-title\" style=\"display: inline-block;\">" + title + "</span>\r\n" +
|
||||
" </div>" +
|
||||
" </li>\r\n");
|
||||
|
||||
for(int i = 0; i < tracks.size(); i++)
|
||||
{
|
||||
div.appendText("<li class=\"collection-item blue-grey darken-1\"><span>" + tracks.get(i).getTitle() + "</span>"
|
||||
+ "<audio controls style=\"display: block\">"
|
||||
+ " <source src=\"" + tracks.get(i).getPreview() + "\" type=\"audio/mpeg\">"
|
||||
+ "</li>\r\n");
|
||||
}
|
||||
|
||||
div.appendText("</div></div>");
|
||||
|
||||
return div;
|
||||
}
|
||||
}
|
@ -0,0 +1,55 @@
|
||||
package fr.ensim.xml.deezer.stax;
|
||||
|
||||
import java.io.InputStream;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import javax.xml.stream.XMLStreamException;
|
||||
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import fr.ensim.xml.deezer.AbstractSearchAlbum;
|
||||
import fr.ensim.xml.deezer.data.Album;
|
||||
|
||||
/**
|
||||
* @author Denis Apparicio
|
||||
*
|
||||
*/
|
||||
public class StAXSearchAlbums extends AbstractSearchAlbum {
|
||||
private static final Logger LOG = Logger.getLogger(StAXSearchAlbums.class);
|
||||
|
||||
/**
|
||||
* Compte le nombre d'albums.
|
||||
*
|
||||
* @param in
|
||||
* le flux xml.
|
||||
* @return le nombre d'albums.
|
||||
* @throws XMLStreamException
|
||||
*/
|
||||
public int count(InputStream in) throws XMLStreamException {
|
||||
LOG.debug(">>count");
|
||||
|
||||
int nbAlbums = 0;
|
||||
// recuperation d'un parser StAX
|
||||
// @ TODO
|
||||
|
||||
LOG.debug("<<count " + nbAlbums);
|
||||
return nbAlbums;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Album> readAlbums(InputStream in) throws XMLStreamException {
|
||||
LOG.debug(">>readAlbums");
|
||||
|
||||
List<Album> listAlbums = new ArrayList<Album>();
|
||||
|
||||
// recuperation d'un parser StAX
|
||||
// @ TODO
|
||||
|
||||
// parsing
|
||||
// @ TODO
|
||||
|
||||
LOG.debug("<<readAlbums");
|
||||
return listAlbums;
|
||||
}
|
||||
}
|
BIN
ENSIM/Java/tp-deezer3-squelette/test/.DS_Store
vendored
Normal file
BIN
ENSIM/Java/tp-deezer3-squelette/test/.DS_Store
vendored
Normal file
Binary file not shown.
BIN
ENSIM/Java/tp-deezer3-squelette/test/fr/.DS_Store
vendored
Normal file
BIN
ENSIM/Java/tp-deezer3-squelette/test/fr/.DS_Store
vendored
Normal file
Binary file not shown.
BIN
ENSIM/Java/tp-deezer3-squelette/test/fr/ensim/.DS_Store
vendored
Normal file
BIN
ENSIM/Java/tp-deezer3-squelette/test/fr/ensim/.DS_Store
vendored
Normal file
Binary file not shown.
BIN
ENSIM/Java/tp-deezer3-squelette/test/fr/ensim/xml/.DS_Store
vendored
Normal file
BIN
ENSIM/Java/tp-deezer3-squelette/test/fr/ensim/xml/.DS_Store
vendored
Normal file
Binary file not shown.
BIN
ENSIM/Java/tp-deezer3-squelette/test/fr/ensim/xml/deezer/.DS_Store
vendored
Normal file
BIN
ENSIM/Java/tp-deezer3-squelette/test/fr/ensim/xml/deezer/.DS_Store
vendored
Normal file
Binary file not shown.
@ -0,0 +1,15 @@
|
||||
package fr.ensim.xml.deezer;
|
||||
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.runners.Suite;
|
||||
import org.junit.runners.Suite.SuiteClasses;
|
||||
|
||||
import fr.ensim.xml.deezer.dom.DOMSearchAlbumsTest;
|
||||
import fr.ensim.xml.deezer.sax.SAXSearchAlbumsTest;
|
||||
import fr.ensim.xml.deezer.stax.StAXSearchAlbumsTest;
|
||||
|
||||
@RunWith(Suite.class)
|
||||
@SuiteClasses({ DOMSearchAlbumsTest.class, SAXSearchAlbumsTest.class, StAXSearchAlbumsTest.class})
|
||||
public class AllTests {
|
||||
|
||||
}
|
@ -0,0 +1,447 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<root>
|
||||
<id><![CDATA[68670211]]></id>
|
||||
<title><![CDATA[Stup Virus]]></title>
|
||||
<upc><![CDATA[3614974290199]]></upc>
|
||||
<link><![CDATA[http://www.deezer.com/album/68670211]]></link>
|
||||
<share><![CDATA[https://www.deezer.com/album/68670211?utm_source=deezer&utm_content=album-68670211&utm_term=0_1538331853&utm_medium=web]]></share>
|
||||
<cover><![CDATA[http://api.deezer.com/2.0/album/68670211/image]]></cover>
|
||||
<cover_small><![CDATA[http://e-cdn-images.deezer.com/images/cover/f4bef1329a56c71595e1cedcf3832ea0/56x56-000000-80-0-0.jpg]]></cover_small>
|
||||
<cover_medium><![CDATA[http://e-cdn-images.deezer.com/images/cover/f4bef1329a56c71595e1cedcf3832ea0/250x250-000000-80-0-0.jpg]]></cover_medium>
|
||||
<cover_big><![CDATA[http://e-cdn-images.deezer.com/images/cover/f4bef1329a56c71595e1cedcf3832ea0/500x500-000000-80-0-0.jpg]]></cover_big>
|
||||
<cover_xl><![CDATA[http://e-cdn-images.deezer.com/images/cover/f4bef1329a56c71595e1cedcf3832ea0/1000x1000-000000-80-0-0.jpg]]></cover_xl>
|
||||
<genre_id><![CDATA[116]]></genre_id>
|
||||
<genres>
|
||||
<data>
|
||||
<genre>
|
||||
<id><![CDATA[116]]></id>
|
||||
<name><![CDATA[Rap/Hip Hop]]></name>
|
||||
<picture><![CDATA[http://api.deezer.com/2.0/genre/116/image]]></picture>
|
||||
<type><![CDATA[genre]]></type>
|
||||
</genre>
|
||||
</data>
|
||||
</genres>
|
||||
<label><![CDATA[Etic System]]></label>
|
||||
<nb_tracks><![CDATA[19]]></nb_tracks>
|
||||
<duration><![CDATA[3656]]></duration>
|
||||
<fans><![CDATA[2247]]></fans>
|
||||
<rating><![CDATA[0]]></rating>
|
||||
<release_date><![CDATA[2017-07-24]]></release_date>
|
||||
<record_type><![CDATA[album]]></record_type>
|
||||
<available><![CDATA[1]]></available>
|
||||
<tracklist><![CDATA[http://api.deezer.com/2.0/album/68670211/tracks]]></tracklist>
|
||||
<explicit_lyrics><![CDATA[0]]></explicit_lyrics>
|
||||
<contributors>
|
||||
<artist>
|
||||
<id><![CDATA[939]]></id>
|
||||
<name><![CDATA[STUPEFLIP]]></name>
|
||||
<link><![CDATA[http://www.deezer.com/artist/939]]></link>
|
||||
<share><![CDATA[https://www.deezer.com/artist/939?utm_source=deezer&utm_content=artist-939&utm_term=0_1538331853&utm_medium=web]]></share>
|
||||
<picture><![CDATA[http://api.deezer.com/2.0/artist/939/image]]></picture>
|
||||
<picture_small><![CDATA[http://e-cdn-images.deezer.com/images/artist/8a0db002f854ed9b12c105621bc400df/56x56-000000-80-0-0.jpg]]></picture_small>
|
||||
<picture_medium><![CDATA[http://e-cdn-images.deezer.com/images/artist/8a0db002f854ed9b12c105621bc400df/250x250-000000-80-0-0.jpg]]></picture_medium>
|
||||
<picture_big><![CDATA[http://e-cdn-images.deezer.com/images/artist/8a0db002f854ed9b12c105621bc400df/500x500-000000-80-0-0.jpg]]></picture_big>
|
||||
<picture_xl><![CDATA[http://e-cdn-images.deezer.com/images/artist/8a0db002f854ed9b12c105621bc400df/1000x1000-000000-80-0-0.jpg]]></picture_xl>
|
||||
<radio><![CDATA[1]]></radio>
|
||||
<tracklist><![CDATA[http://api.deezer.com/2.0/artist/939/top?limit=50]]></tracklist>
|
||||
<type><![CDATA[artist]]></type>
|
||||
<role><![CDATA[Main]]></role>
|
||||
</artist>
|
||||
</contributors>
|
||||
<artist>
|
||||
<id><![CDATA[939]]></id>
|
||||
<name><![CDATA[STUPEFLIP]]></name>
|
||||
<picture><![CDATA[http://api.deezer.com/2.0/artist/939/image]]></picture>
|
||||
<picture_small><![CDATA[http://e-cdn-images.deezer.com/images/artist/8a0db002f854ed9b12c105621bc400df/56x56-000000-80-0-0.jpg]]></picture_small>
|
||||
<picture_medium><![CDATA[http://e-cdn-images.deezer.com/images/artist/8a0db002f854ed9b12c105621bc400df/250x250-000000-80-0-0.jpg]]></picture_medium>
|
||||
<picture_big><![CDATA[http://e-cdn-images.deezer.com/images/artist/8a0db002f854ed9b12c105621bc400df/500x500-000000-80-0-0.jpg]]></picture_big>
|
||||
<picture_xl><![CDATA[http://e-cdn-images.deezer.com/images/artist/8a0db002f854ed9b12c105621bc400df/1000x1000-000000-80-0-0.jpg]]></picture_xl>
|
||||
<tracklist><![CDATA[http://api.deezer.com/2.0/artist/939/top?limit=50]]></tracklist>
|
||||
<type><![CDATA[artist]]></type>
|
||||
</artist>
|
||||
<type><![CDATA[album]]></type>
|
||||
<tracks>
|
||||
<data>
|
||||
<track>
|
||||
<id><![CDATA[530221061]]></id>
|
||||
<readable><![CDATA[1]]></readable>
|
||||
<title><![CDATA[Intro]]></title>
|
||||
<title_short><![CDATA[Intro]]></title_short>
|
||||
<title_version><![CDATA[]]>
|
||||
</title_version>
|
||||
<link><![CDATA[http://www.deezer.com/track/530221061]]></link>
|
||||
<duration><![CDATA[41]]></duration>
|
||||
<rank><![CDATA[656838]]></rank>
|
||||
<explicit_lyrics><![CDATA[0]]></explicit_lyrics>
|
||||
<preview><![CDATA[http://cdn-preview-f.deezer.com/stream/c-f4d3cef094894988635ab62f1e8d6c4e-3.mp3]]></preview>
|
||||
<artist>
|
||||
<id><![CDATA[939]]></id>
|
||||
<name><![CDATA[STUPEFLIP]]></name>
|
||||
<tracklist><![CDATA[http://api.deezer.com/2.0/artist/939/top?limit=50]]></tracklist>
|
||||
<type><![CDATA[artist]]></type>
|
||||
</artist>
|
||||
<type><![CDATA[track]]></type>
|
||||
</track>
|
||||
<track>
|
||||
<id><![CDATA[530221071]]></id>
|
||||
<readable><![CDATA[1]]></readable>
|
||||
<title><![CDATA[The Antidote]]></title>
|
||||
<title_short><![CDATA[The Antidote]]></title_short>
|
||||
<title_version><![CDATA[]]>
|
||||
</title_version>
|
||||
<link><![CDATA[http://www.deezer.com/track/530221071]]></link>
|
||||
<duration><![CDATA[198]]></duration>
|
||||
<rank><![CDATA[656838]]></rank>
|
||||
<explicit_lyrics><![CDATA[0]]></explicit_lyrics>
|
||||
<preview><![CDATA[http://cdn-preview-a.deezer.com/stream/c-ac96a1f36c1ffe00fa17919160081e77-3.mp3]]></preview>
|
||||
<artist>
|
||||
<id><![CDATA[939]]></id>
|
||||
<name><![CDATA[STUPEFLIP]]></name>
|
||||
<tracklist><![CDATA[http://api.deezer.com/2.0/artist/939/top?limit=50]]></tracklist>
|
||||
<type><![CDATA[artist]]></type>
|
||||
</artist>
|
||||
<type><![CDATA[track]]></type>
|
||||
</track>
|
||||
<track>
|
||||
<id><![CDATA[530221081]]></id>
|
||||
<readable><![CDATA[1]]></readable>
|
||||
<title><![CDATA[Creepy Slugs]]></title>
|
||||
<title_short><![CDATA[Creepy Slugs]]></title_short>
|
||||
<title_version><![CDATA[]]>
|
||||
</title_version>
|
||||
<link><![CDATA[http://www.deezer.com/track/530221081]]></link>
|
||||
<duration><![CDATA[232]]></duration>
|
||||
<rank><![CDATA[656838]]></rank>
|
||||
<explicit_lyrics><![CDATA[0]]></explicit_lyrics>
|
||||
<preview><![CDATA[http://cdn-preview-3.deezer.com/stream/c-3b04b6dd226400f809c8fb4f447f2e85-3.mp3]]></preview>
|
||||
<artist>
|
||||
<id><![CDATA[939]]></id>
|
||||
<name><![CDATA[STUPEFLIP]]></name>
|
||||
<tracklist><![CDATA[http://api.deezer.com/2.0/artist/939/top?limit=50]]></tracklist>
|
||||
<type><![CDATA[artist]]></type>
|
||||
</artist>
|
||||
<type><![CDATA[track]]></type>
|
||||
</track>
|
||||
<track>
|
||||
<id><![CDATA[530221091]]></id>
|
||||
<readable><![CDATA[1]]></readable>
|
||||
<title><![CDATA[Cosmocrou]]></title>
|
||||
<title_short><![CDATA[Cosmocrou]]></title_short>
|
||||
<title_version><![CDATA[]]>
|
||||
</title_version>
|
||||
<link><![CDATA[http://www.deezer.com/track/530221091]]></link>
|
||||
<duration><![CDATA[45]]></duration>
|
||||
<rank><![CDATA[656838]]></rank>
|
||||
<explicit_lyrics><![CDATA[0]]></explicit_lyrics>
|
||||
<preview><![CDATA[http://cdn-preview-1.deezer.com/stream/c-16bddd18bdafc420f1a4e46c4bf1ca85-3.mp3]]></preview>
|
||||
<artist>
|
||||
<id><![CDATA[939]]></id>
|
||||
<name><![CDATA[STUPEFLIP]]></name>
|
||||
<tracklist><![CDATA[http://api.deezer.com/2.0/artist/939/top?limit=50]]></tracklist>
|
||||
<type><![CDATA[artist]]></type>
|
||||
</artist>
|
||||
<type><![CDATA[track]]></type>
|
||||
</track>
|
||||
<track>
|
||||
<id><![CDATA[530221101]]></id>
|
||||
<readable><![CDATA[1]]></readable>
|
||||
<title><![CDATA[La seule alternative]]></title>
|
||||
<title_short><![CDATA[La seule alternative]]></title_short>
|
||||
<title_version><![CDATA[]]>
|
||||
</title_version>
|
||||
<link><![CDATA[http://www.deezer.com/track/530221101]]></link>
|
||||
<duration><![CDATA[188]]></duration>
|
||||
<rank><![CDATA[656838]]></rank>
|
||||
<explicit_lyrics><![CDATA[0]]></explicit_lyrics>
|
||||
<preview><![CDATA[http://cdn-preview-f.deezer.com/stream/c-f2464e36b6de296f10a2b7b1fd0fc9e3-3.mp3]]></preview>
|
||||
<artist>
|
||||
<id><![CDATA[939]]></id>
|
||||
<name><![CDATA[STUPEFLIP]]></name>
|
||||
<tracklist><![CDATA[http://api.deezer.com/2.0/artist/939/top?limit=50]]></tracklist>
|
||||
<type><![CDATA[artist]]></type>
|
||||
</artist>
|
||||
<type><![CDATA[track]]></type>
|
||||
</track>
|
||||
<track>
|
||||
<id><![CDATA[530221111]]></id>
|
||||
<readable><![CDATA[1]]></readable>
|
||||
<title><![CDATA[The Solution]]></title>
|
||||
<title_short><![CDATA[The Solution]]></title_short>
|
||||
<title_version><![CDATA[]]>
|
||||
</title_version>
|
||||
<link><![CDATA[http://www.deezer.com/track/530221111]]></link>
|
||||
<duration><![CDATA[242]]></duration>
|
||||
<rank><![CDATA[656838]]></rank>
|
||||
<explicit_lyrics><![CDATA[0]]></explicit_lyrics>
|
||||
<preview><![CDATA[http://cdn-preview-b.deezer.com/stream/c-b6db7c7d3385d50bc23c1bbcee2afb2b-3.mp3]]></preview>
|
||||
<artist>
|
||||
<id><![CDATA[939]]></id>
|
||||
<name><![CDATA[STUPEFLIP]]></name>
|
||||
<tracklist><![CDATA[http://api.deezer.com/2.0/artist/939/top?limit=50]]></tracklist>
|
||||
<type><![CDATA[artist]]></type>
|
||||
</artist>
|
||||
<type><![CDATA[track]]></type>
|
||||
</track>
|
||||
<track>
|
||||
<id><![CDATA[530221121]]></id>
|
||||
<readable><![CDATA[1]]></readable>
|
||||
<title><![CDATA[Knights of Chaos]]></title>
|
||||
<title_short><![CDATA[Knights of Chaos]]></title_short>
|
||||
<title_version><![CDATA[]]>
|
||||
</title_version>
|
||||
<link><![CDATA[http://www.deezer.com/track/530221121]]></link>
|
||||
<duration><![CDATA[74]]></duration>
|
||||
<rank><![CDATA[656838]]></rank>
|
||||
<explicit_lyrics><![CDATA[0]]></explicit_lyrics>
|
||||
<preview><![CDATA[http://cdn-preview-2.deezer.com/stream/c-2f72e5564cf0360eefb6f3ed282cf970-3.mp3]]></preview>
|
||||
<artist>
|
||||
<id><![CDATA[939]]></id>
|
||||
<name><![CDATA[STUPEFLIP]]></name>
|
||||
<tracklist><![CDATA[http://api.deezer.com/2.0/artist/939/top?limit=50]]></tracklist>
|
||||
<type><![CDATA[artist]]></type>
|
||||
</artist>
|
||||
<type><![CDATA[track]]></type>
|
||||
</track>
|
||||
<track>
|
||||
<id><![CDATA[530221131]]></id>
|
||||
<readable><![CDATA[1]]></readable>
|
||||
<title><![CDATA[Stup Virus]]></title>
|
||||
<title_short><![CDATA[Stup Virus]]></title_short>
|
||||
<title_version><![CDATA[]]>
|
||||
</title_version>
|
||||
<link><![CDATA[http://www.deezer.com/track/530221131]]></link>
|
||||
<duration><![CDATA[193]]></duration>
|
||||
<rank><![CDATA[656838]]></rank>
|
||||
<explicit_lyrics><![CDATA[0]]></explicit_lyrics>
|
||||
<preview><![CDATA[http://cdn-preview-c.deezer.com/stream/c-c94b4ee088362d6a3f42fbeb5c0dfcef-3.mp3]]></preview>
|
||||
<artist>
|
||||
<id><![CDATA[939]]></id>
|
||||
<name><![CDATA[STUPEFLIP]]></name>
|
||||
<tracklist><![CDATA[http://api.deezer.com/2.0/artist/939/top?limit=50]]></tracklist>
|
||||
<type><![CDATA[artist]]></type>
|
||||
</artist>
|
||||
<type><![CDATA[track]]></type>
|
||||
</track>
|
||||
<track>
|
||||
<id><![CDATA[530221141]]></id>
|
||||
<readable><![CDATA[1]]></readable>
|
||||
<title><![CDATA[Des nouvelles de pop-hip]]></title>
|
||||
<title_short><![CDATA[Des nouvelles de pop-hip]]></title_short>
|
||||
<title_version><![CDATA[]]>
|
||||
</title_version>
|
||||
<link><![CDATA[http://www.deezer.com/track/530221141]]></link>
|
||||
<duration><![CDATA[35]]></duration>
|
||||
<rank><![CDATA[656838]]></rank>
|
||||
<explicit_lyrics><![CDATA[0]]></explicit_lyrics>
|
||||
<preview><![CDATA[http://cdn-preview-8.deezer.com/stream/c-83d9f88302688909b08bc002c3b6feb1-3.mp3]]></preview>
|
||||
<artist>
|
||||
<id><![CDATA[939]]></id>
|
||||
<name><![CDATA[STUPEFLIP]]></name>
|
||||
<tracklist><![CDATA[http://api.deezer.com/2.0/artist/939/top?limit=50]]></tracklist>
|
||||
<type><![CDATA[artist]]></type>
|
||||
</artist>
|
||||
<type><![CDATA[track]]></type>
|
||||
</track>
|
||||
<track>
|
||||
<id><![CDATA[530221151]]></id>
|
||||
<readable><![CDATA[1]]></readable>
|
||||
<title><![CDATA[Lonely Loverz]]></title>
|
||||
<title_short><![CDATA[Lonely Loverz]]></title_short>
|
||||
<title_version><![CDATA[]]>
|
||||
</title_version>
|
||||
<link><![CDATA[http://www.deezer.com/track/530221151]]></link>
|
||||
<duration><![CDATA[213]]></duration>
|
||||
<rank><![CDATA[656838]]></rank>
|
||||
<explicit_lyrics><![CDATA[0]]></explicit_lyrics>
|
||||
<preview><![CDATA[http://cdn-preview-0.deezer.com/stream/c-0dc3913208728a9af3042d59656b71fa-3.mp3]]></preview>
|
||||
<artist>
|
||||
<id><![CDATA[939]]></id>
|
||||
<name><![CDATA[STUPEFLIP]]></name>
|
||||
<tracklist><![CDATA[http://api.deezer.com/2.0/artist/939/top?limit=50]]></tracklist>
|
||||
<type><![CDATA[artist]]></type>
|
||||
</artist>
|
||||
<type><![CDATA[track]]></type>
|
||||
</track>
|
||||
<track>
|
||||
<id><![CDATA[530221161]]></id>
|
||||
<readable><![CDATA[1]]></readable>
|
||||
<title><![CDATA[Understup]]></title>
|
||||
<title_short><![CDATA[Understup]]></title_short>
|
||||
<title_version><![CDATA[]]>
|
||||
</title_version>
|
||||
<link><![CDATA[http://www.deezer.com/track/530221161]]></link>
|
||||
<duration><![CDATA[217]]></duration>
|
||||
<rank><![CDATA[656838]]></rank>
|
||||
<explicit_lyrics><![CDATA[0]]></explicit_lyrics>
|
||||
<preview><![CDATA[http://cdn-preview-c.deezer.com/stream/c-cf534fc01814b858f5d188dfcad2949d-3.mp3]]></preview>
|
||||
<artist>
|
||||
<id><![CDATA[939]]></id>
|
||||
<name><![CDATA[STUPEFLIP]]></name>
|
||||
<tracklist><![CDATA[http://api.deezer.com/2.0/artist/939/top?limit=50]]></tracklist>
|
||||
<type><![CDATA[artist]]></type>
|
||||
</artist>
|
||||
<type><![CDATA[track]]></type>
|
||||
</track>
|
||||
<track>
|
||||
<id><![CDATA[530221171]]></id>
|
||||
<readable><![CDATA[1]]></readable>
|
||||
<title><![CDATA[Stalactites]]></title>
|
||||
<title_short><![CDATA[Stalactites]]></title_short>
|
||||
<title_version><![CDATA[]]>
|
||||
</title_version>
|
||||
<link><![CDATA[http://www.deezer.com/track/530221171]]></link>
|
||||
<duration><![CDATA[173]]></duration>
|
||||
<rank><![CDATA[656838]]></rank>
|
||||
<explicit_lyrics><![CDATA[0]]></explicit_lyrics>
|
||||
<preview><![CDATA[http://cdn-preview-0.deezer.com/stream/c-05ad5178982b8682cbef167ec77c7328-3.mp3]]></preview>
|
||||
<artist>
|
||||
<id><![CDATA[939]]></id>
|
||||
<name><![CDATA[STUPEFLIP]]></name>
|
||||
<tracklist><![CDATA[http://api.deezer.com/2.0/artist/939/top?limit=50]]></tracklist>
|
||||
<type><![CDATA[artist]]></type>
|
||||
</artist>
|
||||
<type><![CDATA[track]]></type>
|
||||
</track>
|
||||
<track>
|
||||
<id><![CDATA[530221181]]></id>
|
||||
<readable><![CDATA[1]]></readable>
|
||||
<title><![CDATA[Fou-Fou]]></title>
|
||||
<title_short><![CDATA[Fou-Fou]]></title_short>
|
||||
<title_version><![CDATA[]]>
|
||||
</title_version>
|
||||
<link><![CDATA[http://www.deezer.com/track/530221181]]></link>
|
||||
<duration><![CDATA[45]]></duration>
|
||||
<rank><![CDATA[656838]]></rank>
|
||||
<explicit_lyrics><![CDATA[0]]></explicit_lyrics>
|
||||
<preview><![CDATA[http://cdn-preview-1.deezer.com/stream/c-1767907bea9d6e96335e2f1322c9635f-3.mp3]]></preview>
|
||||
<artist>
|
||||
<id><![CDATA[939]]></id>
|
||||
<name><![CDATA[STUPEFLIP]]></name>
|
||||
<tracklist><![CDATA[http://api.deezer.com/2.0/artist/939/top?limit=50]]></tracklist>
|
||||
<type><![CDATA[artist]]></type>
|
||||
</artist>
|
||||
<type><![CDATA[track]]></type>
|
||||
</track>
|
||||
<track>
|
||||
<id><![CDATA[530221191]]></id>
|
||||
<readable><![CDATA[1]]></readable>
|
||||
<title><![CDATA[1993]]></title>
|
||||
<title_short><![CDATA[1993]]></title_short>
|
||||
<title_version><![CDATA[]]>
|
||||
</title_version>
|
||||
<link><![CDATA[http://www.deezer.com/track/530221191]]></link>
|
||||
<duration><![CDATA[171]]></duration>
|
||||
<rank><![CDATA[656838]]></rank>
|
||||
<explicit_lyrics><![CDATA[0]]></explicit_lyrics>
|
||||
<preview><![CDATA[http://cdn-preview-6.deezer.com/stream/c-6ab0c7e4c7e0a585f693530f9fc337af-3.mp3]]></preview>
|
||||
<artist>
|
||||
<id><![CDATA[939]]></id>
|
||||
<name><![CDATA[STUPEFLIP]]></name>
|
||||
<tracklist><![CDATA[http://api.deezer.com/2.0/artist/939/top?limit=50]]></tracklist>
|
||||
<type><![CDATA[artist]]></type>
|
||||
</artist>
|
||||
<type><![CDATA[track]]></type>
|
||||
</track>
|
||||
<track>
|
||||
<id><![CDATA[530221201]]></id>
|
||||
<readable><![CDATA[1]]></readable>
|
||||
<title><![CDATA[Grosse tête]]></title>
|
||||
<title_short><![CDATA[Grosse tête]]></title_short>
|
||||
<title_version><![CDATA[]]>
|
||||
</title_version>
|
||||
<link><![CDATA[http://www.deezer.com/track/530221201]]></link>
|
||||
<duration><![CDATA[47]]></duration>
|
||||
<rank><![CDATA[656838]]></rank>
|
||||
<explicit_lyrics><![CDATA[0]]></explicit_lyrics>
|
||||
<preview><![CDATA[http://cdn-preview-2.deezer.com/stream/c-2756014de7c4a58aa5d7f75ee66a919a-3.mp3]]></preview>
|
||||
<artist>
|
||||
<id><![CDATA[939]]></id>
|
||||
<name><![CDATA[STUPEFLIP]]></name>
|
||||
<tracklist><![CDATA[http://api.deezer.com/2.0/artist/939/top?limit=50]]></tracklist>
|
||||
<type><![CDATA[artist]]></type>
|
||||
</artist>
|
||||
<type><![CDATA[track]]></type>
|
||||
</track>
|
||||
<track>
|
||||
<id><![CDATA[530221211]]></id>
|
||||
<readable><![CDATA[1]]></readable>
|
||||
<title><![CDATA[Crou Anthem]]></title>
|
||||
<title_short><![CDATA[Crou Anthem]]></title_short>
|
||||
<title_version><![CDATA[]]>
|
||||
</title_version>
|
||||
<link><![CDATA[http://www.deezer.com/track/530221211]]></link>
|
||||
<duration><![CDATA[184]]></duration>
|
||||
<rank><![CDATA[656838]]></rank>
|
||||
<explicit_lyrics><![CDATA[0]]></explicit_lyrics>
|
||||
<preview><![CDATA[http://cdn-preview-4.deezer.com/stream/c-426bb5b3efef76bc847e22777ea7b830-3.mp3]]></preview>
|
||||
<artist>
|
||||
<id><![CDATA[939]]></id>
|
||||
<name><![CDATA[STUPEFLIP]]></name>
|
||||
<tracklist><![CDATA[http://api.deezer.com/2.0/artist/939/top?limit=50]]></tracklist>
|
||||
<type><![CDATA[artist]]></type>
|
||||
</artist>
|
||||
<type><![CDATA[track]]></type>
|
||||
</track>
|
||||
<track>
|
||||
<id><![CDATA[530221221]]></id>
|
||||
<readable><![CDATA[1]]></readable>
|
||||
<title><![CDATA[Forcefield]]></title>
|
||||
<title_short><![CDATA[Forcefield]]></title_short>
|
||||
<title_version><![CDATA[]]>
|
||||
</title_version>
|
||||
<link><![CDATA[http://www.deezer.com/track/530221221]]></link>
|
||||
<duration><![CDATA[130]]></duration>
|
||||
<rank><![CDATA[656838]]></rank>
|
||||
<explicit_lyrics><![CDATA[0]]></explicit_lyrics>
|
||||
<preview><![CDATA[http://cdn-preview-4.deezer.com/stream/c-486da7a95f0a6f57ab9367d3381fd917-3.mp3]]></preview>
|
||||
<artist>
|
||||
<id><![CDATA[939]]></id>
|
||||
<name><![CDATA[STUPEFLIP]]></name>
|
||||
<tracklist><![CDATA[http://api.deezer.com/2.0/artist/939/top?limit=50]]></tracklist>
|
||||
<type><![CDATA[artist]]></type>
|
||||
</artist>
|
||||
<type><![CDATA[track]]></type>
|
||||
</track>
|
||||
<track>
|
||||
<id><![CDATA[530221231]]></id>
|
||||
<readable><![CDATA[1]]></readable>
|
||||
<title><![CDATA[Le trou noir]]></title>
|
||||
<title_short><![CDATA[Le trou noir]]></title_short>
|
||||
<title_version><![CDATA[]]>
|
||||
</title_version>
|
||||
<link><![CDATA[http://www.deezer.com/track/530221231]]></link>
|
||||
<duration><![CDATA[304]]></duration>
|
||||
<rank><![CDATA[656838]]></rank>
|
||||
<explicit_lyrics><![CDATA[0]]></explicit_lyrics>
|
||||
<preview><![CDATA[http://cdn-preview-d.deezer.com/stream/c-d3717dfd6f58407df5551af6415a86e2-3.mp3]]></preview>
|
||||
<artist>
|
||||
<id><![CDATA[939]]></id>
|
||||
<name><![CDATA[STUPEFLIP]]></name>
|
||||
<tracklist><![CDATA[http://api.deezer.com/2.0/artist/939/top?limit=50]]></tracklist>
|
||||
<type><![CDATA[artist]]></type>
|
||||
</artist>
|
||||
<type><![CDATA[track]]></type>
|
||||
</track>
|
||||
<track>
|
||||
<id><![CDATA[530221241]]></id>
|
||||
<readable><![CDATA[1]]></readable>
|
||||
<title><![CDATA[Pleure pas Stupeflip]]></title>
|
||||
<title_short><![CDATA[Pleure pas Stupeflip]]></title_short>
|
||||
<title_version><![CDATA[]]>
|
||||
</title_version>
|
||||
<link><![CDATA[http://www.deezer.com/track/530221241]]></link>
|
||||
<duration><![CDATA[924]]></duration>
|
||||
<rank><![CDATA[656838]]></rank>
|
||||
<explicit_lyrics><![CDATA[0]]></explicit_lyrics>
|
||||
<preview><![CDATA[http://cdn-preview-3.deezer.com/stream/c-3f5d5c62d6f542fc02f044e5a75c832c-3.mp3]]></preview>
|
||||
<artist>
|
||||
<id><![CDATA[939]]></id>
|
||||
<name><![CDATA[STUPEFLIP]]></name>
|
||||
<tracklist><![CDATA[http://api.deezer.com/2.0/artist/939/top?limit=50]]></tracklist>
|
||||
<type><![CDATA[artist]]></type>
|
||||
</artist>
|
||||
<type><![CDATA[track]]></type>
|
||||
</track>
|
||||
</data>
|
||||
</tracks>
|
||||
</root>
|
@ -0,0 +1,32 @@
|
||||
package fr.ensim.xml.deezer.dom;
|
||||
|
||||
import java.io.InputStream;
|
||||
|
||||
import org.apache.log4j.Logger;
|
||||
import org.apache.log4j.xml.DOMConfigurator;
|
||||
import org.junit.Test;
|
||||
|
||||
/**
|
||||
* @author Denis Apparicio
|
||||
*
|
||||
*/
|
||||
public class DOMSearchAlbumsTest {
|
||||
static {
|
||||
DOMConfigurator.configure("log4J.xml");
|
||||
}
|
||||
|
||||
private static final Logger LOG = Logger
|
||||
.getLogger(DOMSearchAlbumsTest.class);
|
||||
|
||||
@Test
|
||||
public void testParse() {
|
||||
LOG.debug(">>testParse");
|
||||
|
||||
// Recuperation du flux a parser
|
||||
InputStream in = getClass().getResourceAsStream("../album-stupeflip.xml");
|
||||
|
||||
//TODO
|
||||
|
||||
LOG.debug("<<testParse");
|
||||
}
|
||||
}
|
@ -0,0 +1,67 @@
|
||||
package fr.ensim.xml.deezer.dom;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
|
||||
import javax.xml.parsers.ParserConfigurationException;
|
||||
import javax.xml.parsers.SAXParser;
|
||||
import javax.xml.parsers.SAXParserFactory;
|
||||
|
||||
import org.apache.log4j.Logger;
|
||||
import org.apache.log4j.xml.DOMConfigurator;
|
||||
import org.junit.Test;
|
||||
import org.xml.sax.InputSource;
|
||||
import org.xml.sax.SAXException;
|
||||
|
||||
import fr.ensim.xml.deezer.sax.SAXSearchAlbumsHandler;
|
||||
import fr.ensim.xml.deezer.sax.SAXSearchAlbumsTest;
|
||||
|
||||
public class SearchAlbumTracksTest {
|
||||
static {
|
||||
DOMConfigurator.configure("log4J.xml");
|
||||
}
|
||||
|
||||
private static final Logger LOG = Logger.getLogger(SearchAlbumTracksTest.class);
|
||||
|
||||
@Test
|
||||
public void test() throws ParserConfigurationException, SAXException, IOException {
|
||||
LOG.debug(">>testParse");
|
||||
|
||||
// Recuperation du flux a parser
|
||||
InputStream in = getClass().getResourceAsStream("../album-stupeflip.xml");
|
||||
|
||||
SAXParserFactory factory = SAXParserFactory.newInstance();
|
||||
factory.setNamespaceAware(true);
|
||||
SAXParser parser = factory.newSAXParser();
|
||||
|
||||
// constitution du flux xml
|
||||
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
|
||||
InputSource source = new InputSource(reader);
|
||||
|
||||
// parsing
|
||||
SAXSearchAlbumsHandler handler = new SAXSearchAlbumsHandler();
|
||||
parser.parse(source, handler);
|
||||
|
||||
assertEquals(10, handler.getListAlbum().size());
|
||||
//First album
|
||||
assertEquals("47685332", handler.getListAlbum().get(0).getId());
|
||||
assertEquals("The Evol", handler.getListAlbum().get(0).getTitle());
|
||||
assertEquals("http://api.deezer.com/2.0/album/47685332/image", handler.getListAlbum().get(0).getCover());
|
||||
assertEquals("83325", handler.getListAlbum().get(0).getArtist().getId());
|
||||
assertEquals("Shaka Ponk", handler.getListAlbum().get(0).getArtist().getName());
|
||||
|
||||
//Second album
|
||||
assertEquals("1121440", handler.getListAlbum().get(1).getId());
|
||||
assertEquals("The Geeks And The Jerkin' Socks", handler.getListAlbum().get(1).getTitle());
|
||||
assertEquals("http://api.deezer.com/2.0/album/1121440/image", handler.getListAlbum().get(1).getCover());
|
||||
assertEquals("83325", handler.getListAlbum().get(1).getArtist().getId());
|
||||
assertEquals("Shaka Ponk", handler.getListAlbum().get(1).getArtist().getName());
|
||||
|
||||
LOG.debug("<<testParse");
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,286 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<data>
|
||||
<album>
|
||||
<id><![CDATA[47685332]]></id>
|
||||
<title><![CDATA[The Evol]]></title>
|
||||
<link><![CDATA[http://www.deezer.com/album/47685332]]></link>
|
||||
<cover><![CDATA[http://api.deezer.com/2.0/album/47685332/image]]></cover>
|
||||
<cover_small><![CDATA[http://e-cdn-images.deezer.com/images/cover/af85cc0e970fb3b7dd02776d66a9be2b/56x56-000000-80-0-0.jpg]]></cover_small>
|
||||
<cover_medium><![CDATA[http://e-cdn-images.deezer.com/images/cover/af85cc0e970fb3b7dd02776d66a9be2b/250x250-000000-80-0-0.jpg]]></cover_medium>
|
||||
<cover_big><![CDATA[http://e-cdn-images.deezer.com/images/cover/af85cc0e970fb3b7dd02776d66a9be2b/500x500-000000-80-0-0.jpg]]></cover_big>
|
||||
<cover_xl><![CDATA[http://e-cdn-images.deezer.com/images/cover/af85cc0e970fb3b7dd02776d66a9be2b/1000x1000-000000-80-0-0.jpg]]></cover_xl>
|
||||
<genre_id><![CDATA[152]]></genre_id>
|
||||
<nb_tracks><![CDATA[13]]></nb_tracks>
|
||||
<record_type><![CDATA[album]]></record_type>
|
||||
<tracklist><![CDATA[http://api.deezer.com/2.0/album/47685332/tracks]]></tracklist>
|
||||
<explicit_lyrics><![CDATA[0]]></explicit_lyrics>
|
||||
<artist>
|
||||
<id><![CDATA[83325]]></id>
|
||||
<name><![CDATA[Shaka Ponk]]></name>
|
||||
<link><![CDATA[http://www.deezer.com/artist/83325]]></link>
|
||||
<picture><![CDATA[http://api.deezer.com/2.0/artist/83325/image]]></picture>
|
||||
<picture_small><![CDATA[http://e-cdn-images.deezer.com/images/artist/02e237973b38db56e35e9eac2ab9671a/56x56-000000-80-0-0.jpg]]></picture_small>
|
||||
<picture_medium><![CDATA[http://e-cdn-images.deezer.com/images/artist/02e237973b38db56e35e9eac2ab9671a/250x250-000000-80-0-0.jpg]]></picture_medium>
|
||||
<picture_big><![CDATA[http://e-cdn-images.deezer.com/images/artist/02e237973b38db56e35e9eac2ab9671a/500x500-000000-80-0-0.jpg]]></picture_big>
|
||||
<picture_xl><![CDATA[http://e-cdn-images.deezer.com/images/artist/02e237973b38db56e35e9eac2ab9671a/1000x1000-000000-80-0-0.jpg]]></picture_xl>
|
||||
<tracklist><![CDATA[http://api.deezer.com/2.0/artist/83325/top?limit=50]]></tracklist>
|
||||
<type><![CDATA[artist]]></type>
|
||||
</artist>
|
||||
<type><![CDATA[album]]></type>
|
||||
</album>
|
||||
<album>
|
||||
<id><![CDATA[1121440]]></id>
|
||||
<title><![CDATA[The Geeks And The Jerkin' Socks]]></title>
|
||||
<link><![CDATA[http://www.deezer.com/album/1121440]]></link>
|
||||
<cover><![CDATA[http://api.deezer.com/2.0/album/1121440/image]]></cover>
|
||||
<cover_small><![CDATA[http://e-cdn-images.deezer.com/images/cover/cea1e3ee735c24489492696e90f65803/56x56-000000-80-0-0.jpg]]></cover_small>
|
||||
<cover_medium><![CDATA[http://e-cdn-images.deezer.com/images/cover/cea1e3ee735c24489492696e90f65803/250x250-000000-80-0-0.jpg]]></cover_medium>
|
||||
<cover_big><![CDATA[http://e-cdn-images.deezer.com/images/cover/cea1e3ee735c24489492696e90f65803/500x500-000000-80-0-0.jpg]]></cover_big>
|
||||
<cover_xl><![CDATA[http://e-cdn-images.deezer.com/images/cover/cea1e3ee735c24489492696e90f65803/1000x1000-000000-80-0-0.jpg]]></cover_xl>
|
||||
<genre_id><![CDATA[152]]></genre_id>
|
||||
<nb_tracks><![CDATA[12]]></nb_tracks>
|
||||
<record_type><![CDATA[album]]></record_type>
|
||||
<tracklist><![CDATA[http://api.deezer.com/2.0/album/1121440/tracks]]></tracklist>
|
||||
<explicit_lyrics><![CDATA[0]]></explicit_lyrics>
|
||||
<artist>
|
||||
<id><![CDATA[83325]]></id>
|
||||
<name><![CDATA[Shaka Ponk]]></name>
|
||||
<link><![CDATA[http://www.deezer.com/artist/83325]]></link>
|
||||
<picture><![CDATA[http://api.deezer.com/2.0/artist/83325/image]]></picture>
|
||||
<picture_small><![CDATA[http://e-cdn-images.deezer.com/images/artist/02e237973b38db56e35e9eac2ab9671a/56x56-000000-80-0-0.jpg]]></picture_small>
|
||||
<picture_medium><![CDATA[http://e-cdn-images.deezer.com/images/artist/02e237973b38db56e35e9eac2ab9671a/250x250-000000-80-0-0.jpg]]></picture_medium>
|
||||
<picture_big><![CDATA[http://e-cdn-images.deezer.com/images/artist/02e237973b38db56e35e9eac2ab9671a/500x500-000000-80-0-0.jpg]]></picture_big>
|
||||
<picture_xl><![CDATA[http://e-cdn-images.deezer.com/images/artist/02e237973b38db56e35e9eac2ab9671a/1000x1000-000000-80-0-0.jpg]]></picture_xl>
|
||||
<tracklist><![CDATA[http://api.deezer.com/2.0/artist/83325/top?limit=50]]></tracklist>
|
||||
<type><![CDATA[artist]]></type>
|
||||
</artist>
|
||||
<type><![CDATA[album]]></type>
|
||||
</album>
|
||||
<album>
|
||||
<id><![CDATA[7529289]]></id>
|
||||
<title><![CDATA[The White Pixel Ape (Smoking Isolate to Keep in Shape)]]></title>
|
||||
<link><![CDATA[http://www.deezer.com/album/7529289]]></link>
|
||||
<cover><![CDATA[http://api.deezer.com/2.0/album/7529289/image]]></cover>
|
||||
<cover_small><![CDATA[http://e-cdn-images.deezer.com/images/cover/1fd91dd0716a4ffe9c4724b3e1950347/56x56-000000-80-0-0.jpg]]></cover_small>
|
||||
<cover_medium><![CDATA[http://e-cdn-images.deezer.com/images/cover/1fd91dd0716a4ffe9c4724b3e1950347/250x250-000000-80-0-0.jpg]]></cover_medium>
|
||||
<cover_big><![CDATA[http://e-cdn-images.deezer.com/images/cover/1fd91dd0716a4ffe9c4724b3e1950347/500x500-000000-80-0-0.jpg]]></cover_big>
|
||||
<cover_xl><![CDATA[http://e-cdn-images.deezer.com/images/cover/1fd91dd0716a4ffe9c4724b3e1950347/1000x1000-000000-80-0-0.jpg]]></cover_xl>
|
||||
<genre_id><![CDATA[152]]></genre_id>
|
||||
<nb_tracks><![CDATA[13]]></nb_tracks>
|
||||
<record_type><![CDATA[album]]></record_type>
|
||||
<tracklist><![CDATA[http://api.deezer.com/2.0/album/7529289/tracks]]></tracklist>
|
||||
<explicit_lyrics><![CDATA[0]]></explicit_lyrics>
|
||||
<artist>
|
||||
<id><![CDATA[83325]]></id>
|
||||
<name><![CDATA[Shaka Ponk]]></name>
|
||||
<link><![CDATA[http://www.deezer.com/artist/83325]]></link>
|
||||
<picture><![CDATA[http://api.deezer.com/2.0/artist/83325/image]]></picture>
|
||||
<picture_small><![CDATA[http://e-cdn-images.deezer.com/images/artist/02e237973b38db56e35e9eac2ab9671a/56x56-000000-80-0-0.jpg]]></picture_small>
|
||||
<picture_medium><![CDATA[http://e-cdn-images.deezer.com/images/artist/02e237973b38db56e35e9eac2ab9671a/250x250-000000-80-0-0.jpg]]></picture_medium>
|
||||
<picture_big><![CDATA[http://e-cdn-images.deezer.com/images/artist/02e237973b38db56e35e9eac2ab9671a/500x500-000000-80-0-0.jpg]]></picture_big>
|
||||
<picture_xl><![CDATA[http://e-cdn-images.deezer.com/images/artist/02e237973b38db56e35e9eac2ab9671a/1000x1000-000000-80-0-0.jpg]]></picture_xl>
|
||||
<tracklist><![CDATA[http://api.deezer.com/2.0/artist/83325/top?limit=50]]></tracklist>
|
||||
<type><![CDATA[artist]]></type>
|
||||
</artist>
|
||||
<type><![CDATA[album]]></type>
|
||||
</album>
|
||||
<album>
|
||||
<id><![CDATA[625593]]></id>
|
||||
<title><![CDATA[Bad Porn Movie Trax]]></title>
|
||||
<link><![CDATA[http://www.deezer.com/album/625593]]></link>
|
||||
<cover><![CDATA[http://api.deezer.com/2.0/album/625593/image]]></cover>
|
||||
<cover_small><![CDATA[http://e-cdn-images.deezer.com/images/cover/5d52028c2f550e1265335ea6cb5e37ff/56x56-000000-80-0-0.jpg]]></cover_small>
|
||||
<cover_medium><![CDATA[http://e-cdn-images.deezer.com/images/cover/5d52028c2f550e1265335ea6cb5e37ff/250x250-000000-80-0-0.jpg]]></cover_medium>
|
||||
<cover_big><![CDATA[http://e-cdn-images.deezer.com/images/cover/5d52028c2f550e1265335ea6cb5e37ff/500x500-000000-80-0-0.jpg]]></cover_big>
|
||||
<cover_xl><![CDATA[http://e-cdn-images.deezer.com/images/cover/5d52028c2f550e1265335ea6cb5e37ff/1000x1000-000000-80-0-0.jpg]]></cover_xl>
|
||||
<genre_id><![CDATA[152]]></genre_id>
|
||||
<nb_tracks><![CDATA[16]]></nb_tracks>
|
||||
<record_type><![CDATA[album]]></record_type>
|
||||
<tracklist><![CDATA[http://api.deezer.com/2.0/album/625593/tracks]]></tracklist>
|
||||
<explicit_lyrics><![CDATA[0]]></explicit_lyrics>
|
||||
<artist>
|
||||
<id><![CDATA[83325]]></id>
|
||||
<name><![CDATA[Shaka Ponk]]></name>
|
||||
<link><![CDATA[http://www.deezer.com/artist/83325]]></link>
|
||||
<picture><![CDATA[http://api.deezer.com/2.0/artist/83325/image]]></picture>
|
||||
<picture_small><![CDATA[http://e-cdn-images.deezer.com/images/artist/02e237973b38db56e35e9eac2ab9671a/56x56-000000-80-0-0.jpg]]></picture_small>
|
||||
<picture_medium><![CDATA[http://e-cdn-images.deezer.com/images/artist/02e237973b38db56e35e9eac2ab9671a/250x250-000000-80-0-0.jpg]]></picture_medium>
|
||||
<picture_big><![CDATA[http://e-cdn-images.deezer.com/images/artist/02e237973b38db56e35e9eac2ab9671a/500x500-000000-80-0-0.jpg]]></picture_big>
|
||||
<picture_xl><![CDATA[http://e-cdn-images.deezer.com/images/artist/02e237973b38db56e35e9eac2ab9671a/1000x1000-000000-80-0-0.jpg]]></picture_xl>
|
||||
<tracklist><![CDATA[http://api.deezer.com/2.0/artist/83325/top?limit=50]]></tracklist>
|
||||
<type><![CDATA[artist]]></type>
|
||||
</artist>
|
||||
<type><![CDATA[album]]></type>
|
||||
</album>
|
||||
<album>
|
||||
<id><![CDATA[8910295]]></id>
|
||||
<title><![CDATA[The Black Pixel Ape (Drinking Cigarettes to Take a Break) [Deezer Edition]]]></title>
|
||||
<link><![CDATA[http://www.deezer.com/album/8910295]]></link>
|
||||
<cover><![CDATA[http://api.deezer.com/2.0/album/8910295/image]]></cover>
|
||||
<cover_small><![CDATA[http://e-cdn-images.deezer.com/images/cover/f33c581efd41ac305d72a6602a2db624/56x56-000000-80-0-0.jpg]]></cover_small>
|
||||
<cover_medium><![CDATA[http://e-cdn-images.deezer.com/images/cover/f33c581efd41ac305d72a6602a2db624/250x250-000000-80-0-0.jpg]]></cover_medium>
|
||||
<cover_big><![CDATA[http://e-cdn-images.deezer.com/images/cover/f33c581efd41ac305d72a6602a2db624/500x500-000000-80-0-0.jpg]]></cover_big>
|
||||
<cover_xl><![CDATA[http://e-cdn-images.deezer.com/images/cover/f33c581efd41ac305d72a6602a2db624/1000x1000-000000-80-0-0.jpg]]></cover_xl>
|
||||
<genre_id><![CDATA[152]]></genre_id>
|
||||
<nb_tracks><![CDATA[17]]></nb_tracks>
|
||||
<record_type><![CDATA[album]]></record_type>
|
||||
<tracklist><![CDATA[http://api.deezer.com/2.0/album/8910295/tracks]]></tracklist>
|
||||
<explicit_lyrics><![CDATA[0]]></explicit_lyrics>
|
||||
<artist>
|
||||
<id><![CDATA[83325]]></id>
|
||||
<name><![CDATA[Shaka Ponk]]></name>
|
||||
<link><![CDATA[http://www.deezer.com/artist/83325]]></link>
|
||||
<picture><![CDATA[http://api.deezer.com/2.0/artist/83325/image]]></picture>
|
||||
<picture_small><![CDATA[http://e-cdn-images.deezer.com/images/artist/02e237973b38db56e35e9eac2ab9671a/56x56-000000-80-0-0.jpg]]></picture_small>
|
||||
<picture_medium><![CDATA[http://e-cdn-images.deezer.com/images/artist/02e237973b38db56e35e9eac2ab9671a/250x250-000000-80-0-0.jpg]]></picture_medium>
|
||||
<picture_big><![CDATA[http://e-cdn-images.deezer.com/images/artist/02e237973b38db56e35e9eac2ab9671a/500x500-000000-80-0-0.jpg]]></picture_big>
|
||||
<picture_xl><![CDATA[http://e-cdn-images.deezer.com/images/artist/02e237973b38db56e35e9eac2ab9671a/1000x1000-000000-80-0-0.jpg]]></picture_xl>
|
||||
<tracklist><![CDATA[http://api.deezer.com/2.0/artist/83325/top?limit=50]]></tracklist>
|
||||
<type><![CDATA[artist]]></type>
|
||||
</artist>
|
||||
<type><![CDATA[album]]></type>
|
||||
</album>
|
||||
<album>
|
||||
<id><![CDATA[7084004]]></id>
|
||||
<title><![CDATA[Monkeys in Bercy]]></title>
|
||||
<link><![CDATA[http://www.deezer.com/album/7084004]]></link>
|
||||
<cover><![CDATA[http://api.deezer.com/2.0/album/7084004/image]]></cover>
|
||||
<cover_small><![CDATA[http://e-cdn-images.deezer.com/images/cover/3ab1b7ac1cb01b5e73dd01d5f8a19a4b/56x56-000000-80-0-0.jpg]]></cover_small>
|
||||
<cover_medium><![CDATA[http://e-cdn-images.deezer.com/images/cover/3ab1b7ac1cb01b5e73dd01d5f8a19a4b/250x250-000000-80-0-0.jpg]]></cover_medium>
|
||||
<cover_big><![CDATA[http://e-cdn-images.deezer.com/images/cover/3ab1b7ac1cb01b5e73dd01d5f8a19a4b/500x500-000000-80-0-0.jpg]]></cover_big>
|
||||
<cover_xl><![CDATA[http://e-cdn-images.deezer.com/images/cover/3ab1b7ac1cb01b5e73dd01d5f8a19a4b/1000x1000-000000-80-0-0.jpg]]></cover_xl>
|
||||
<genre_id><![CDATA[152]]></genre_id>
|
||||
<nb_tracks><![CDATA[12]]></nb_tracks>
|
||||
<record_type><![CDATA[album]]></record_type>
|
||||
<tracklist><![CDATA[http://api.deezer.com/2.0/album/7084004/tracks]]></tracklist>
|
||||
<explicit_lyrics><![CDATA[0]]></explicit_lyrics>
|
||||
<artist>
|
||||
<id><![CDATA[83325]]></id>
|
||||
<name><![CDATA[Shaka Ponk]]></name>
|
||||
<link><![CDATA[http://www.deezer.com/artist/83325]]></link>
|
||||
<picture><![CDATA[http://api.deezer.com/2.0/artist/83325/image]]></picture>
|
||||
<picture_small><![CDATA[http://e-cdn-images.deezer.com/images/artist/02e237973b38db56e35e9eac2ab9671a/56x56-000000-80-0-0.jpg]]></picture_small>
|
||||
<picture_medium><![CDATA[http://e-cdn-images.deezer.com/images/artist/02e237973b38db56e35e9eac2ab9671a/250x250-000000-80-0-0.jpg]]></picture_medium>
|
||||
<picture_big><![CDATA[http://e-cdn-images.deezer.com/images/artist/02e237973b38db56e35e9eac2ab9671a/500x500-000000-80-0-0.jpg]]></picture_big>
|
||||
<picture_xl><![CDATA[http://e-cdn-images.deezer.com/images/artist/02e237973b38db56e35e9eac2ab9671a/1000x1000-000000-80-0-0.jpg]]></picture_xl>
|
||||
<tracklist><![CDATA[http://api.deezer.com/2.0/artist/83325/top?limit=50]]></tracklist>
|
||||
<type><![CDATA[artist]]></type>
|
||||
</artist>
|
||||
<type><![CDATA[album]]></type>
|
||||
</album>
|
||||
<album>
|
||||
<id><![CDATA[56633592]]></id>
|
||||
<title><![CDATA[Smells Like Teen Spirit]]></title>
|
||||
<link><![CDATA[http://www.deezer.com/album/56633592]]></link>
|
||||
<cover><![CDATA[http://api.deezer.com/2.0/album/56633592/image]]></cover>
|
||||
<cover_small><![CDATA[http://e-cdn-images.deezer.com/images/cover/af500ba0d1838cab1f9779b7605a37cc/56x56-000000-80-0-0.jpg]]></cover_small>
|
||||
<cover_medium><![CDATA[http://e-cdn-images.deezer.com/images/cover/af500ba0d1838cab1f9779b7605a37cc/250x250-000000-80-0-0.jpg]]></cover_medium>
|
||||
<cover_big><![CDATA[http://e-cdn-images.deezer.com/images/cover/af500ba0d1838cab1f9779b7605a37cc/500x500-000000-80-0-0.jpg]]></cover_big>
|
||||
<cover_xl><![CDATA[http://e-cdn-images.deezer.com/images/cover/af500ba0d1838cab1f9779b7605a37cc/1000x1000-000000-80-0-0.jpg]]></cover_xl>
|
||||
<genre_id><![CDATA[152]]></genre_id>
|
||||
<nb_tracks><![CDATA[1]]></nb_tracks>
|
||||
<record_type><![CDATA[single]]></record_type>
|
||||
<tracklist><![CDATA[http://api.deezer.com/2.0/album/56633592/tracks]]></tracklist>
|
||||
<explicit_lyrics><![CDATA[0]]></explicit_lyrics>
|
||||
<artist>
|
||||
<id><![CDATA[83325]]></id>
|
||||
<name><![CDATA[Shaka Ponk]]></name>
|
||||
<link><![CDATA[http://www.deezer.com/artist/83325]]></link>
|
||||
<picture><![CDATA[http://api.deezer.com/2.0/artist/83325/image]]></picture>
|
||||
<picture_small><![CDATA[http://e-cdn-images.deezer.com/images/artist/02e237973b38db56e35e9eac2ab9671a/56x56-000000-80-0-0.jpg]]></picture_small>
|
||||
<picture_medium><![CDATA[http://e-cdn-images.deezer.com/images/artist/02e237973b38db56e35e9eac2ab9671a/250x250-000000-80-0-0.jpg]]></picture_medium>
|
||||
<picture_big><![CDATA[http://e-cdn-images.deezer.com/images/artist/02e237973b38db56e35e9eac2ab9671a/500x500-000000-80-0-0.jpg]]></picture_big>
|
||||
<picture_xl><![CDATA[http://e-cdn-images.deezer.com/images/artist/02e237973b38db56e35e9eac2ab9671a/1000x1000-000000-80-0-0.jpg]]></picture_xl>
|
||||
<tracklist><![CDATA[http://api.deezer.com/2.0/artist/83325/top?limit=50]]></tracklist>
|
||||
<type><![CDATA[artist]]></type>
|
||||
</artist>
|
||||
<type><![CDATA[album]]></type>
|
||||
</album>
|
||||
<album>
|
||||
<id><![CDATA[637662]]></id>
|
||||
<title><![CDATA[Loco Con Da Frenchy Talkin' (Recycled version 2009)]]></title>
|
||||
<link><![CDATA[http://www.deezer.com/album/637662]]></link>
|
||||
<cover><![CDATA[http://api.deezer.com/2.0/album/637662/image]]></cover>
|
||||
<cover_small><![CDATA[http://e-cdn-images.deezer.com/images/cover/c1eb904c3050f56e41283b1e6e83c2fc/56x56-000000-80-0-0.jpg]]></cover_small>
|
||||
<cover_medium><![CDATA[http://e-cdn-images.deezer.com/images/cover/c1eb904c3050f56e41283b1e6e83c2fc/250x250-000000-80-0-0.jpg]]></cover_medium>
|
||||
<cover_big><![CDATA[http://e-cdn-images.deezer.com/images/cover/c1eb904c3050f56e41283b1e6e83c2fc/500x500-000000-80-0-0.jpg]]></cover_big>
|
||||
<cover_xl><![CDATA[http://e-cdn-images.deezer.com/images/cover/c1eb904c3050f56e41283b1e6e83c2fc/1000x1000-000000-80-0-0.jpg]]></cover_xl>
|
||||
<genre_id><![CDATA[132]]></genre_id>
|
||||
<nb_tracks><![CDATA[14]]></nb_tracks>
|
||||
<record_type><![CDATA[album]]></record_type>
|
||||
<tracklist><![CDATA[http://api.deezer.com/2.0/album/637662/tracks]]></tracklist>
|
||||
<explicit_lyrics><![CDATA[0]]></explicit_lyrics>
|
||||
<artist>
|
||||
<id><![CDATA[83325]]></id>
|
||||
<name><![CDATA[Shaka Ponk]]></name>
|
||||
<link><![CDATA[http://www.deezer.com/artist/83325]]></link>
|
||||
<picture><![CDATA[http://api.deezer.com/2.0/artist/83325/image]]></picture>
|
||||
<picture_small><![CDATA[http://e-cdn-images.deezer.com/images/artist/02e237973b38db56e35e9eac2ab9671a/56x56-000000-80-0-0.jpg]]></picture_small>
|
||||
<picture_medium><![CDATA[http://e-cdn-images.deezer.com/images/artist/02e237973b38db56e35e9eac2ab9671a/250x250-000000-80-0-0.jpg]]></picture_medium>
|
||||
<picture_big><![CDATA[http://e-cdn-images.deezer.com/images/artist/02e237973b38db56e35e9eac2ab9671a/500x500-000000-80-0-0.jpg]]></picture_big>
|
||||
<picture_xl><![CDATA[http://e-cdn-images.deezer.com/images/artist/02e237973b38db56e35e9eac2ab9671a/1000x1000-000000-80-0-0.jpg]]></picture_xl>
|
||||
<tracklist><![CDATA[http://api.deezer.com/2.0/artist/83325/top?limit=50]]></tracklist>
|
||||
<type><![CDATA[artist]]></type>
|
||||
</artist>
|
||||
<type><![CDATA[album]]></type>
|
||||
</album>
|
||||
<album>
|
||||
<id><![CDATA[43199651]]></id>
|
||||
<title><![CDATA[ApeTizer - EP]]></title>
|
||||
<link><![CDATA[http://www.deezer.com/album/43199651]]></link>
|
||||
<cover><![CDATA[http://api.deezer.com/2.0/album/43199651/image]]></cover>
|
||||
<cover_small><![CDATA[http://e-cdn-images.deezer.com/images/cover/62fabec2b9af045eff84a5872bb6b6a7/56x56-000000-80-0-0.jpg]]></cover_small>
|
||||
<cover_medium><![CDATA[http://e-cdn-images.deezer.com/images/cover/62fabec2b9af045eff84a5872bb6b6a7/250x250-000000-80-0-0.jpg]]></cover_medium>
|
||||
<cover_big><![CDATA[http://e-cdn-images.deezer.com/images/cover/62fabec2b9af045eff84a5872bb6b6a7/500x500-000000-80-0-0.jpg]]></cover_big>
|
||||
<cover_xl><![CDATA[http://e-cdn-images.deezer.com/images/cover/62fabec2b9af045eff84a5872bb6b6a7/1000x1000-000000-80-0-0.jpg]]></cover_xl>
|
||||
<genre_id><![CDATA[152]]></genre_id>
|
||||
<nb_tracks><![CDATA[5]]></nb_tracks>
|
||||
<record_type><![CDATA[album]]></record_type>
|
||||
<tracklist><![CDATA[http://api.deezer.com/2.0/album/43199651/tracks]]></tracklist>
|
||||
<explicit_lyrics><![CDATA[0]]></explicit_lyrics>
|
||||
<artist>
|
||||
<id><![CDATA[83325]]></id>
|
||||
<name><![CDATA[Shaka Ponk]]></name>
|
||||
<link><![CDATA[http://www.deezer.com/artist/83325]]></link>
|
||||
<picture><![CDATA[http://api.deezer.com/2.0/artist/83325/image]]></picture>
|
||||
<picture_small><![CDATA[http://e-cdn-images.deezer.com/images/artist/02e237973b38db56e35e9eac2ab9671a/56x56-000000-80-0-0.jpg]]></picture_small>
|
||||
<picture_medium><![CDATA[http://e-cdn-images.deezer.com/images/artist/02e237973b38db56e35e9eac2ab9671a/250x250-000000-80-0-0.jpg]]></picture_medium>
|
||||
<picture_big><![CDATA[http://e-cdn-images.deezer.com/images/artist/02e237973b38db56e35e9eac2ab9671a/500x500-000000-80-0-0.jpg]]></picture_big>
|
||||
<picture_xl><![CDATA[http://e-cdn-images.deezer.com/images/artist/02e237973b38db56e35e9eac2ab9671a/1000x1000-000000-80-0-0.jpg]]></picture_xl>
|
||||
<tracklist><![CDATA[http://api.deezer.com/2.0/artist/83325/top?limit=50]]></tracklist>
|
||||
<type><![CDATA[artist]]></type>
|
||||
</artist>
|
||||
<type><![CDATA[album]]></type>
|
||||
</album>
|
||||
<album>
|
||||
<id><![CDATA[7327738]]></id>
|
||||
<title><![CDATA[Wanna Get Free - Single]]></title>
|
||||
<link><![CDATA[http://www.deezer.com/album/7327738]]></link>
|
||||
<cover><![CDATA[http://api.deezer.com/2.0/album/7327738/image]]></cover>
|
||||
<cover_small><![CDATA[http://e-cdn-images.deezer.com/images/cover/b7dd87782136109416a72a55e5571de4/56x56-000000-80-0-0.jpg]]></cover_small>
|
||||
<cover_medium><![CDATA[http://e-cdn-images.deezer.com/images/cover/b7dd87782136109416a72a55e5571de4/250x250-000000-80-0-0.jpg]]></cover_medium>
|
||||
<cover_big><![CDATA[http://e-cdn-images.deezer.com/images/cover/b7dd87782136109416a72a55e5571de4/500x500-000000-80-0-0.jpg]]></cover_big>
|
||||
<cover_xl><![CDATA[http://e-cdn-images.deezer.com/images/cover/b7dd87782136109416a72a55e5571de4/1000x1000-000000-80-0-0.jpg]]></cover_xl>
|
||||
<genre_id><![CDATA[152]]></genre_id>
|
||||
<nb_tracks><![CDATA[1]]></nb_tracks>
|
||||
<record_type><![CDATA[single]]></record_type>
|
||||
<tracklist><![CDATA[http://api.deezer.com/2.0/album/7327738/tracks]]></tracklist>
|
||||
<explicit_lyrics><![CDATA[0]]></explicit_lyrics>
|
||||
<artist>
|
||||
<id><![CDATA[83325]]></id>
|
||||
<name><![CDATA[Shaka Ponk]]></name>
|
||||
<link><![CDATA[http://www.deezer.com/artist/83325]]></link>
|
||||
<picture><![CDATA[http://api.deezer.com/2.0/artist/83325/image]]></picture>
|
||||
<picture_small><![CDATA[http://e-cdn-images.deezer.com/images/artist/02e237973b38db56e35e9eac2ab9671a/56x56-000000-80-0-0.jpg]]></picture_small>
|
||||
<picture_medium><![CDATA[http://e-cdn-images.deezer.com/images/artist/02e237973b38db56e35e9eac2ab9671a/250x250-000000-80-0-0.jpg]]></picture_medium>
|
||||
<picture_big><![CDATA[http://e-cdn-images.deezer.com/images/artist/02e237973b38db56e35e9eac2ab9671a/500x500-000000-80-0-0.jpg]]></picture_big>
|
||||
<picture_xl><![CDATA[http://e-cdn-images.deezer.com/images/artist/02e237973b38db56e35e9eac2ab9671a/1000x1000-000000-80-0-0.jpg]]></picture_xl>
|
||||
<tracklist><![CDATA[http://api.deezer.com/2.0/artist/83325/top?limit=50]]></tracklist>
|
||||
<type><![CDATA[artist]]></type>
|
||||
</artist>
|
||||
<type><![CDATA[album]]></type>
|
||||
</album>
|
||||
</data>
|
||||
<total><![CDATA[10]]></total>
|
||||
</root>
|
@ -0,0 +1,69 @@
|
||||
package fr.ensim.xml.deezer.sax;
|
||||
|
||||
import static org.junit.Assert.assertArrayEquals;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
|
||||
import javax.xml.parsers.ParserConfigurationException;
|
||||
import javax.xml.parsers.SAXParser;
|
||||
import javax.xml.parsers.SAXParserFactory;
|
||||
|
||||
import org.apache.log4j.Logger;
|
||||
import org.apache.log4j.xml.DOMConfigurator;
|
||||
import org.junit.Test;
|
||||
import org.xml.sax.InputSource;
|
||||
import org.xml.sax.SAXException;
|
||||
|
||||
/**
|
||||
* @author Denis Apparicio
|
||||
*
|
||||
*/
|
||||
public class SAXSearchAlbumsTest {
|
||||
static {
|
||||
DOMConfigurator.configure("log4J.xml");
|
||||
}
|
||||
|
||||
private static final Logger LOG = Logger.getLogger(SAXSearchAlbumsTest.class);
|
||||
|
||||
@Test
|
||||
public void testParse() throws ParserConfigurationException, SAXException, IOException {
|
||||
LOG.debug(">>testParse");
|
||||
|
||||
// Recuperation du flux a parser
|
||||
InputStream in = getClass().getResourceAsStream("../list-albums.xml");
|
||||
|
||||
SAXParserFactory factory = SAXParserFactory.newInstance();
|
||||
factory.setNamespaceAware(true);
|
||||
SAXParser parser = factory.newSAXParser();
|
||||
|
||||
// constitution du flux xml
|
||||
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
|
||||
InputSource source = new InputSource(reader);
|
||||
|
||||
// parsing
|
||||
SAXSearchAlbumsHandler handler = new SAXSearchAlbumsHandler();
|
||||
parser.parse(source, handler);
|
||||
|
||||
assertEquals(10, handler.getListAlbum().size());
|
||||
//First album
|
||||
assertEquals("47685332", handler.getListAlbum().get(0).getId());
|
||||
assertEquals("The Evol", handler.getListAlbum().get(0).getTitle());
|
||||
assertEquals("http://api.deezer.com/2.0/album/47685332/image", handler.getListAlbum().get(0).getCover());
|
||||
assertEquals("83325", handler.getListAlbum().get(0).getArtist().getId());
|
||||
assertEquals("Shaka Ponk", handler.getListAlbum().get(0).getArtist().getName());
|
||||
|
||||
//Second album
|
||||
assertEquals("1121440", handler.getListAlbum().get(1).getId());
|
||||
assertEquals("The Geeks And The Jerkin' Socks", handler.getListAlbum().get(1).getTitle());
|
||||
assertEquals("http://api.deezer.com/2.0/album/1121440/image", handler.getListAlbum().get(1).getCover());
|
||||
assertEquals("83325", handler.getListAlbum().get(1).getArtist().getId());
|
||||
assertEquals("Shaka Ponk", handler.getListAlbum().get(1).getArtist().getName());
|
||||
|
||||
LOG.debug("<<testParse");
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,44 @@
|
||||
package fr.ensim.xml.deezer.stax;
|
||||
|
||||
import java.io.InputStream;
|
||||
|
||||
import org.apache.log4j.Logger;
|
||||
import org.apache.log4j.xml.DOMConfigurator;
|
||||
import org.junit.Test;
|
||||
|
||||
/**
|
||||
* @author Denis Apparicio
|
||||
*
|
||||
*/
|
||||
public class StAXSearchAlbumsTest {
|
||||
static {
|
||||
DOMConfigurator.configure("log4J.xml");
|
||||
}
|
||||
|
||||
private static final Logger LOG = Logger
|
||||
.getLogger(StAXSearchAlbumsTest.class);
|
||||
|
||||
@Test
|
||||
public void testCount() {
|
||||
LOG.debug(">>testCount");
|
||||
|
||||
// Recuperation du flux a parser
|
||||
InputStream in = getClass().getResourceAsStream("../album-stupeflip.xml");
|
||||
|
||||
//TODO
|
||||
|
||||
LOG.debug("<<testCount");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testParse() {
|
||||
LOG.debug(">>testParse");
|
||||
|
||||
// Recuperation du flux a parser
|
||||
InputStream in = getClass().getResourceAsStream("album-stupeflip.xml");
|
||||
|
||||
//TODO
|
||||
|
||||
LOG.debug("<<testParse");
|
||||
}
|
||||
}
|
48
ENSIM/Java/tp-deezer3-squelette/tp-xml.log
Normal file
48
ENSIM/Java/tp-deezer3-squelette/tp-xml.log
Normal file
@ -0,0 +1,48 @@
|
||||
19:05:44,335 DEBUG fr.ensim.xml.deezer.AbstractSearchAlbum - >>find author=Shaka%20Ponk
|
||||
19:05:44,337 DEBUG fr.ensim.xml.deezer.AbstractSearchAlbum - http://api.deezer.com/2.0/search/album?q=Shaka%20Ponk&output=xml
|
||||
19:05:49,606 DEBUG fr.ensim.xml.deezer.sax.SAXSearchAlbums - >>readAlbums
|
||||
19:05:49,640 DEBUG fr.ensim.xml.deezer.sax.SAXSearchAlbums - <<readAlbums
|
||||
19:05:49,641 DEBUG fr.ensim.xml.deezer.AbstractSearchAlbum - <<find
|
||||
19:05:49,641 DEBUG fr.ensim.xml.deezer.dom.SearchAlbumTracks - >>albums
|
||||
19:05:49,641 DEBUG fr.ensim.xml.deezer.dom.SearchAlbumTracks - http://api.deezer.com/2.0/album/47685332?output=xml
|
||||
19:05:54,764 DEBUG fr.ensim.xml.deezer.dom.SearchAlbumTracks - >>find
|
||||
19:05:54,792 DEBUG fr.ensim.xml.deezer.dom.SearchAlbumTracks - >>find
|
||||
19:05:54,793 DEBUG fr.ensim.xml.deezer.dom.SearchAlbumTracks - >>albums
|
||||
19:05:54,793 DEBUG fr.ensim.xml.deezer.dom.SearchAlbumTracks - http://api.deezer.com/2.0/album/1121440?output=xml
|
||||
19:05:59,968 DEBUG fr.ensim.xml.deezer.dom.SearchAlbumTracks - >>find
|
||||
19:05:59,980 DEBUG fr.ensim.xml.deezer.dom.SearchAlbumTracks - >>find
|
||||
19:05:59,981 DEBUG fr.ensim.xml.deezer.dom.SearchAlbumTracks - >>albums
|
||||
19:05:59,981 DEBUG fr.ensim.xml.deezer.dom.SearchAlbumTracks - http://api.deezer.com/2.0/album/7529289?output=xml
|
||||
19:06:05,117 DEBUG fr.ensim.xml.deezer.dom.SearchAlbumTracks - >>find
|
||||
19:06:05,160 DEBUG fr.ensim.xml.deezer.dom.SearchAlbumTracks - >>find
|
||||
19:06:05,161 DEBUG fr.ensim.xml.deezer.dom.SearchAlbumTracks - >>albums
|
||||
19:06:05,161 DEBUG fr.ensim.xml.deezer.dom.SearchAlbumTracks - http://api.deezer.com/2.0/album/625593?output=xml
|
||||
19:06:10,336 DEBUG fr.ensim.xml.deezer.dom.SearchAlbumTracks - >>find
|
||||
19:06:10,366 DEBUG fr.ensim.xml.deezer.dom.SearchAlbumTracks - >>find
|
||||
19:06:10,367 DEBUG fr.ensim.xml.deezer.dom.SearchAlbumTracks - >>albums
|
||||
19:06:10,367 DEBUG fr.ensim.xml.deezer.dom.SearchAlbumTracks - http://api.deezer.com/2.0/album/8910295?output=xml
|
||||
19:06:15,501 DEBUG fr.ensim.xml.deezer.dom.SearchAlbumTracks - >>find
|
||||
19:06:15,533 DEBUG fr.ensim.xml.deezer.dom.SearchAlbumTracks - >>find
|
||||
19:06:15,534 DEBUG fr.ensim.xml.deezer.dom.SearchAlbumTracks - >>albums
|
||||
19:06:15,534 DEBUG fr.ensim.xml.deezer.dom.SearchAlbumTracks - http://api.deezer.com/2.0/album/7084004?output=xml
|
||||
19:06:20,680 DEBUG fr.ensim.xml.deezer.dom.SearchAlbumTracks - >>find
|
||||
19:06:20,728 DEBUG fr.ensim.xml.deezer.dom.SearchAlbumTracks - >>find
|
||||
19:06:20,728 DEBUG fr.ensim.xml.deezer.dom.SearchAlbumTracks - >>albums
|
||||
19:06:20,728 DEBUG fr.ensim.xml.deezer.dom.SearchAlbumTracks - http://api.deezer.com/2.0/album/56633592?output=xml
|
||||
19:06:25,858 DEBUG fr.ensim.xml.deezer.dom.SearchAlbumTracks - >>find
|
||||
19:06:25,861 DEBUG fr.ensim.xml.deezer.dom.SearchAlbumTracks - >>find
|
||||
19:06:25,861 DEBUG fr.ensim.xml.deezer.dom.SearchAlbumTracks - >>albums
|
||||
19:06:25,861 DEBUG fr.ensim.xml.deezer.dom.SearchAlbumTracks - http://api.deezer.com/2.0/album/637662?output=xml
|
||||
19:06:30,979 DEBUG fr.ensim.xml.deezer.dom.SearchAlbumTracks - >>find
|
||||
19:06:31,007 DEBUG fr.ensim.xml.deezer.dom.SearchAlbumTracks - >>find
|
||||
19:06:31,007 DEBUG fr.ensim.xml.deezer.dom.SearchAlbumTracks - >>albums
|
||||
19:06:31,008 DEBUG fr.ensim.xml.deezer.dom.SearchAlbumTracks - http://api.deezer.com/2.0/album/43199651?output=xml
|
||||
19:06:36,143 DEBUG fr.ensim.xml.deezer.dom.SearchAlbumTracks - >>find
|
||||
19:06:36,150 DEBUG fr.ensim.xml.deezer.dom.SearchAlbumTracks - >>find
|
||||
19:06:36,150 DEBUG fr.ensim.xml.deezer.dom.SearchAlbumTracks - >>albums
|
||||
19:06:36,150 DEBUG fr.ensim.xml.deezer.dom.SearchAlbumTracks - http://api.deezer.com/2.0/album/7327738?output=xml
|
||||
19:06:41,280 DEBUG fr.ensim.xml.deezer.dom.SearchAlbumTracks - >>find
|
||||
19:06:41,284 DEBUG fr.ensim.xml.deezer.dom.SearchAlbumTracks - >>find
|
||||
19:06:41,288 DEBUG fr.ensim.xml.deezer.stax.HtmlAlbum - >>write
|
||||
19:06:41,303 DEBUG fr.ensim.xml.deezer.stax.HtmlAlbum - <<write
|
||||
19:06:41,742 DEBUG fr.ensim.xml.deezer.Main - <<main
|
Loading…
x
Reference in New Issue
Block a user