remove punctuation and limit tag length

v1.18.x
barisusakli 11 years ago
parent 90cea84af9
commit 56f442f283

@ -126,6 +126,9 @@
return str; return str;
}, },
removePunctuation: function(str) {
return str.replace(/[\.,-\/#!$%\^&\*;:{}=\-_`~()?]/g, '');
},
isEmailValid: function(email) { isEmailValid: function(email) {
return typeof email === 'string' && email.length && email.indexOf('@') !== -1; return typeof email === 'string' && email.length && email.indexOf('@') !== -1;

@ -54,14 +54,13 @@ module.exports = function(Topics) {
db.sortedSetAdd('topics:tid', timestamp, tid); db.sortedSetAdd('topics:tid', timestamp, tid);
plugins.fireHook('action:topic.save', tid); plugins.fireHook('action:topic.save', tid);
Topics.createTags(data.tags, tid, timestamp);
user.addTopicIdToUser(uid, tid, timestamp); user.addTopicIdToUser(uid, tid, timestamp);
db.sortedSetAdd('categories:' + cid + ':tid', timestamp, tid); db.sortedSetAdd('categories:' + cid + ':tid', timestamp, tid);
db.incrObjectField('category:' + cid, 'topic_count'); db.incrObjectField('category:' + cid, 'topic_count');
db.incrObjectField('global', 'topicCount'); db.incrObjectField('global', 'topicCount');
Topics.createTags(data.tags, tid, timestamp);
callback(null, tid); callback(null, tid);
}); });
}); });

@ -2,14 +2,16 @@
'use strict'; 'use strict';
var async = require('async'), var async = require('async'),
db = require('../database'); db = require('../database'),
utils = require('../../public/src/utils');
module.exports = function(Topics) { module.exports = function(Topics) {
Topics.createTags = function(tags, tid, timestamp) { Topics.createTags = function(tags, tid, timestamp) {
if(Array.isArray(tags)) { if(Array.isArray(tags)) {
for (var i=0; i<tags.length; ++i) { for (var i=0; i<tags.length; ++i) {
tags[i] = tags[i].trim().toLowerCase(); tags[i] = utils.removePunctuation(tags[i].trim().toLowerCase()).substr(0, 20); // TODO: make max length configurable
db.sortedSetAdd('tag:' + tags[i] + ':topics', timestamp, tid); db.sortedSetAdd('tag:' + tags[i] + ':topics', timestamp, tid);
db.setAdd('topic:' + tid + ':tags', tags[i]); db.setAdd('topic:' + tid + ':tags', tags[i]);
db.setAdd('tags', tags[i]); db.setAdd('tags', tags[i]);

Loading…
Cancel
Save