[хак] синонимы для RSS grabber 2.2

Тема в разделе "DLE", создана пользователем $aSH, 7 ноя 2007.

Информация :
Актуальная версия DataLife Engine 11.2
( Final Release v.11.2 | Скачать DataLife Engine | Скачать 11.2 demo )
Нужно ли обновляться | Как обновиться | Изменения в шаблонах
> Нет русских символов <
[Приватная тема DLE (Все подробности в ЛС к модератору раздела)]

Версии 11.1 и ниже - уязвимы!

Локализации | F.A.Q. | Внешний вид
Правила раздела | Правила форума
Обсуждение хайда карается баном!
В каждом сообщении указывайте версию DLE, которого они касаются!
Статус темы:
Закрыта.
Модераторы: killoff
  1. $aSH

    $aSH

    Регистр.:
    3 ноя 2006
    Сообщения:
    536
    Симпатии:
    233
    Итак собственно самый примитивный, самый простейших хак для того чтобы сграбленные новости отличались от оригинала.

    прошу учесть, что в php я полный нюб.
    если кто подхватит идею и реализует интеграцию с мускулом, админкой, то низкий поклон ему до счетчиков его страницы.

    говорю сразу - хак имхо не эффективный в плане реализации, но как говорится "мля, а ведь работает"

    итак

    открываем \engine\inc\rss.php

    после
    Код:
    require_once ENGINE_DIR . '/inc/plugins/rss.functions.php';
    вставляем
    Код:
    function sinonim($s)
    {
    
    $in = array();
    $out = array();
    
    $in[1] = array('контекстом');
    $out[1] = array('000','111','222','333','444','555');
    
    $in[2] = array('низкая');
    $out[2] = array('_00','_11','_22','_33','_44','_55');
    
    $in[3] = array('нагрузка');
    $out[3] = array('0_0','1_1','2_2','3_3','4_4','5_5');
    
    $in[4] = array('ресурсы');
    $out[4] = array('00_','11_','22_','33_','44_','55_');
    
    $in[5] = array('сайта');
    $out[5] = array('0__','1__','2__','3__','4__','5__');
    
    for ($z=1; $z<=5; $z++)
    {$s = str_replace($in[$z],$out[$z][rand(0,5)],$s);}
    return $s;
    }
    
    далее ищем
    Код:
    $short_story = htmlspecialchars ($short_story);
    $full_story = htmlspecialchars ($full_story);
    
    ниже вставляем
    Код:
    $short_story = sinonim($short_story);
    $full_story = sinonim($full_story);
    
    объясняю.
    при сграблении новости скрипт ищет слова и заменяет их случайно из массива синонимов для этого слова

    разъсняю
    Код:
    $in[НОМЕР] = array('СЛОВО');
    $out[НОМЕР] = array('СИНОНИМ_1','СИНОНИМ_2','СИНОНИМ_3','СИНОНИМ_4');
    
    
    for ($z=1; $z<=СКОЛЬКО_ВСЕГО_СЛОВ; $z++)
    
    
    $s = str_replace($in[$z],$out[$z][rand(0,СКОЛЬКО_ВСЕГО_СИНОНИМОВ)],$s);
    
    все абсолютно бесплатно, в виде благодарности можете разместить мою ссылку на сайт )) сайт дам в личке


    версия, типа, 0.01 alfa =)

    из глобальных минусов.
    фиксированное число синонимов для любого слова. например, у всех по 10 синонимов, или по 4, или по 7...

    завтра помучаю знакомого, может алгоритм значительно упростится
     
  2. jcrush

    jcrush

    Регистр.:
    10 ноя 2006
    Сообщения:
    692
    Симпатии:
    55
    идея хорошая, но это нужна база синонимов,и хранить ее лучше отдельно как-то...
     
  3. wwwkila

    wwwkila

    Регистр.:
    29 дек 2006
    Сообщения:
    196
    Симпатии:
    32
    просто заменить слова на синонимы это одно, а как сделать так что бы у текста потом остался тот же смысл, что бы синоним правильный подставился
     
  4. jcrush

    jcrush

    Регистр.:
    10 ноя 2006
    Сообщения:
    692
    Симпатии:
    55
    ну тут особо проблем нет, на то он и синоним, ведь кончания тут не режуться например:
    ушел можно заменить как покинул и разницы почти нет, хотя казусов тут можно нахватать я думаю =)
     
  5. pilot233

    pilot233

    Регистр.:
    24 июн 2006
    Сообщения:
    405
    Симпатии:
    88
    Идея хорошая и гдето в ветках (по моему по поводу доров) там есть спецыалисты по базам синонимов. Может с ними как то с кооперироваться, хотя врядли!
     
  6. bolyk

    bolyk

    Регистр.:
    21 авг 2006
    Сообщения:
    308
    Симпатии:
    206
    Попробуйте не менять на синонимы существительные. Или не все существительные... С технической стормоны помоч не могу ибо не програмист.
     
  7. h0ttab[sun]

    h0ttab[sun]

    Регистр.:
    30 авг 2007
    Сообщения:
    319
    Симпатии:
    43
    Синоинимы можно хранить в масиве.
     
  8. MaxLord

    MaxLord

    Регистр.:
    17 фев 2007
    Сообщения:
    325
    Симпатии:
    49
    ЫЫ походу идею я поднял http://www.nulled.ws/showthread.php?t=14703&page=48 чтож, я присоединяюсь!!
    - то что можно хранить в массиве, можно хранить где угодно - и в файле и в бд...
     
    agrandi нравится это.
  9. demmy

    demmy

    Регистр.:
    13 ноя 2006
    Сообщения:
    330
    Симпатии:
    96
    Пробуем сформировать ТЗ

    1.База синонимов
    1.1 Хранить.
    Лучше в мускульной базе тк, придется
    1.2 Редактировать и дополнять
    Идеальное решение мускуль

    2. Сам процесс
    2.1 Берем номер последней прогнанный индекс статьи (в базе уникальный) загоняем статью в исходный массив.
    2.2 Выдираем по слову из массива источника сравниваем сначала с масивом кейвордов, мы же из не зря подбирали и они нам нужны, если совпало пропускаем. Берем слово и выбираем рандомный синоним. Переходим дальше.
    2.3 Запихиваем статью обратно в базу.
    2.4 Увеличиваем индекс статей на единицу.

    Повторяем необходимое число раз. с пункта 2
     
  10. MaxLord

    MaxLord

    Регистр.:
    17 фев 2007
    Сообщения:
    325
    Симпатии:
    49
    ммм, а не проще процесс поставить непосредственно при получении статей - тоесть править непосредственно в граббере - наф например уникальные - свои статьи менять? Да и вообще паритьсо меньше придётся... Только вот если база синонимов будет слишком большая - грабить статьи получитсо накладно по времени... попробую завтра написать чегонить - может выложу ЫЫ ) Хранить в мускуле удобно, не спорю - можно так же сделать такую штуку - например к слову максимум 10 синонимов - делаем столбцы - слово и несколько столбцов с синонимами - далее рандомно выбираем слово на замену (при подмене) ставим проверку на пустоту ( if (!isset($переменная[номер слова]) || empty($переменная[слово])) ) - выбираем номер на 1 меньше и т.д.
     
Статус темы:
Закрыта.