vdr-plugin-scraper2vdr/lib/tabledef.h
2014-04-12 17:10:43 +02:00

833 lines
18 KiB
C++

/*
* 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