-
Notifications
You must be signed in to change notification settings - Fork 40
/
Copy pathlistfolder.html
135 lines (109 loc) · 2.82 KB
/
listfolder.html
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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
<html>
<head>
<title>pCloud SDK: Examples / List folder</title>
<style>
body {
margin: 0;
padding: 20px;
}
#gettoken-redirect {
top: 20px;
position: fixed;
right: 20px;
}
#gettoken-poll {
top: 50px;
position: fixed;
right: 20px;
}
</style>
</head>
<body>
<button id="gettoken-redirect">Get Token(redirect)</button>
<button id="gettoken-poll">Get Token(poll)</button>
<script type="text/javascript" src="examples/pcloudsdk.js"></script>
<script>
'use strict';
var access_token = false;
var locationid = "";
var client = false;
function children(metadata) {
return Promise.resolve(metadata.contents);
}
function files(metadata) {
return children(metadata).then(filter((f) => !f.isfolder));
}
function filter(f) {
return (iterable) => {
var ret = [];
for (var n in iterable) {
if (f(iterable[n])) {
ret.push(iterable[n]);
}
}
return ret;
}
}
function length(array) {
return Promise.resolve(array.length);
}
function map(f) {
return (array) => {
return Promise.resolve(array.map(f));
}
}
function size(metadata) {
return metadata.size;
}
function name(metadata) {
return metadata.name;
}
function el(id) {
return document.getElementById(id);
}
function flat(iterable) {
var ret = 0;
for (var n in iterable) {
ret += iterable[n];
console.log(iterable[n]);
}
return Promise.resolve(ret);
}
function folderSize(folderid) {
return client.listfolder(0).then(files).then(map(size)).then(flat);
}
function folderItems(folderid) {
return client.listfolder(0).then(children).then(map(name));
}
function receiveTokenCb(token, id) {
console.log(token, id);
access_token = token;
locationid = id || 1;
client = pCloudSdk.createClient(token);
folderSize(0).then((a) => {
console.log('Size: ', a);
});
folderItems(0).then((a) => {
console.log('Items: ', a);
});
}
// Oauth authenticate with redirect uri
el('gettoken-redirect').addEventListener('click', function (e) {
pCloudSdk.oauth.initOauthToken({
client_id: '3dunsTvYJsu',
redirect_uri: 'http://127.0.0.1:8080/oauth.html',
receiveToken: receiveTokenCb,
onError: err => console.log(err)
});
}, false);
// Oauth authenticate without redirect uri
el('gettoken-poll').addEventListener('click', function (e) {
pCloudSdk.oauth.initOauthPollToken({
client_id: '3dunsTvYJsu',
receiveToken: receiveTokenCb,
onError: err => console.log(err)
});
}, false);
</script>
</body>
</html>