Регистрация | Вход
[ Главная · Новые сообщения ]
Форум » Основной раздел » Мастерская » Вопросы по скриптам
Вопросы по скриптам
Vladislav 25.11.10 13:51 #16
Новости ты добавляешь на сайт или хочешь в базу к боту? Скрипты типа ленты.ру тянут инфу только с сайтов, команда !новость примеры расмотрены тут.
DwayneCarter 25.11.10 13:58 #17
Я хочу чтобы допустим я напечатал новость, а бот сам ее рандомно вывел через полчаса сам, без команды, сайта у меня нет. Естественно все новости чтоб в папочке вместе с ботом хранились
Vladislav 25.11.10 14:38 #18
C этим сложней, так как готовых вариантов нет именно для авто вывода новостей.

Можно попробовать скрипт, тот, что прикрепил в сообщении, читай описание. Или в боте есть такие команды как !цитата !ман в них можно добавлять что хочешь и установить автовывод, читать тут.

nov.tcl(1.6 Kb)
Thoughtful_Fox 02.12.10 15:32 #19
Здравствуйте Владислав! Отличный бот. Мне бы хотелось узнать следующее.
Допустим бот сидит на двух каналах. И например есть команда "!кто". Я хочу сделать чтобы например на канале1 команда работала, а на канале2 нет. Я в tcl не слишком разбираюсь. Я думаю это возможно, если я прав, то как? Заранее благодарен!
Vladislav 02.12.10 16:01 #20
В существенную часть скриптов встроены уже отключающие флаги, пример использования тут. В скрипте !кто нету такого поэтому приведу пример добавления такого флага на этом скрипте и прикреплю к сообщению скрипт с флагом.

В начало скрипта (games/kto.tcl) добавляем имя отключающего флаг:

Quote
setudef flag nokto

Затем в начало каждой процедуры в скрипте (в данном случае их 2), вставляем проверку на этот флаг:

Quote
if {[channel get $chan nokto]} { putserv "NOTICE $nick :На канале $chan эта команда отключена."; return }


Процедура начинается так:

Code
proc pub:kto {nick uhost hand chan text} {

Тут стоит обращать внимание на то как указан канал, в данном случае - chan он может быть указан и как channel и как c. Из этого следует что и в проверке, та что выше должна быть указана верная переменная в данном случае - $chan, иначе бот будет выдавать ошибку о том что нет такой переменной.

P.S: в багрепорт можно писать имя скриптов в которых требуется такая функция, и в новой версии эти скрипты уже будут с флагами на отключения.
kto.tcl(4.5 Kb)
Thoughtful_Fox 02.12.10 23:26 #21
Огромное спасибо. Кстати есть одна проблема.
В скрипте с новостями, который Вы сделали nov.tcl. Я хотел включить его на одном канале. Название канала написано капсом, и видимо из-за этого скрипт выдавал ошибку, т.к. после того как я изменил в скрипте канал на другой, все работало нормально.
Может ли быть проблема в названии канала?

======

Вот какую ошибку выдавал:

Quote
[00:02:00] Tcl error [autotid1]: random limit must be greater than zero


Сейчас проверю Ваш вариант.

======

Всё работает отлично, спасибо!)
Vladislav 02.12.10 23:35 #22
Канал указывается так, как он был добавлен в бота с учётом регистра, посмотреть можно набрав команду: !каналы

Так же можешь попробовать взять канал в кавычки: set novpabch "#windrop"

Vladislav 03.12.10 12:04 #23
Quote
[00:02:00] Tcl error [autotid1]: random limit must be greater than zero

Эта ошибка не из-за канала, бот сообщает тебе, что не может выбрать рандомное значение, так как их нет, потому что нет в базе новостей.

Скриптик nov.tcl обновил, брать в этом посте.

Добавил туда проверки на то, что есть ли база и есть ли в ней новости, если нет, то никаких ошибок не будет. А также добавил команду !-нов которая очищает базу, то есть удаляет все новости.

Thoughtful_Fox 03.12.10 12:19 #24
Отлично!)
У меня много идей по скриптам.
Кстати. Могли бы вы написать такой скрипт:
Допустим в папке Data есть файлик admins.txt В котором прописаны хосты людей, имеющих доступ к боту. И файлик ahelp.txt, в который я напишу команды по управлению ботом, например !ban !topick и т.д. И если человек прописывает команду !ahelp или !ахелп идет проверка хоста из файла admins.txt, если этот человек там прописан, то ему в приват бот пишет эти команды.
Просто я немогу уже всем объяснять команды. Да и не все понимают как пользоваться !helps.
С этой командой было бы намного проще.
Я пользовался таким скриптом на *.mrc. А как его написать на *.tcl я немного затрудняюсь.
Надо почитать те книжки, что Вы предложили в другой теме)
Vladislav 03.12.10 12:47 #25
То, что ты предлагаешь совсем не удобная вещь, проще научиться пользоваться !helps ведь там ничего сложного нет.

Как им пользоваться достаточно понятно написано при наборе самой команды !helps и с примерами.

Quote
<Vladislav> !helps
-Windrop- !helps [флаги] Алиасы: !хелпс. Минимальный доступ: %v.
-Windrop- Флаги:
-Windrop- » -l ограничить список выводимых команд только теми, которые доступны пользователю;
-Windrop- » -с выводить доступные алисы для команд;
-Windrop- » -g группа выводить команды по указанной группе;
-Windrop- Доступные группы: info, system, other, mode, chan, user, botnet, invite, exempt, chanserv, regban, ban, amode
-Windrop- Пример: !helps op - !helps -g mode - !helps -c -g mode

Quote
<Vladislav> !helps -c -g chan
<Windrop> !topic <текст> - Устанавливает топик канала. Алиасы: !топик.
<Windrop> !addtopic <текст> - Добавляет текст к теме канала. Алиасы: !+топик.
<Windrop> !channels - Выводит список каналов. Алиасы: !каналы.
<Windrop> !chanadd <канал> - Добавляет канал. Алиасы: !addchan, !join, !+chan, !+канал.
<Windrop> !chandel <канал> - Удаляет канал. Алиасы: !delchan, !part, !-chan, !-канал.
<Windrop> !rejoin - Даёт команду боту перезайти на канал. Алиасы: !перезайди, !реджоин.
....

Кстати, и то что ты хочешь сделать уже реализовано:

Quote
<tester> !helps -l -g chan
-Windrop- !topic <текст> - Устанавливает топик канала.
-Windrop- !addtopic <текст> - Добавляет текст к теме канала.
-Windrop- !channels - Выводит список каналов.

Бот вывел лишь три команды юзеру с флагом o на канале. Это очень мощный скрипт. Постарайся изучить его как следует и донести тем кто прописан у бота. И не надо будет придумывать различных прописей хостов в файлы.

Тут конечно моя ошибка есть, я убрал из хелпа флаг l который отвечает за вывод доступных команд каждому юзеру, если вообще ничего не доступно то выведет то что в !helps без параметров. При следующем обновлении бота верну этот флаг в хелп, раз он оказывается востребован.

Skarabei_ 03.12.10 14:01 #26
Vladislav,я скачал скрипт lenta бот выводит новости,только в краце,а можно как-то зделать что бы при написание команды например !н 1111 (или другой номер) бот выводил более подробную информацию...можно ли это как-то зделать?
Thoughtful_Fox 03.12.10 14:13 #27
Жалко, но да ладно. Буду усердно вдалбливать команды в их мозги (:
А параллельно изучать tcl скриптинг)
Vladislav 03.12.10 14:22 #28
Skarabei_ я не юзаю о какой ленте ты говоришь (их несколько версий ) для новостей в боте есть !новость которая будет выводть c сайта ленты так:

Quote
<Vladislav> !новость http://lenta.ru/rss/news/digital/
<Windrop> [ Lenta.ru: Новости: Технологии ] :: Microsoft договорилась с взломавшими Windows Phone 7 хакерами :: Взломавшие Windows Phone 7 хакеры убрали свою программу ChevronWP7 из свободного доступа. Причиной удаления послужило выдвинутое директором отдела разработок Windows Phone 7 предложение о сотрудничестве. Также Microsoft взяла на себя обязательство уп... @ http://lenta.ru/news/2010/12/02/agreed/
Skarabei_ 03.12.10 14:36 #29
Извиняюсь допустил оплошность,я тоже использую !новость но все же вот пример

Quote
•(11:24:02)• <FootballBot> [ football.ua - Новости ] :: Газзаев: ощущение хорошо проделанной работы в Динамо :: Авторитетный российский специалист Валерий Газзаев по-прежнему считает, что хорошо выполнил свою работу у руля киевского Динамо, проиграв все, что только можно, за вычетом Суперкубка Украины. @ http://football.ua/ukraine/news/114436.html

єто в краце,а вот как бы хотелось видить при напсиание команды !н 1111

Quote
Авторитетный российский специалист Валерий Газзаев по-прежнему считает, что хорошо выполнил свою работу у руля киевского Динамо, проиграв все, что только можно, за вычетом Суперкубка Украины.

"С Игорем Суркисом у меня всегда были самые теплые отношения, которые сохранились и сейчас. Он сказал: "Валерий Георгиевич, вы понимаете, от чего вы отказываетесь?" Я ответил: "Я понимаю, что делаю. То, от чего отказываюсь, в данном случае неважно", - вспоминает Газзаев.

"Финансовые условия моего ухода интересовали меня в последнюю очередь. Важно было не потерять ощущение хорошо проделанной работы. А оно у меня есть", - приводит слова

Vladislav 03.12.10 14:49 #30
То что ты хочешь, делается свой парсер для каждого сайта с новостями, если тебе нужно именно с http://football.ua то вот держи скрипт.

Quote
<Vladislav> !н
-Windrop- Формат: !н <номер новости> - выводит новости с football.ua
<Vladislav> !н 0
<Windrop> Новость отсутствует.
<Vladislav> !н 114436
<Windrop> :: Газзаев: ощущение хорошо проделанной работы в Динамо
<Windrop> Авторитетный российский специалист Валерий Газзаев по-прежнему считает, что хорошо выполнил свою работу у руля киевского Динамо, проиграв все, что только можно, за вычетом Суперкубка Украины. "С Игорем Суркисом у меня всегда были самые теплые отношения, которые сохранились и сейчас. Он сказал: "Валерий Георгиевич, вы понимаете, от чего вы отказываетесь?" Я ответил: "Я понимаю, что делаю. То, от чего отказываюсь, в данном
<Windrop> случае неважно", - вспоминает Газзаев. "Финансовые условия моего ухода интересовали меня в последнюю очередь. Важно было не потерять ощущение хорошо проделанной работы. А оно у меня есть", - приводит слова тренера Советский Спорт.

Так как на этом сайте новости оформляются в стиле "как хочу" возможно, в некоторых новостях будут проскальзывать не замеченные мной теги.

nfootballua.tcl(15.3 Kb)
Форум » Основной раздел » Мастерская » Вопросы по скриптам
Поиск: