Как стать автором
Обновить

Комментарии 27

Ссылка с непонятными символами внутри. Если их убрать, то можно добраться до скрипта. Но под Chrome у меня не заработало.
5.0.356.2 dev. Потом еще раз попробую, может чего не так сделал.
bit.ly используйте, я уже на такое поведение парсера натыкался.
парсер ссылу прожевал =)

Мне идею скрипта нравится, но как мне кажется имеет смысл сделать более простой и компактный внешний вид: поставить карму рядом с рейтингом и сделать отображение при на ведении мыши на весь блок комментария.
Какой код латинского символа «с»?
Была идея высвечивать карму при наведении на весь коммент, но думаю это будет отвлекать и мешать.
Мне кажется что если поставить примерно вот так yfrog.com/hqcommenttp, то мешать не будет, а на оборот в том же месте где находится объективная оценка комментария будет видно объективная оценка пользователя
Да нет, это просто подстава какая-то. Скрипту надо было перестать работать, когда я его опубликовал. Ищу ошибку.
Да, так лучше будет. Работаю.
под FF 3.6 не заработал.
У меня тоже перестал работать. Хотя вчера тот же самый код работал великолепно.
Может что-то не то с api хабра?
В opera 10.51 не отрабатывает document.getElementsByClassName('fn nickname username'). Точнее отрабатывает, но в результате ничего не возвращается. На Вашем месте я бы использовал jquery внутри скрипта.
Это исправим. Но есть проблема покрупнее.
На асинхронный зарос сервер отвечает readyState == 4 но почему-то status == 0? Хотя до этого отправлял 200 в status'e. Может кто сталкивался с такой проблемой?
Это бывает при оффлайновом запросе. Для него я просто разрешаю условие status == 0 наряду с 200, и в оффлайне ajax работает. Посмотрите. может, и здесь будет работать.
У меня такое было, когда запускал скрипт со своего компа, даже при наличии интернета. Надо было запускать скрипт с хабра. Но сейчас почему такое происходит, ума не приложу.

Пробовал и поставить условие status == 0, но ответ с сервера — пустая сторока… Похоже придется спросить у чипа и дейла, может я что не понял в отправке запросов.

Если кто разбирался с этим, приведу кусок кода, отвечающий за получение кармы:

	function writeKarma (event) {
		object=event.currentTarget;
		var username=object.firstChild.nodeValue;
		var xmlhttp = getXmlHttp();
		xmlhttp.open('GET', 'http://habrahabr.ru/api/profile/'+username+'/', true);
		xmlhttp.onreadystatechange = function() {
			// в этот момент status равен почему-то 0...
			if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
				p=document.createElement('p')
				p.innerHTML=xmlhttp.responseText.substring(xmlhttp.responseText.indexOf('<karma>')+7, xmlhttp.responseText.indexOf('</karma>'));
				...
				}
			}

	}

тут проблема при вызове ajax из домена 3-го уровня (например, этот топик — из atilla.habrahabr.ru. Надо использовать технику с document.domain: создать iframe с habrahabr.ru и делать запрос из него.

(Кстати, упоминать MSXML в скрипте совершенно излишне.)
Плюс может быть имеет смысл хранить некоторое подобие кэша, так как во-первых при каждом наведении мыши дергать сеть — это через чур, и карма пользователя в рамках страницы врядли будет меняться. Может быть для уже запрошенной кармы по клику делать перезапрос.
А может имеет смысл отказаться от жестко заданной 3х цветности и ввести что-то вроде градиентности, в зависимости от значения кармы. А то +1 — зеленый, -1 — красный, а все это по сути 0 (если не считать неудобств, полученных от -1 в карме).
Отношение будет зависеть цвета, а он одикаков для кармы -1 и -100 (также как +1 и +100).
Тоже идея хорошая. Похоже придется учесть все замечания и выпустить КармаПисчик 2.0.

Только вот что брать потолком для чисто зеленого света? У на хабре куча народу, у кого карма больше +100 (и меньше -100 :), так что для всех них, карма будет одинаковой. Это не Ъ. Если взять наивысшей точкой карму Boomburum'a (~900), то разницы между -10 и +10 особо не будет, хотя разница-то есть.
Вариантов решения несколько:
1) Сделать порог в 100, и все, что выше — просто одним цветом (точное значение все равно есть)
2) Брать максимум и весь диапазон делить на 100 отрезков, для каждого — один цвет. Причем для красных оттенков взять самую отрицательную, а не Boomburum-ма.
3) Взять какую-нибудь функцию (скажем, арктангенса) и по ней определять цвет (можно добавить корректировку с оглядкой на min/max значения).
НЛО прилетело и опубликовало эту надпись здесь
А для чего же я делал этот скрипт? ;)
>> Цель: Снизить объективность оценки комментария.
НЛО прилетело и опубликовало эту надпись здесь
Разница между тем, что делает Atilla, и тем, что сделают Чип с Дейлом, в том, что UserJS ставит пользователь сам себе, а всей аудитории сайта. Плюс если человек захочет выводить карму к комменту, он это сделает, даже не смотря на то является ли он программистом или нет, благо хабронаселение в большинстве своем обладает достаточным интеллектом, для этого.

Мне отрицательная карма не мешает, писать один раз попробовал — не получилось, буду хоть полезные вещи в комментах писать.

P.S. я например сильно заминусованные комменты люблю почитать, просто из интереса.
Как правильно сказал forefinger, я лишь предлагаю человеку возможность смотреть карму пользователя, не заглядывая на его страницу. Каждый человек в праве устанавливать его, или не устанавливать. Я не претендую на то, чтобы его вставили на хабр по умолчанию.
Вот продолжение этого дела. habrahabr.ru/blogs/GreaseMonkey/88727/
Ограничение кроссдоменности обойдено, код причёсан, можно даже работать.

На очереди — Опера (доступ к XML наддоменного фрейма) и подстройка под шрифты разного размера. При больших шрифтах налезают таблички немного вниз.
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации