~ubuntu-branches/ubuntu/vivid/mediathekview/vivid

« back to all changes in this revision

Viewing changes to src/msearch/filmeSuchen/sender/MediathekArte_de.java

  • Committer: Package Import Robot
  • Author(s): Markus Koschany
  • Date: 2014-10-24 12:49:46 UTC
  • mfrom: (4.1.12 sid)
  • Revision ID: package-import@ubuntu.com-20141024124946-rhnmiwad6apojoxt
Tags: 7.1-1
* Imported Upstream version 7.1.
* Declare compliance with Debian Policy 3.9.6.
* Update VCS-Browser field to new canonical address.
* Update man pages timestamp.
* Update debian/copyright for new release.
* Add README.source.
* Rename modify-ant-build-system.patch to build.patch and update it for 7.1.

Show diffs side-by-side

added added

removed removed

Lines of Context:
31
31
 
32
32
public class MediathekArte_de extends MediathekReader implements Runnable {
33
33
 
34
 
    public static final String SENDER_ARTE_DE = "ARTE.DE";
35
 
    public static final String SENDER_ARTE_FR = "ARTE.FR";
 
34
    public final static String SENDERNAME = "ARTE.DE";
 
35
 
36
36
    // "Freitag, 02. August um 12:41 Uhr"
37
37
    SimpleDateFormat sdfZeit = new SimpleDateFormat("HH:mm:ss");
38
38
    SimpleDateFormat sdfDatum = new SimpleDateFormat("dd.MM.yyyy");
39
39
    String URL_ARTE = "http://www.arte.tv/papi/tvguide/epg/schedule/D/L3/";
40
40
    String URL_CONCERT = "http://concert.arte.tv/de/videos/all";
 
41
    String URL_CONCERT_NOT_CONTAIN = "-STF";
41
42
 
42
43
    public MediathekArte_de(MSFilmeSuchen ssearch, int startPrio) {
43
 
        super(ssearch, /* name */ SENDER_ARTE_DE, /* threads */ 2, /* urlWarten */ 500, startPrio);
 
44
        super(ssearch, SENDERNAME,/* threads */ 2, /* urlWarten */ 500, startPrio);
 
45
        getUrlIo.setTimeout(15000);
 
46
    }
 
47
 
 
48
    public MediathekArte_de(MSFilmeSuchen ssearch, int startPrio, String name) {
 
49
        super(ssearch, name,/* threads */ 2, /* urlWarten */ 500, startPrio);
44
50
        getUrlIo.setTimeout(15000);
45
51
    }
46
52
 
67
73
            for (int t = 0; t < maxThreadLaufen; ++t) {
68
74
                //new Thread(new ThemaLaden()).start();
69
75
                Thread th = new Thread(new ThemaLaden());
70
 
                th.setName(nameSenderMReader + t);
 
76
                th.setName(sendername + t);
71
77
                th.start();
72
78
            }
73
79
        }
75
81
 
76
82
    private void addConcert() {
77
83
        Thread th = new Thread(new ConcertLaden(0, 20));
78
 
        th.setName(nameSenderMReader + "Concert-0");
 
84
        th.setName(sendername + "Concert-0");
79
85
        th.start();
80
86
        th = new Thread(new ConcertLaden(20, 40));
81
 
        th.setName(nameSenderMReader + "Concert-1");
 
87
        th.setName(sendername + "Concert-1");
82
88
        th.start();
83
89
    }
84
90
 
88
94
        String out1, out2, u;
89
95
        SimpleDateFormat formatter1 = new SimpleDateFormat("yyyy-MM-dd");
90
96
        SimpleDateFormat formatter2 = new SimpleDateFormat("yyyy-M-dd");
91
 
        for (int i = 1; i <= 14; ++i) {
 
97
        for (int i = 0; i <= 14; ++i) {
92
98
            out1 = formatter1.format(new Date(d.getTime() - i * (1000 * 60 * 60 * 24)));
93
99
            out2 = formatter2.format(new Date(d.getTime() - i * (1000 * 60 * 60 * 24)));
94
100
            u = URL_ARTE + out1 + "/" + out2 + ".json";
96
102
        }
97
103
    }
98
104
 
99
 
    class ConcertLaden implements Runnable {
 
105
    private class ConcertLaden implements Runnable {
100
106
 
101
107
        private final int start, anz;
102
108
        MSStringBuilder seite1 = new MSStringBuilder(MSConst.STRING_BUFFER_START_BUFFER);
119
125
        }
120
126
 
121
127
        private void addConcert(int start, int anz) {
 
128
            final String THEMA = "Concert";
122
129
            final String MUSTER_START = "<div class=\"header-article \">";
123
130
            String urlStart;
124
131
            meldungAddMax(anz);
129
136
                    urlStart = URL_CONCERT;
130
137
                }
131
138
                meldungProgress(urlStart);
132
 
                seite1 = getUrlIo.getUri_Utf(nameSenderMReader, urlStart, seite1, "");
 
139
                seite1 = getUrlIo.getUri_Utf(sendername, urlStart, seite1, "");
133
140
                int pos1 = 0;
134
 
                String url, urlWeb, titel, urlHd, urlLow, urlNormal, beschreibung, datum, dauer;
 
141
                String url, urlWeb, titel, urlHd = "", urlLow = "", urlNormal = "", beschreibung, datum, dauer;
135
142
                while (!MSConfig.getStop() && (pos1 = seite1.indexOf(MUSTER_START, pos1)) != -1) {
 
143
                    urlHd = "";
 
144
                    urlLow = "";
 
145
                    urlNormal = "";
136
146
                    pos1 += MUSTER_START.length();
137
147
                    try {
138
148
                        url = seite1.extract("<a href=\"", "\"", pos1);
156
166
                        } else {
157
167
                            urlWeb = "http://concert.arte.tv" + url;
158
168
                            meldung(urlWeb);
159
 
                            seite2 = getUrlIo.getUri_Utf(nameSenderMReader, urlWeb, seite2, "");
 
169
                            seite2 = getUrlIo.getUri_Utf(sendername, urlWeb, seite2, "");
 
170
                            // genre: <span class="tag tag-link"><a href="/de/videos/rockpop">rock/pop</a></span> 
 
171
                            String genre = seite2.extract("<span class=\"tag tag-link\">", "\">", "<");
 
172
                            if (!genre.isEmpty()) {
 
173
                                beschreibung = genre + "\n" + DatenFilm.cleanDescription(beschreibung, THEMA, titel);
 
174
                            }
160
175
                            url = seite2.extract("arte_vp_url=\"", "\"");
161
176
                            if (url.isEmpty()) {
162
177
                                MSLog.fehlerMeldung(-784512698, MSLog.FEHLER_ART_MREADER, "MediathekARTE.addConcert", "keine URL");
163
178
                            } else {
164
 
                                seite2 = getUrlIo.getUri_Utf(nameSenderMReader, url, seite2, "");
165
 
                                urlLow = seite2.extract("\"bitrate\":800", "\"url\":\"", "\"").replace("\\", "");
166
 
                                if (urlLow.endsWith(".m3u8")) {
167
 
                                    urlLow = seite2.extractLast("\"bitrate\":800", "\"url\":\"", "\"").replace("\\", "");
168
 
                                }
169
 
                                urlNormal = seite2.extract("\"bitrate\":1500", "\"url\":\"", "\"").replace("\\", "");
170
 
                                if (urlNormal.endsWith(".m3u8")) {
171
 
                                    urlNormal = seite2.extractLast("\"bitrate\":1500", "\"url\":\"", "\"").replace("\\", "");
172
 
                                }
173
 
                                urlHd = seite2.extract("\"bitrate\":2200", "\"url\":\"", "\"").replace("\\", "");
174
 
                                if (urlHd.endsWith(".m3u8")) {
175
 
                                    urlHd = seite2.extractLast("\"bitrate\":2200", "\"url\":\"", "\"").replace("\\", "");
176
 
                                }
 
179
                                seite2 = getUrlIo.getUri_Utf(sendername, url, seite2, "");
 
180
                                int p1 = 0;
 
181
                                String a = "\"bitrate\":800";
 
182
                                String b = "\"url\":\"";
 
183
                                String c = "\"";
 
184
                                while ((p1 = seite2.indexOf(a, p1)) != -1) {
 
185
                                    p1 += a.length();
 
186
                                    urlLow = seite2.extract(b, c, p1).replace("\\", "");
 
187
                                    if (urlLow.endsWith(".m3u8")) {
 
188
                                        urlLow = "";
 
189
                                        continue;
 
190
                                    }
 
191
                                    if (!urlLow.contains(URL_CONCERT_NOT_CONTAIN)) {
 
192
                                        break;
 
193
                                    }
 
194
                                }
 
195
                                a = "\"bitrate\":1500";
 
196
                                p1 = 0;
 
197
                                while ((p1 = seite2.indexOf(a, p1)) != -1) {
 
198
                                    p1 += a.length();
 
199
                                    urlNormal = seite2.extract(b, c, p1).replace("\\", "");
 
200
                                    if (urlNormal.endsWith(".m3u8")) {
 
201
                                        urlNormal = "";
 
202
                                        continue;
 
203
                                    }
 
204
                                    if (!urlNormal.contains(URL_CONCERT_NOT_CONTAIN)) {
 
205
                                        break;
 
206
                                    }
 
207
                                }
 
208
                                a = "\"bitrate\":2200";
 
209
                                p1 = 0;
 
210
                                while ((p1 = seite2.indexOf(a, p1)) != -1) {
 
211
                                    p1 += a.length();
 
212
                                    urlHd = seite2.extract(b, c, p1).replace("\\", "");
 
213
                                    if (urlHd.endsWith(".m3u8")) {
 
214
                                        urlHd = "";
 
215
                                        continue;
 
216
                                    }
 
217
                                    if (!urlHd.contains(URL_CONCERT_NOT_CONTAIN)) {
 
218
                                        break;
 
219
                                    }
 
220
                                }
 
221
 
177
222
                                if (urlNormal.isEmpty()) {
178
223
                                    urlNormal = urlLow;
179
224
                                    urlLow = "";
182
227
                                if (urlNormal.isEmpty()) {
183
228
                                    MSLog.fehlerMeldung(-989562301, MSLog.FEHLER_ART_MREADER, "MediathekARTE.addConcert", "keine URL");
184
229
                                } else {
185
 
                                    DatenFilm film = new DatenFilm(nameSenderMReader, "Concert", urlWeb, titel, urlNormal, "" /*urlRtmp*/,
 
230
                                    DatenFilm film = new DatenFilm(sendername, THEMA, urlWeb, titel, urlNormal, "" /*urlRtmp*/,
186
231
                                            datum, "" /*zeit*/, duration, beschreibung, ""/*bild*/, new String[]{});
187
232
                                    if (!urlHd.isEmpty()) {
188
233
                                        film.addUrlHd(urlHd, "");
189
234
                                    }
190
 
//                                    if (!urlLow.isEmpty()) {
191
 
//                                        film.addUrlKlein(urlLow, "");
192
 
//                                    }
 
235
                                    if (!urlLow.isEmpty()) {
 
236
                                        film.addUrlKlein(urlLow, "");
 
237
                                    }
193
238
                                    addFilm(film);
194
239
                                }
195
240
                            }
233
278
        final String MUSTER_TITEL = "\"TIT\":\"";
234
279
        final String MUSTER_THEMA = "\"GEN\":\"";
235
280
        String[] arr;
236
 
        seite1 = getUrlIo.getUri_Utf(nameSenderMReader, startUrl, seite1, "");
 
281
        seite1 = getUrlIo.getUri_Utf(sendername, startUrl, seite1, "");
237
282
        int posStart = 0, posStop;
238
283
        int pos1;
239
284
        int pos2;
308
353
//                        //"TIT":"\"Somewhere over the Rainbow\" "
309
354
//                        if (titel.equals("\\")) {
310
355
//                            titel = seite1.extract("\"TIT\":\"\\\"", "\"", posStart);
311
 
                            titel = titel.replace("\\", "");
 
356
                        titel = titel.replace("\\", "");
312
357
//                        }
313
358
                    }
314
359
                }
356
401
            return;
357
402
        }
358
403
        meldung(arr[0]);
359
 
        seite = getUrlIo.getUri_Utf(nameSenderMReader, arr[0], seite, "");
 
404
        seite = getUrlIo.getUri_Utf(sendername, arr[0], seite, "");
360
405
        if ((pos1 = seite.indexOf(MUSTER_BILD)) != -1) {
361
406
            pos1 += MUSTER_BILD.length();
362
407
            if ((pos2 = seite.indexOf("\"", pos1)) != -1) {
422
467
            if (!url.endsWith("EXTRAIT.mp4")) {
423
468
                // http://artestras.vo.llnwxd.net/o35/nogeo/HBBTV/042975-013-B_EXT_SQ_1_VA_00604871_MP4-2200_AMM-HBBTV_EXTRAIT.mp4
424
469
                // sind nur Trailer
425
 
                DatenFilm film = new DatenFilm(nameSenderMReader, thema, filmWebsite, titel, url, "" /*urlRtmp*/,
 
470
                DatenFilm film = new DatenFilm(sendername, thema, filmWebsite, titel, url, "" /*urlRtmp*/,
426
471
                        datum, zeit, dauer, beschreibung, bild, new String[]{});
427
472
                if (!urlKlein.isEmpty()) {
428
473
                    film.addUrlKlein(urlKlein, "");
433
478
                addFilm(film);
434
479
            }
435
480
        } else if (!urlKlein.isEmpty()) {
436
 
            DatenFilm film = new DatenFilm(nameSenderMReader, thema, filmWebsite, titel, urlKlein, "" /*urlRtmp*/,
 
481
            DatenFilm film = new DatenFilm(sendername, thema, filmWebsite, titel, urlKlein, "" /*urlRtmp*/,
437
482
                    datum, zeit, dauer, beschreibung, bild, new String[]{});
438
483
            if (!urlHd.isEmpty()) {
439
484
                film.addUrlHd(urlHd, "");
440
485
            }
441
486
            addFilm(film);
442
487
        } else if (!urlHd.isEmpty()) {
443
 
            DatenFilm film = new DatenFilm(nameSenderMReader, thema, filmWebsite, titel, urlHd, "" /*urlRtmp*/,
 
488
            DatenFilm film = new DatenFilm(sendername, thema, filmWebsite, titel, urlHd, "" /*urlRtmp*/,
444
489
                    datum, zeit, dauer, beschreibung, bild, new String[]{});
445
490
            addFilm(film);
446
491
        } else {