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.
Files changed (2) hide show
  1. package/library.js +29 -7
  2. 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 renderAdmin(req, res) {
16
- const settings = await meta.settings.get('ezoic-infinite');
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
- let groupNames = [];
19
- // NodeBB versions differ on which sorted set exists; 0.9.6 style used these successfully
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
- groupNames = await groups.getGroupsFromSet(set, 0, -1);
24
- if (Array.isArray(groupNames) && groupNames.length) break;
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nodebb-plugin-ezoic-infinite",
3
- "version": "0.9.15",
3
+ "version": "0.9.16",
4
4
  "description": "Injection de publicités Ezoic entre les topics et entre les messages avec infinite scroll (NodeBB 4.x).",
5
5
  "main": "library.js",
6
6
  "license": "MIT",