Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

3 876 Posts in 868 Topics- by 723 Members - Latest Member: tablarock

23 May 2012, 06:55
Select Language English | Russian ru | German
Main PageIRC Client KVIrc forumRussian talksСкриптингГотовые скриптыСкрипт "Улыбка"
Pages: [1]
Print
Author Topic: Скрипт "Улыбка"  (Read 6124 times)
0 Members and 2 Guests are viewing this topic.
Maximusya
Глобальный модератор
*****

Репутация: 49
Gender: Male
Posts: 343



View Profile
« on: 10 November 2007, 05:02 »

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

Полуночникам и добрякам посвящается.
Code:
event(OnTextInput,улыбка)
{
%messagePatterns = $array("^!","\\($","\\\\$","/$","\\.$");
%messagePatterns <+ "(http|https|ftp|file|irc|ircs)://(\\S)*$"
%excludedTargets = $array("chanserv", "nickserv", "#test")

%tosmile = $true
%target = $target
# экранируем символ | - а то он воспринимается как ИЛИ
%target =~ s/"\\|"/\\|/g

if (!$str.grep("^%target$", %excludedTargets, r))
{
foreach(%pattern, %messagePatterns)
{
if ($str.match(%pattern, $0, r))
{
%tosmile = $false
break
}
}
if (%tosmile)
{
say $0)
halt
}
}
}

Сначала был скрипт из двух строчек: say $0) и halt.
Но потом нужно было пообщаться с сервисами IRC - появились исключения на chanserv и nickserv.
Потом заметил, что ссылкам не нравится моя улыбка - появились исключения на ссылки в конце строки.
Потом мне все же захотелось выразить огорчение, недоумение, сказать что-то без окраски - появились исключения на смайлики и точку в конце.
Я даже встретил один канал, на котором стоял ~T:block:*)* - люди там сидели донельзя серьезные  Undecided - появилось исключение и на канал.
И надоело мне дописывать очередной ... && if(!бла-бла-бла) - решил как-то переработать код.

Если у вас возникнет затруднение добавить определенное исключение - напишите его сюда)
« Last Edit: 23 July 2008, 19:04 by Maximusya » Logged
PeoneEr
Новичок
*

Репутация: 0
Posts: 27


View Profile Email
« Reply #1 on: 23 July 2008, 12:09 »

Хороший скриптец...Полезно бы было, добавить "выключени" скрипта, без удаления
Quote
event(OnTextInput,улыбка)
Logged
Maximusya
Глобальный модератор
*****

Репутация: 49
Gender: Male
Posts: 343



View Profile
« Reply #2 on: 23 July 2008, 19:07 »

В версии 3.4.0 стала немного по-другому работать функция $str.grep, потому добавил следующие строчки:
Code:
# экранируем символ | - а то он воспринимается как ИЛИ
%target =~ s/"\\|"/\\|/g
Что позволит улыбаться даже тем, кто выставил себе важный статус через символ "|".
Logged
MrPositiff
Новичок
*

Репутация: 0
Posts: 1


View Profile Email
« Reply #3 on: 28 September 2008, 19:05 »

пасиба аффтар)
Logged
kns
Постоялец
***

Репутация: 38
Gender: Male
Posts: 222


View Profile WWW
« Reply #4 on: 22 August 2010, 02:34 »

В противовес другой скрипт.
Заменяет скобки на полноценные смайлы.
Code:
event(OnTextInput,smile_ch)
{
if ($str.contains($0,"))") || $str.contains($0,"((")) {
%a = $0
while ($str.contains(%a,"))))))")) { %a = $str.replace(%a,")))))","))))))");
while ($str.contains(%a,"(((((")) { %a = $str.replace(%a,"((((","((((("); }
%a = $str.replace(%a, " :DD", ")))))")
%a = $str.replace(%a, " :D", "))))")
%a = $str.replace(%a, " :婓)", ")))")
%a = $str.replace(%a, " :'(", "((((")
%a = $str.replace(%a, " :ई(", "(((")
%a = $str.replace(%a, " :(", "((")
%a = $str.replace(%a, ")", "婓")
%a = $str.replace(%a, "(", "ई")
while ($str.contains(%a,"  ")) { %a = $str.replace(%a," ","  "); }

say %a
halt
}
}

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

Неизмененные фразы, как обычно, можно отправлять по Ctrl+Enter.
Могут быть конфликты с другими скриптами, перехватывающими OnTextInput, совмещением занимайтесь сами.
Logged
Pages: [1]
Print
Jump to:  

Theme orange-lt created by panic