From fbd7500eb89adcd4a5df6845aa43c4c352b22e7a Mon Sep 17 00:00:00 2001 From: Nadahar Date: Mon, 10 Aug 2015 04:24:07 +0200 Subject: [PATCH] - Updated calls to deprecated objects - Removed unused imports - Created .gitignore --- .gitignore | 3 + src/net/sharkhunter/gmusic/Gm.java | 125 +++++++++--------- .../sharkhunter/gmusic/GmByteInputStream.java | 26 ++-- src/net/sharkhunter/gmusic/GmPMSPlaylist.java | 42 +++--- src/net/sharkhunter/gmusic/GmPMSSong.java | 38 +++--- src/net/sharkhunter/gmusic/GmRoot.java | 85 ++++++------ src/net/sharkhunter/gmusic/GmSong.java | 90 ++++++------- src/net/sharkhunter/gmusic/Gm_plugin.java | 15 +-- 8 files changed, 203 insertions(+), 221 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b120886 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +/bin/ +/.project +/.classpath diff --git a/src/net/sharkhunter/gmusic/Gm.java b/src/net/sharkhunter/gmusic/Gm.java index fb0c246..01e33ca 100644 --- a/src/net/sharkhunter/gmusic/Gm.java +++ b/src/net/sharkhunter/gmusic/Gm.java @@ -1,40 +1,33 @@ package net.sharkhunter.gmusic; import java.util.List; -import java.util.Random; -import java.util.UUID; import java.util.regex.Matcher; -import java.util.regex.Pattern; -import java.security.*; import java.net.*; import java.io.*; - import javax.net.ssl.HttpsURLConnection; - -import net.pms.PMS; - +import org.slf4j.LoggerFactory; import java.math.*; -import java.util.HashMap; public class Gm { + private static org.slf4j.Logger LOGGER = LoggerFactory.getLogger(Gm.class); // Public fields sort of configuration public String savePath; public static final int DefaultDisplayLimit=32; public static final int DefaultDownloadDelay=3000; private static final String agentString="Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 (.NET CLR 3.5.30729)"; private static final String MMagentString="Music Manager (1, 0, 24, 7712 - Windows)"; - + public int delay; public static int DisplayLimit; public static boolean zero_fill; - + // Fields private String token; private boolean save; // Generated fields - + public String initError; - + // Google music // Authentication URLs private static final String AUTH_URL = "https://www.google.com/accounts/ClientLogin"; @@ -43,15 +36,15 @@ public class Gm { private static final String TOKEN_URL = "https://www.google.com/accounts/TokenAuth"; // Main url private static final String BASE_URL = "https://play.google.com/music/"; - - + + private String auth; private String sid; private String lsid; - - + + // Constructors - + public Gm(String name,String pwd) { try { initError=null; @@ -68,7 +61,7 @@ public Gm(String name,String pwd) { conn.setInstanceFollowRedirects(true); conn.setRequestMethod("POST"); conn.setDoInput(true); - conn.setDoOutput(true); + conn.setDoOutput(true); conn.setRequestProperty("User-Agent",agentString); // Construct data String data="Email="+name+"&Passwd="+pwd+"&accountType=GOOGLE&service=sj"; @@ -90,7 +83,7 @@ public Gm(String name,String pwd) { conn =(HttpsURLConnection)url.openConnection(); conn.setRequestMethod("POST"); conn.setDoInput(true); - conn.setDoOutput(true); + conn.setDoOutput(true); conn.setRequestProperty("User-Agent",MMagentString); data="SID="+escape(sid)+"&LSID="+escape(lsid)+"&service=gaia"; page=doPost(conn,data); @@ -101,7 +94,7 @@ public Gm(String name,String pwd) { conn =(HttpsURLConnection)url.openConnection(); conn.setRequestMethod("GET"); conn.setDoInput(true); - conn.setDoOutput(true); + conn.setDoOutput(true); conn.setRequestProperty("User-Agent",MMagentString); page=fetchPage(conn); // finally get some more cookies @@ -109,7 +102,7 @@ public Gm(String name,String pwd) { conn =(HttpsURLConnection)url.openConnection(); conn.setRequestMethod("GET"); conn.setDoInput(true); - conn.setDoOutput(true); + conn.setDoOutput(true); conn.setRequestProperty("User-Agent",MMagentString); } catch (Exception e) { @@ -117,44 +110,44 @@ public Gm(String name,String pwd) { return ; } } - + private String escape(String str) { try { return URLEncoder.encode(str,"UTF-8"); } catch (Exception e) { - + } return str; - } + } // JSON functions - + public String jsonString(String key,String val) { return "\""+key+"\":\""+val+"\""; } - + public String jsonBlock(String name,String data) { return "\""+name+"\":{"+data+"}"; } - + private String deJsonify(String str) { return str.replaceAll("\"",""); } - + public String jsonHeader(String param) { return "json={"+param+"}"; } - + private String doPost(URLConnection connection,String q) { try { //Send request - + DataOutputStream wr = new DataOutputStream ( connection.getOutputStream()); wr.writeBytes(q); wr.flush (); wr.close (); - + //Get Response InputStream is = connection.getInputStream(); @@ -173,15 +166,15 @@ private String doPost(URLConnection connection,String q) { return ""; } } - + // Used to get inital gws page to retrive session id private String fetchPage(URLConnection connection) { try { connection.setRequestProperty("User-Agent",agentString); connection.setDoInput(true); - connection.setDoOutput(true); - + connection.setDoOutput(true); + //Send request /*DataOutputStream wr = new DataOutputStream ( connection.getOutputStream ()); @@ -189,11 +182,11 @@ private String fetchPage(URLConnection connection) { wr.flush (); wr.close ();*/ - //Get Response + //Get Response InputStream is = connection.getInputStream(); BufferedReader rd = new BufferedReader(new InputStreamReader(is)); String line; - StringBuffer response = new StringBuffer(); + StringBuffer response = new StringBuffer(); while((line = rd.readLine()) != null) { response.append(line); response.append('\r'); @@ -206,18 +199,18 @@ private String fetchPage(URLConnection connection) { return ""; } } - + // Convert the hash to a hex string private static String toHex(byte[] bytes) { BigInteger bi = new BigInteger(1, bytes); return String.format("%0" + (bytes.length << 1) + "x", bi); } - - public String request(String param,String method) { + + public String request(String param,String method) { return request(param,method,"services/"); } - + public String request(String param,String method,String endpoint) { try { URL url=new URL(calcUrl(method,endpoint,param)); @@ -237,14 +230,14 @@ public String request(String param,String method,String endpoint) { return deJsonify(page); } catch (Exception e) { - PMS.debug("request page "+e); + LOGGER.debug("{GMusic} Request page exception: {}", e); return ""; } } - - public String getCookie(String cookie) { + + public String getCookie(String cookie) { CookieManager manager=(CookieManager) CookieHandler.getDefault(); - CookieStore cookieJar = manager.getCookieStore(); + CookieStore cookieJar = manager.getCookieStore(); List cookies = cookieJar.getCookies(); for(HttpCookie c : cookies) @@ -252,7 +245,7 @@ public String getCookie(String cookie) { return c.getValue(); return ""; } - + private String calcUrl(String method,String endpoint,String param) { String xt; if(method.equals("play")) @@ -261,12 +254,12 @@ private String calcUrl(String method,String endpoint,String param) { xt="xt="+getCookie("xt"); return BASE_URL+endpoint+method+"?u=0&"+xt+(param.length()==0?"":"&"+param); } - + private String ucFirst(String str) { char first=str.charAt(0); return String.valueOf(first).toUpperCase()+str.substring(1); } - + public String search(String str) { return search(str,"Songs"); } @@ -274,7 +267,7 @@ public String search(String str,String type) { String param=jsonString("query",str)+","+jsonString("type",ucFirst(type)); return request(param,"getResultsFromSearch"); } - + public String tinySearch(String str) { str=str.replace(' ', '+'); try { @@ -288,11 +281,11 @@ public String tinySearch(String str) { return ""; } } - + public static String[] jsonSplit(String str) { return str.split(","); } - + public static String getField(String[] list,String field) { for(int i=0;im.groupCount()) return ""; return m.group(i+1); @@ -322,32 +315,32 @@ public static String getField(Matcher m,String[] order,String field) { } return ""; } - + public void setPath(String path) { this.savePath=path; } - + public boolean saveSong() { return save; } - + public void setSave(boolean b) { save=b; } - + // Cover handling public String cover(String dataURL) { return "http:"+dataURL; } - + public void error(String msg) { - PMS.minimal(msg); + LOGGER.error("{GMusic} {}", msg); } - + public static boolean more(int i) { return (Gm.DisplayLimit!=0)&&(i>Gm.DisplayLimit); } - + public static void main(String args[]) { int i; Gm g =new Gm("",""); @@ -374,9 +367,9 @@ public static void main(String args[]) { String apage=g.request("", "loadalbums"); System.out.println("apage "+apage); String rpage=g.request("", "loadartists"); - System.out.println("rpage "+rpage); + System.out.println("rpage "+rpage); System.out.println("all done"); - + } - + } \ No newline at end of file diff --git a/src/net/sharkhunter/gmusic/GmByteInputStream.java b/src/net/sharkhunter/gmusic/GmByteInputStream.java index 03310a3..83d7791 100644 --- a/src/net/sharkhunter/gmusic/GmByteInputStream.java +++ b/src/net/sharkhunter/gmusic/GmByteInputStream.java @@ -1,16 +1,14 @@ package net.sharkhunter.gmusic; import java.io.*; -import java.util.Arrays; - -import net.pms.PMS; +import org.slf4j.LoggerFactory; public class GmByteInputStream extends ByteArrayInputStream{ - + + private static org.slf4j.Logger LOGGER = LoggerFactory.getLogger(GmByteInputStream.class); private ByteArrayOutputStream out; private int MAX_BLOCK=15; - private byte[] zeros; - + public GmByteInputStream(ByteArrayOutputStream out,int expLen) { super(out.toByteArray()); this.out=out; @@ -19,18 +17,18 @@ public GmByteInputStream(ByteArrayOutputStream out,int expLen) { Arrays.fill(zeros,(byte)0); }*/ } - + public boolean incBuf(byte[] newBuf) { int old_size=this.count; this.buf=newBuf; this.count=newBuf.length; return old_size!=this.count; } - + private void block() { int i=0; while(icount) if(!incBuf(out.toByteArray())) block(); } - + public int read() { block(1); return super.read(); } - + public int read (byte[] b, int off, int len) { block(len); return super.read(b, off, len); diff --git a/src/net/sharkhunter/gmusic/GmPMSPlaylist.java b/src/net/sharkhunter/gmusic/GmPMSPlaylist.java index 588279c..de41523 100644 --- a/src/net/sharkhunter/gmusic/GmPMSPlaylist.java +++ b/src/net/sharkhunter/gmusic/GmPMSPlaylist.java @@ -1,26 +1,24 @@ package net.sharkhunter.gmusic; -import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; -import java.io.FileReader; import java.io.FileWriter; import java.io.InputStream; - -import net.pms.PMS; +import org.slf4j.LoggerFactory; import net.pms.dlna.virtual.VirtualFolder; public class GmPMSPlaylist extends VirtualFolder { + private static org.slf4j.Logger LOGGER = LoggerFactory.getLogger(GmPMSPlaylist.class); private GmPlaylist playlist; private boolean useFile; /*private GmAlbum album; private GmArtist artist;*/ - + public GmPMSPlaylist(GmPlaylist playlist) { this(playlist,false); } - + public GmPMSPlaylist(GmPlaylist playlist,boolean useFile) { super(playlist.getName(),null); this.playlist=playlist; @@ -28,7 +26,7 @@ public GmPMSPlaylist(GmPlaylist playlist,boolean useFile) { /*album=null; artist=null;*/ } - + /* public GmPMSPlaylist(GsAlbum a) { super(a.getAlbum(),null); playlist=null; @@ -36,7 +34,7 @@ public GmPMSPlaylist(GmPlaylist playlist,boolean useFile) { album=a; artist=null; } - + public GmPMSPlaylist(GsArtist a) { super(a.getArtist(),null); playlist=null; @@ -44,7 +42,7 @@ public GmPMSPlaylist(GsArtist a) { album=null; artist=a; }*/ - + public String getName() { /*if(album!=null) return album.getAlbum(); @@ -52,11 +50,11 @@ public String getName() { return artist.getArtist();*/ return playlist.getName(); } - + public String getSystemName() { return getName(); } - + private void savePlaylist(GmSong[] song,File f) { try { BufferedWriter wr=new BufferedWriter(new FileWriter(f)); @@ -70,11 +68,11 @@ private void savePlaylist(GmSong[] song,File f) { wr.close(); } catch (Exception e) { - PMS.debug("error writing playlist "+e); + LOGGER.debug("{GMusic} Error writing playlist: {}", e); return; } } - + /*private GmSong[] readFile(File f) { if(!f.exists()) return null; @@ -108,7 +106,7 @@ private void savePlaylist(GmSong[] song,File f) { return null; } }*/ - + private void aDisc(GmSong[] songs) { int j=0; for(int i=0;i { private String coverURL; private String plays; private int trackNo; - + // Internals private String streamURL; private OutputStream[] outStream; private InputStream inStream; - + private Gm parent; private boolean streamFetched; private long length; - - + + public GmSong(String parseData,Gm parent) { this.Ok=false; @@ -61,14 +57,14 @@ public GmSong(String parseData,Gm parent) { this.parent=parent; this.streamFetched=false; this.length=0; - this.Ok=true; + this.Ok=true; } - + public String toString() { return "Song: "+this.name+" Album: "+this.album+" Artist: "+this.artist+ " SongId: "+this.id+" trackNum "+this.trackNo; } - + public void fetchStreamData() { if(this.streamFetched) // No need to fetch it twice return; @@ -82,7 +78,7 @@ public void fetchStreamData() { streamURL=kv[1].replaceAll("\\}", "").trim(); streamFetched=true; } - + public static GmSong[] parseSongs(String data,Gm parent) { int size=0; int pos=0; @@ -116,23 +112,23 @@ public static GmSong[] parseSongs(String data,Gm parent) { } return res; } - + public final void run() { retriveData(this.outStream,this.inStream); } - + private void retriveData(OutputStream[] os,InputStream is) { try { - //Get Response + //Get Response byte[] buf=new byte[1]; for(;;) { if(is.read(buf,0,1)==-1) break; - for(int i=0;is.trackNo) @@ -287,5 +283,5 @@ public int compareTo(Object o) { } throw new ClassCastException(); } - + } diff --git a/src/net/sharkhunter/gmusic/Gm_plugin.java b/src/net/sharkhunter/gmusic/Gm_plugin.java index dbb0904..635cce9 100644 --- a/src/net/sharkhunter/gmusic/Gm_plugin.java +++ b/src/net/sharkhunter/gmusic/Gm_plugin.java @@ -1,25 +1,20 @@ package net.sharkhunter.gmusic; -import java.awt.GridLayout; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; - -import net.pms.Messages; import net.pms.PMS; import net.pms.configuration.Build; import net.pms.dlna.DLNAResource; import net.pms.external.AdditionalFolderAtRoot; - import javax.swing.*; - import org.apache.commons.configuration.ConfigurationException; import org.apache.commons.lang.StringUtils; +import org.slf4j.LoggerFactory; public class Gm_plugin implements AdditionalFolderAtRoot { + private static org.slf4j.Logger LOGGER = LoggerFactory.getLogger(Gm_plugin.class); private GmRoot gmRoot; public Gm_plugin() { @@ -29,7 +24,7 @@ public Gm_plugin() { gmRoot.init(); } catch (Exception e) { - PMS.debug("exp "+e) ; + LOGGER.debug("{GMusic} Exception: {}", e); } } @@ -48,7 +43,7 @@ public String name() { public JComponent config() { return null; } - + private static void writeCred(String path) throws IOException { File f=new File(path); BufferedWriter wr=new BufferedWriter(new FileWriter(f,true)); @@ -57,7 +52,7 @@ private static void writeCred(String path) throws IOException { wr.flush(); wr.close(); } - + public static void postInstall() { String cPath=GmRoot.credPath(); if(StringUtils.isEmpty(cPath)) {