2014-08-27 1 views
0

Я нашел следующий скрипт, отправленный Sirus_Black. Но у меня есть вопрос, что я надеюсь, что он, или кто-нибудь может просветить меня.защита ссылок mIRC [редактирование сценария]

on @*:text:*:#:linkpost $1- 
on @*:action:*:#:linkpost $1- 
on @*:notice:*:#:linkpost $1- 
alias -l linkpost { 
    if ((!%p) && (!$hfind(permit,$nick))) { inc -u4 %p 
    var %purge /^!(link\so(n|ff)|(permit))\b/iS 
    var %domain com|edu|gov|mil|net|org|biz|info|name|museum|us|ca|uk 
    var %exception /(?:https?:\/\/)?w{3}\.(youtube|imgur)\.com/ 
    var %link /(?<=^|\s)((?>\S{3,8}:\/\/|w{3}\56)\S+)|\56($+ %domain $+)\b/iS 
    if ($findtok(%chanon1,#,1,32)) && ($nick(#,$nick,vr)) && ($regex($1-,%link)) && (!$regex($1-,%exception)) { 
     timeout 30 # $nick | /mode # -b $nick 
     msg # $nick You did not have permission to post a link ask a mod to !permit you 
     msg # /timeout $nick 1 
    } 
    elseif (($regex($1-,%purge)) && ($regml(1) = permit) && ($nick isop #) && ($$2 ison #)) { 
     hadd -mz permit $v1 30 | notice $v1 You have 30 seconds to post a link. Starting now! 
     msg # You now have 30 seconds to post a link! 
    } 
    elseif (($regml(1) = link on) && ($nick isop #)) { 
     goto $iif(!$istok(%chanon1,#,32),a,b) | :a | set %chanon1 $addtok(%chanon,#,32) 
     .msg # Link Protection Is Now on in: $+($chr(2),#) 
     halt | :b | .msg # $nick $+ , my link protection is already on in $& 
     $+($chr(2),#,$chr(2)) ! 
    } 
    elseif (($regml(1) = link off) && ($nick isop #)) { 
     goto $iif($istok(%chanon1,#,32),c,d) | :c | set %chanon1 $remtok(%chanon,#,1,32) 
     .msg # Link Protection Is Now off in: $+($chr(2),#) 
     halt | :d | .msg # $nick $+ , My link protection is already off . $& 
     ! 
    } 
    } 
} 

Сценарий работает по назначению, но я борюсь с моим ограниченным знанием того, как добавить его.

Скажем, я хочу делать исключения для некоторых других сайтов.

test1.tv test2.eu и ima.ninja

Я бы себе представить, что было бы так просто, как изменение переменной строку:

var %exception /(?:https?:\/\/)?w{3}\.(test1|test2|ima)\.com/|\.tv|\.eu|\.ninja 

Но когда я попытался это, даже те ссылки приведет к тайм-ауту.

Обновление: хорошо, я проверил его снова

var %exception /(?:https?:\/\/)?w{3}\.(test1|test2|ima)\.com/|\.tv|\.eu|\.ninja 

это позволяет мне использовать test1.tv, как я хочу, но http://test1.tv приводит к тайм-аут. Я также заметил, что использование любых веб-сайтов .eu и .tv разрешено до тех пор, пока http: // не будет присутствовать.

/brainfart

ответ

0

попробовать это

on @*:text:*:#:linkpost $1- 
on @*:action:*:#:linkpost $1- 
on @*:notice:*:#:linkpost $1- 
alias -l linkpost { 
if ((!%p) && (!$hfind(permit,$nick))) { 
var %purge /^!(link\so(n|ff)|(permit))\b/iS 
var %domain com|edu|gov|mil|net|org|biz|info|name|museum|us|ca|uk 
var %exception /https?:\/\/(?:w{3})?\.(youtube|imgur|ima|test)\.(ninja|eu|com)/ 
var %link /(?<=^|\s)((?>\S{3,5}:\/\/|w{3}\56)\S+)|\56($+ %domain $+)\b/iS 
if ($findtok(%chanon1,#,1,32)) && ($nick(#,$nick,vr)) && ($regex($1-,%link)) && (!$regex($1-,%exception)) { 
    timeout 30 # $nick | /mode # -b $nick 
    msg # $nick You did not have permission to post a link ask a mod to !permit you 
    msg # /timeout $nick 1 
} 
elseif (($regex($1-,%purge)) && ($regml(1) = permit) && ($nick isop #) && ($$2 ison #)) { 
    hadd -mz permit $v1 30 | notice $v1 You have 30 seconds to post a link. Starting now! 
    msg # You now have 30 seconds to post a link! 
} 
elseif (($regml(1) = link on) && ($nick isop #)) { 
    goto $iif(!$istok(%chanon1,#,32),a,b) | :a | set %chanon1 $addtok(%chanon,#,32) 
    .msg # Link Protection Is Now on in: $+($chr(2),#) 
    halt | :b | .msg # $nick $+ , my link protection is already on in $& 
    $+($chr(2),#,$chr(2)) ! 
} 
elseif (($regml(1) = link off) && ($nick isop #)) { 
    goto $iif($istok(%chanon1,#,32),c,d) | :c | set %chanon1 $remtok(%chanon,#,1,32) 
    .msg # Link Protection Is Now off in: $+($chr(2),#) 
    halt | :d | .msg # $nick $+ , My link protection is already off . $& 
    ! 
} 
} 
} 
+0

спасибо за возвращение ко мне. Я ценю помощь в этом, и я надеюсь, что могу попросить еще немного. Исправление, которое вы сделали, действительно было решением. Единственная проблема, с которой я сейчас сталкиваюсь, - это необходимость в полных ссылках. Я имею в виду, если я хочу поставить ссылку на YouTube, я не могу просто поставить youtube.com/siriusisawesome. Мне нужно будет включить http://www.youtube.com/siriusisawesome Есть ли способ сделать http: // www. необязательный? Или сделать поддомены приемлемыми? Ex: http://sub.test.eu или просто sub.test.eu Опять же, я действительно ценю помощь. – jimieo

+0

Что я имел в виду, мне нужно было включить http: // и www. – jimieo

+0

попробовать это регулярное выражение /(?:(?<=w{3}\.|http:\/\/))(\S+\.(?:com|eu|uk|net))/ –

Смежные вопросы