Quiz Memorial Forum

Welcome Guest ( Log In | Register )

 
Reply to this topicStart new topic
> egglib_pub.tcl v1.53a, tcl library
Kreon
post Oct 28 2006, 12:17 AM
Post #1


Developer
******

Group: Root Admin
Posts: 396
Joined: --
From: Внешние пределы
Member No.: 2



Tcl-скрипт, представляющий собой библиотеку функций для упрощения и стандартизации написания скриптов. Используется в большинстве созданных и представленных на eggdrop.org.ru и этом сайте скриптах.
В состав входят функции стандартного вывода информации, чтения и пересохранения данных, настраевыемый http-клиент на неблокируемых сокетах, и многие другие полезные программные решения smile.gif
В данной модифицированной версии добавлена как поддержка новых возможностей бота с установленным патчем Suzi Project, направленных в первую очередь на использование прямых функций работы со строками взамен предлагавшихся ранее обходных путей, так и существенная оптимизация функцией для непропатченных ботов.

Обратите внимание, данный скрипт должен быть загружен ДО любых других, использующих его функции.

Благодарим xirc.ru за идеи в изменении процедур.


Attached File(s)
Attached File  egglib_pub.tcl ( 23.52k ) Number of downloads: 1004


--------------------
Не понял сам - не дай понять другому
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
hunt
post Oct 28 2006, 06:23 AM
Post #2


Unregistered









1)
CODE
proc ::egglib::strip_colors {t} {
    return [stripcodes c $t]
}

В этой процедуре нужно добавить флаг b для убирания болда, а вообще
CODE
proc ::egglib::strip_colors {t} {
    return [stripcodes bcruag $t]
}

убирать всякие подчеркивания, ASCii коды %)
2)
CODE
if {![channel get $chan usecolors] || [string match *c* [getchanmode $chan]]} {
        set text [stripcodes c $text]
    }

Стащено с меня, только проверки на флаг включенный usecolors, нету.
Ваша аналогичная процедура, как у меня в егглиб1.5.5, здесь ошибка если в пароле канала содержится буква "c", а возможно на канале стоит +c. Бот будет пытаться вывести текст цветом.
Go to the top of the page
+Quote Post
Kreon
post Oct 28 2006, 11:43 AM
Post #3


Developer
******

Group: Root Admin
Posts: 396
Joined: --
From: Внешние пределы
Member No.: 2



Позвольте с вами не согласиться.
::egglib::strip_colors называется именно ::egglib::strip_colors, а не, к примеру, ::egglib::strip_codes. Поэтому эта процедура должна снимать только цветовые коды, а не все коды оформления! И вообще нет особого смысла данной процедуры, когда можно непосредственно из любого скрипта вызывать sctripcodes, здесь она оставлена лишь из соображений совместимости со скриптами, использующими эту функцию egglib'a.
По поводу *c* в качестве буквы пароля канала - спасибо за замечание, исправили.


--------------------
Не понял сам - не дай понять другому
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Kreon
post Oct 29 2006, 10:22 AM
Post #4


Developer
******

Group: Root Admin
Posts: 396
Joined: --
From: Внешние пределы
Member No.: 2



Обнаружилась несовместимость в процедуре записи writedata. Исправлена и заменен файл в первом сообщении.


--------------------
Не понял сам - не дай понять другому
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
nemon
post Apr 30 2007, 05:13 AM
Post #5


Посетитель
*

Group: Members
Posts: 1
Joined: 30-April 07
Member No.: 86



CODE
.tcl ::egglib::rus_duration [duration 42163200]

CODE
Tcl error: list element in quotes followed by "я"" instead of space
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Kreon
post Apr 30 2007, 09:17 AM
Post #6


Developer
******

Group: Root Admin
Posts: 396
Joined: --
From: Внешние пределы
Member No.: 2



fixed


--------------------
Не понял сам - не дай понять другому
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Kreon
post Aug 16 2007, 03:51 PM
Post #7


Developer
******

Group: Root Admin
Posts: 396
Joined: --
From: Внешние пределы
Member No.: 2



Небольшое исправление. Примерно в ~10-30 раз ускорена работа процедуры egglib::readdata на очень старых медленных системах при чтении очень больших объемов строк.

Пример с прочтением файла weather.dat для скрипта погоды.
До исправления:
QUOTE
‹16·45·59›-|[ Kreon ]|- .tcl time {egglib::readdata weather.dat}
‹16·46·11› <Service> Tcl: 11476462 microseconds per iteration

После исправления:
QUOTE
‹16·47·01›-|[ Kreon ]|- .tcl time {egglib::readdata weather.dat}
‹16·47·02› <Service> Tcl: 377983 microseconds per iteration


--------------------
Не понял сам - не дай понять другому
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 User(s) are reading this topic (2 Guests and 0 Anonymous Users)
0 Members:

 



Lo-Fi Version Time is now: 28th March 2024 - 11:42 AM
Design by GPF © 2006