Skip to content

Commit

Permalink
3.1.11
Browse files Browse the repository at this point in the history
  • Loading branch information
Markus Ehrnsperger committed Jan 17, 2023
1 parent c43216e commit 3192034
Show file tree
Hide file tree
Showing 24 changed files with 1,012 additions and 1,133 deletions.
68 changes: 41 additions & 27 deletions epg_events.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -405,20 +405,20 @@ namespace vdrlive

bool PosterTvscraper(cTvMedia &media, const cEvent *event, const cRecording *recording)
{
media.path = "";
media.width = media.height = 0;
media.path = "";
media.width = media.height = 0;
if (LiveSetup().GetTvscraperImageDir().empty() ) return false;
ScraperGetPoster call;
call.event = event;
call.recording = recording;
if (ScraperCallService("GetPoster", &call)) {
media.path = ScraperImagePath2Live(call.poster.path);
media.width = call.poster.width;
media.height = call.poster.height;
return true;
}
ScraperGetPoster call;
call.event = event;
call.recording = recording;
if (ScraperCallService("GetPoster", &call)) {
media.path = ScraperImagePath2Live(call.poster.path);
media.width = call.poster.width;
media.height = call.poster.height;
return true;
}
return false;
}
}

std::list<std::string> EpgImages(std::string const &epgid)
{
Expand Down Expand Up @@ -494,17 +494,27 @@ namespace vdrlive

} // namespace EpgEvents

bool appendEpgItem(cLargeString &epg_item, RecordingsItemPtr &recItem, const cEvent *Event, const cChannel *Channel, bool withChannel) {
std::string s_title, s_episode_name, s_IMDB_ID, s_releaseDate;
void AppendScraperData(cLargeString &target, cScraperVideo *scraperVideo) {
cTvMedia s_image;
cGetScraperOverview scraperOverview (Event, NULL, &s_title, &s_episode_name, &s_IMDB_ID, &s_image,
std::string s_title, s_episode_name, s_IMDB_ID, s_release_date;
if (scraperVideo == NULL) {
AppendScraperData(target, s_IMDB_ID, s_image, tNone, s_title, 0, 0, s_episode_name, 0, s_release_date);
return;
}
int s_runtime;
scraperVideo->getOverview(&s_title, &s_episode_name, &s_release_date, &s_runtime, &s_IMDB_ID, NULL);
s_image = scraperVideo->getImage(
cImageLevels(eImageLevel::episodeMovie, eImageLevel::seasonMovie, eImageLevel::tvShowCollection, eImageLevel::anySeasonCollection),
cOrientations(eOrientation::landscape, eOrientation::portrait, eOrientation::banner), &s_releaseDate );
scraperOverview.call(LiveSetup().GetPluginScraper());
cOrientations(eOrientation::landscape, eOrientation::portrait, eOrientation::banner), false);
AppendScraperData(target, s_IMDB_ID, s_image, scraperVideo->getVideoType(), s_title, scraperVideo->getSeasonNumber(), scraperVideo->getEpisodeNumber(), s_episode_name, s_runtime, s_release_date);
}
bool appendEpgItem(cLargeString &epg_item, RecordingsItemPtr &recItem, const cEvent *Event, const cChannel *Channel, bool withChannel) {
cGetScraperVideo getScraperVideo(Event, NULL);
getScraperVideo.call(LiveSetup().GetPluginScraper());

RecordingsTreePtr recordingsTree(LiveRecordingsManager()->GetRecordingsTree());
const std::vector<RecordingsItemPtr> *recItems = recordingsTree->allRecordings(eSortOrder::duplicatesLanguage);
bool recItemFound = searchNameDesc(recItem, recItems, Event, &scraperOverview);
bool recItemFound = searchNameDesc(recItem, recItems, Event, getScraperVideo.m_scraperVideo.get() );

epg_item.append("[\"");
// [0] : EPG ID (without event_)
Expand All @@ -513,29 +523,33 @@ bool appendEpgItem(cLargeString &epg_item, RecordingsItemPtr &recItem, const cEv
// [1] : Timer ID
const cTimer* timer = LiveTimerManager().GetTimer(Event->EventID(), Channel->GetChannelID() );
if (timer) epg_item.append(vdrlive::EncodeDomId(LiveTimerManager().GetTimers().GetTimerId(*timer), ".-:", "pmc"));
epg_item.append("\",\"");
// [2] : Day, time & duration of event
AppendDateTime(epg_item, tr("%I:%M %p"), Event->StartTime() );
epg_item.append(" - ");
AppendDateTime(epg_item, tr("%I:%M %p"), Event->EndTime() );
epg_item.append(" ");
AppendDuration(epg_item, tr("(%d:%02d)"), Event->Duration() /60/60, Event->Duration()/60 % 60);
epg_item.append("\",");
AppendScraperData(epg_item, s_image, scraperOverview.m_videoType, s_title, scraperOverview.m_seasonNumber, scraperOverview.m_episodeNumber, s_episode_name, scraperOverview.m_runtime, s_releaseDate);
// scraper data
AppendScraperData(epg_item, getScraperVideo.m_scraperVideo.get() );
epg_item.append(",");
// [9] : channelnr
if (withChannel) {
epg_item.append(Channel->Number());
epg_item.append(",\"");
// [10] : channelname
AppendHtmlEscapedAndCorrectNonUTF8(epg_item, Channel->Name() );
} else epg_item.append("0,\"");
epg_item.append("\",\"");
// [11] : Name
AppendHtmlEscapedAndCorrectNonUTF8(epg_item, Event->Title() );
epg_item.append("\",\"");
// [12] : Shorttext
AppendHtmlEscapedAndCorrectNonUTF8(epg_item, Event->ShortText() );
epg_item.append("\",\"");
// [13] : Description
AppendTextTruncateOnWord(epg_item, Event->Description(), LiveSetup().GetMaxTooltipChars(), true);
epg_item.append("\",\"");
epg_item.append(s_IMDB_ID);
// [14] : Day, time & duration of event
AppendDateTime(epg_item, tr("%I:%M %p"), Event->StartTime() );
epg_item.append(" - ");
AppendDateTime(epg_item, tr("%I:%M %p"), Event->EndTime() );
epg_item.append(" ");
AppendDuration(epg_item, tr("(%d:%02d)"), Event->Duration() /60/60, Event->Duration()/60 % 60);
epg_item.append("\"]");
return recItemFound;
}
Expand Down
5 changes: 5 additions & 0 deletions live/css/styles.css
Original file line number Diff line number Diff line change
Expand Up @@ -686,6 +686,11 @@ table td.topaligned {
table td.padded {
padding: 3px 7px 3px 3px;
}
table td.cast_role {
text-align: left;
font-weight: bold;
}


/* ################
# Event (page: whats_on.html)
Expand Down
6 changes: 6 additions & 0 deletions livefeatures.h
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,12 @@ namespace features
static const char* Plugin() { return "streamdev-server"; }
static const char* MinVersion() { return "?"; }
};

struct tvscraper
{
static const char* Plugin() { return "tvscraper"; }
static const char* MinVersion() { return "1.1.9"; }
};
} // namespace features

} // namespace vdrlive
Expand Down
21 changes: 11 additions & 10 deletions pages/epginfo.ecpp
Original file line number Diff line number Diff line change
Expand Up @@ -81,10 +81,10 @@ using namespace vdrlive;
throw HtmlError(tr("Couldn't find recording or no recordings available"));
}
epgEvent = EpgEvents::CreateEpgInfo(epgid, recording);
cTvMedia image;
cTvMedia image;
EpgEvents::PosterTvscraper(image, NULL, recording);
epgImage = image.path;
irecording = (uintptr_t)recording;
irecording = (uintptr_t)recording;
}
// check for event:
else if (epgid.compare(0, event_s.length(), event_s) == 0) {
Expand All @@ -107,10 +107,10 @@ using namespace vdrlive;
epgEvent = EpgEvents::CreateEpgInfo(epgid, schedules);
#endif
const cEvent* event = epgEvent->Event();
cTvMedia image;
cTvMedia image;
EpgEvents::PosterTvscraper(image, event, NULL);
epgImage = image.path;
i_event = (uintptr_t)event;
i_event = (uintptr_t)event;
}
// check for aboutbox:
else if (epgid.compare(0, aboutbox.length(), aboutbox) == 0) {
Expand Down Expand Up @@ -152,14 +152,15 @@ using namespace vdrlive;
start += " ";
AppendDuration(start, tr("(%d:%02d)"), epgEvent->Duration()/60/60, epgEvent->Duration()/60 % 60);
} else { // recording
start += ". ";
start += tr("Recording length");
start += ": ";
start += " (";
AppendDuration(start, tr("%d:%02d"), epgEvent->Duration()/60/60, epgEvent->Duration()/60 % 60);
start += ". ";
start += tr("Event duration");
start += ": ";
start += "/";
AppendDuration(start, tr("%d:%02d"), epgEvent->EventDuration()/60/60, epgEvent->EventDuration()/60 % 60);
start += ") (";
start += tr("Recording length");
start += "/";
start += tr("Event duration");
start += ")";
}

std::string tools_component;
Expand Down
Loading

0 comments on commit 3192034

Please sign in to comment.