diff options
Diffstat (limited to 'lib/tabledef.h')
-rw-r--r-- | lib/tabledef.h | 832 |
1 files changed, 832 insertions, 0 deletions
diff --git a/lib/tabledef.h b/lib/tabledef.h new file mode 100644 index 0000000..bd2b043 --- /dev/null +++ b/lib/tabledef.h @@ -0,0 +1,832 @@ +/* + * tabledef.h + * + * See the README file for copyright information and how to reach the author. + * + */ + +#ifndef __TABLEDEF_H +#define __TABLEDEF_H + +#include "db.h" + +//*************************************************************************** +// cEpgdState +//*************************************************************************** + +class cEpgdState +{ + public: + + enum State + { + esUnknown = na, + + esInit, + esStandby, + esStopped, + + esBusy, + esBusyEvents = esBusy, + esBusyMatch, + + esBusyImages, + + esBusyScraping, + + esCount + }; + + static const char* toName(State s); + static State toState(const char* name); + static int isValid(State s) { return s > esUnknown && s < esCount; } + + static const char* states[]; +}; + +typedef cEpgdState Es; + +//*************************************************************************** +// cUpdateState +//*************************************************************************** + +class cUpdateState +{ + public: + + enum State + { + // add to VDRs EPG + + usActive = 'A', + usLink = 'L', + usPassthrough = 'P', + + // remove from VDRs EPG + + usChanged = 'C', + usDelete = 'D', + usRemove = 'R', + + // don't care for VDRs EPG + + usInactive = 'I', + usTarget = 'T' + }; + + // get lists for SQL 'in' statements + + static const char* getDeletable() { return "'A','L','P','R','I'"; } + static const char* getNeeded() { return "'A','L','P','C','D','R'"; } + + // checks fpr c++ code + + static int isNeeded(char c) { return strchr("ALPCDR", c) != 0; } + static int isRemove(char c) { return strchr("CDR", c) != 0; } + +}; + +typedef cUpdateState Us; + +//*************************************************************************** +// class cTableFileRef +//*************************************************************************** + +class cTableFileRefs : public cDbTable +{ + public: + + cTableFileRefs(cDbConnection* aConnection) + : cDbTable(aConnection, fields, indices) { } + + virtual const char* TableName() { return "fileref"; } + + enum FieldIndex + { + fiName, + fiSource, + + fiInsSp, + fiUpdSp, + + fiExternalId, + fiFileRef, + fiTag, + + fiCount + }; + + static FieldDef fields[]; + static IndexDef indices[]; +}; + +//*************************************************************************** +// class cTableImageRef +//*************************************************************************** + +class cTableImageRefs : public cDbTable +{ + public: + + cTableImageRefs(cDbConnection* aConnection) + : cDbTable(aConnection, fields, indices) { } + + virtual const char* TableName() { return "imagerefs"; } + + enum FieldIndex + { + fiEventId, + fiLfn, + + fiInsSp, + fiUpdSp, + fiSource, + fiFileRef, + + fiImgName, + + fiCount + }; + + static FieldDef fields[]; + static IndexDef indices[]; +}; + +//*************************************************************************** +// class cTableImage +//*************************************************************************** + +class cTableImages : public cDbTable +{ + public: + + cTableImages(cDbConnection* aConnection) + : cDbTable(aConnection, fields) { } + + virtual const char* TableName() { return "images"; } + + enum FieldIndex + { + fiImgName, + + fiInsSp, + fiUpdSp, + fiImage, + + fiCount + }; + + static FieldDef fields[]; +}; + +//*************************************************************************** +// class cTableEvent +//*************************************************************************** + +class cTableEvents : public cDbTable +{ + public: + + cTableEvents(cDbConnection* aConnection) + : cDbTable(aConnection, fields, indices) { } + + virtual const char* TableName() { return "events"; } + + enum FieldIndex + { + fiEventId, + fiChannelId, + + fiMasterId, + fiUseId, + + fiSource, + fiFileRef, + fiInsSp, + fiUpdSp, + fiUpdFlg, // update flag + fiDelFlg, // deletion flag + + fiTableId, + fiVersion, + fiTitle, + fiCompTitle, // compressed (without whitespace and special characters) + fiShortText, + fiCompShortText, // compressed (without whitespace and special characters) + fiLongDescription, + fiStartTime, + fiDuration, + fiParentalRating, + fiVps, + fiDescription, // view field, not stored! + + fiShortDescription, + fiActor, + fiAudio, + fiCategory, + fiCountry, + fiDirector, + fiFlags, + fiGenre, + fiInfo, + fiMusic, + fiProducer, + fiScreenplay, + fiShortreview, + fiTipp, + fiTopic, + fiYear, + fiRating, + fiFsk, + fiMovieid, + fiModerator, + fiOther, + fiGuest, + fiCamera, + + fiExtEpNum, + fiImageCount, + + fiEpisode, + fiEpisodePart, + fiEpisodeLang, + + fiScrSeriesId, + fiScrSeriesEpisode, + fiScrMovieId, + fiScrSp, + + fiCount + }; + + static FieldDef* toField(const char* name); + static FieldDef fields[]; + static IndexDef indices[]; +}; + +//*************************************************************************** +// class cTableComponent +//*************************************************************************** + +class cTableComponents : public cDbTable +{ + public: + + cTableComponents(cDbConnection* aConnection) + : cDbTable(aConnection, fields) { } + + virtual const char* TableName() { return "components"; } + + enum FieldIndex + { + fiEventId, + fiChannelId, + fiStream, + fiType, + fiLang, + fiDescription, + + fiInsSp, + fiUpdSp + }; + + static FieldDef fields[]; +}; + +//*************************************************************************** +// class cTableEpisode +//*************************************************************************** + +class cTableEpisodes : public cDbTable +{ + public: + + cTableEpisodes(cDbConnection* aConnection) + : cDbTable(aConnection, fields, indices) { } + + virtual const char* TableName() { return "episodes"; } + + + enum FieldIndex + { + // primary key + + fiCompName, // compressed name (without whitespace and special characters) + fiCompPartName, // " " " + fiLang, // "de", "en", ... + + fiInsSp, + fiUpdSp, + fiLink, + + // episode data + + fiShortName, + fiEpisodeName, // episode name (fielname without path and suffix) + + // part data + + fiPartName, // part name + fiSeason, + fiPart, + fiParts, + fiNumber, + + fiExtraCol1, + fiExtraCol2, + fiExtraCol3, + fiComment, + + fiCount + }; + + static FieldDef fields[]; + static IndexDef indices[]; +}; + +//*************************************************************************** +// class cTableChannelMap +//*************************************************************************** + +class cTableChannelMap : public cDbTable +{ + public: + + cTableChannelMap(cDbConnection* aConnection) + : cDbTable(aConnection, fields, indices) { } + + virtual const char* TableName() { return "channelmap"; } + + enum FieldIndex + { + fiExternalId, // + fiChannelId, // + fiSource, + + fiChannelName, + + fiVps, + fiMerge, + fiMergeSp, + + fiInsSp, + fiUpdSp, + fiUpdFlg, + + fiCount + }; + + static FieldDef fields[]; + static IndexDef indices[]; +}; + +//*************************************************************************** +// class cTableVdr +//*************************************************************************** + +class cTableVdrs : public cDbTable +{ + public: + + cTableVdrs(cDbConnection* aConnection) + : cDbTable(aConnection, fields) { } + + virtual const char* TableName() { return "vdrs"; } + + enum FieldIndex + { + fiUuid, + + fiInsSp, + fiUpdSp, + + fiName, + fiVersion, + fiDbApi, + fiLastUpdate, + fiNextUpdate, + fiState, + fiMaster, + fiIp, + + fiCount + }; + + static FieldDef fields[]; +}; + +//*************************************************************************** +// class cTableParameters +//*************************************************************************** + +class cTableParameters : public cDbTable +{ + public: + + cTableParameters(cDbConnection* aConnection) + : cDbTable(aConnection, fields) { } + + virtual const char* TableName() { return "parameters"; } + + enum FieldIndex + { + fiOwner, + fiName, + + fiInsSp, + fiUpdSp, + + fiValue, + + fiCount + }; + + static FieldDef fields[]; +}; + +//*************************************************************************** +// cTableAnalyse +//*************************************************************************** + +class cTableAnalyse : public cDbTable +{ + public: + + cTableAnalyse(cDbConnection* aConnection) + : cDbTable(aConnection, fields, indices) { } + + virtual const char* TableName() { return "analyse"; } + + enum FieldIndex + { + fiChannelId, + fiVdrMasterId, + fiVdrEventId, + + fiVdrStartTime, + fiVdrDuration, + fiVdrTitle, + fiVdrShortText, + + fiExtMasterId, + fiExtEventId, + fiExtStartTime, + fiExtDuration, + fiExtTitle, + fiExtShortText, + fiExtEpisode, + fiExtMerge, + fiExiImages, + + fiLvMin, + fiRank, + + fiCount + }; + + static FieldDef fields[]; + static IndexDef indices[]; +}; + +//*************************************************************************** +// cTableSnapshot +//*************************************************************************** + +class cTableSnapshot : public cDbTable +{ + public: + + cTableSnapshot(cDbConnection* aConnection) + : cDbTable(aConnection, fields, indices) { } + + virtual const char* TableName() { return "snapshot"; } + + enum FieldIndex + { + fiChannelId, + fiSource, + fiVdrMasterId, + fiEventId, + fiUseId, + fiStartTime, + fiDuration, + fiTitle, + fiCompTitle, + fiShortText, + fiCompShortText, + fiUpdsp, + fiEpisode, + fiMerge, + fiImages, + + fiCount + }; + + static FieldDef fields[]; + static IndexDef indices[]; +}; + +//*************************************************************************** +// class cTableSeries +//*************************************************************************** + +class cTableSeries : public cDbTable +{ + public: + + cTableSeries(cDbConnection* aConnection) + : cDbTable(aConnection, fields, indices) { } + + virtual const char* TableName() { return "series"; } + + enum FieldIndex + { + fiSeriesId, + + fiSeriesName, + fiSeriesLastScraped, + fiSeriesLastUpdated, + fiSeriesOverview, + fiSeriesFirstAired, + fiSeriesNetwork, + fiSeriesIMDBId, + fiSeriesGenre, + fiSeriesRating, + fiSeriesStatus, + + fiCount + }; + + static FieldDef* toField(const char* name); + static FieldDef fields[]; + static IndexDef indices[]; +}; + +//*************************************************************************** +// class cTableSeriesEpisode +//*************************************************************************** + +class cTableSeriesEpisode : public cDbTable +{ + public: + + cTableSeriesEpisode(cDbConnection* aConnection) + : cDbTable(aConnection, fields, indices) { } + + virtual const char* TableName() { return "series_episode"; } + + enum FieldIndex + { + fiEpisodeId, + + fiEpisodeNumber, + fiSeasonNumber, + fiEpisodeName, + fiEpisodeOverview, + fiEpisodeFirstAired, + fiEpisodeGuestStars, + fiEpisodeRating, + fiEpisodeLastUpdated, + fiSeriesId, + + fiCount + }; + + static FieldDef* toField(const char* name); + static FieldDef fields[]; + static IndexDef indices[]; +}; + +//*************************************************************************** +// class cTableSeriesMedia +//*************************************************************************** + +class cTableSeriesMedia : public cDbTable +{ + public: + + cTableSeriesMedia(cDbConnection* aConnection) + : cDbTable(aConnection, fields, indices) { } + + virtual const char* TableName() { return "series_media"; } + + enum FieldIndex + { + fiSeriesId, + fiSeasonNumber, + fiEpisodeId, + fiActorId, + fiMediaType, + + fiMediaUrl, + fiMediaWidth, + fiMediaHeight, + fiMediaRating, + fiMediaContent, + + fiCount + }; + + static FieldDef* toField(const char* name); + static FieldDef fields[]; + static IndexDef indices[]; +}; + +//*************************************************************************** +// class cTableSeriesActor +//*************************************************************************** + +class cTableSeriesActor : public cDbTable +{ + public: + + cTableSeriesActor(cDbConnection* aConnection) + : cDbTable(aConnection, fields, indices) { } + + virtual const char* TableName() { return "series_actor"; } + + enum FieldIndex + { + fiActorId, + + fiActorName, + fiActorRole, + fiSortOrder, + + fiCount + }; + + static FieldDef* toField(const char* name); + static FieldDef fields[]; + static IndexDef indices[]; +}; + +//*************************************************************************** +// class cTableMovies +//*************************************************************************** + +class cTableMovies : public cDbTable +{ + public: + + cTableMovies(cDbConnection* aConnection) + : cDbTable(aConnection, fields, indices) { } + + virtual const char* TableName() { return "movie"; } + + enum FieldIndex + { + fiMovieId, + + fiTitle, + fiOriginalTitle, + fiTagline, + fiOverview, + fiIsAdult, + fiCollectionId, + fiCollectionName, + fiBudget, + fiRevenue, + fiGenres, + fiHomepage, + fiReleaaseDate, + fiRuntime, + fiPopularity, + fiVoteAverage, + + fiCount + }; + + static FieldDef* toField(const char* name); + static FieldDef fields[]; + static IndexDef indices[]; +}; + +//*************************************************************************** +// class cTableMovieActor +//*************************************************************************** + +class cTableMovieActor : public cDbTable +{ + public: + + cTableMovieActor(cDbConnection* aConnection) + : cDbTable(aConnection, fields, indices) { } + + virtual const char* TableName() { return "movie_actor"; } + + enum FieldIndex + { + fiActorId, + + fiActorName, + + fiCount + }; + + static FieldDef* toField(const char* name); + static FieldDef fields[]; + static IndexDef indices[]; +}; + +//*************************************************************************** +// class cTableMovieActors +//*************************************************************************** + +class cTableMovieActors : public cDbTable +{ + public: + + cTableMovieActors(cDbConnection* aConnection) + : cDbTable(aConnection, fields, indices) { } + + virtual const char* TableName() { return "movie_actors"; } + + enum FieldIndex + { + fiMovieId, + fiActorId, + + fiRole, + + fiCount + }; + + static FieldDef* toField(const char* name); + static FieldDef fields[]; + static IndexDef indices[]; +}; + +//*************************************************************************** +// class cTableMovieMedia +//*************************************************************************** + +class cTableMovieMedia : public cDbTable +{ + public: + + cTableMovieMedia(cDbConnection* aConnection) + : cDbTable(aConnection, fields, indices) { } + + virtual const char* TableName() { return "movie_media"; } + + enum FieldIndex + { + fiMovieId, + fiActorId, + fiMediaType, + + fiMediaUrl, + fiMediaWidth, + fiMediaHeight, + fiMediaContent, + + fiCount + }; + + static FieldDef* toField(const char* name); + static FieldDef fields[]; + static IndexDef indices[]; +}; + +//*************************************************************************** +// class cTableRecordings +//*************************************************************************** + +class cTableRecordings : public cDbTable +{ + public: + + cTableRecordings(cDbConnection* aConnection) + : cDbTable(aConnection, fields, indices) { } + + virtual const char* TableName() { return "recordings"; } + + enum FieldIndex + { + fiUuid, + fiRecPath, + fiRecStart, + + fiEventId, + fiChannelId, + fiScrapInfoMovieId, + fiScrapInfoSeriesId, + fiScrapInfoEpisodeId, + fiScrapNew, + fiRecTitle, + fiRecSubTitle, + fiRecDuration, + fiMovieId, + fiSeriesId, + fiEpisodeId, + + fiCount + }; + + static FieldDef* toField(const char* name); + static FieldDef fields[]; + static IndexDef indices[]; +}; + +#endif //__TABLEDEF_H |