summaryrefslogtreecommitdiffstats
path: root/module/remote/pyload.thrift
diff options
context:
space:
mode:
Diffstat (limited to 'module/remote/pyload.thrift')
-rw-r--r--module/remote/pyload.thrift239
1 files changed, 239 insertions, 0 deletions
diff --git a/module/remote/pyload.thrift b/module/remote/pyload.thrift
new file mode 100644
index 000000000..413a841d7
--- /dev/null
+++ b/module/remote/pyload.thrift
@@ -0,0 +1,239 @@
+typedef i32 FileID
+typedef i32 PackageID
+typedef i32 TaskID
+typedef list<string> LinkList
+typedef byte Progress
+typedef byte Priority
+
+enum DownloadStatus {
+ Finished
+ Offline,
+ Online,
+ Queued,
+ Checking,
+ Waiting,
+ Reconnected,
+ Starting,
+ Failed,
+ Aborted,
+ Decrypting,
+ Custom,
+ Downloading,
+ Processing,
+ Unknown
+}
+
+enum Destination {
+ Queue,
+ Collector
+}
+
+enum CaptchaStatus {
+ Init,
+ Waiting,
+ User,
+ SharedUser,
+ Done
+}
+
+enum ConfigItemType {
+ String,
+ Password,
+ Choice,
+ Bool,
+ Integer,
+ IP,
+ File,
+ Folder,
+ Time
+}
+
+enum ElementType {
+ Package,
+ File
+}
+
+enum EventType {
+ ReloadAll,
+ ReloadAccounts,
+ ReloadConfig,
+ ReloadOrder,
+ Update,
+ Remove,
+ Insert
+}
+
+struct DownloadStatus {
+ 1: FileID id,
+ 2: string name,
+ 3: i32 speed,
+ 4: i32 eta,
+ 5: string format_eta,
+ 6: i64 kbleft,
+ 7: i64 bleft,
+ 8: i64 size,
+ 9: string format_size,
+ 10: Progress percent,
+ 11: DownloadStatus status,
+ 12: string statusmsg,
+ 13: string format_wait,
+ 14: i64 wait_until,
+ 15: PackageID packageID,
+}
+
+struct ServerStatus {
+ 1: bool pause,
+ 2: i16 active,
+ 3: i16 queue,
+ 4: i16 total,
+ 5: i32 speed,
+ 6: bool download,
+ 7: bool reconnect
+}
+
+struct ConfigItem {
+ 1: string name,
+ 2: string description,
+ 3: string value,
+ 4: ConfigItemType type,
+ 5: optional set<string> choice
+}
+
+struct ConfigSection {
+ 1: string name,
+ 2: string description,
+ 3: list<ConfigItem> items
+}
+
+struct FileData {
+ 1: FileID fid,
+ 2: string url,
+ 3: string name,
+ 4: string plugin,
+ 5: i64 size,
+ 6: string format_size,
+ 7: DownloadStatus status,
+ 8: string statusmsg,
+ 9: PackageID package,
+ 10: string error,
+ 11: i16 order,
+ 12: Progress progress
+}
+
+struct PackageData {
+ 1: PackageID pid,
+ 2: string name,
+ 3: string folder,
+ 4: string site,
+ 5: string password,
+ 6: Destination destination,
+ 7: i16 order,
+ 8: Priority priority,
+ 9: optional list<FileID> fileids
+}
+
+struct CaptchaTask {
+ 1: TaskID tid,
+ 2: binary data,
+ 3: string type
+}
+
+struct Event {
+ 1: EventType event,
+ 2: optional i32 id,
+ 3: optional ElementType type,
+ 4: optional Destination destination
+}
+
+struct UserData {
+ 1: string name,
+ 2: string email,
+ 3: i32 role,
+ 4: i32 permission,
+ 5: string template
+}
+
+struct AccountInfo {
+ 1: i64 validuntil,
+ 2: string login,
+ 3: map<string, string> options,
+ 4: bool valid,
+ 5: i64 trafficleft,
+ 6: i64 maxtraffic,
+ 7: bool premium,
+ 8: string type,
+}
+
+struct AccountData {
+ 1: string type,
+ 2: string login,
+ 3: optional string password,
+ 4: optional map<string, string> options
+}
+
+service Pyload {
+ //general
+ string getConfigValue(1: string category, 2: string option, 3: string section),
+ void setConfigValue(1: string category, 2: string option, 3: string value, 4: string section),
+ list<ConfigSection> getConfig(),
+ list<ConfigSection> getPluginConfig(),
+ void pauseServer(),
+ void unpauseServer(),
+ bool togglePause(),
+ ServerStatus statusServer(),
+ i64 freeSpace(),
+ string getServerVersion(),
+ void kill(),
+ void restart(),
+ list<string> getLog(1: i32 offset),
+ map<string, string> checkURL(1: LinkList urls),
+ bool isTimeDownload(),
+ bool isTimeReconnect(),
+
+ //downloads
+ list<DownloadStatus> statusDownloads(),
+ PackageID addPackage(1: string name, 2: LinkList links, 3: Destination dest),
+ PackageData getPackageData(1: PackageID pid),
+ FileData getFileData(1: FileID fid),
+ void deleteFiles(1: list<FileID> fids),
+ void deletePackages(1: list<PackageID> pids),
+ list<PackageData> getQueue(),
+ list<PackageData> getCollector(),
+ void addFiles(1: PackageID pid, 2: LinkList links),
+ void pushToQueue(1: PackageID pid),
+ void pullFromQueue(1: PackageID pid),
+ void restartPackage(1: PackageID pid),
+ void restartFile(1: FileID fid),
+ void recheckPackage(1: PackageID pid),
+ void stopAllDownloads(),
+ void stopDownloads(1: list<FileID> fids),
+ void setPackageName(1: PackageID pid, 2: string name),
+ void movePackage(1: Destination destination, 2: PackageID pid),
+ void uploadContainer(1: string filename, 2: binary data),
+ void setPriority(1: PackageID pid, 2: Priority priority)
+ void orderPackage(1: PackageID pid, 2: i16 position),
+ void orderFile(1: FileID fid, 2: i16 position),
+ void setPackageData(1: PackageID pid, 2: PackageData data),
+ void deleteFinished(),
+ void restartFailed(),
+ map<i16, PackageID> getPackageOrder(1: Destination destination),
+ map<i16, FileID> getFileOrder(1: PackageID pid)
+
+ //captcha
+ bool isCaptchaWaiting(),
+ CaptchaTask getCaptchaTask(1: bool exclusive),
+ CaptchaStatus getCaptchaTaskStatus(1: TaskID tid),
+ void setCaptchaResult(1: TaskID tid, 2: string result),
+
+ //events
+ list<Event> getEvents()
+
+ //accounts
+ list<AccountInfo> getAccounts(),
+ void updateAccounts(1: AccountData data),
+ void removeAccount(1: string plugin, 2: string account)
+
+ //auth
+ bool login(1: string username, 2: string password),
+ UserData getUserData()
+}