nodebb-plugin-ezoic-infinite 0.9.15 → 0.9.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/library.js +29 -7
- package/package.json +1 -1
package/library.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
const meta = require.main.require('./src/meta');
|
|
4
|
+
const db = require.main.require('./src/database');
|
|
4
5
|
const groups = require.main.require('./src/groups');
|
|
5
6
|
|
|
6
7
|
const Plugin = {};
|
|
@@ -12,19 +13,40 @@ Plugin.init = async function (params) {
|
|
|
12
13
|
router.get('/api/admin/plugins/ezoic-infinite', renderAdmin);
|
|
13
14
|
};
|
|
14
15
|
|
|
15
|
-
async function
|
|
16
|
-
const
|
|
16
|
+
async function getAllGroupNames() {
|
|
17
|
+
const keys = [
|
|
18
|
+
'groups:createtime',
|
|
19
|
+
'groups:visible:createtime',
|
|
20
|
+
'groups:system:createtime',
|
|
21
|
+
'groups:alphabetical',
|
|
22
|
+
'groups:visible:alphabetical',
|
|
23
|
+
];
|
|
24
|
+
|
|
25
|
+
for (const key of keys) {
|
|
26
|
+
try {
|
|
27
|
+
const names = await db.getSortedSetRange(key, 0, -1);
|
|
28
|
+
if (Array.isArray(names) && names.length) {
|
|
29
|
+
return names;
|
|
30
|
+
}
|
|
31
|
+
} catch (e) {}
|
|
32
|
+
}
|
|
17
33
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
const candidates = ['groups:createtime', 'groups:visible:createtime', 'groups:system:createtime'];
|
|
34
|
+
// Last resort: ask groups module for any known set
|
|
35
|
+
const candidates = ['groups:createtime', 'groups:visible:createtime'];
|
|
21
36
|
for (const set of candidates) {
|
|
22
37
|
try {
|
|
23
|
-
|
|
24
|
-
if (Array.isArray(
|
|
38
|
+
const names = await groups.getGroupsFromSet(set, 0, -1);
|
|
39
|
+
if (Array.isArray(names) && names.length) return names;
|
|
25
40
|
} catch (e) {}
|
|
26
41
|
}
|
|
27
42
|
|
|
43
|
+
return [];
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
async function renderAdmin(req, res) {
|
|
47
|
+
const settings = await meta.settings.get('ezoic-infinite');
|
|
48
|
+
|
|
49
|
+
const groupNames = await getAllGroupNames();
|
|
28
50
|
let groupList = [];
|
|
29
51
|
try {
|
|
30
52
|
groupList = await groups.getGroupsData(groupNames);
|
package/package.json
CHANGED