LINUX.ORG.RU
ФорумTalks

Я даже не знаю что сказать, на лоре появились смайлы.


0

1

анимированные.

// ==UserScript==
// @name           Подпесь
// @namespace      linux.org.ru
// @include        http://www.linux.org.ru/forum/*
// ==/UserScript==

//smiles
function Smiles() {
  var site = "http://www.kolobok.us/smiles/standart/";
  var smiles = {
	  "*acute*":"acute.gif",
	  "*aggressive*":"aggressive.gif",
	  "*agree*":"agree.gif",
	  "*air_kiss*":"air_kiss.gif",
	  "*bad*":"bad.gif",
	  "*beee*":"beee.gif",
	  "*black_eye*":"black_eye.gif",
	  "*blum2*":"blum2.gif",
	  "*blum3*":"blum3.gif",
	  "*blush2*":"blush2.gif",
	  "*blush*":"blush.gif",
	  "*boast*":"boast.gif",
	  "*boredom*":"boredom.gif",
	  "*censored*":"censored.gif",
	  "*clapping*":"clapping.gif",
	  "*cray2*":"cray2.gif",
	  "*cray*":"cray.gif",
	  "*dance2*":"dance2.gif",
	  "*dance3*":"dance3.gif",
	  "*dance4*":"dance4.gif",
	  "*dance*":"dance.gif",
	  "*declare*":"declare.gif",
	  "*derisive*":"derisive.gif",
	  "*dirol*":"dirol.gif",
	  "*dntknw*":"dntknw.gif",
	  "*don-t_mention*":"don-t_mention.gif",
	  "*download*":"download.gif",
	  "*drinks*":"drinks.gif",
	  "*fool*":"fool.gif",
	  "*friends*":"friends.gif",
	  "*good2*":"good2.gif",
	  "*good3*":"good3.gif",
	  "*good*":"good.gif",
	  "*grin*":"grin.gif",
	  "*heat*":"heat.gif",
	  "*help*":"help.gif",
	  "*i-m_so_happy*":"i-m_so_happy.gif",
	  "*ireful1*":"ireful1.gif",
	  "*ireful2*":"ireful2.gif",
	  "*ireful3*":"ireful3.gif",
	  "*kiss*":"kiss.gif",
	  "*laugh*":"laugh1.gif",
	  "*laugh2*":"laugh2.gif",
	  "*laugh3*":"laugh3.gif",
	  "*lazy2*":"lazy2.gif",
	  "*lazy3*":"lazy3.gif",
	  "*lazy*":"lazy.gif",
	  "*mda*":"mda.gif",
	  "*meeting*":"meeting.gif",
	  "*mosking*":"mosking.gif",
	  "*nea*":"nea.gif",
	  "*negative*":"negative.gif",
	  "*no2*":"no2.gif",
	  "*not_i*":"not_i.gif",
	  "*offtopic*":"offtopic.gif",
	  "*ok*":"ok.gif",
	  "*pardon*":"pardon.gif",
	  "*party*":"party.gif",
	  "*pleasantry*":"pleasantry.gif",
	  "*polling*":"polling.gif",
	  "*popcorm1*":"popcorm1.gif",
	  "*popcorm2*":"popcorm2.gif",
	  "*punish2*":"punish2.gif",
	  "*punish*":"punish.gif",
	  "*read*":"read.gif",
	  "*resent*":"resent.gif",
	  "*rofl*":"rofl.gif",
	  "*sad*":"sad.gif",
	  "*scare2*":"scare2.gif",
	  "*scare*":"scare.gif",
	  "*sclerosis*":"sclerosis.gif",
	  "*scratch_one-s_head*":"scratch_one-s_head.gif",
	  "*search*":"search.gif",
	  "*secret*":"secret.gif",
	  "*padonak*":"SHABLON_padonak_04.gif",
	  "*SHABLON_padonak_05*":"SHABLON_padonak_05.gif",
	  "*SHABLON_padonak_06*":"SHABLON_padonak_06.gif",
	  "*shout*":"shout.gif",
	  "*smile*":"smile3.gif",
	  "*smoke*":"smoke.gif",
	  "*snooks*":"snooks.gif",
	  "*sorry2*":"sorry2.gif",
	  "*sorry*":"sorry.gif",
	  "*stink*":"stink.gif",
	  "*stop*":"stop.gif",
	  "*superstition*":"superstition.gif",
	  "*swoon2*":"swoon2.gif",
	  "*swoon*":"swoon.gif",
	  "*take_example*":"take_example.gif",
	  "*taunt*":"taunt.gif",
	  "*thank_you2*":"thank_you2.gif",
	  "*thank_you*":"thank_you.gif",
	  "*this*":"this.gif",
	  "*threaten*":"threaten.gif",
	  "*to_clue*":"to_clue.gif",
	  "*tongue*":"tongue.gif",
	  "*to_take_umbrage*":"to_take_umbrage.gif",
	  "*umnik2*":"umnik2.gif",
	  "*umnik*":"umnik.gif",
	  "*unsure*":"unsure.gif",
	  "*victory*":"victory.gif",
	  "*whistle2*":"whistle2.gif",
	  "*whistle3*":"whistle3.gif",
	  "*whistle*":"whistle.gif",
	  "*wink3*":"wink3.gif",
	  "*yahoo*":"yahoo.gif",
	  "*yes2*":"yes2.gif",
	  "*yes3*":"yes3.gif",
	  "*yes4*":"yes4.gif",
	  "*yes*":"yes.gif",
	  "*yu*":"yu.gif"
  }
  var thiz = this;
  this.subtitute = function(i, node) {
	if(node.nodeName == "#text") {
	  var str = node.nodeValue;
	  var parsed = [];
	  for(var i = 0; i >= 0 && i < str.length; ) {
		i = str.indexOf("*", i);
		if(i < 0) {
		  break;
		}
		var end = str.indexOf("*", i  + 1) + 1;
		if(end < 1) {
		  break;
		}
		var smile = str.substring(i, end);
		var gif = smiles[smile.toLowerCase()];
		//console.debug(smile);
	    if(smile && gif) {
		  parsed.push({
			s: i,
			e: end,
			gif: gif
		  });
		}
		i = end + 1;
	  }
	  //замена
	  var parent = node.parentNode;
	  for(var i = parsed.length - 1; i >= 0 ; --i) {
		var p = parsed[i];
		var text = node.splitText(p.s);
		text.deleteData(0, p.e - p.s);//удаление смайла
		var img = document.createElement("img");
		img.src = site + p.gif;
		parent.insertBefore(img, text);
	  }
	}
	for(var i = 0 ; i < node.childNodes.length; ++i) {
	  thiz.subtitute(i, node.childNodes[i]);
	}
  }
  
  this.createMenu = function(handler) {
	var menu = document.createElement("div");
	for(var s in smiles) {
	  var se = document.createElement("img");
	  se.src = site + smiles[s];
	  se.addEventListener("click", (function(s){
	    return function(){handler(s)};
	  })(s), false);
	  menu.appendChild(se);
	}
	return menu;
  }
}

try{
  var smiles = new Smiles();
  var jQuery = unsafeWindow.jQuery;
  jQuery(".msg_body p").each(smiles.subtitute);
  var msg = document.getElementById("msg");
  var menu = smiles.createMenu(function(smile) {
 	var val = msg.value;
	var s = msg.selectionStart;
	var e = msg.selectionEnd;
	msg.value = val.substring(0, s) + smile + val.substring(s, val.length);
  });
  msg.parentNode.insertBefore(menu, msg);
} catch(e) {
//  console.debug(e);
}

Вот как выглядит форма отправки:

http://img153.imageshack.us/img153/3406/55203891.png

Вот результат:

http://img708.imageshack.us/img708/7928/78667317.png


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

С минимальными телодвижениями я добился чего хотел.

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

Переделай, это же опенсорс.

PS: Я в javascript не силен, и мне лень уделять много времени для данной проблему

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

Ну и всех остальных кто пользуется смайликам со звездочками:))

Devix
()

Смайлика *WALL* нету, так что фтопку.

Хотя... в любом случае фтопку.

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

чувак, а давай я в каждом посте буду писать слово «говно»? Ну или там «пидорасы»? Не оскорбляя никого, чисто так. Вот скажи - тебе приятно будет? При том что я МОГУ этого не делать?

Мне будет пофигу. Я те честно признаюсь. Еще я тебе скажу что ты троллишь, ибо ни говно, ни пидорасы никто тут не писал, так что аналогия неверная.

_____________

© Белка Inc.

wfrr
() автор топика

Выффка, у тебя девелоперский понос сегодня? :-))) ты так все планы на ближайшую пятилетку сегодня перевыполнишь.

Deleted
()

*censored* себе, тут даже *censored* есть.
Это ж *censored*

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

Карму хранить дето надо, т.е. поднять хостинг и там json интерфейс для кармы

_____________

© Белка Inc.

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

> никто тут не писал

Рисовал...

Хотя да, кажется в тот раз это был не wfrr..

sin_a 👍
()
Ответ на: комментарий от wfrr

да я думаю, если кто то в ответе на сообщение написал +1, то сразу сообщению плюсег. Хотя, блин, ну и spikecycle получится.

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

Точнее нет, оно просто вызывает крэш всего хрома, даже не одной вкладки. Белка, колись, что ты там напейсал?

jcd
()

Чтобы отучить людей использовать смайлы со звездочкам, кто нибудь сделайте скрипт который в добавляемое сообщение после нажатия кнопки «поместить», в случайные места добавлял бы случайные смайлики со звездочками. И все не любители смайликов должны будут установить данный скрипт и скрипт блокирующий смайлики со звезочками. Короче будет в сообщениях много смайломусора.

Devix
()

Плюсик белке в карму.

Nervous 😊😊😊😊😊
()
Ответ на: комментарий от vostrik

>ага
Если нелюбовь к смайликам сильна то почему бы и не ага.

Devix
()

а еще можно чтоб граффити в пост добавлять можно было

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

Там для тебя разъяснение есть.

_____________

© Белка Inc.

wfrr
() автор топика

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

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

>Мне будет пофигу. Я те честно признаюсь

Значит у нас с вами разные понятия о культурном поведении. Печально

Еще я тебе скажу что ты троллишь, ибо ни говно, ни пидорасы никто тут не писал


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

Pinkbyte 👍
()
Ответ на: комментарий от massimus

В некотором виде они давно есть.

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

>>как их заюзать-то?

google://javascript+%your_browser%

А я то думал он в движок запилил.

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

Во-первых, я не троллю.

А я не верю.

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

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

_____________

© Белка Inc.

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

>Ты предлагаешь то что нарушает этические нормы (ага, ругательства), я - то что вызывает зуд в заднице нервных личностей

зуд в заднице нервных личностей


То есть ты считаешь, что сознательно вызывать у людей раздражение - это норма поведения?

Pinkbyte 👍
()
Ответ на: комментарий от jcd

>Здесь - да.

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

Pinkbyte 👍
()
Ответ на: комментарий от Xellos

>На самом деле, белка не нужна.

«Ненужнаторы не нужны!» (c) непомню_кто

Pinkbyte 👍
()
Ответ на: комментарий от jcd

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

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

Боль.

То есть ты считаешь, что сознательно вызывать у людей раздражение - это норма поведения?

Эталонный butthurt.

Camel ☕☕☕
()
Ответ на: комментарий от Pinkbyte

Это L.o.r.

Так что, если для большинства здесь собравшихся провокация - норма жизни - то это, на мой взгляд, печально...

Это L.o.r., асоциальная сеть. И здесь могут затроллить.

Camel ☕☕☕
()
Ответ на: Боль. от Camel

>Эталонный butthurt.

всего лишь норма жизни - «не трогай лишний раз других людей, они могут оказаться говном и навонять»

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

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

_____________

© Белка Inc.

wfrr
() автор топика

что аватары, что смайлы - не нужно на лоре.

странно говорить о смайлах, как о нечто негативном, если показ аватаров включен.

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