LINUX.ORG.RU
ФорумTalks

Скриптик


0

0

Собственно, хочется получить минимальный фидбэк по поводу пользовательского скрипта для ЛОРа под Оперу 9.5 (будет и под более ранние, если кто-нибудь подскажет хорошую замену getElementsByClassName):

http://specialforlor.narod.ru/simplelor.js

Фичи:

1. [Ответить] вверху каждого сообщения, как было раньше

2. [Ответить на это сообщение] внизу сообщения добавляет форму ответа на текущей странице

3. Интеграция с LOR Quotes — тыкать на [Цитатник]

Ранее подобная функциональность уже реализовывалась мной, но давно, и с тех пор отвалилась.

Извините за императивный подход к яваскрипту. До sdio мне далеко, его скрипты у меня почему-то не работали (свежих не пробовал, свой велосипед ближе, древовидная структура мне не нужна совсем).

Может, кому-нибудь кроме меня пригодится...

★★★★

Ответ на: комментарий от blaster999

getElementsByClassName упоминается как одна из фич третьего фокса

anonymfus ★★★★
() автор топика
Ответ на: комментарий от anonymous

Можно, и скрипты от sdio иногда это и делают. В данном случае, однако, скрипт работает только с DOM, т.е. уже распарсенной браузером страничкой.

anonymfus ★★★★
() автор топика

> 3. Интеграция с LOR Quotes — тыкать на [Цитатник]

Бедный Иван. :) Надо будет в движке такие сабмиты забанить. :)

Teak ★★★★★
()
Ответ на: комментарий от true

Обижаешь, конечно нет. :) Да ладно, там же не банк, всё же.

Teak ★★★★★
()
Ответ на: комментарий от Teak

Это существовало в предыдущей версии скрипта полгода (http://www.linux.org.ru/jump-message.jsp?msgid=1892490&cid=1894597 ), и ничего плохого не произошло. Фактически, в какой-то момент я обнаружил себя единственным добавлятором. Потом, правда, отпустило... И кризиса, когда скрипт отвалился из-за редизайна ЛОРа, не произошло.

В тот раз у скрипта не было рекламы, хочешь сказать? Неверно, его даже несколько раз советовали независимо от меня.

А теперь количество пользователей ограничено версией Оперы. В гостевухе на ЛОР-квотез и так ей пользуются только энерджайзер, я (под анонимусом) и ещё примерно 2 анонимуса, причём 9.5 использую только я.

anonymfus ★★★★
() автор топика
Ответ на: комментарий от anonymfus

А, то вот откуда столько говна стало в неподтверждённых появляться. Меня даже достало это разгребать, и я оттуда ушёл.

Слушай, ты меня замотивировал. На днях закрою эту дыру нафиг. Глядишь, и лорквотесы реанимирую.

Teak ★★★★★
()

if(/(линакс|линекс|линух|линнах|линах|люних|люникс|лялих)/i.test(Message.Text)) { value="Товарищ! Я бы сказал тебе «К логопеду, быдло!», как сейчас модно, но это невежливо. Хочу просто заметить, что правильно произносить «Линукс», и это уже многократно обсуждалось на ЛОРе. Если вы считаете иначе, то Вы были введены в заблуждение или являетесь провокатором."; };

тхахахаха а линупс забыли

lester_dev ★★★★★
()
Ответ на: комментарий от Teak

Не надо, пожалуйста. Мне ведь придётся тогда во фрейме загружать страницу добавления просто вместо своей формы (и на ней будет запущена копия скрипта, убирающая всё лишнее и ожидающаяя сообщений от страницы ЛОРа с новыми данными; всё это будет глючить и тормозить), что приведёт к расходу трафика лишнему только, а сути не изменит.

Дырой это тоже не является. Иначе, получается, в Гугле есть охрененная дыра, позволяющая ставить форму поиска на свои страницы.

Это просто УДОБНОЕ, а не автоматизированное добавление — просто упрощается первый шаг, захождение на LOR Quotes. Говно то пролезает без моего участия, как правило. Иногда только тестовые сообщения, правда, отсылал.

И, кстати, не так много ЛОР-овцев туда вообще заходят, а если немного пропиарить ресурс, то, глядишь, и новые аппрувители появятся.

anonymfus ★★★★
() автор топика
Ответ на: комментарий от anonymfus

> Не надо, пожалуйста. Мне ведь придётся тогда во фрейме загружать страницу добавления просто вместо своей формы (и на ней будет запущена копия скрипта, убирающая всё лишнее и ожидающаяя сообщений от страницы ЛОРа с новыми данными; всё это будет глючить и тормозить), что приведёт к расходу трафика лишнему только, а сути не изменит.

Ты рассуждаешь как спамер, каковым и являешься по сути. Тебя администрация (в моём лице) просит прекратить свою жизнедеятельность, а ты говоришь «а вот фиг, мы ещё повоюем». Возможно мне действительно не удастся с тобой, спамером, справиться, но я попытаюсь.

> Дырой это тоже не является. Иначе, получается, в Гугле есть охрененная дыра, позволяющая ставить форму поиска на свои страницы.

Это решать не тебе, а мне (и прочим админам lorquotes) и хозяевам гугля, соответственно. Если я говорю, что это дыра — значит это дыра.

> И, кстати, не так много ЛОР-овцев туда вообще заходят.

Вот-вот. Загадили, и разгребать уже только Ивану до сих пор не надоело.

Teak ★★★★★
()
Ответ на: комментарий от anonymfus

>Иначе, получается, в Гугле есть охрененная дыра, позволяющая ставить форму поиска на свои страницы.

При поиске делается запрос публичных результатов, в данном случае - ИЗМЕНЕНИЕ посторонним сайтом (в случае пользовательских скриптов они исполняются с правами того сайта, откуда запущены) содержимого БД с правами посетителя. С таким же успехом можно сделать на постороннем сайте форму, которая, если данный посетитель является залогинившимся модератором лорквотесов, удаляет все-все сообщения.

true
()
Ответ на: комментарий от true

Дело даже не в этом. В гугле это — специально запланированное поведение, у нас — случайная и нежелательная возможность, отрицательно влияющая на работу сайта, то есть именно то, что называется «дыра».

Teak ★★★★★
()
Ответ на: комментарий от Teak

> Тебя администрация (в моём лице) просит прекратить свою жизнедеятельность

Убрал пока скрипт со ссылки.

Воевать я не хочу, просто сама возможность добавления цитат вкупе с неудобствами, это сопровождающими, предполагает необходимость устранения неудобств. Если ты действительно считаешь подобное вредным, то нужно побольше неудобств добавить — например, пусть после захода на ЛОРквотез сервер ждёт пять минут, а потом только разрешает добавлять сообщения! Естественно, это будет маразм.

>Ты рассуждаешь как спамер, каковым и являешься по сути.

Нет, не надо, пожалуйста, меня сравнивать с теми, кто туда же, в цитатник, добавляет рекламу. Проверкой реферера ты сделаешь труднее решение моей задачи (автоматизации операции копирования-вставки с одной странички на другую), кстати, заодно и усложнив жизнь живущим с отключёнными реферерами, тогда как спамеров настоящих, которые там уже обосновались, не тронешь.

>Если я говорю, что это дыра — значит это дыра.

Ну хорошо, но тогда дыра только в социальном смысле, не техническом.

Поэтому моё предложение: капча. Это, ИМХО, идеальное решение. А реферер не трогай, пожалуйста.

anonymfus ★★★★
() автор топика
Ответ на: комментарий от true

>С таким же успехом можно сделать на постороннем сайте форму, которая, если данный посетитель является залогинившимся модератором лорквотесов, удаляет все-все сообщения.

Нет. ТАКОЙ дыры там нет. С помощью пользовательского скрипта, например, какой-нибудь модератор может сделать подобное (например, явно прописав логин/пароль в своём скрипте), но это будет его право, никто ему ничего не навяжет. Корректная аналогия, дающая представление о масштабе проблеммы — фрейм на чужом сайте, позволяющий залогиниться модератору и сделать что-нибудь на своём сайте. Никакого нарушения безопасности в этом нет, всё делается осознанно, в некоторых случаях, правда, подобное бывает неэтично (например, показ своей рекламы и скрытие чужой; см. helpix.ru, например, и их «Все обзоры и тесты Рунета»).

Фактически, никакой «технической» проблеммы нет, только социальная.

anonymfus ★★★★
() автор топика
Ответ на: комментарий от anonymfus

> Если ты действительно считаешь подобное вредным, то нужно побольше неудобств добавить

Неудобств (для тех, кто пользуется обычной формой добавления) добавлять не будем, а вот ограничить число цитат в сутки одной-двумя я думаю надо. Если человеку действительно какая-то цитата показалась замечательной, то он таки потратит 20 секунд вместо двух и засабмитит её, как и прежде, без скриптов, блэкджека и шлюх. И ограничения не заметит. А если у него мания добавления (в народе ещё называемая флудеразмом), из-за которой модерирование становится унылым разгребанием мусора, в котором со временем перестаёшь видеть даже то хорошее, что туда случайно попадает, то от такого товарища я попробую защититься. Заодно и добавление спама скриптами станет невозможным.

Без капчи, кстати, скорее всего можно (и нужно) обойтись, поскольку она будет раздражать не только флудеров, но и нормальных людей. Это уже лишнее.

Teak ★★★★★
()
Ответ на: комментарий от Teak

>Вот-вот. Загадили

То есть с 70-й страницы коллекции качество цитат должно было, по вашему, резко упасть? Мне кажется, или подобного скачка не наблюдалось? Наоборот, сейчас даже в биореактор geek отправляет не только полное говно, но и то, что вызывает некоторую улыбку, так как, по его мнению, любая цитата должна вызывать гомерический хохот и сползание под стул.

anonymfus ★★★★
() автор топика
Ответ на: комментарий от anonymfus

Спокойной ночи. Дальнейшее обсуждение продолжу в нашей внутренней рассылке, спасибо, что подняли эту тему.

Teak ★★★★★
()
Ответ на: комментарий от Teak

> Если человеку действительно какая-то цитата показалась замечательной, то он таки потратит 20 секунд вместо двух и засабмитит её, как и прежде, без скриптов, блэкджека и шлюх.

Он, по крайней мере, воспользуется буфером обмена. Причём там 4 поля. То есть нужно 8 раз переключиться между двумя страничками. Часто цитата для правильного восприятия обязана содержать контекст, и нужно ещё по два переключения для каждого цитирования. (Настоящий джедай не будет пользоваться буфером обиена, он наберёт всю цитату с клавиатуры сам?) Потом надо будет вырезать ссылки, если они есть, привести в порядок форматирование, удалить символы, отсутствующие в KOI-8 (вот, кстати, первоочередная задача — есть куча цитат с тире и кавычками).

Мало проблем? Вы, кстати, часто цитаты добавляете?

В моём случае форма цитатника находится просто на той же вкладке барузера, что и оригинальное сообщение, и содержит уже заполненные поля. Всё, больше ничего нет. Это МИНИМАЛЬНОЕ упрощение.

>Заодно и добавление спама скриптами станет невозможным.

Почему? Спамер, в отличие от меня, не ограничен:

1. Он своё скриптование устроит на ВАШЕЙ странице, а не на ЛОРе, следовательно, никакими ограничениями безопасности браузера не связан. Тем более, что даже браузер скриптовать можно не через жабоскрипт, а через внешнее управление (вульгарно посылая команды нажатия клавиш).

2. Он не обязан использовать браузер вообще, а может использовать абсолютно произвольный самописный клиент (как, кстати, обычно и бывает — посмотрите на кучу программ типа «Отправь сообщение на 10000 форумов одновременно»).

3. Он может обещать платить по 0,01 цента за заполнение форм каким-нибудь леммингам.

А вот я ничего подобного не могу.

>а вот ограничить число цитат в сутки одной-двумя я думаю надо

Здравая идея. Но лучше одну в три часа примерно.

anonymfus ★★★★
() автор топика
Ответ на: комментарий от Teak

>Дальнейшее обсуждение продолжу в нашей внутренней рассылке

С самим собой? :) Меня лично интересует мнение One117

anonymfus ★★★★
() автор топика
Ответ на: комментарий от anonymfus

>Убрал пока скрипт со ссылки.

Вернул обратно, закомментировав кнопку цитатника.

anonymfus ★★★★
() автор топика
Ответ на: комментарий от true

Не могу. Тогда я слишком легко смогу добавлять цитаты, а значит, они будут худшего качества.

Настоящую цитату надо выстрадать!

P.S.: а ещё я мне запрещается положить LQ на боковую панель в Опере.

anonymfus ★★★★
() автор топика

http://userscripts.org/scripts/show/13240

LOR Custom view

Make some changes at page layout at site:linux.org.ru

1. [Ответить] наверху.
2. Удалены subject из каждого сообщения, кроме первого.
3. Есть своя система blacklist без рекурсивного удаления ответов. Система не активированна, для активации требуется раскоментировать часть кода (удалить две строки -- 20 и 80).
4. Сквозная нумерация сообщений (вместо [#])

sdio ★★★★★
()
Ответ на: комментарий от boombick

function $x(xpath, contextNode, resultType) {
    contextNode = contextNode || document.body;
    resultType = resultType || XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE;
     return document.evaluate(xpath, contextNode, null, resultType, null);
}

function getElementsByClassName(ClassName) {
  var x = new Array;
  var e = $x("//*[@class='"+ClassName+"']");
  for (var i=0; i<e.snapshotLength; i++){
      x.push(e.snapshotItem(i);
  }
return x;
}

sdio ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.