Скрипт заявок на Бнц

Просьбы о написании новых скриптов или поиске уже существующих.

Модератор: Модераторы

Скрипт заявок на Бнц

Сообщение John » 04 мар 2010 00:09

Есть предложение: написать скрипт заявки на бнц-аккуанты, т.е человек подает заявку, бот записывает её в .txt файл или генерить на html страницу, после чего администраторы бнц будут просматривать заявки на бнц-аккуанты
John
 
Сообщения: 10
Зарегистрирован: 02 мар 2010 19:31
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.8

Re: Бнц

Сообщение tvrsh » 05 мар 2010 10:52

А если попробовать переделать claim.tcl?
Have fun.
-
Получить помощь можно на каналах #egghelp в сети IrcNet.ru и #eggdrop в сети RusNet(Ключ канала eggdrop).
Перед созданием новой темы внимательно читайте Правила оформления топиков.
Аватара пользователя
tvrsh
 
Сообщения: 1230
Зарегистрирован: 19 авг 2008 16:55
Откуда: Russian Federation, Podolsk
Благодарил (а): 6 раз.
Поблагодарили: 130 раз.
Версия бота: Eggdrop 1.6.20+suzi

Re: Бнц

Сообщение John » 05 мар 2010 19:39

Пробовал, но получилось "херово". Если вам не трудно, не могли бы вы его переделать?
John
 
Сообщения: 10
Зарегистрирован: 02 мар 2010 19:31
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.8

Re: Бнц

Сообщение tvrsh » 06 мар 2010 11:13

Трудно. Лучше написать что-нибудь попроще.
+bnc - оставляет заявку на добавление бнц. В файл сохраняется Ник(Идент) написавшего юзера.
!заявки - просмотр всех оставленных заявок, доступна только операторам.
Добавь в корень бота файл bnc.txt
TCL: [ Скачать ] [ Скрыть ]
bind pub - +bnc bnc_add
proc bnc_add { nick uhost hand chan text } {
    set bfile [open bnc.txt r]
    set data [read $bfile]
    close $bfile
    foreach user [split $data "\n"] {
        if { $nick == [lindex [split $user "|"] 0] } {
            putserv "PRIVMSG $nick :$nick, вы уже оставляли заявку."
            return
        }
    }
    set bfile [open bnc.txt a]
    puts $bfile "$nick|[lindex [split $uhost "@"] 0]"
    close $bfile
}
bind pub o|o !заявки bnc_view
proc bnc_view {nick uhost hand chan text } {
    set bfile [open bnc.txt r]
    set data [read $bfile]
    close $bfile
    set blist [list]
    foreach user [split $data "\n"] {
        lappend blist "$user, "
    }
    putserv "PRIVMSG $chan :$nick, список осталенных заявок Ник|Идент:"
    putserv "PRIVMSG $chan :[string trim [join $blist] ","]."
}


Не проверял. Возможно будут ошибки.
Have fun.
-
Получить помощь можно на каналах #egghelp в сети IrcNet.ru и #eggdrop в сети RusNet(Ключ канала eggdrop).
Перед созданием новой темы внимательно читайте Правила оформления топиков.
Аватара пользователя
tvrsh
 
Сообщения: 1230
Зарегистрирован: 19 авг 2008 16:55
Откуда: Russian Federation, Podolsk
Благодарил (а): 6 раз.
Поблагодарили: 130 раз.
Версия бота: Eggdrop 1.6.20+suzi

Re: Бнц

Сообщение John » 06 мар 2010 16:26

puts $f $nick([lindex [split $uhost "@"] 0])
Круглые скобки лишние, ибо из-за них бот заявки не принимает. А так все отлично, спасибо за помощь.
John
 
Сообщения: 10
Зарегистрирован: 02 мар 2010 19:31
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.8

Re: Бнц

Сообщение tvrsh » 06 мар 2010 16:29

Почему лишние? Покажи какую ошибку пишет с ними.
Have fun.
-
Получить помощь можно на каналах #egghelp в сети IrcNet.ru и #eggdrop в сети RusNet(Ключ канала eggdrop).
Перед созданием новой темы внимательно читайте Правила оформления топиков.
Аватара пользователя
tvrsh
 
Сообщения: 1230
Зарегистрирован: 19 авг 2008 16:55
Откуда: Russian Federation, Podolsk
Благодарил (а): 6 раз.
Поблагодарили: 130 раз.
Версия бота: Eggdrop 1.6.20+suzi

Re: Бнц

Сообщение John » 07 мар 2010 18:39

[15:07] Tcl error [bnc_add]: can't read "nick(Rocket)": variable isn't array
John
 
Сообщения: 10
Зарегистрирован: 02 мар 2010 19:31
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.8

Re: Скрипт заявок на Бнц

Сообщение tvrsh » 07 мар 2010 19:35

В этой версии к команде !заявки добавлены два параметра, list и del.
!заявки list - просмотр всех оставленных заявок.
!заявки del <номер> - удаления заявки под указанным номером.
TCL: [ Скачать ] [ Скрыть ]
bind pub - +bnc bnc_add
proc bnc_add { nick uhost hand chan text } {
    set bfile [open bnc.txt r]
    set data [read $bfile]
    close $bfile
    foreach user [split $data "\n"] {
        if { $nick == [lindex [split $user "|"] 0] } {
            putserv "PRIVMSG $nick :$nick, вы уже оставляли заявку."
            return
        }
    }
    set bfile [open bnc.txt a]
    puts $bfile "$nick|[lindex [split $uhost "@"] 0]"
    close $bfile
    putserv "PRIVMSG $nick :$nick, ваша заявка на добавление бнц принята."
}

bind pub o|o !заявки bnc_view
proc bnc_view {nick uhost hand chan text } {
    switch [lindex [split $text] 0] {
        "list" {
            set bfile [open bnc.txt r]
            set data [read $bfile]
            close $bfile
            set blist [list]
            foreach user [split $data "\n"] {
                lappend blist "$user, "
            }
            putserv "PRIVMSG $chan :$nick, список осталенных заявок Ник|Идент:"
            putserv "PRIVMSG $chan :[string trim [join $blist] ","]."
            }
        "del" {
            set bfile [open bnc.txt r]
            set data [read $bfile]
            close $bfile
            set delline [expr [lindex [split $text] 1] - 1]
                if {$delline < 1 || $delline > [llength [split $data "\n"]] || ![isnumber $delline]} {
                    putserv "PRIVMSG $chan :$nick, не верно указан номер заявки."
                }
            set lines [split $data "\n"]
            proc K {x y} { set x }
            set lines [lreplace [K $lines [set lines {}]] $delline $delline]
            set bfile [open bnc.txt w]
            puts bfile [join $lines "\n"]
            close $bfile
            putserv "PRIVMSG $chan :$nick, заявка №$delline удалена."
            }
    }
}

Не тестировалось, возможны ошибки.
Have fun.
-
Получить помощь можно на каналах #egghelp в сети IrcNet.ru и #eggdrop в сети RusNet(Ключ канала eggdrop).
Перед созданием новой темы внимательно читайте Правила оформления топиков.
Аватара пользователя
tvrsh
 
Сообщения: 1230
Зарегистрирован: 19 авг 2008 16:55
Откуда: Russian Federation, Podolsk
Благодарил (а): 6 раз.
Поблагодарили: 130 раз.
Версия бота: Eggdrop 1.6.20+suzi

Re: Скрипт заявок на Бнц

Сообщение John » 08 мар 2010 20:09

Нету переменной
$line_to_delete
John
 
Сообщения: 10
Зарегистрирован: 02 мар 2010 19:31
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.8

Re: Скрипт заявок на Бнц

Сообщение tvrsh » 08 мар 2010 20:12

Замени на $delline. Обновил предыдущий пост.
Have fun.
-
Получить помощь можно на каналах #egghelp в сети IrcNet.ru и #eggdrop в сети RusNet(Ключ канала eggdrop).
Перед созданием новой темы внимательно читайте Правила оформления топиков.
Аватара пользователя
tvrsh
 
Сообщения: 1230
Зарегистрирован: 19 авг 2008 16:55
Откуда: Russian Federation, Podolsk
Благодарил (а): 6 раз.
Поблагодарили: 130 раз.
Версия бота: Eggdrop 1.6.20+suzi

Re: Скрипт заявок на Бнц

Сообщение John » 08 мар 2010 20:29

Заменял, толку нету пишет: [19:28] Tcl error [bnc_view]: can not find channel named "bfile"
John
 
Сообщения: 10
Зарегистрирован: 02 мар 2010 19:31
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.8

Re: Скрипт заявок на Бнц

Сообщение tvrsh » 08 мар 2010 21:01

TCL: [ Скачать ] [ Скрыть ]
bind pub - +bnc bnc_add
proc bnc_add { nick uhost hand chan text } {
    set bfile [open bnc.txt r]
    set data [read $bfile]
    close $bfile
    foreach user [split $data "\n"] {
        if { $nick == [lindex [split $user "|"] 0] } {
            putserv "PRIVMSG $nick :$nick, вы уже оставляли заявку."
            return
        }
    }
    set bfile [open bnc.txt a]
    puts -nonewline $bfile "$nick|[lindex [split $uhost "@"] 0]"
    close $bfile
    putserv "PRIVMSG $nick :$nick, ваша заявка на добавление бнц принята."
}

bind pub o|o !заявки bnc_view
proc bnc_view {nick uhost hand chan text } {
global lastbind
    switch [lindex [split $text] 0] {
        "list" {
            set bfile [open bnc.txt r]
            set data [read $bfile]
            close $bfile
            set blist [list]
            foreach user [split $data "\n"] {
                if {$user != ""} {
                    lappend blist "$user, "
                }
            }
            if {$blist != ""} {
                putserv "PRIVMSG $chan :$nick, список осталенных заявок Ник|Идент:"
                putserv "PRIVMSG $chan :[string trim [join $blist] " ,"]."
                } else {
                putserv "PRIVMSG $chan :$nick, никто не оставил заявок."
                }
            }
        "del" {
            set bfile [open bnc.txt "r"]
            set data [read $bfile]
            close $bfile
            putlog $data
            set delline [expr [lindex [split $text] 1] - 1]
            putlog $delline|[llength [split $data "\n"]]
                if {[lindex [split $text] 1] < 1 || [lindex [split $text] 1] > [llength [split $data "\n"]] || ![isnumber $delline]} {
                    putserv "PRIVMSG $chan :$nick, не верно указан номер заявки."
                    return
                }
            set lines [split $data "\n"]
            proc K {x y} { set x }
            set lines [lreplace [K $lines [set lines {}]] $delline $delline]
            set bfile [open bnc.txt "w"]
            puts -nonewline $bfile [join $lines "\n"]
            close $bfile
            putserv "PRIVMSG $chan :$nick, заявка №[expr $delline + 1] удалена."
            }
        default {
            putserv "PRIVMSG $chan :$nick, используй $lastbind list или $lastbind del."
            }
    }
}

Предложения по улучшению приветствуются.
Have fun.
-
Получить помощь можно на каналах #egghelp в сети IrcNet.ru и #eggdrop в сети RusNet(Ключ канала eggdrop).
Перед созданием новой темы внимательно читайте Правила оформления топиков.
Аватара пользователя
tvrsh
 
Сообщения: 1230
Зарегистрирован: 19 авг 2008 16:55
Откуда: Russian Federation, Podolsk
Благодарил (а): 6 раз.
Поблагодарили: 130 раз.
Версия бота: Eggdrop 1.6.20+suzi


Вернуться в Заявки на скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4

cron