/*
* MediathekView
* Copyright (C) 2014 W. Xaver
* W.Xaver[at]googlemail.com
* http://zdfmediathk.sourceforge.net/
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package mediathek.controller;
import mSearch.tool.Functions;
import mSearch.tool.GermanStringSorter;
import mSearch.tool.Log;
public class MVUsedUrl implements Comparable<MVUsedUrl> {
public static final String[] title = {"Datum", "Thema", "Titel", "Url"};
public static final int USED_URL_DATUM = 0;
public static final int USED_URL_THEMA = 1;
public static final int USED_URL_TITEL = 2;
public static final int USED_URL_URL = 3;
private static final GermanStringSorter sorter = GermanStringSorter.getInstance();
private final static String TRENNER = " |###| ";
private final static String PAUSE = " |#| ";
String[] uUrl;
public MVUsedUrl(String date, String thema, String title, String url) {
this.uUrl = new String[]{date, thema, title, url};
}
public static String getUsedUrl(String date, String thema, String title, String url) {
return date + PAUSE
+ Functions.textLaenge(25, putzen(thema), false /* mitte */, false /*addVorne*/) + PAUSE
+ Functions.textLaenge(40, putzen(title), false /* mitte */, false /*addVorne*/) + TRENNER
+ url + '\n';
}
public String getUsedUrl() {
return uUrl[USED_URL_DATUM] + PAUSE
+ Functions.textLaenge(25, putzen(uUrl[USED_URL_THEMA]), false /* mitte */, false /*addVorne*/) + PAUSE
+ Functions.textLaenge(40, putzen(uUrl[USED_URL_TITEL]), false /* mitte */, false /*addVorne*/) + TRENNER
+ uUrl[USED_URL_URL] + '\n';
}
public static MVUsedUrl getUrlAusZeile(String zeile) {
// 29.05.2014 |#| Abendschau |#| Patenkind trifft Groß |###| http://cdn-storage.br.de/iLCpbHJGNLT6NK9HsLo6s61luK4C_2rc5U1S/_-OS/5-8y9-NP/5bb33365-038d-46f7-914b-eb83fab91448_E.mp4
String url = "", thema = "", titel = "", datum = "";
int a1;
try {
if (zeile.contains(TRENNER)) {
//neues Logfile-Format
a1 = zeile.lastIndexOf(TRENNER);
a1 += TRENNER.length();
url = zeile.substring(a1).trim();
// titel
titel = zeile.substring(zeile.lastIndexOf(PAUSE) + PAUSE.length(), zeile.lastIndexOf(TRENNER)).trim();
datum = zeile.substring(0, zeile.indexOf(PAUSE)).trim();
thema = zeile.substring(zeile.indexOf(PAUSE) + PAUSE.length(), zeile.lastIndexOf(PAUSE)).trim();
} else {
url = zeile;
}
} catch (Exception ex) {
Log.errorLog(398853224, ex);
}
return new MVUsedUrl(datum, thema, titel, url);
}
public static String getHeaderString() {
return Functions.textLaenge(40, title[USED_URL_TITEL], false /* mitte */, false /*addVorne*/)
+ " " + Functions.textLaenge(25, title[USED_URL_THEMA], false /* mitte */, false /*addVorne*/)
+ " " + Functions.textLaenge(10, title[USED_URL_DATUM], false /* mitte */, false /*addVorne*/)
+ " " + title[USED_URL_URL];
}
public String getString() {
return Functions.textLaenge(40, uUrl[USED_URL_TITEL], false /* mitte */, false /*addVorne*/)
+ " " + Functions.textLaenge(25, uUrl[USED_URL_THEMA], false /* mitte */, false /*addVorne*/)
+ " " + (uUrl[USED_URL_DATUM].isEmpty() ? " " : uUrl[USED_URL_DATUM])
+ " " + uUrl[USED_URL_URL];
}
public String getUrl() {
return uUrl[USED_URL_URL];
}
@Override
public int compareTo(MVUsedUrl arg0) {
return sorter.compare(uUrl[USED_URL_TITEL], arg0.uUrl[USED_URL_TITEL]);
}
private static String putzen(String s) {
s = s.replace("\n", "");
s = s.replace("|", "");
s = s.replace(TRENNER, "");
return s;
}
}