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 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.