1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
|
#ifndef __UPDATE_H
#define __UPDATE_H
#include <map>
#include <vdr/thread.h>
#include "lib/common.h"
#include "lib/db.h"
#include "lib/tabledef.h"
#include "scrapmanager.h"
#define EPGDNAME "epgd"
class cUpdate : public cThread {
private:
cScrapManager *scrapManager;
string imgPathSeries;
string imgPathMovies;
bool withutf8;
bool loopActive;
cDbConnection* connection;
cTableVdrs* vdrDb;
cTableEvents* tEvents;
cTableSeries* tSeries;
cTableSeriesEpisode* tEpisodes;
cTableSeriesMedia* tSeriesMedia;
cTableSeriesActor* tSeriesActors;
cTableMovies* tMovies;
cTableMovieActor* tMovieActor;
cTableMovieActors* tMovieActors;
cTableMovieMedia* tMovieMedia;
cTableRecordings* tRecordings;
int lastScrap;
cCondVar waitCondition;
cMutex mutex;
bool forceUpdate;
bool forceRecordingUpdate;
bool forceVideoDirUpdate;
bool forceScrapInfoUpdate;
bool forceCleanupRecordingDb;
int exitDb();
int dbConnected(int force = no) { return connection && (!force || connection->check() == success); };
int CheckConnection(int& timeout);
bool CheckEpgdBusy(void);
void Action(void);
int ReadScrapedEvents(void);
//SERIES
int ReadSeries(bool isRec);
void ReadEpisode(int episodeId, cTVDBSeries *series, string path);
void LoadEpisodeImage(cTVDBSeries *series, int episodeId, string path);
void LoadSeasonPoster(cTVDBSeries *series, int season, string path);
void ReadSeriesActors(cTVDBSeries *series, string path);
void LoadSeriesMedia(cTVDBSeries *series, string path);
string LoadMediaSeries(int seriesId, int mediaType, string path, int width, int height);
void LoadSeriesActorThumb(cTVDBSeries *series, int actorId, string path);
//MOVIES
int ReadMovies(bool isRec);
void ReadMovieActors(cMovieDbMovie *movie);
void LoadMovieActorThumbs(cMovieDbMovie *movie);
void LoadMovieMedia(cMovieDbMovie *movie, string moviePath);
string LoadMediaMovie(int movieId, int mediaType, string path, int width, int height);
//RECORDINGS
int ReadRecordings(void);
int ScanVideoDir(void);
int ScanVideoDirScrapInfo(void);
bool LoadRecording(int eventId, string recName);
bool ScrapInfoChanged(int scrapInfoMovieID, int scrapInfoSeriesID, int scrapInfoEpisodeID);
void ReadScrapInfo(string recDir, int &scrapInfoMovieID, int &scrapInfoSeriesID, int &scrapInfoEpisodeID);
//CLEANUP
int CleanupSeries(void);
int CleanupMovies(void);
int CleanupRecordings(void);
// statements
cDbStatement* selectReadScrapedEventsInit;
cDbStatement* selectReadScrapedEvents;
cDbStatement* selectImg;
cDbStatement* selectEpisodeImg;
cDbStatement* selectSeasonPoster;
cDbStatement* selectActors;
cDbStatement* selectActorThumbs;
cDbStatement* selectSeriesMedia;
cDbStatement* selectMovieActors;
cDbStatement* selectMovieActorThumbs;
cDbStatement* selectMovieMedia;
cDbStatement* selectMediaMovie;
cDbStatement* selectRecordings;
cDbStatement* selectCleanupRecordings;
cDbValue imageSize;
cDbValue episodeImageSize;
cDbValue posterSize;
cDbValue series_id;
cDbValue actorImageSize;
cDbValue actorRole;
cDbValue actorMovie;
cDbValue thbWidth;
cDbValue thbHeight;
public:
cUpdate(cScrapManager *manager);
virtual ~cUpdate(void);
int initDb();
void Stop(void);
void ForceUpdate(void);
void ForceRecordingUpdate(void);
void ForceVideoDirUpdate(void);
void ForceScrapInfoUpdate(void);
void TriggerCleanRecordingsDB(void);
};
//***************************************************************************
#endif //__UPDATE_H
|