Fleker / CumulusTV

Android TV Live Channel Plugin with user-entered stream files
MIT License
185 stars 72 forks source link

[M3u Parser] Handle occurrences with odd spacing #249

Closed Fleker closed 7 years ago

Fleker commented 7 years ago
01-31 02:03:06.592 7968-8048/com.felkertech.n.cumulustv D/M3uParser: #EXTINF:-1 tvg-id="" tvg-name="TV 8,5 TR" tvg-logo="png" group-title="Turkey",TV 8
01-31 02:03:06.593 7968-8048/com.felkertech.n.cumulustv D/M3uParser: tvg-id="" tvg-name="TV 8,5 TR" tvg-logo="png" group-title="Turkey",TV 8
01-31 02:03:06.593 7968-8048/com.felkertech.n.cumulustv D/M3uParser: tvg-name="TV 8,5 TR" tvg-logo="png" group-title="Turkey",TV 8
01-31 02:03:06.593 7968-8048/com.felkertech.n.cumulustv D/M3uParser: tvg-logo="png" group-title="Turkey",TV 8
01-31 02:03:06.593 7968-8048/com.felkertech.n.cumulustv D/M3uParser: group-title="Turkey",TV 8
01-31 02:03:06.593 7968-8048/com.felkertech.n.cumulustv D/M3uParser: TV 8

                                                                 --------- beginning of crash
01-31 02:03:06.594 7968-8048/com.felkertech.n.cumulustv E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #1
                                                                      Process: com.felkertech.n.cumulustv, PID: 7968
                                                                      java.lang.RuntimeException: An error occurred while executing doInBackground()
                                                                          at android.os.AsyncTask$3.done(AsyncTask.java:318)
                                                                          at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354)
                                                                          at java.util.concurrent.FutureTask.setException(FutureTask.java:223)
                                                                          at java.util.concurrent.FutureTask.run(FutureTask.java:242)
                                                                          at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243)
                                                                          at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
                                                                          at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
                                                                          at java.lang.Thread.run(Thread.java:761)
                                                                       Caused by: java.lang.StringIndexOutOfBoundsException: Parsing error: 'TV 8' does not fit into range 5 - 4 for line #EXTINF:-1 tvg-id="" tvg-name="TV 8,5 TR" tvg-logo="png" group-title="Turkey",TV 8,5 TR
                                                                          at com.felkertech.cumulustv.fileio.M3uParser.parse(M3uParser.java:107)
                                                                          at com.felkertech.cumulustv.activities.FileIoTestActivity.parse(FileIoTestActivity.java:152)
                                                                          at com.felkertech.cumulustv.activities.FileIoTestActivity.access$100(FileIoTestActivity.java:38)
                                                                          at com.felkertech.cumulustv.activities.FileIoTestActivity$2$3.onFileLoaded(FileIoTestActivity.java:135)
                                                                          at com.felkertech.cumulustv.fileio.HttpFileParser$DownloadWebpageTask.doInBackground(HttpFileParser.java:34)
                                                                          at com.felkertech.cumulustv.fileio.HttpFileParser$DownloadWebpageTask.doInBackground(HttpFileParser.java:27)
                                                                          at android.os.AsyncTask$2.call(AsyncTask.java:304)
                                                                          at java.util.concurrent.FutureTask.run(FutureTask.java:237)
                                                                          at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243) 
                                                                          at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) 
                                                                          at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) 
                                                                          at java.lang.Thread.run(Thread.java:761) 
Fleker commented 7 years ago

The TV 8,5 TR at the end is causing issues. A fix is unclear.