diff options
Diffstat (limited to 'scraper2vdr.h')
-rw-r--r-- | scraper2vdr.h | 293 |
1 files changed, 293 insertions, 0 deletions
diff --git a/scraper2vdr.h b/scraper2vdr.h new file mode 100644 index 0000000..411ec8f --- /dev/null +++ b/scraper2vdr.h @@ -0,0 +1,293 @@ + +#ifndef __SCRAPER2VDRSERVICES_H +#define __SCRAPER2VDRSERVICES_H + +#include <string> +#include <vector> +#include <vdr/epg.h> +#include <vdr/recording.h> + +#include <display.h> + +//*************************************************************************** +// Functions +//*************************************************************************** + +int getScraperMediaPath(const cEventCopy* event, const cRecording* recording, + std::string& mediaPath, std::string& posterPath); + +//*************************************************************************** +// Types +//*************************************************************************** + +enum tvType +{ + tSeries, + tMovie, + tNone +}; + +/********************************************************************* +* Helper Structures +*********************************************************************/ + +class cTvMedia +{ + public: + + cTvMedia(void) + { + path = ""; + width = height = 0; + }; + + std::string path; + int width; + int height; +}; + +class cEpisode +{ + public: + + cEpisode(void) + { + number = 0; + season = 0; + name = ""; + firstAired = ""; + guestStars = ""; + overview = ""; + rating = 0.0; + }; + + int number; + int season; + std::string name; + std::string firstAired; + std::string guestStars; + std::string overview; + float rating; + cTvMedia episodeImage; +}; + +class cActor +{ + public: + + cActor(void) + { + name = ""; + role = ""; + }; + + std::string name; + std::string role; + cTvMedia actorThumb; +}; + +/********************************************************************* +* Data Structures for Service Calls +*********************************************************************/ + +// Data structure for service "GetEventType" + +class ScraperGetEventType +{ + public: + + ScraperGetEventType(void) + { + event = NULL; + recording = NULL; + type = tNone; + movieId = 0; + seriesId = 0; + episodeId = 0; + }; + + // in + const cEvent *event; // check type for this event + const cRecording *recording; // or for this recording + + //out + + tvType type; // typeSeries or typeMovie + int movieId; + int seriesId; + int episodeId; +}; + +// Data structure for full series and episode information + +class cMovie +{ + public: + + cMovie(void) + { + title = ""; + originalTitle = ""; + tagline = ""; + overview = ""; + adult = false; + collectionName = ""; + budget = 0; + revenue = 0; + genres = ""; + homepage = ""; + releaseDate = ""; + runtime = 0; + popularity = 0.0; + voteAverage = 0.0; + }; + + // in + + int movieId; // movieId fetched from ScraperGetEventType + + // out + + std::string title; + std::string originalTitle; + std::string tagline; + std::string overview; + bool adult; + std::string collectionName; + int budget; + int revenue; + std::string genres; + std::string homepage; + std::string releaseDate; + int runtime; + float popularity; + float voteAverage; + cTvMedia poster; + cTvMedia fanart; + cTvMedia collectionPoster; + cTvMedia collectionFanart; + std::vector<cActor> actors; +}; + +// Data structure for full series and episode information + +class cSeries +{ + public: + + cSeries(void) + { + seriesId = 0; + episodeId = 0; + name = ""; + overview = ""; + firstAired = ""; + network = ""; + genre = ""; + rating = 0.0; + status = ""; + }; + + // in + + int seriesId; // seriesId fetched from ScraperGetEventType + int episodeId; // episodeId fetched from ScraperGetEventType + + // out + + std::string name; + std::string overview; + std::string firstAired; + std::string network; + std::string genre; + float rating; + std::string status; + cEpisode episode; + std::vector<cActor> actors; + std::vector<cTvMedia> posters; + std::vector<cTvMedia> banners; + std::vector<cTvMedia> fanarts; + cTvMedia seasonPoster; +}; + +// Data structure for service "GetPosterBanner" + +class ScraperGetPosterBanner +{ + public: + + ScraperGetPosterBanner(void) + { + type = tNone; + event = NULL; + }; + + // in + + const cEvent *event; // check type for this event + + // out + + tvType type; // typeSeries or typeMovie + cTvMedia poster; + cTvMedia banner; +}; + +// Data structure for service "GetPosterBannerV2" + +class ScraperGetPosterBannerV2 +{ + public: + + ScraperGetPosterBannerV2(void) + { + type = tNone; + event = NULL; + recording = NULL; + }; + + // in + + const cEvent *event; // check type for this event + const cRecording *recording; // check type for this recording + + // out + + tvType type; // typeSeries or typeMovie + cTvMedia poster; + cTvMedia banner; +}; + +// Data structure for service "GetPoster" + +class ScraperGetPoster +{ + public: + + // in + + const cEvent *event; // check type for this event + const cRecording *recording; // or for this recording + + //out + + cTvMedia poster; +}; + +// Data structure for service "GetPosterThumb" + +class ScraperGetPosterThumb +{ + public: + + // in + + const cEvent *event; // check type for this event + const cRecording *recording; // or for this recording + + // out + + cTvMedia poster; +}; + +#endif //__SCRAPER2VDRSERVICES_H |