MythTV master
v2myth.h
Go to the documentation of this file.
1#ifndef V2MYTH_H
2#define V2MYTH_H
3
5#include "v2connectionInfo.h"
7#include "v2timeZoneInfo.h"
8#include "v2logMessageList.h"
9#include "v2frontendList.h"
10#include "v2settingList.h"
11#include "v2backendInfo.h"
12#include "v2buildInfo.h"
13#include "v2envInfo.h"
14#include "v2logInfo.h"
15
16#define MYTH_SERVICE QString("/Myth/")
17#define MYTH_HANDLE QString("Myth")
18
19class V2Myth : public MythHTTPService
20{
21 Q_OBJECT
22 Q_CLASSINFO( "Version" , "5.2" )
23 Q_CLASSINFO( "GetHostName", "methods=GET;name=String" )
24 Q_CLASSINFO( "GetHosts", "methods=GET;name=StringList" )
25 Q_CLASSINFO( "GetKeys", "methods=GET;name=StringList" )
26 Q_CLASSINFO( "AddStorageGroupDir", "methods=POST" )
27 Q_CLASSINFO( "RemoveStorageGroupDir", "methods=POST" )
28 Q_CLASSINFO( "GetFormatDate", "methods=GET;name=String" )
29 Q_CLASSINFO( "GetFormatDateTime", "methods=GET;name=String" )
30 Q_CLASSINFO( "GetFormatTime", "methods=GET;name=String" )
31 Q_CLASSINFO( "ParseISODateString", "methods=GET" )
32 Q_CLASSINFO( "GetSetting", "methods=GET;name=String" )
33 Q_CLASSINFO( "PutSetting", "methods=POST" )
34 Q_CLASSINFO( "DeleteSetting", "methods=POST" )
35 Q_CLASSINFO( "TestDBSettings", "methods=POST" )
36 Q_CLASSINFO( "SendMessage", "methods=POST" )
37 Q_CLASSINFO( "SendNotification", "methods=POST" )
38 Q_CLASSINFO( "BackupDatabase", "methods=POST" )
39 Q_CLASSINFO( "CheckDatabase", "methods=POST" )
40 Q_CLASSINFO( "DelayShutdown", "methods=POST" )
41 Q_CLASSINFO( "ProfileSubmit", "methods=POST" )
42 Q_CLASSINFO( "ProfileDelete", "methods=POST" )
43 Q_CLASSINFO( "ProfileURL", "methods=GET" )
44 Q_CLASSINFO( "ProfileUpdated", "methods=GET" )
45 Q_CLASSINFO( "ProfileText", "methods=GET" )
46 Q_CLASSINFO( "ManageDigestUser", "methods=POST" )
47 Q_CLASSINFO( "LoginUser", "methods=POST" )
48 Q_CLASSINFO( "GetUsers", "methods=GET;name=StringList" )
49 Q_CLASSINFO( "ManageUrlProtection", "methods=POST" )
50 Q_CLASSINFO( "SetConnectionInfo", "methods=POST" )
51 Q_CLASSINFO("ManageScheduler", "methods=POST")
52 Q_CLASSINFO("Shutdown", "methods=POST")
53 Q_CLASSINFO("Proxy", "methods=GET,POST")
54
55 public:
56 V2Myth();
57 ~V2Myth() override = default;
58 static void RegisterCustomTypes();
59
60 enum WebOnlyStartup : std::uint8_t {
67 };
69
70 public slots:
71
72 static V2ConnectionInfo* GetConnectionInfo ( const QString &Pin );
73
74 static bool SetConnectionInfo ( const QString &Host,
75 const QString &UserName,
76 const QString &Password,
77 const QString &Name,
78 int Port,
79 bool DoTest);
80
81 static QString GetHostName ( );
82
83 static QStringList GetHosts ( );
84
85 static QStringList GetKeys ( );
86
87 static QStringList GetDirListing ( const QString &DirName,
88 bool Files );
89
90 static V2StorageGroupDirList* GetStorageGroupDirs ( const QString &GroupName,
91 const QString &HostName );
92
93 static bool AddStorageGroupDir ( const QString &GroupName,
94 const QString &DirName,
95 const QString &HostName );
96
97 static bool RemoveStorageGroupDir( const QString &GroupName,
98 const QString &DirName,
99 const QString &HostName );
100
101 static V2TimeZoneInfo* GetTimeZone ( );
102
103 static QString GetFormatDate ( const QDateTime &Date,
104 bool ShortDate );
105
106 static QString GetFormatDateTime ( const QDateTime &DateTime,
107 bool ShortDate );
108
109 static QString GetFormatTime ( const QDateTime &Time );
110
111 static QDateTime ParseISODateString ( const QString &DateTime );
112
113 static V2LogMessageList* GetLogs ( const QString &HostName,
114 const QString &Application,
115 int PID,
116 int TID,
117 const QString &Thread,
118 const QString &Filename,
119 int Line,
120 const QString &Function,
121 const QDateTime &FromTime,
122 const QDateTime &ToTime,
123 const QString &Level,
124 const QString &MsgContains
125 );
126
127
128 static V2FrontendList* GetFrontends ( bool OnLine );
129 static QString GetSetting ( const QString &HostName,
130 const QString &Key,
131 const QString &Default );
132 static V2SettingList* GetSettingList ( const QString &HostName );
133
134 bool PutSetting ( const QString &HostName,
135 const QString &Key,
136 const QString &Value );
137
138 static bool DeleteSetting ( const QString &HostName,
139 const QString &Key);
140
141 static bool TestDBSettings ( const QString &HostName,
142 const QString &UserName,
143 const QString &Password,
144 const QString &DBName,
145 int dbPort);
146
147 static bool SendMessage ( const QString &Message,
148 const QString &Address,
149 int udpPort,
150 int Timeout);
151
152 static bool SendNotification ( bool Error,
153 const QString &Type,
154 const QString &Message,
155 const QString &Origin,
156 const QString &Description,
157 const QString &Image,
158 const QString &Extra,
159 const QString &ProgressText,
160 float Progress,
161 int Timeout,
162 bool Fullscreen,
163 uint Visibility,
165 const QString &Address,
166 int udpPort );
167
168 static bool BackupDatabase ( void );
169
170 static bool CheckDatabase ( bool Repair );
171
172 static bool DelayShutdown ( void );
173
174 static bool ProfileSubmit ( void );
175
176 static bool ProfileDelete ( void );
177
178 static QString ProfileURL ( void );
179
180 static QString ProfileUpdated ( void );
181
182 static QString ProfileText ( void );
183
185
186 bool ManageDigestUser ( const QString &Action,
187 const QString &UserName,
188 const QString &Password,
189 const QString &NewPassword);
190
191 static QString LoginUser ( const QString &UserName,
192 const QString &Password );
193
194 static QStringList GetUsers ( void );
195
196 static bool ManageUrlProtection ( const QString &Services,
197 const QString &AdminPassword );
198
199 static bool ManageScheduler ( bool Enable,
200 bool Disable );
201
202 static bool Shutdown ( int Retcode, bool Restart, bool WebOnly);
203
204 static QString Proxy ( const QString &Url);
205
206 private:
207 Q_DISABLE_COPY(V2Myth)
208
209};
210
211#endif // V2MYTH_H
An action (for this plugin) consists of a description, and a set of key sequences.
Definition: action.h:41
Contains Packet Identifier numeric values.
Definition: mpegtables.h:207
Definition: v2myth.h:20
static QStringList GetKeys()
Definition: v2myth.cpp:240
static V2TimeZoneInfo * GetTimeZone()
Definition: v2myth.cpp:468
static bool RemoveStorageGroupDir(const QString &GroupName, const QString &DirName, const QString &HostName)
Definition: v2myth.cpp:427
static V2SettingList * GetSettingList(const QString &HostName)
Definition: v2myth.cpp:716
bool PutSetting(const QString &HostName, const QString &Key, const QString &Value)
Definition: v2myth.cpp:768
static bool AddStorageGroupDir(const QString &GroupName, const QString &DirName, const QString &HostName)
Definition: v2myth.cpp:365
static bool SendNotification(bool Error, const QString &Type, const QString &Message, const QString &Origin, const QString &Description, const QString &Image, const QString &Extra, const QString &ProgressText, float Progress, int Timeout, bool Fullscreen, uint Visibility, uint Priority, const QString &Address, int udpPort)
Definition: v2myth.cpp:901
static bool DelayShutdown(void)
Definition: v2myth.cpp:1022
static bool TestDBSettings(const QString &HostName, const QString &UserName, const QString &Password, const QString &DBName, int dbPort)
Definition: v2myth.cpp:821
static void RegisterCustomTypes()
static WebOnlyStartup s_WebOnlyStartup
Definition: v2myth.h:68
static V2LogMessageList * GetLogs(const QString &HostName, const QString &Application, int PID, int TID, const QString &Thread, const QString &Filename, int Line, const QString &Function, const QDateTime &FromTime, const QDateTime &ToTime, const QString &Level, const QString &MsgContains)
Definition: v2myth.cpp:532
static QString GetHostName()
Definition: v2myth.cpp:193
static QString GetSetting(const QString &HostName, const QString &Key, const QString &Default)
Definition: v2myth.cpp:678
static bool BackupDatabase(void)
Definition: v2myth.cpp:979
static bool SendMessage(const QString &Message, const QString &Address, int udpPort, int Timeout)
Definition: v2myth.cpp:847
static bool ProfileSubmit(void)
Definition: v2myth.cpp:1036
static bool CheckDatabase(bool Repair)
Definition: v2myth.cpp:1008
static V2FrontendList * GetFrontends(bool OnLine)
Definition: v2myth.cpp:665
static V2StorageGroupDirList * GetStorageGroupDirs(const QString &GroupName, const QString &HostName)
Definition: v2myth.cpp:289
static QStringList GetUsers(void)
Definition: v2myth.cpp:1251
static QString ProfileText(void)
Definition: v2myth.cpp:1102
bool ManageDigestUser(const QString &Action, const QString &UserName, const QString &Password, const QString &NewPassword)
Definition: v2myth.cpp:1181
V2Myth()
Definition: v2myth.cpp:66
static QString GetFormatTime(const QDateTime &Time)
Definition: v2myth.cpp:509
WebOnlyStartup
Definition: v2myth.h:60
@ kWebOnlyNone
Definition: v2myth.h:61
@ kWebOnlyIPAddress
Definition: v2myth.h:65
@ kWebOnlyDBTimezone
Definition: v2myth.h:63
@ kWebOnlyWebOnlyParm
Definition: v2myth.h:64
@ kWebOnlySchemaUpdate
Definition: v2myth.h:66
@ kWebOnlyDBSetup
Definition: v2myth.h:62
V2BackendInfo * GetBackendInfo(void)
Definition: v2myth.cpp:1116
static bool SetConnectionInfo(const QString &Host, const QString &UserName, const QString &Password, const QString &Name, int Port, bool DoTest)
Definition: v2myth.cpp:155
static QString Proxy(const QString &Url)
Definition: v2myth.cpp:1393
static QStringList GetDirListing(const QString &DirName, bool Files)
Definition: v2myth.cpp:274
static bool ProfileDelete(void)
Definition: v2myth.cpp:1052
static bool DeleteSetting(const QString &HostName, const QString &Key)
Definition: v2myth.cpp:800
static bool ManageUrlProtection(const QString &Services, const QString &AdminPassword)
Definition: v2myth.cpp:1285
static QStringList GetHosts()
Definition: v2myth.cpp:205
static QString LoginUser(const QString &UserName, const QString &Password)
Definition: v2myth.cpp:1235
static bool Shutdown(int Retcode, bool Restart, bool WebOnly)
Definition: v2myth.cpp:1369
static QString GetFormatDate(const QDateTime &Date, bool ShortDate)
Definition: v2myth.cpp:483
static bool ManageScheduler(bool Enable, bool Disable)
Definition: v2myth.cpp:1343
static QDateTime ParseISODateString(const QString &DateTime)
Definition: v2myth.cpp:518
static QString ProfileUpdated(void)
Definition: v2myth.cpp:1084
static QString GetFormatDateTime(const QDateTime &DateTime, bool ShortDate)
Definition: v2myth.cpp:496
static QString ProfileURL(void)
Definition: v2myth.cpp:1068
~V2Myth() override=default
static V2ConnectionInfo * GetConnectionInfo(const QString &Pin)
Definition: v2myth.cpp:75
unsigned int uint
Definition: freesurround.h:24
static StandardSetting * Password(bool enabled)
Setting for changing password.