Страница 1 из 2

nefart.tcl - Вот такой не фарт у вас на канале.

СообщениеДобавлено: 28 ноя 2009 20:16
tvrsh
Название: nefart.tcl
Версия: 1.1
Автор: tvrsh
Описание: Скрипт постит в канал истории с сайта http://www.nefart.ru
Поддержка Suzi: Да
Пример работы:
<tvrsh> !nefart
<@bionic> Нефарт №: 11880, Добавлен: 13.08.2009 - 21:33, Добавил: ZloiZaochnik, Раздел: Разное, В натуре не фарт!: 767, Сам виноват!: 540.
<@bionic> Сегодня взломали мой почтовый ящик, как следствие, пропала немалая сумма на яндекс деньгах (около 1к) и почти все пароли. Вот такой не фарт!(
<@bionic> ###

Дополнительная информация:
Работает как по команде так и по таймеру. Время между автовыводами задается в nefart(auto). Если равно 0 то автовывод отключен.
Ссылка на скрипт: nefart.tcl

Re: nefart.tcl

СообщениеДобавлено: 08 май 2011 20:12
wr`
доброго времени суток.поставил этот скрипт,но почему то не работает,выдает ошибку
Tcl error [pub_nefart]: can't read "q": no such variable

Re: nefart.tcl

СообщениеДобавлено: 09 май 2011 11:39
tvrsh
Вот, попробуй эту версию.
TCL: [ Скачать ] [ Скрыть ]
namespace eval nefart {}
setudef flag nopubnefart
set nefart(channel) #erotic
set nefart(page) http://nefart.ru/random/
set nefart(version) "1.0"
set nefart(author) "tvrsh @ IrcNet.ru"
package require http

bind pub - !nefart ::nefart::nefart
bind pub - !nef ::nefart::nefart
bind pub - !нефарт ::nefart::nefart
bind pub - !неф ::nefart::nefart

proc ::nefart::nefart {nick uhost hand chan text} {
    global nefart lastbind
    set agent "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1"
    set nefart_tok [::http::config -useragent $agent]
    set nefart_tok [::http::geturl $nefart(page) -timeout 30000]  
    set data [::http::data $nefart_tok]
    ::http::cleanup $nefart_tok

    set nefart(channel) $chan
    set asplitr [lindex {¤ • # * + °} [rand 6]]

    regsub -all -nocase -- {^.*?<div class="postpad">} $data "" data
    regsub -all -nocase -- {^.*?<div class="postpad">} $data "" data
    regsub -all -nocase -- {<div style="float:left.*?$} $data "" data
    regsub -all -- {\n} $data "
" data

    set data [string map {"
                    " "" "&quot;" "'"} $data]

    set data [encoding convertfrom utf-8 $data]
    set data [encoding convertto cp1251 $data]

    regexp {^(.*?)<div class="postinfo">} $data "" nefart_
    regexp {<div>(.*?)$} $data "" _nefart
    regexp {<a href=".*?">#(\d+)</a>} $_nefart "" q
    regexp {</a><span>(.*?)</span><span>} $_nefart "" w
    regexp {</span><span>(.*?)</span>} $_nefart "" e
    regexp {<span><a href=".*?" class="cat">(.*?)</a></span>} $_nefart "" r
    regexp {javascript&#058; vote\(.*?\((\d+)\)</span>} $_nefart "" t
    regexp {javascript&#058; voteb\(.*?\((\d+)\)</span>} $_nefart "" y

    set color [lindex {\00307 \00304 \00315 \00310} [rand 4]]  

    ::nefart::largetext $nefart(channel) "\00314Нефарт №: \00303$q\00314, Добавлен: \00303$w\00314, Добавил: \00303$e\00314, Раздел: \00303$r\00314, В натуре не фарт!: \00303$t\00314, Сам виноват!: \00303$y\00314. " $color
    ::nefart::largetext $nefart(channel) $nefart_ $color
    putserv "PRIVMSG $nefart(channel) :\00301$asplitr$asplitr$asplitr"
}

proc ::nefart::largetext {target text color {lineLen 400} {delims {.,-!}}} {
     global bor
     regsub -all {\{} $text "" text
     regsub -all {\}} $text "" text
     if {[string length $text] <= $lineLen} {
         putserv "PRIVMSG $target :$color $text "
         return 0
     }
  set _text [split $text $delims]
  set x 0; set i 0
  while {$x < $lineLen} {
    if {$i >= [llength $_text]} { return }
    set wordlen [string length [lindex $_text $i]];
      if {$x + $wordlen > $lineLen} { break }
      incr x $wordlen
      incr x; incr i
      }
putserv "PRIVMSG $target :$color [string range $text 0 [expr $x - 1]] "
::nefart::largetext $target [string trimleft [string range $text $x end]] $color $lineLen $delims
}

putlog "nefart.ru.tcl v$nefart(version) by $nefart(author) loaded."

Re: nefart.tcl - Вот такой не фарт у вас на канале.

СообщениеДобавлено: 09 май 2011 22:40
wr`
поставил,выбивает эту ошибку

Tcl error in file 'eggdrop.conf':
wrong # args: should be "set varName ?newValue?"
while executing
"set nefart(page) <!-- m --><a class="postlink" href="http://nefart.ru/random/">http://nefart.ru/random/</a><!-- m -->"
(file "scripts/nefart.tcl" line 4)
invoked from within
"source scripts/nefart.tcl"
(file "eggdrop.conf" line 121)

Re: nefart.tcl - Вот такой не фарт у вас на канале.

СообщениеДобавлено: 09 май 2011 23:18
tvrsh
set nefart(page) <!-- m --><a class="postlink" href="http://nefart.ru/random/">http://nefart.ru/random/</a><!-- m -->

Такого в скрипте точно нет. Видимо, ты как-то не так копируешь или твой браузер что-то делает с этой ссылкой. Должно быть
set nefart(page) http://nefart.ru/random/

Re: nefart.tcl - Вот такой не фарт у вас на канале.

СообщениеДобавлено: 09 май 2011 23:30
wr`
прошу прощения,да первый раз скопировал плохо,сейчас скопировал хорошо выдает
Tcl error [::nefart::nefart]: can't read "t": no such variable

Re: nefart.tcl - Вот такой не фарт у вас на канале.

СообщениеДобавлено: 10 май 2011 23:12
tvrsh
Не знаю, что у тебя не так. У меня все нормально работает.
<tvrsh> !nefart
<@bionic> Нефарт №: 4151, Добавлен: 07.06.2009 - 09:48, Добавил: Антиошка, Раздел: Любовь, В натуре не фарт!: 1697, Сам виноват!: 50.
<@bionic> Вчера с мужем после длительной ссоры было примирение - цветы, шампанское, красивые слова, секс.. В самый разгар которого он немого промахивается.. и у меня жуткая боль, обморок, кровища везде.. Оказалось, разошелся послеродовой шов... Вот такой не фарт..
<@bionic> ***

Re: nefart.tcl - Вот такой не фарт у вас на канале.

СообщениеДобавлено: 12 май 2011 18:20
wr`
как я понимаю у меня грешит на эту строку
regexp {javascript: vote\(.*?\((\d+)\)</span>} $_nefart "" t

Re: nefart.tcl - Вот такой не фарт у вас на канале.

СообщениеДобавлено: 12 май 2011 20:57
Vertigo
Чтобы не ругалось переменными, их надо объявлять (ц) я
перед регекспом допиши set t ""
и после регекспа if {$t == ""} {putserv "PRIVMSG $chan :я не смог получить данные"; return}

Re: nefart.tcl - Вот такой не фарт у вас на канале.

СообщениеДобавлено: 12 май 2011 22:36
wr`
а можно примером в скрипте?

Re: nefart.tcl - Вот такой не фарт у вас на канале.

СообщениеДобавлено: 13 май 2011 13:07
wr`
это сделал,но нефарт то все равно не появляется :(

Re: nefart.tcl - Вот такой не фарт у вас на канале.

СообщениеДобавлено: 14 май 2011 17:32
tvrsh
Ты все правильно скопировал? У меня все нормально срабатывает. Не знаю в чем у тебя дело.

Re: nefart.tcl - Вот такой не фарт у вас на канале.

СообщениеДобавлено: 14 май 2011 23:02
wr`
все правильно скопировал,проверил несколько раз,может у меня что нибудь не хватает для этого скрипта!?

Re: nefart.tcl - Вот такой не фарт у вас на канале.

СообщениеДобавлено: 16 май 2011 16:52
wr`
убрал это в скрипте , В натуре не фарт!: \00303$t\00314, Сам виноват!: \00303$y\00314,начал выводить нефарты

Re: nefart.tcl - Вот такой не фарт у вас на канале.

СообщениеДобавлено: 16 май 2011 22:10
tvrsh
Если ты действительно объявлял переменную t, то должно было работать и с этим. Во "в натуре не фарт" была бы пустота. Строку
if {$t == ""} {putserv "PRIVMSG $chan :я не смог получить данные"; return}
можно и не писать. Из-за нее прерывается процедура если переменная t не была получены из регэкспа
regexp {javascript&#058; vote\(.*?\((\d+)\)</span>} $_nefart "" t

Re: nefart.tcl - Вот такой не фарт у вас на канале.

СообщениеДобавлено: 17 май 2011 11:33
wr`
эта переменная как я понимаю получена,а вот где она с цветом \00303$t\00314, Сам виноват! почему то у меня не прочитывает

Re: nefart.tcl - Вот такой не фарт у вас на канале.

СообщениеДобавлено: 12 май 2012 08:53
wr`
Доброго времени суток,не могли бы вы возобновить полноценную работу скрипта,как было с самого начала,чтоб бот выводил нефарты и по команде,и рандомно сам по таймеру!Заранее благодарен

Re: nefart.tcl - Вот такой не фарт у вас на канале.

СообщениеДобавлено: 13 май 2012 19:04
tvrsh
Обновил скрипт, смотри первый пост.

Re: nefart.tcl - Вот такой не фарт у вас на канале.

СообщениеДобавлено: 15 май 2012 22:34
wr`
спасибо все отлично работает ;)

Re: nefart.tcl - Вот такой не фарт у вас на канале.

СообщениеДобавлено: 24 сен 2012 11:34
Jake
не подскажите как поставить антифлуд в этот скрипт ?