mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-12-24 09:20:32 +01:00
Compare commits
14 Commits
v1.16.1-be
...
v1.16.1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7fb032b396 | ||
|
|
14dddbe4e0 | ||
|
|
171017c38c | ||
|
|
8c31afae7d | ||
|
|
afe6d84710 | ||
|
|
e445ae5a7a | ||
|
|
b9ba44edd7 | ||
|
|
fd045c67c9 | ||
|
|
0d7dfeeb86 | ||
|
|
1968bf50f1 | ||
|
|
87e333b44f | ||
|
|
4524f825d4 | ||
|
|
1bece2b79e | ||
|
|
67ccc21760 |
@@ -2,7 +2,7 @@
|
||||
"name": "nodebb",
|
||||
"license": "GPL-3.0",
|
||||
"description": "NodeBB Forum",
|
||||
"version": "1.16.1-beta.0",
|
||||
"version": "1.16.1",
|
||||
"homepage": "http://www.nodebb.org",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
@@ -39,9 +39,9 @@
|
||||
"ace-builds": "^1.4.9",
|
||||
"archiver": "^5.0.0",
|
||||
"async": "^3.2.0",
|
||||
"autoprefixer": "10.1.0",
|
||||
"autoprefixer": "10.2.0",
|
||||
"bcryptjs": "2.4.3",
|
||||
"benchpressjs": "2.3.0",
|
||||
"benchpressjs": "2.4.0",
|
||||
"body-parser": "^1.19.0",
|
||||
"bootbox": "4.4.0",
|
||||
"bootstrap": "^3.4.1",
|
||||
@@ -101,7 +101,7 @@
|
||||
"nodebb-plugin-spam-be-gone": "0.7.7",
|
||||
"nodebb-rewards-essentials": "0.1.4",
|
||||
"nodebb-theme-lavender": "5.0.17",
|
||||
"nodebb-theme-persona": "10.3.15",
|
||||
"nodebb-theme-persona": "10.3.17",
|
||||
"nodebb-theme-slick": "1.3.7",
|
||||
"nodebb-theme-vanilla": "11.3.10",
|
||||
"nodebb-widget-essentials": "5.0.2",
|
||||
@@ -128,9 +128,9 @@
|
||||
"sharp": "0.27.0",
|
||||
"sitemap": "^6.1.0",
|
||||
"slideout": "1.0.1",
|
||||
"socket.io": "3.0.4",
|
||||
"socket.io": "3.0.5",
|
||||
"socket.io-adapter-cluster": "^1.0.1",
|
||||
"socket.io-client": "3.0.4",
|
||||
"socket.io-client": "3.0.5",
|
||||
"socket.io-redis": "6.0.1",
|
||||
"sortablejs": "1.10.2",
|
||||
"spdx-license-list": "^6.1.0",
|
||||
|
||||
@@ -175,6 +175,6 @@
|
||||
"already-blocked": "Cet utilisateur est déjà bloqué",
|
||||
"already-unblocked": "Cet utilisateur est déjà débloqué",
|
||||
"no-connection": "Il semble y avoir un problème avec votre connexion Internet",
|
||||
"socket-reconnect-failed": "Unable to reach the server at this time. Click here to try again, or try again later",
|
||||
"socket-reconnect-failed": "Serveur inaccessible pour le moment. Cliquez ici pour réessayer ou réessayez plus tard",
|
||||
"plugin-not-whitelisted": "Impossible d'installer le plug-in – seuls les plugins mis en liste blanche dans le gestionnaire de packages NodeBB peuvent être installés via l'ACP"
|
||||
}
|
||||
@@ -77,7 +77,7 @@ async function listPlugins() {
|
||||
const active = await db.getSortedSetRange('plugins:active', 0, -1);
|
||||
|
||||
// Merge the two sets, defer to plugins in `installed` if already present
|
||||
let combined = installed.concat(active.reduce((memo, cur) => {
|
||||
const combined = installed.concat(active.reduce((memo, cur) => {
|
||||
if (!installedList.includes(cur)) {
|
||||
memo.push({
|
||||
id: cur,
|
||||
@@ -90,12 +90,12 @@ async function listPlugins() {
|
||||
}, []));
|
||||
|
||||
// Alphabetical sort
|
||||
combined = combined.sort((a, b) => (a.id > b.id ? 1 : -1));
|
||||
combined.sort((a, b) => (a.id > b.id ? 1 : -1));
|
||||
|
||||
// Pretty output
|
||||
process.stdout.write('Active plugins:\n');
|
||||
combined.forEach((plugin) => {
|
||||
process.stdout.write('\t* ' + plugin.id + ' (');
|
||||
process.stdout.write('\t* ' + plugin.id + (plugin.version ? '@' + plugin.version : '') + ' (');
|
||||
process.stdout.write(plugin.installed ? 'installed'.green : 'not installed'.red);
|
||||
process.stdout.write(', ');
|
||||
process.stdout.write(plugin.active ? 'enabled'.green : 'disabled'.yellow);
|
||||
|
||||
@@ -131,10 +131,10 @@ SocketRooms.getLocalStats = function () {
|
||||
topics: {},
|
||||
};
|
||||
|
||||
if (io) {
|
||||
if (io && io.sockets) {
|
||||
socketData.onlineGuestCount = Sockets.getCountInRoom('online_guests');
|
||||
socketData.onlineRegisteredCount = SocketRooms.getOnlineUserCount(io);
|
||||
socketData.socketCount = Object.keys(io.sockets.sockets).length;
|
||||
socketData.socketCount = io.sockets.sockets.size;
|
||||
socketData.users.categories = Sockets.getCountInRoom('categories');
|
||||
socketData.users.recent = Sockets.getCountInRoom('recent_topics');
|
||||
socketData.users.unread = Sockets.getCountInRoom('unread_topics');
|
||||
|
||||
@@ -31,12 +31,16 @@ Thumbs.get = async function (tids) {
|
||||
return singular ? null : tids.map(() => []);
|
||||
}
|
||||
|
||||
const hasTimestampPrefix = /^\d+-/;
|
||||
const upload_url = nconf.get('upload_url');
|
||||
const sets = tids.map(tid => `${validator.isUUID(String(tid)) ? 'draft' : 'topic'}:${tid}:thumbs`);
|
||||
const thumbs = await Promise.all(sets.map(set => getThumbs(set)));
|
||||
let response = thumbs.map((thumbSet, idx) => thumbSet.map(thumb => ({
|
||||
id: tids[idx],
|
||||
name: path.basename(thumb),
|
||||
name: (() => {
|
||||
const name = path.basename(thumb);
|
||||
return hasTimestampPrefix.test(name) ? name.slice(14) : name;
|
||||
})(),
|
||||
url: thumb.startsWith('http') ? thumb : path.posix.join(upload_url, thumb),
|
||||
})));
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
{{{ each thumbs }}}
|
||||
<div class="media" data-id="{./id}" data-path="{./url}">
|
||||
<div class="media-left">
|
||||
<img class="media-object" src="{./url}" />
|
||||
<img class="media-object" src="{config.relative_path}{./url}" />
|
||||
</div>
|
||||
<div class="media-body">
|
||||
<p>
|
||||
|
||||
@@ -334,6 +334,7 @@ describe('Sorted Set methods', function () {
|
||||
});
|
||||
|
||||
it('should work with big arrays (length > 100) ', async function () {
|
||||
this.timeout(50000);
|
||||
const keys = [];
|
||||
for (let i = 0; i < 400; i++) {
|
||||
/* eslint-disable no-await-in-loop */
|
||||
|
||||
Reference in New Issue
Block a user