+31
-16
posting_stats_page.js
+31
-16
posting_stats_page.js
···
96
96
let requestedDays = this.selectedDaysRange();
97
97
let scanType = this.scanType.value;
98
98
99
-
this.startScan(startTime, requestedDays);
100
-
101
99
/** @type {FetchAllOnPageLoad} */
102
100
let onPageLoad = (data) => {
103
101
if (this.scanStartTime != startTime) {
···
108
106
};
109
107
110
108
if (scanType == 'home') {
111
-
let items = await accountAPI.loadHomeTimeline(requestedDays, {
109
+
this.startScan(startTime, requestedDays);
110
+
111
+
let posts = await accountAPI.loadHomeTimeline(requestedDays, {
112
112
onPageLoad: onPageLoad,
113
113
keepLastPage: true
114
114
});
115
115
116
-
this.updateResultsTable(items, startTime, requestedDays);
116
+
this.updateResultsTable(posts, startTime, requestedDays);
117
117
} else if (scanType == 'list') {
118
118
let list = this.listSelect.value;
119
-
let items = await accountAPI.loadListTimeline(list, requestedDays, {
119
+
120
+
if (!list) {
121
+
return;
122
+
}
123
+
124
+
this.startScan(startTime, requestedDays);
125
+
126
+
let posts = await accountAPI.loadListTimeline(list, requestedDays, {
120
127
onPageLoad: onPageLoad,
121
128
keepLastPage: true
122
129
});
123
130
124
-
this.updateResultsTable(items, startTime, requestedDays, { showReposts: false });
131
+
this.updateResultsTable(posts, startTime, requestedDays, { showReposts: false });
125
132
} else if (scanType == 'users') {
126
133
let textarea = $(this.pageElement.querySelector('textarea'), HTMLTextAreaElement);
127
134
let users = textarea.value.split(/\n/).map(x => x.trim()).filter(x => x.length > 0);
135
+
136
+
if (users.length == 0) {
137
+
return;
138
+
}
139
+
140
+
this.startScan(startTime, requestedDays);
141
+
128
142
let dids = await Promise.all(users.map(u => accountAPI.resolveHandle(u)));
129
-
130
143
this.resetUserProgress(dids);
131
144
132
145
let requests = dids.map(did => this.appView.loadUserTimeline(did, requestedDays, {
···
142
155
}));
143
156
144
157
let datasets = await Promise.all(requests);
145
-
let items = datasets.flat();
158
+
let posts = datasets.flat();
146
159
147
-
this.updateResultsTable(items, startTime, requestedDays, {
160
+
this.updateResultsTable(posts, startTime, requestedDays, {
148
161
showTotal: false, showPercentages: false, countFetchedDays: false
149
162
});
150
163
} else {
151
-
let items = await accountAPI.loadUserTimeline(accountAPI.user.did, requestedDays, {
164
+
this.startScan(startTime, requestedDays);
165
+
166
+
let posts = await accountAPI.loadUserTimeline(accountAPI.user.did, requestedDays, {
152
167
filter: 'posts_no_replies',
153
168
onPageLoad: onPageLoad,
154
169
keepLastPage: true
155
170
});
156
171
157
-
this.updateResultsTable(items, startTime, requestedDays, { showTotal: false, showPercentages: false });
172
+
this.updateResultsTable(posts, startTime, requestedDays, { showTotal: false, showPercentages: false });
158
173
}
159
174
}
160
175
···
218
233
}
219
234
220
235
/**
221
-
* @param {json[]} items
236
+
* @param {json[]} posts
222
237
* @param {number} startTime
223
238
* @param {number} requestedDays
224
239
* @param {{ showTotal?: boolean, showPercentages?: boolean, showReposts?: boolean, countFetchedDays?: boolean }} [options]
225
240
*/
226
241
227
-
updateResultsTable(items, startTime, requestedDays, options = {}) {
242
+
updateResultsTable(posts, startTime, requestedDays, options = {}) {
228
243
if (this.scanStartTime != startTime) {
229
244
return;
230
245
}
···
234
249
let allReposts = 0;
235
250
let allNormalPosts = 0;
236
251
237
-
let last = items.at(-1);
252
+
let last = posts.at(-1);
238
253
239
254
if (!last) {
240
255
this.stopScan();
···
258
273
}
259
274
260
275
let timeLimit = startTime - requestedDays * 86400 * 1000;
261
-
items = items.filter(x => (feedPostTime(x) > timeLimit));
276
+
posts = posts.filter(x => (feedPostTime(x) > timeLimit));
262
277
263
-
for (let item of items) {
278
+
for (let item of posts) {
264
279
if (item.reply) { continue; }
265
280
266
281
let user = item.reason ? item.reason.by : item.post.author;