Commit 8885baa7a96c65ae0cc92b8460a89e3406081982
1 parent
cfb7213e
Navegador HTTP funcional 100% :DDDDD
Showing
2 changed files
with
38 additions
and
74 deletions
src/com/upc/pbe/upcnews/Directoris.java
... | ... | @@ -15,6 +15,7 @@ import android.widget.ArrayAdapter; |
15 | 15 | import android.widget.ListView; |
16 | 16 | import android.widget.TextView; |
17 | 17 | import android.widget.AdapterView.OnItemClickListener; |
18 | +import android.widget.Toast; | |
18 | 19 | |
19 | 20 | public class Directoris extends Activity implements OnItemClickListener |
20 | 21 | { |
... | ... | @@ -77,60 +78,17 @@ public class Directoris extends Activity implements OnItemClickListener |
77 | 78 | public void onItemClick(AdapterView<?> parent, View view, int position, long id) |
78 | 79 | { |
79 | 80 | String path = ((TextView)view).getText().toString(); |
80 | - if(!path.startsWith("http://")) | |
81 | + if(path.endsWith(".m3u8")) | |
81 | 82 | { |
82 | - currentFolder += path; | |
83 | - } | |
84 | - else | |
85 | - { | |
86 | - currentFolder = path; | |
87 | - } | |
88 | - showResources(); | |
89 | - } | |
90 | - | |
91 | - public void showResources() | |
92 | - { | |
93 | - ArrayList<String> entries = parser.parse(d.doInBackground(currentFolder)); | |
94 | - this.createEntries(entries); | |
95 | - } | |
96 | - | |
97 | - /*public void buttonClicked(Button b) | |
98 | - { | |
99 | - | |
100 | - // Descarrega de la p�gina HTML del directori i busqueda d'un .m3u8 en | |
101 | - // ella | |
102 | - Log.d(TAG, "Click on " + b.getText()); | |
103 | - String path = b.getText().toString(); | |
104 | - if (path.equals("<Current Folder>")) | |
105 | - { | |
106 | - path = ""; | |
107 | - } | |
108 | - path += "/"; | |
109 | - d = new Descarrega(); | |
110 | - String str = d.doInBackground(url + "/" + path); | |
111 | - HTMLParser pars = new HTMLParser(); | |
112 | - | |
113 | - String urlvideo = pars.findvideo(str, url + "/" + path); | |
114 | - Log.d(TAG, urlvideo); | |
115 | - | |
116 | - // Descarrega de l'arxiu .m3u8 (si existeix) i parseig | |
117 | - if (urlvideo.equalsIgnoreCase("No s'ha trobat")) | |
118 | - { | |
119 | - Toast.makeText(this, "The directory " + b.getText() | |
120 | - + " does not contain any '.m3u8' file", Toast.LENGTH_LONG).show(); | |
121 | - } | |
122 | - else | |
123 | - { | |
124 | - d = new Descarrega(); | |
125 | - String m3u8 = d.doInBackground(urlvideo); | |
126 | - Log.d(TAG, m3u8); | |
127 | - Parser p = new Parser(urlvideo.substring(0, urlvideo.lastIndexOf("/") + 1), this); | |
83 | + path = currentFolder + path; | |
84 | + String playlist = d.doInBackground(path); | |
85 | + Parser p = new Parser(path.substring(0, path.lastIndexOf("/") + 1), this); | |
128 | 86 | try |
129 | 87 | { |
130 | - ArrayList<ParentList> m3u8parsed = p.parseFile(m3u8); | |
131 | - Log.d(TAG, "parsed completed"); | |
132 | - HLS h = new HLS(m3u8parsed); | |
133 | - h.start(); | |
88 | + ArrayList<ParentList> m3u8parsed = p.parseFile(playlist); | |
89 | + Log.d(TAG, "parsing completed"); | |
90 | + //HLS h = new HLS(m3u8parsed); | |
91 | + //h.start(); | |
134 | 92 | |
135 | 93 | } |
136 | 94 | catch (ErrorException e) |
... | ... | @@ -149,14 +107,26 @@ public class Directoris extends Activity implements OnItemClickListener |
149 | 107 | Log.d(TAG, e.getMessage()); |
150 | 108 | } |
151 | 109 | |
152 | - }*/ | |
153 | - | |
154 | - /* | |
155 | - * String urlvid = null; ((UpcApp) getApplication()).setDesc(urlvid); | |
156 | - * | |
157 | - * startActivity(new Intent(this, VideoActivity.class)); | |
158 | - | |
159 | - }*/ | |
110 | + } | |
111 | + else //Se trata de una carpeta | |
112 | + { | |
113 | + if(!path.startsWith("http://")) | |
114 | + { | |
115 | + currentFolder += path; | |
116 | + } | |
117 | + else | |
118 | + { | |
119 | + currentFolder = path; | |
120 | + } | |
121 | + showResources(); | |
122 | + } | |
123 | + } | |
124 | + | |
125 | + public void showResources() | |
126 | + { | |
127 | + ArrayList<String> entries = parser.parse(d.doInBackground(currentFolder)); | |
128 | + this.createEntries(entries); | |
129 | + } | |
160 | 130 | |
161 | 131 | public boolean onKeyDown(int keyCode, KeyEvent event) { |
162 | 132 | if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) | ... | ... |
src/com/upc/pbe/upcnews/HTMLParser.java
... | ... | @@ -24,7 +24,7 @@ public class HTMLParser |
24 | 24 | resources.clear(); |
25 | 25 | } |
26 | 26 | parseDirectories(resources,code); |
27 | - //parseFiles(resources,code); | |
27 | + parseFiles(resources,code); | |
28 | 28 | return resources; |
29 | 29 | } |
30 | 30 | |
... | ... | @@ -69,13 +69,9 @@ public class HTMLParser |
69 | 69 | } |
70 | 70 | } |
71 | 71 | |
72 | - /*public ArrayList<String> findvideo(String code, String direccio) | |
72 | + public void parseFiles(ArrayList<String> resources, String code) | |
73 | 73 | { |
74 | - // Donada la direcci� del directori i el html del mateix, troba l'arxiu | |
75 | - // .m3u8 i retorna | |
76 | - // la url directe. | |
77 | 74 | String[] split = code.split("\n"); |
78 | - | |
79 | 75 | for (int i = 0; i < split.length; i++) |
80 | 76 | { |
81 | 77 | while (split[i].startsWith("<!--")) |
... | ... | @@ -90,20 +86,18 @@ public class HTMLParser |
90 | 86 | { |
91 | 87 | if (split[i].contains("href=")) //Esto tiene buena pinta |
92 | 88 | { |
93 | - String dirpath = split[i].substring(split[i].indexOf("href=\"") + 6); //Eliminamos morralla del principio. | |
94 | - dirpath = dirpath.substring(0, dirpath.indexOf("\"")); //Quitamos la morralla del final, nos queda el valor de href sólo. | |
95 | - if(dirpath.lastIndexOf("/") != -1) //Mira que sea una carpeta y no un fichero suelto. | |
89 | + String filepath = split[i].substring(split[i].indexOf("href=\"") + 6); //Eliminamos morralla del principio. | |
90 | + filepath = filepath.substring(0, filepath.indexOf("\"")); //Quitamos la morralla del final, nos queda el valor de href sólo. | |
91 | + if(filepath.endsWith(".m3u8")) //Mira que sea una lista. | |
96 | 92 | { |
97 | - dirpath = dirpath.substring(0,dirpath.lastIndexOf("/")+1); //Elimina parte que no es carpeta | |
98 | - if(!directoris.contains(dirpath)) //No seamos repetitivos | |
93 | + if(!resources.contains(filepath)) //No seamos repetitivos | |
99 | 94 | { |
100 | - directoris.add(dirpath); | |
95 | + resources.add(filepath); | |
101 | 96 | } |
102 | - Log.d(TAG, "DIRECTORY FOUND: " + dirpath); | |
97 | + Log.d(TAG, "PLAYLIST FOUND: " + filepath); | |
103 | 98 | } |
104 | 99 | } |
105 | 100 | } |
106 | 101 | } |
107 | - return "No s'ha trobat"; | |
108 | - }*/ | |
102 | + } | |
109 | 103 | } | ... | ... |