
mServer.crawler.sender.MediathekOrf Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of MServer Show documentation
Show all versions of MServer Show documentation
The crawler for mediathekview/MediathekView
/*
* MediathekView
* Copyright (C) 2008 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 .
*/
package mServer.crawler.sender;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Date;
import org.apache.commons.lang3.StringEscapeUtils;
import org.apache.commons.lang3.time.FastDateFormat;
import de.mediathekview.mlib.Config;
import de.mediathekview.mlib.Const;
import de.mediathekview.mlib.daten.DatenFilm;
import de.mediathekview.mlib.tool.Log;
import de.mediathekview.mlib.tool.MSStringBuilder;
import mServer.crawler.CrawlerTool;
import mServer.crawler.FilmeSuchen;
import mServer.crawler.GetUrl;
public class MediathekOrf extends MediathekReader {
public final static String SENDERNAME = Const.ORF;
private static final String THEMA_TAG = "-1";
private static final String THEMA_SENDUNGEN = "-2";
/**
*
* @param ssearch
* @param startPrio
*/
public MediathekOrf(FilmeSuchen ssearch, int startPrio) {
super(ssearch, SENDERNAME, /* threads */ 2, /* urlWarten */ 100, startPrio);
}
@Override
protected void addToList() {
MSStringBuilder seite = new MSStringBuilder(Const.STRING_BUFFER_START_BUFFER);
listeThemen.clear();
meldungStart();
if (CrawlerTool.loadLongMax()) {
bearbeiteAdresseSendung(seite);
}
listeSort(listeThemen, 1);
int maxTage = CrawlerTool.loadLongMax() ? 9 : 2;
for (int i = 0; i < maxTage; ++i) {
String vorTagen = getGestern(i).toLowerCase();
bearbeiteAdresseTag("http://tvthek.orf.at/schedule/" + vorTagen, seite);
}
if (Config.getStop()) {
meldungThreadUndFertig();
} else if (listeThemen.isEmpty()) {
meldungThreadUndFertig();
} else {
meldungAddMax(listeThemen.size());
for (int t = 0; t < getMaxThreadLaufen(); ++t) {
//new Thread(new ThemaLaden()).start();
Thread th = new ThemaLaden();
th.setName(SENDERNAME + t);
th.start();
}
}
}
private void bearbeiteAdresseTag(String adresse, MSStringBuilder seite) {
//
GetUrl getUrl = new GetUrl(100);
seite = getUrl.getUri(SENDERNAME, adresse, StandardCharsets.UTF_8, 2, seite, "");
ArrayList al = new ArrayList<>();
seite.extractList("", "", " al = new ArrayList<>();
try {
seite.extractList("", "", " alSendung = new ArrayList<>();
//private final ArrayList alThemen = new ArrayList<>();
private final ArrayList urlList = new ArrayList<>();
@Override
public void run() {
try {
meldungAddThread();
String[] link;
while (!Config.getStop() && (link = listeThemen.getListeThemen()) != null) {
try {
meldungProgress(link[0]);
switch (link[1]) {
case THEMA_TAG:
// dann ist von "Tage zurück"
feedEinerSeiteSuchen(link[0], true /*nurUrlPruefen*/);
break;
case THEMA_SENDUNGEN:
sendungen(link[0]);
break;
// default:
// themen(link[0] /* url */);
// break;
}
} catch (Exception ex) {
Log.errorLog(795633581, ex);
}
}
} catch (Exception ex) {
Log.errorLog(554012398, ex);
}
meldungThreadUndFertig();
}
private void sendungen(String url) {
GetUrl getUrl = new GetUrl(100);
seite1 = getUrl.getUri(SENDERNAME, url, StandardCharsets.UTF_8, 2, seite1, "");
alSendung.clear();
//int start = "http://tvthek.orf.at/profile/".length();
seite1.extractList("", "", " ORF TVthek: a.viso - 28.11.2010 09:05 Uhr
seite2 = getUrl.getUri_Utf(SENDERNAME, strUrlFeed, seite2, "");
String datum;
String zeit;
long duration = 0;
String description;
String tmp;
String urlRtmpKlein = "", urlRtmp = "", url, urlKlein, urlHD;
String titel, thema;
String subtitle;
int posStart, posStopAlles, posStopEpisode, pos = 0;
meldung(strUrlFeed);
thema = seite2.extract("", "vom"); //ABC Bär vom 17.11.2013 um 07.35 Uhr / ORF TVthek
datum = seite2.extract("