egglib_pub.tcl v1.53a, tcl library |
egglib_pub.tcl v1.53a, tcl library |
Kreon |
Oct 28 2006, 12:17 AM
Post
#1
|
Developer Group: Root Admin Posts: 396 Joined: -- From: Внешние пределы Member No.: 2 |
Tcl-скрипт, представляющий собой библиотеку функций для упрощения и стандартизации написания скриптов. Используется в большинстве созданных и представленных на eggdrop.org.ru и этом сайте скриптах.
В состав входят функции стандартного вывода информации, чтения и пересохранения данных, настраевыемый http-клиент на неблокируемых сокетах, и многие другие полезные программные решения В данной модифицированной версии добавлена как поддержка новых возможностей бота с установленным патчем Suzi Project, направленных в первую очередь на использование прямых функций работы со строками взамен предлагавшихся ранее обходных путей, так и существенная оптимизация функцией для непропатченных ботов. Обратите внимание, данный скрипт должен быть загружен ДО любых других, использующих его функции. Благодарим xirc.ru за идеи в изменении процедур. Attached File(s) egglib_pub.tcl ( 23.52k ) Number of downloads: 1111 -------------------- Не понял сам - не дай понять другому
|
hunt |
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. Бот будет пытаться вывести текст цветом. |
Kreon |
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* в качестве буквы пароля канала - спасибо за замечание, исправили. -------------------- Не понял сам - не дай понять другому
|
Kreon |
Oct 29 2006, 10:22 AM
Post
#4
|
Developer Group: Root Admin Posts: 396 Joined: -- From: Внешние пределы Member No.: 2 |
Обнаружилась несовместимость в процедуре записи writedata. Исправлена и заменен файл в первом сообщении.
-------------------- Не понял сам - не дай понять другому
|
nemon |
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 |
Kreon |
Apr 30 2007, 09:17 AM
Post
#6
|
Developer Group: Root Admin Posts: 396 Joined: -- From: Внешние пределы Member No.: 2 |
fixed
-------------------- Не понял сам - не дай понять другому
|
Kreon |
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 -------------------- Не понял сам - не дай понять другому
|
Lo-Fi Version | Time is now: 23rd May 2024 - 06:49 PM |