Skip to content

Commit

Permalink
Abstract some limits (#1631)
Browse files Browse the repository at this point in the history
* Put in env var check for limiting problem query

Post #1629 and applies to #1548

Auto-merge
  • Loading branch information
Martii authored Jun 30, 2019
1 parent 122e186 commit 3c42cb6
Show file tree
Hide file tree
Showing 4 changed files with 37 additions and 9 deletions.
10 changes: 8 additions & 2 deletions controllers/script.js
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ var pageMetadata = require('../libs/templateHelpers').pageMetadata;

//--- Configuration inclusions
var removeReasons = require('../views/includes/scriptModals.json').removeReasons;
var settings = require('../models/settings.json');

//---

Expand Down Expand Up @@ -475,11 +476,16 @@ exports.edit = function (aReq, aRes, aNext) {

remark().use(stripHTML).use(stripMD).process(aScript.about, function(aErr, aFile) {
if (aErr || !aFile) {
aScript._about = (aScript.about ? aScript.about.substr(0, 512) : '');
aScript._about = (
aScript.about
? aScript.about.substr(0, settings.scriptSearchQueryStoreMaxAbout).trim()
: ''
);
} else {
aScript._about = (
aFile.contents
? aFile.contents.replace(/(\r\n|\n|\r)+/gm, ' ').substr(0, 512)
? aFile.contents.replace(/(\r\n|\n|\r)+/gm, ' ')
.substr(0, settings.scriptSearchQueryStoreMaxAbout).trim()
: ''
);
}
Expand Down
13 changes: 11 additions & 2 deletions controllers/scriptStorage.js
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ var modelParser = require('../libs/modelParser');
var userRoles = require('../models/userRoles.json');
var blockSPDX = require('../libs/blockSPDX');
var exceptSPDX = require('../libs/exceptSPDX');
var settings = require('../models/settings.json');

// Add greasemonkey support for Media Type
if (!mediaDB['text/x-userscript-meta']) {
Expand Down Expand Up @@ -1796,7 +1797,11 @@ exports.storeScript = function (aUser, aMeta, aBuf, aUpdate, aCallback) {
// New script
aScript = new Script({
name: thisName,
_description: (thisDescription ? thisDescription.substr(0, 512) : ''),
_description: (
thisDescription
? thisDescription.substr(0, settings.scriptSearchQueryStoreMaxDescription).trim()
: ''
),
author: aUser.name,
installs: 0,
rating: 0,
Expand Down Expand Up @@ -1833,7 +1838,11 @@ exports.storeScript = function (aUser, aMeta, aBuf, aUpdate, aCallback) {
}), null);
return;
}
aScript._description = (thisDescription ? thisDescription.substr(0, 512) : '');
aScript._description = (
thisDescription
? thisDescription.substr(0, settings.scriptSearchQueryStoreMaxDescription).trim()
: ''
);
aScript.meta = aMeta;
aScript.uses = libraries;

Expand Down
16 changes: 12 additions & 4 deletions libs/modelQuery.js
Original file line number Diff line number Diff line change
Expand Up @@ -112,10 +112,18 @@ var parseModelListSearchQuery = function (aModelListQuery, aQuery, aSearchOption
};

var parseScriptSearchQuery = function (aScriptListQuery, aQuery) {
parseModelListSearchQuery(aScriptListQuery, aQuery, {
partialWordMatchFields: ['name', '_description', 'author', '_about' ],
fullWordMatchFields: ['meta.UserScript.include.value', 'meta.UserScript.match.value']
});
if (process.env.LIMIT_SEARCH_QUERY === 'true'
|| process.env.FORCE_BUSY_UPDATEURL_CHECK === 'true') {
parseModelListSearchQuery(aScriptListQuery, aQuery, {
partialWordMatchFields: ['name', '_description', 'author' ],
fullWordMatchFields: ['meta.UserScript.include.value', 'meta.UserScript.match.value']
});
} else {
parseModelListSearchQuery(aScriptListQuery, aQuery, {
partialWordMatchFields: ['name', '_description', 'author', '_about' ],
fullWordMatchFields: ['meta.UserScript.include.value', 'meta.UserScript.match.value']
});
}
};
exports.parseScriptSearchQuery = parseScriptSearchQuery;

Expand Down
7 changes: 6 additions & 1 deletion models/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,10 @@
"timerSanity": 7,
"timerSanityExpiry": 11,
"maximum": 12
}
},

"NOTE": "Requires DB migration for changing below settings",

"scriptSearchQueryStoreMaxDescription": 512,
"scriptSearchQueryStoreMaxAbout": 256
}

0 comments on commit 3c42cb6

Please sign in to comment.