+154
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
// Цитата №1: массив регулярных выражений из введённых пользователем строк
var strings = what.filter(function(e){ return e.replace(/s+/g,'').length; }).map(function(e){ var re = new RegExp(e, 'g' + (ignoreCase ? 'i' : '')); return re; });
// Цитата №2: проверяется наличие введённых строк в тексте и выводит результаты
function processText(pid, cid, text){
if(strings.every(function(re){
return re.test(text);
})){
// совпало
// тут выводится информация о совпадении для поста/комментария
// кроме вывода в консоль побочных эффектов нет
....
}
}
// Цитата №3: запуск поиска
posts.forEach(function(post){
processText(post.id, null, post.author.name + ' ' + post.text);
processText(post.id, null, post.author.name + ' ' + post.description);
post.comments.forEach(function(comment){
processText(post.id, comment.id, comment.author.name + ' ' + comment.text);
});
});
Цитаты из скрипта поиска по ГК.
Казалось бы, write-only питушня, работает - не трогать. Но, прочитав, http://govnokod.ru/16577#comment246821, решил поискать упоминания доктора по званию. Открываю найденный пост X, а там не все упоминания найдены. Меняю список постов, в которых искать - для X меняется список найденных комментариев.
Откуда такая питушня? processText почти чистая, strings, posts не меняется. Может, вывод на консоль как-то влияет?
Все волосы на жопе вырвал пока нашел в чем ошибка.
Внимание, вопрос. В чем гавно? (c) ursus
Запостил:
1024--,
05 Сентября 2014
Причина: UmVnRXhwLmxhc3RJbmRleA==
COGDCBCAADCBCABDCBCBODCB
CACAEADCACGGDCACGFAEB
А здешнюю строку №2 можно отдельным постом выкладывать, это да...
var re = new RegExp(e, 'g' + (ignoreCase ? 'i' : '')); return re;
почему не просто
return new RegExp(e, 'g' + (ignoreCase ? 'i' : ''));
?
да еще и в каждой функции проверяешь условие, которое известно глобально
А кто знает... Может, там раньше что-то побольше было (и я неправильно исправил), может я о чём-то другом думал, пока писал.
> да еще и в каждой функции проверяешь условие, которое известно глобально
Говнецо. Но на перфоманс не влияет.
А вот тут, вероятно, критичное место:
Т.к. выполняется оно для каждого из 200+К комментариев.
А с другой стороны, всё это считается за 300мс по сравнению с 5с загрузки JSON и расстановки связей и запускается крайне редко.
Вот за эти 5с надо будет побороться, т.к. модуль загрузки используется почти всеми скриптами.
Блин, их так мало?!
У меня 237569 распарсено.
Санитары! Уберите это личителя!
Весь мир, от Европы к Неве, на восто-ок,
Над землёой везде будут петь:
«Столица, водка, советский медведь наш!»
Лучше бота делай, вместо постинга редалертовской шизофазии.
Кегги, вы глупеете прямо на глазах.