private static ListePset importPset(InputStreamReader in, boolean log) {
   DatenPset datenPset = null;
   ListePset liste = new ListePset();
   try {
     int event;
     XMLInputFactory inFactory = XMLInputFactory.newInstance();
     inFactory.setProperty(XMLInputFactory.IS_COALESCING, Boolean.FALSE);
     XMLStreamReader parser;
     parser = inFactory.createXMLStreamReader(in);
     while (parser.hasNext()) {
       event = parser.next();
       if (event == XMLStreamConstants.START_ELEMENT) {
         // String t = parser.getLocalName();
         switch (parser.getLocalName()) {
           case DatenPset.PROGRAMMSET:
             datenPset = new DatenPset();
             if (!get(parser, DatenPset.PROGRAMMSET, DatenPset.COLUMN_NAMES_, datenPset.arr)) {
               datenPset = null;
             } else {
               liste.add(datenPset);
             }
             break;
           case DatenProg.PROGRAMM:
             if (datenPset != null) {
               DatenProg datenProg = new DatenProg();
               if (get(parser, DatenProg.PROGRAMM, DatenProg.COLUMN_NAMES_, datenProg.arr)) {
                 datenPset.addProg(datenProg);
               }
             }
             break;
         }
       }
     }
     in.close();
   } catch (Exception ex) {
     if (log) {
       Log.fehlerMeldung(467810360, ex);
     }
     return null;
   }
   if (liste.isEmpty()) {
     return null;
   } else {
     return liste;
   }
 }
Example #2
0
  private void aufrufBauen(
      DatenPset pSet, DatenFilm film, DatenAbo abo, String nname, String ppfad) {
    // zieldatei und pfad bauen und eintragen
    try {
      DatenProg programm = pSet.getProgUrl(arr[DOWNLOAD_URL_NR]);
      // ##############################################
      // für die alten Versionen:
      pSet.arr[DatenPset.PROGRAMMSET_ZIEL_DATEINAME_NR] =
          pSet.arr[DatenPset.PROGRAMMSET_ZIEL_DATEINAME_NR].replace("%n", "");
      pSet.arr[DatenPset.PROGRAMMSET_ZIEL_DATEINAME_NR] =
          pSet.arr[DatenPset.PROGRAMMSET_ZIEL_DATEINAME_NR].replace("%p", "");
      pSet.arr[DatenPset.PROGRAMMSET_ZIEL_PFAD_NR] =
          pSet.arr[DatenPset.PROGRAMMSET_ZIEL_PFAD_NR].replace("%n", "");
      pSet.arr[DatenPset.PROGRAMMSET_ZIEL_PFAD_NR] =
          pSet.arr[DatenPset.PROGRAMMSET_ZIEL_PFAD_NR].replace("%p", "");
      for (DatenProg prog : pSet.getListeProg()) {
        prog.arr[DatenProg.PROGRAMM_ZIEL_DATEINAME_NR] =
            prog.arr[DatenProg.PROGRAMM_ZIEL_DATEINAME_NR].replace("%n", "");
        prog.arr[DatenProg.PROGRAMM_ZIEL_DATEINAME_NR] =
            prog.arr[DatenProg.PROGRAMM_ZIEL_DATEINAME_NR].replace("%p", "");
      }
      // ##############################################
      // pSet und ... eintragen
      arr[DOWNLOAD_PROGRAMMSET_NR] = pSet.arr[DatenPset.PROGRAMMSET_NAME_NR];

      // Direkter Download nur wenn url passt und wenn im Programm ein Zielpfad ist sonst Abspielen
      art =
          (pSet.checkDownloadDirekt(arr[DOWNLOAD_URL_NR]) && pSet.progsContainPath())
              ? ART_DOWNLOAD
              : ART_PROGRAMM;
      arr[DOWNLOAD_ART_NR] = String.valueOf(art);
      if (art == ART_DOWNLOAD) {
        arr[DatenDownload.DOWNLOAD_PROGRAMM_NR] = ART_DOWNLOAD_TXT;
      } else {
        arr[DatenDownload.DOWNLOAD_PROGRAMM_NR] = programm.arr[DatenProg.PROGRAMM_NAME_NR];
      }

      arr[DOWNLOAD_PROGRAMM_RESTART_NR] = String.valueOf(programm.isRestart());
      dateinamePfadBauen(pSet, film, abo, nname, ppfad);
      programmaufrufBauen(programm);
    } catch (Exception ex) {
      Log.fehlerMeldung(825600145, ex);
    }
  }
Example #3
0
  private void dateinamePfadBauen(
      DatenPset pSet, DatenFilm film, DatenAbo abo, String nname, String ppfad) {
    // nname und ppfad sind nur belegt, wenn der Download über den DialogAddDownload gestartet wurde
    // (aus TabFilme)
    String name;
    String path;
    if (!pSet.progsContainPath()) {
      // dann können wir uns das sparen
      arr[DatenDownload.DOWNLOAD_ZIEL_DATEINAME_NR] = "";
      arr[DatenDownload.DOWNLOAD_ZIEL_PFAD_NR] = "";
      return;
    }
    // ##############################################
    // Name
    // ##############################################
    if (!nname.equals("")) {
      // wenn vorgegeben, dann den nehmen
      name = nname;
    } else {
      arr[DatenDownload.DOWNLOAD_ZIEL_DATEINAME_NR] = pSet.getZielDateiname(arr[DOWNLOAD_URL_NR]);
      name = arr[DatenDownload.DOWNLOAD_ZIEL_DATEINAME_NR];
      // ##############################
      // Name sinnvoll belegen
      if (name.equals("")) {
        name =
            getHeute_yyyyMMdd()
                + "_"
                + arr[DatenDownload.DOWNLOAD_THEMA_NR]
                + "-"
                + arr[DatenDownload.DOWNLOAD_TITEL_NR]
                + ".mp4";
      }
      name = replaceString(name, film); // %D ... ersetzen
      name = FilenameUtils.replaceLeerDateiname(name);
      // prüfen ob das Suffix 2x vorkommt
      if (name.length() > 8) {
        String suf1 = name.substring(name.length() - 8, name.length() - 4);
        String suf2 = name.substring(name.length() - 4);
        if (suf1.startsWith(".") && suf2.startsWith(".")) {
          if (suf1.equalsIgnoreCase(suf2)) {
            name = name.substring(0, name.length() - 4);
          }
        }
      }
      // Kürzen
      if (Boolean.parseBoolean(pSet.arr[DatenPset.PROGRAMMSET_LAENGE_BESCHRAENKEN_NR])) {
        // nur dann ist was zu tun
        int laenge = Konstanten.LAENGE_DATEINAME;
        if (!pSet.arr[DatenPset.PROGRAMMSET_MAX_LAENGE_NR].equals("")) {
          laenge = Integer.parseInt(pSet.arr[DatenPset.PROGRAMMSET_MAX_LAENGE_NR]);
        }
        name = GuiFunktionen.cutName(name, laenge);
      }
    }
    // ##############################################
    // Pfad
    // ##############################################
    if (!ppfad.equals("")) {
      // wenn vorgegeben, dann den nehmen
      path = ppfad;
    } else {
      arr[DatenDownload.DOWNLOAD_ZIEL_PFAD_NR] = pSet.getZielPfad();
      path = arr[DatenDownload.DOWNLOAD_ZIEL_PFAD_NR];
      // ##############################
      // Pfad sinnvoll belegen
      if (path.equals("")) {
        // wenn leer, vorbelegen
        path = GuiFunktionen.getStandardDownloadPath();
      }
      if (abo != null) {
        // Bei Abos: den Namen des Abos eintragen
        arr[DatenDownload.DOWNLOAD_ABO_NR] = abo.arr[DatenAbo.ABO_NAME_NR];
        if (Boolean.parseBoolean(pSet.arr[DatenPset.PROGRAMMSET_THEMA_ANLEGEN_NR])) {
          // und Abopfad an den Pfad anhängen
          // pfad = GuiFunktionen.addsPfad(pfad,
          // GuiFunktionen.replaceLeerDateiname(abo.arr[DatenAbo.ABO_ZIELPFAD_NR], true/* istDatei
          // */));
          path = GuiFunktionen.addsPfad(path, abo.arr[DatenAbo.ABO_ZIELPFAD_NR]);
        }
      } else if (Boolean.parseBoolean(pSet.arr[DatenPset.PROGRAMMSET_THEMA_ANLEGEN_NR])) {
        // bei Downloads den Namen des Themas an den Zielpfad anhängen
        path =
            GuiFunktionen.addsPfad(
                path, FilenameUtils.replaceLeerDateiname(arr[DatenDownload.DOWNLOAD_THEMA_NR]));
      }
      path = replaceString(path, film); // %D ... ersetzen
      // der vorgegebenen Pfad des Sets wird so genommen wie er ist
      // pfad = GuiFunktionen.replaceLeerDateiname(pfad, false/* istDatei */, false /* leerEntfernen
      // */);
    }
    if (path.endsWith(File.separator)) {
      path = path.substring(0, path.length() - 1);
    }
    // ###########################################################
    // zur Sicherheit bei Unsinn im Set
    if (path.equals("")) {
      path = GuiFunktionen.getStandardDownloadPath();
    }
    if (name.equals("")) {
      name =
          getHeute_yyyyMMdd()
              + "_"
              + arr[DatenDownload.DOWNLOAD_THEMA_NR]
              + "-"
              + arr[DatenDownload.DOWNLOAD_TITEL_NR]
              + ".mp4";
    }

    // in Win dürfen die Pfade nicht länger als 255 Zeichen haben (für die Infodatei kommen noch
    // ".txt" dazu)
    String[] pathName = {path, name};
    GuiFunktionen.checkLengthPath(pathName);

    arr[DOWNLOAD_ZIEL_DATEINAME_NR] = pathName[1];
    arr[DOWNLOAD_ZIEL_PFAD_NR] = pathName[0];
    arr[DOWNLOAD_ZIEL_PFAD_DATEINAME_NR] = GuiFunktionen.addsPfad(pathName[0], pathName[1]);
  }