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

« back to all changes in this revision

Viewing changes to src/msearch/daten/DatenFilm.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:
184
184
        arr[FILM_WEBSEITE_NR] = filmWebsite;
185
185
        checkDatum(datum, arr[FILM_SENDER_NR] + " " + arr[FILM_THEMA_NR] + " " + arr[FILM_TITEL_NR]);
186
186
        checkZeit(arr[FILM_DATUM_NR], zeit, arr[FILM_SENDER_NR] + " " + arr[FILM_THEMA_NR] + " " + arr[FILM_TITEL_NR]);
187
 
        arr[FILM_BESCHREIBUNG_NR] = beschreibung(description, tthema, ttitel);
188
 
        arr[FILM_IMAGE_URL_NR] = imageUrl;
189
 
//        // Schlüsselwörter
190
 
//        arr[FILM_KEYWORDS_NR] = keywordsToString(keywords);
 
187
        arr[FILM_BESCHREIBUNG_NR] = cleanDescription(description, tthema, ttitel);
 
188
        arr[FILM_IMAGE_URL_NR] = ""; // zur Sicherheit: http://sourceforge.net/apps/phpbb/zdfmediathk/viewtopic.php?f=1&t=1111
 
189
 
191
190
        // Filmlänge
192
191
        if (dauerSekunden <= 0 || dauerSekunden > 3600 * 5 /* Werte über 5 Stunden */) {
193
192
            arr[FILM_DAUER_NR] = "";
200
199
        }
201
200
    }
202
201
 
 
202
    public static DatenFilm getDatenFilmLiveStream(String ssender, String addTitle, String uurl) {
 
203
        return new DatenFilm(ssender, ListeFilme.THEMA_LIVE, ""/* urlThema */,
 
204
                ssender + addTitle + " " + ListeFilme.THEMA_LIVE,
 
205
                uurl, ""/*rtmpURL*/, ""/* datum */, ""/* zeit */, 0, "", "", new String[]{""});
 
206
    }
 
207
 
203
208
    public void addUrlKlein(String url, String urlRtmp) {
204
209
        arr[FILM_URL_KLEIN_NR] = url.isEmpty() ? "" : getKlein(arr[FILM_URL_NR], url);
205
210
        arr[FILM_URL_RTMP_KLEIN_NR] = urlRtmp.isEmpty() ? "" : getKlein(arr[FILM_URL_RTMP_NR], urlRtmp);
249
254
 
250
255
    public void setGeo() {
251
256
        switch (arr[DatenFilm.FILM_SENDER_NR]) {
252
 
            case MediathekArd.SENDER:
253
 
            case MediathekSwr.SENDER:
254
 
            case MediathekMdr.SENDER:
255
 
            case MediathekBr.SENDER:
 
257
            case MediathekArd.SENDERNAME:
 
258
            case MediathekSwr.SENDERNAME:
 
259
            case MediathekMdr.SENDERNAME:
 
260
            case MediathekBr.SENDERNAME:
256
261
                if (arr[DatenFilm.FILM_URL_NR].startsWith("http://mvideos-geo.daserste.de/")
257
262
                        || arr[DatenFilm.FILM_URL_NR].startsWith("http://media.ndr.de/progressive_geo/")
258
263
                        || arr[DatenFilm.FILM_URL_NR].startsWith("http://cdn-storage.br.de/geo/")
262
267
                    arr[DatenFilm.FILM_GEO_NR] = GEO_DE;
263
268
                }
264
269
                break;
265
 
            case MediathekZdf.SENDER:
266
 
            case MediathekZdfTivi.SENDER:
267
 
            case Mediathek3Sat.SENDER:
 
270
            case MediathekZdf.SENDERNAME:
 
271
            case MediathekZdfTivi.SENDERNAME:
 
272
            case Mediathek3Sat.SENDERNAME:
268
273
                if (arr[DatenFilm.FILM_URL_NR].startsWith("http://nrodl.zdf.de/de/")
269
274
                        || arr[DatenFilm.FILM_URL_NR].startsWith("http://rodl.zdf.de/de/")) {
270
275
                    arr[DatenFilm.FILM_GEO_NR] = GEO_DE;
276
281
                    arr[DatenFilm.FILM_GEO_NR] = GEO_DE + "-" + GEO_AT + "-" + GEO_CH + "-" + GEO_EU;
277
282
                }
278
283
                break;
279
 
            case MediathekOrf.SENDER:
 
284
            case MediathekOrf.SENDERNAME:
280
285
                if (arr[DatenFilm.FILM_URL_NR].startsWith("http://apasfpd.apa.at/cms-austria/")
281
286
                        || arr[DatenFilm.FILM_URL_NR].startsWith("rtmp://apasfw.apa.at/cms-austria/")) {
282
287
                    arr[DatenFilm.FILM_GEO_NR] = GEO_AT;
283
288
                }
284
289
                break;
285
 
            case MediathekSrfPod.SENDER:
 
290
            case MediathekSrfPod.SENDERNAME:
286
291
                if (arr[DatenFilm.FILM_URL_NR].startsWith("http://podcasts.srf.ch/ch/audio/")) {
287
292
                    arr[DatenFilm.FILM_GEO_NR] = GEO_CH;
288
293
                }
289
294
                break;
290
 
            case MediathekNdr.SENDER:
 
295
            case MediathekNdr.SENDERNAME:
291
296
                if (arr[DatenFilm.FILM_URL_NR].startsWith("http://media.ndr.de/progressive_geo")) {
292
297
                    arr[DatenFilm.FILM_GEO_NR] = GEO_DE;
293
298
                }
315
320
    private static String getUrl(String ssender, String uurl) {
316
321
        // liefert die URL zum VERGLEICHEN!!
317
322
        String url = "";
318
 
        if (ssender.equals(MediathekOrf.SENDER)) {
 
323
        if (ssender.equals(MediathekOrf.SENDERNAME)) {
319
324
            try {
320
325
                url = uurl.substring(uurl.indexOf("/online/") + "/online/".length());
321
326
                if (!url.contains("/")) {
335
340
            } catch (Exception ex) {
336
341
                MSLog.fehlerMeldung(915230478, MSLog.FEHLER_ART_PROG, "DatenFilm.getUrl-4", ex, "Url: " + uurl);
337
342
            }
338
 
            return MediathekOrf.SENDER + "----" + url;
 
343
            return MediathekOrf.SENDERNAME + "----" + url;
339
344
        } else {
340
345
            return uurl;
341
346
        }
370
375
 
371
376
    public void init() {
372
377
        try {
 
378
            //================================
 
379
            // Speicher sparen
 
380
            if (arr[DatenFilm.FILM_GROESSE_NR].length() < 3) {
 
381
                arr[DatenFilm.FILM_GROESSE_NR] = arr[DatenFilm.FILM_GROESSE_NR].intern();
 
382
            }
 
383
            if (arr[DatenFilm.FILM_URL_KLEIN_NR].length() < 15) {
 
384
                arr[DatenFilm.FILM_URL_KLEIN_NR] = arr[DatenFilm.FILM_URL_KLEIN_NR].intern();
 
385
            }
 
386
            arr[DatenFilm.FILM_DATUM_NR] = arr[DatenFilm.FILM_DATUM_NR].intern();
 
387
            arr[DatenFilm.FILM_ZEIT_NR] = arr[DatenFilm.FILM_ZEIT_NR].intern();
 
388
 
 
389
            //================================
373
390
            // Dateigröße
374
391
            dateigroesseL = new MSLong(this);
 
392
 
 
393
            //================================
375
394
            // Filmdauer
376
395
            try {
377
396
                if (!this.arr[DatenFilm.FILM_DAUER_NR].contains(":") && !this.arr[DatenFilm.FILM_DAUER_NR].isEmpty()) {
403
422
                dauerL = 0;
404
423
                MSLog.fehlerMeldung(468912049, MSLog.FEHLER_ART_PROG, "DatenFilm.init", "Dauer: " + this.arr[DatenFilm.FILM_DAUER_NR]);
405
424
            }
 
425
 
 
426
            //================================
406
427
            // Datum
407
428
            if (!arr[DatenFilm.FILM_DATUM_NR].isEmpty()) {
408
429
                // nur dann gibts ein Datum
532
553
        return getUrlFlvstreamer();
533
554
    }
534
555
 
535
 
    private String beschreibung(String s, String thema, String titel) {
 
556
    private static final String[] GERMAN_ONLY = {
 
557
        "+++ Aus rechtlichen Gründen ist der Film nur innerhalb von Deutschland abrufbar. +++",
 
558
        "+++ Aus rechtlichen Gründen ist diese Sendung nur innerhalb von Deutschland abrufbar. +++",
 
559
        "+++ Aus rechtlichen Gründen ist dieses Video nur innerhalb von Deutschland abrufbar. +++",
 
560
        "+++ Aus rechtlichen Gründen ist dieses Video nur innerhalb von Deutschland verfügbar. +++",
 
561
        "+++ Aus rechtlichen Gründen kann das Video nur innerhalb von Deutschland abgerufen werden. +++ Due to legal reasons the video is only available in Germany.+++",
 
562
        "+++ Aus rechtlichen Gründen kann das Video nur innerhalb von Deutschland abgerufen werden. +++",
 
563
        "+++ Due to legal reasons the video is only available in Germany.+++"
 
564
    };
 
565
 
 
566
    public static String cleanDescription(String s, String thema, String titel) {
536
567
        // die Beschreibung auf x Zeichen beschränken
 
568
        for (String g : GERMAN_ONLY) {
 
569
            if (s.contains(g)) {
 
570
                s = s.replace(g, ""); // steht auch mal in der Mitte
 
571
            }
 
572
        }
537
573
        if (s.startsWith(titel)) {
538
574
            s = s.substring(titel.length()).trim();
539
575
        }
555
591
        if (s.startsWith(",")) {
556
592
            s = s.substring(1).trim();
557
593
        }
 
594
        if (s.startsWith("\n")) {
 
595
            s = s.substring(1).trim();
 
596
        }
 
597
        if (s.contains("\\\"")) { // wegen " in json-Files
 
598
            s = s.replace("\\\"", "\"");
 
599
        }
558
600
        if (s.length() > MSConst.MAX_BESCHREIBUNG) {
559
601
            return s.substring(0, MSConst.MAX_BESCHREIBUNG) + "\n.....";
560
602
        } else {
562
604
        }
563
605
    }
564
606
 
565
 
//    private String keywordsToString(String[] keywords) {
566
 
//        final int x = 200;
567
 
//        String k = "";
568
 
//        for (String kk : keywords) {
569
 
//            if (k.length() + kk.length() > x) {
570
 
//                // nicht mehr als x zeichen lang!
571
 
//                break;
572
 
//            }
573
 
//            if (k.length() > 0) {
574
 
//                k += ",";
575
 
//            }
576
 
//            k += kk;
577
 
//        }
578
 
//        return k;
579
 
//    }
580
607
    private void checkDatum(String datum, String fehlermeldung) {
581
608
        //Datum max. 100 Tage in der Zukunft
582
609
        final long MAX = 1000L * 60L * 60L * 24L * 100L;