From 8d731f284d482c5577b71db50fd44c72e3ea0f91 Mon Sep 17 00:00:00 2001 From: aj Date: Thu, 29 Mar 2018 14:29:04 -0700 Subject: [PATCH] wiki for tracks working --- .../src/sarsoo/fmframework/gui/TrackView.java | 9 +- .../src/sarsoo/fmframework/music/Track.java | 2 + .../src/sarsoo/fmframework/parser/Parser.java | 86 ++++++++++++------- 3 files changed, 62 insertions(+), 35 deletions(-) diff --git a/fmframework/src/sarsoo/fmframework/gui/TrackView.java b/fmframework/src/sarsoo/fmframework/gui/TrackView.java index 8f1df16..a3fdc15 100644 --- a/fmframework/src/sarsoo/fmframework/gui/TrackView.java +++ b/fmframework/src/sarsoo/fmframework/gui/TrackView.java @@ -44,15 +44,16 @@ public class TrackView extends JFrame { buttons2.setLayout(new FlowLayout()); buttons.add(open); - if (track.getWiki() != null) - buttons.add(viewWiki); if (track.getMbid() != null) buttons.add(musicBrainz); + buttons2.add(viewArtist); if (track.getAlbum() != null) buttons2.add(viewAlbum); - if (track.getArtist() != null) - buttons2.add(genius); + if (track.getWiki() != null) + buttons2.add(viewWiki); +// if (track.getArtist() != null) + buttons.add(genius); NumberFormat numberFormat = NumberFormat.getNumberInstance(Locale.US); diff --git a/fmframework/src/sarsoo/fmframework/music/Track.java b/fmframework/src/sarsoo/fmframework/music/Track.java index 9724d81..6410a7a 100644 --- a/fmframework/src/sarsoo/fmframework/music/Track.java +++ b/fmframework/src/sarsoo/fmframework/music/Track.java @@ -6,6 +6,7 @@ import org.w3c.dom.Document; import sarsoo.fmframework.gui.TrackView; import sarsoo.fmframework.net.Network; +import sarsoo.fmframework.net.TestCall; import sarsoo.fmframework.parser.Parser; public class Track extends FMObj{ @@ -29,6 +30,7 @@ public class Track extends FMObj{ public static Track getTrack(String name, String artist, String username) { String url = Network.getTrackInfoUrl(name, artist, username); + TestCall.test(url); Document response = Network.getResponse(url); Track track = Parser.parseTrack(response); return track; diff --git a/fmframework/src/sarsoo/fmframework/parser/Parser.java b/fmframework/src/sarsoo/fmframework/parser/Parser.java index 9b1a60d..ffc7993 100644 --- a/fmframework/src/sarsoo/fmframework/parser/Parser.java +++ b/fmframework/src/sarsoo/fmframework/parser/Parser.java @@ -50,24 +50,36 @@ public class Parser { Wiki wiki = null; NodeList wikiNodeList = doc.getElementsByTagName("wiki"); - if (wikiNodeList.item(0) != null) { - String date = wikiNodeList.item(0).getFirstChild().getTextContent(); + if (wikiNodeList.getLength() != 0) { + Node wikiNode = wikiNodeList.item(0); + NodeList wikiContents = wikiNode.getChildNodes(); - Node summaryNode = wikiNodeList.item(0).getFirstChild().getNextSibling(); - while (!(summaryNode instanceof Element) && summaryNode != null) { - summaryNode = summaryNode.getNextSibling(); + String date = null; +// String summary = null; + String content = null; + + int counter; + Node node; + for (counter = 0; counter < wikiContents.getLength(); counter++) { + node = wikiContents.item(counter); + + if (node.getNodeName().equals("published")) { + System.out.println(node.getNodeName() + node.getTextContent()); + date = node.getTextContent(); + } +// if (node.getNodeName().equals("summary")) { +// System.out.println(node.getNodeName() + node.getTextContent()); +// summary = node.getTextContent(); +// } + if (node.getNodeName().equals("content")) { + System.out.println(node.getNodeName() + node.getTextContent()); + content = node.getTextContent(); + } } - String summary = summaryNode.getTextContent(); - // System.out.println(summary); - Node contentNode = summaryNode.getNextSibling(); - while (!(contentNode instanceof Element) && contentNode != null) { - contentNode = contentNode.getNextSibling(); - } - String content = contentNode.getTextContent(); - // System.out.println(content); - - wiki = new Wiki(date, summary, content); + if (date != null && content != null) +// System.out.println("wiki init"); + wiki = new Wiki(date, null, content); } Album album = new Album(name, url, mbid, artistObj, listeners, playCount, userPlayCount, wiki); @@ -198,27 +210,39 @@ public class Parser { Wiki wiki = null; NodeList wikiNodeList = doc.getElementsByTagName("wiki"); - if (wikiNodeList.item(0) != null) { - String date = wikiNodeList.item(0).getFirstChild().getTextContent(); + if (wikiNodeList.getLength() != 0) { + Node wikiNode = wikiNodeList.item(0); + NodeList wikiContents = wikiNode.getChildNodes(); - Node summaryNode = wikiNodeList.item(0).getFirstChild().getNextSibling(); - while (!(summaryNode instanceof Element) && summaryNode != null) { - summaryNode = summaryNode.getNextSibling(); + String date = null; +// String summary = null; + String content = null; + + int counter; + Node node; + for (counter = 0; counter < wikiContents.getLength(); counter++) { + node = wikiContents.item(counter); + + if (node.getNodeName().equals("published")) { + System.out.println(node.getNodeName() + node.getTextContent()); + date = node.getTextContent(); + } +// if (node.getNodeName().equals("summary")) { +// System.out.println(node.getNodeName() + node.getTextContent()); +// summary = node.getTextContent(); +// } + if (node.getNodeName().equals("content")) { + System.out.println(node.getNodeName() + node.getTextContent()); + content = node.getTextContent(); + } } - String summary = summaryNode.getTextContent(); - // System.out.println(summary); - Node contentNode = summaryNode.getNextSibling(); - while (!(contentNode instanceof Element) && contentNode != null) { - contentNode = contentNode.getNextSibling(); - } - String content = contentNode.getTextContent(); - // System.out.println(content); - - wiki = new Wiki(date, summary, content); + if (date != null && content != null) +// System.out.println("wiki init"); + wiki = new Wiki(date, null, content); } - Track track = new Track(name, url, mbid, artistObj, listeners, playCount, userPlayCount, null); + Track track = new Track(name, url, mbid, artistObj, listeners, playCount, userPlayCount, wiki); return track; } else { return null;