View Javadoc

1   package org.rpi.radio.parsers;
2   
3   import java.io.BufferedReader;
4   import java.io.IOException;
5   import java.io.InputStreamReader;
6   import java.net.MalformedURLException;
7   import java.net.URL;
8   import java.net.URLConnection;
9   import java.util.LinkedList;
10  
11  import org.apache.log4j.Logger;
12  
13  public class ASXParser {
14  	
15  	private Logger log = Logger.getLogger(ASXParser.class);
16  	
17  	public LinkedList<String> getStreamingUrl(String url) {
18  		LinkedList<String> murls = null;
19  		try {
20  			return getStreamingUrl(getConnection(url));
21  		} catch (MalformedURLException e) {
22  			log.error(e);
23  		} catch (IOException e) {
24  			log.error(e);
25  		}
26  		return murls;
27  	}
28  
29  	public LinkedList<String> getStreamingUrl(URLConnection conn) {		
30  		
31  		final BufferedReader br;
32  		String murl = null;
33  		LinkedList<String> murls = null;
34  		murls = new LinkedList<String>();
35  		try {
36  			br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
37  			
38  			while (true) {
39  				try {
40  					String line = br.readLine();
41  					if (line == null) {
42  						break;
43  					}
44  					murl = parseLine(line);
45  					if (murl != null && !murl.equals("")) {
46  						murls.add(murl);
47  					}
48  				} catch (IOException e) {
49  					log.error(e);
50  				}
51  			}
52  		} catch (MalformedURLException e) {
53  			log.error(e);
54  		} catch (IOException e) {
55  			log.error(e);
56  		}
57  		//murls.add(conn.getURL().toString());
58  		return murls;
59  	}
60  
61  	private String parseLine(String line) {
62  		if (line == null) {
63  			return null;
64  		}
65  		String trimmed = line.trim();
66  		if (trimmed.toLowerCase().startsWith("<ref href=\"")) {
67  			trimmed = trimmed.substring(11);
68  			//trimmed = trimmed.replace("<ref href=\"", "");
69  			trimmed = trimmed.replace("/>", "").trim();
70  			if (trimmed.endsWith("\"")) {
71  				trimmed = trimmed.replace("\"", "");
72  				log.debug("ASX: " + trimmed);
73  				return trimmed;
74  			}
75  		}
76  		return "";
77  	}
78  	
79  	private URLConnection getConnection(String url) throws MalformedURLException, IOException
80  	{
81  		URLConnection mUrl = new URL(url).openConnection();
82  		return mUrl;
83  	}
84  
85  }