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
|
<?php
header("Content-type: text/xml");
header("Cache-Control: no-cache, must-revalidate");
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
global $ADEI;
$ADEI->RequireClass("download");
try {
$target = $_GET["target"];
$dm = new DOWNLOADMANAGER();
switch ($target) {
case "dlmanager_add":
$dm->AddDownload();
break;
case "dlmanager_remove":
$dm->RemoveDownload();
break;
case "dlmanager_list":
CreateDownloadXml($dm->GetDownloads(), $target);
break;
case "dlmanager_run":
$dm->DlManagerRun();
break;
case "dlmanager_sort":
$dm->SortBy();
break;
case "dlmanager_details":
CreateDownloadXml($dm->GetDownloadDetails(), $target);
break;
case "dlmanager_download":
$dm->GetFile();
break;
case "dlmanager_toggleautodelete";
$download = $_GET["dl_id"];
$dm->ToggleAutodelete($download);
break;
default:
throw new ADEIException(translate("Error with download service: Target ( $target ) not valid"));
break;
}
} catch(ADEIException $ex) {
throw new ADEIException(translate("Error with download service. Target: $target \n Error: $ex"));
}
function CreateDownloadXml($props, $mode) {
$XMLoutput = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
switch ($mode) {
case 'dlmanager_list':
$XMLoutput .= "<result>\n";
foreach($props as $download) {
$XMLoutput .= "<download";
foreach($download as $key => $value) {
$XMLoutput .= " $key=\"" . htmlentities($value) . "\"";
}
$XMLoutput .= "></download>\n";
}
$XMLoutput .= "</result>";
break;
case 'dlmanager_details':
$XMLoutput .= "<groups>";
if(!empty($props['props']['error'])) $XMLoutput .= "<error>" . htmlentities($props['props']['error']) . "</error>";
$XMLoutput .= "<window><from>{$props['props']['window']['from']}</from><to>{$props['props']['window']['to']}</to></window>"; //
$XMLoutput .= "<data><format>{$props['props']['format']}</format><size>{$props['props']['size']}</size></data>";
foreach($props['groups'] as $gid => $itemlist) {
$XMLoutput .= "<group>\n<gname>$gid</gname>";
foreach($itemlist as $item => $info){
$XMLoutput .= "<item>\n<itemid>{$info['id']}</itemid>\n<itemname>{$info['name']}</itemname>\n</item>\n";
}
$XMLoutput .= "</group>";
}
$XMLoutput .= "</groups>";
break;
}
echo $XMLoutput;
}
?>
|