diff --git a/install/package.json b/install/package.json
index 8b99be0482..fe4d8a971e 100644
--- a/install/package.json
+++ b/install/package.json
@@ -99,7 +99,7 @@
"multiparty": "4.2.3",
"nconf": "0.12.1",
"nodebb-plugin-2factor": "7.5.9",
- "nodebb-plugin-composer-default": "10.2.46",
+ "nodebb-plugin-composer-default": "10.2.47",
"nodebb-plugin-dbsearch": "6.2.12",
"nodebb-plugin-emoji": "6.0.2",
"nodebb-plugin-emoji-android": "4.1.1",
@@ -108,7 +108,7 @@
"nodebb-plugin-spam-be-gone": "2.3.1",
"nodebb-plugin-web-push": "0.7.3",
"nodebb-rewards-essentials": "1.0.1",
- "nodebb-theme-harmony": "2.0.34",
+ "nodebb-theme-harmony": "2.0.35",
"nodebb-theme-lavender": "7.1.17",
"nodebb-theme-peace": "2.2.39",
"nodebb-theme-persona": "14.0.15",
diff --git a/public/language/en-GB/category.json b/public/language/en-GB/category.json
index 7e3c6630c5..f6cea780cb 100644
--- a/public/language/en-GB/category.json
+++ b/public/language/en-GB/category.json
@@ -1,7 +1,8 @@
{
"category": "Category",
"subcategories": "Subcategories",
-
+ "uncategorized": "Uncategorized",
+ "uncategorized.description": "Topics that do not strictly fit in with any existing categories",
"new-topic-button": "New Topic",
"guest-login-post": "Log in to post",
"no-topics": "There are no topics in this category.
Why don't you try posting one?",
diff --git a/src/categories/data.js b/src/categories/data.js
index 2b4e029caf..8890abf670 100644
--- a/src/categories/data.js
+++ b/src/categories/data.js
@@ -15,8 +15,8 @@ const intFields = [
const worldCategory = {
cid: -1,
- name: 'Uncategorized',
- description: 'Topics that do not strictly fit in with any existing categories',
+ name: '[[category:uncategorized]]',
+ description: '[[category:uncategorized.description]]',
icon: 'fa-globe',
imageClass: 'cover',
bgColor: '#eee',
diff --git a/src/controllers/activitypub/topics.js b/src/controllers/activitypub/topics.js
index d32dcae00c..afcc7eb942 100644
--- a/src/controllers/activitypub/topics.js
+++ b/src/controllers/activitypub/topics.js
@@ -49,7 +49,6 @@ controller.list = async function (req, res) {
targetUid: targetUid,
};
const data = await categories.getCategoryById(cidQuery);
- data.name = '[[world:name]]';
delete data.children;
let tids = await categories.getTopicIds(cidQuery);
diff --git a/src/socket.io/helpers.js b/src/socket.io/helpers.js
index 66e568d1b2..d80638458e 100644
--- a/src/socket.io/helpers.js
+++ b/src/socket.io/helpers.js
@@ -17,6 +17,10 @@ const batch = require('../batch');
const SocketHelpers = module.exports;
SocketHelpers.notifyNew = async function (uid, type, result) {
+ const post = result.posts[0];
+ if (post && post.topic && parseInt(post.topic.cid, 10) === -1) {
+ return;
+ }
let uids = await user.getUidsFromSet('users:online', 0, -1);
uids = uids.filter(toUid => parseInt(toUid, 10) !== uid);
await batch.processArray(uids, async (uids) => {
diff --git a/src/upgrades/3.6.0/category_tracking.js b/src/upgrades/3.6.0/category_tracking.js
index a30be983b6..d57717cd54 100644
--- a/src/upgrades/3.6.0/category_tracking.js
+++ b/src/upgrades/3.6.0/category_tracking.js
@@ -3,7 +3,6 @@
'use strict';
const db = require('../../database');
-const user = require('../../user');
const batch = require('../../batch');
module.exports = {
@@ -18,7 +17,7 @@ module.exports = {
}
await batch.processSortedSet(`users:joindate`, async (uids) => {
- const userSettings = await user.getMultipleUserSettings(uids);
+ const userSettings = await db.getObjects(uids.map(uid => `user:${uid}:settings`));
const change = userSettings.filter(s => s && s.categoryWatchState === 'watching');
await db.setObjectBulk(
change.map(s => [`user:${s.uid}:settings`, { categoryWatchState: 'tracking' }])