diff options
Diffstat (limited to 'module/remote/pyload.thrift')
-rw-r--r-- | module/remote/pyload.thrift | 239 |
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() +} |