Тексты, версия 2.0 |
Здравствуйте, гость ( Вход | Регистрация )
Тексты, версия 2.0 |
5.1.2010, 14:18
Сообщение
#1
|
|
Developer Группа: Модераторы Сообщений: 541 Регистрация: 11.11.2008 Пользователь №: 1 075 Спасибо сказали: 244 раза |
Название: Тексты
Версия: 2.0 Автор: STRELOK, Setuper(fixed) lua плагин: 1.6 Версия хаба: 2.0.5 Описание: выводит содержимое текстовых файлов по команде. Примечания: Тексты лежат в папке texts Изменения
Прикрепленные файлы
|
|
|
5.1.2010, 14:23
Сообщение
#2
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
А сможешь немного переделать скрипт чтобы не прописывать команду а по любой команде искал файл?
PS: на данном этапе думаю стоит указывать версию плагина и хаба! |
|
|
5.1.2010, 14:57
Сообщение
#3
|
|
Developer Группа: Модераторы Сообщений: 541 Регистрация: 11.11.2008 Пользователь №: 1 075 Спасибо сказали: 244 раза |
А сможешь немного переделать скрипт чтобы не прописывать команду а по любой команде искал файл? Попробую. Сейчас займусь UPD: Никак не могу додуматься, как взять название текстового файла за команду. Допустим есть файл rules.txt, надо взять его название, т.е. при вводе команды !rules, чтобы выводилось содержимое файла rules.txt, также и для других файлов. Если додумаюсь, то сегодня к вечеру может быть выложу, если нет, то жду помощи |
|
|
5.1.2010, 16:59
Сообщение
#4
|
|
Продвинутый участник Группа: Пользователи Сообщений: 153 Регистрация: 21.9.2008 Из: Челябинск Пользователь №: 574 Спасибо сказали: 54 раза |
не проверял :( просто навскидку попробовал сообразить:
Код bot = "БОТ"
folder = Core.GetMainDir().."texts/" function OnChat(UID, sData) local sCmd = sData:match"%b<>%s+%p(%S+)" if sCmd then Core.SendToUser(UID, LoadText(sCmd), bot) return true end end function LoadText(sCmd) local sMessage = "" local sFile = io.open(folder..sCmd..".txt", "r" ) if sFile then sMessage = sFile:read("*all") sFile:close() end return sMessage end |
|
|
5.1.2010, 17:18
Сообщение
#5
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
ну да почти))) но лучше наверно так
Код local sBot = "boT" local sPath = Core.GetMainDir().."texts/" function OnChat(UID, sData) local sCmd = sData:match"%b<>%s+[!+-/*](%S+)" local bFile sMsg = LoadText(sPath..sCmd..".txt") if bFile then Core.SendToUser(UID, sMsg, sBot) return true end end function LoadText(sFileWay) local sMessage = "" local sFile = io.open(sFileWay, "r" ) if sFile then sMessage = sFile:read("*all") sFile:close() return true sMessage else return nil end end думаю позже этот скрипт надо будет разделить и функцию чтения текстового файла убрать в модули |
|
|
5.1.2010, 18:14
Сообщение
#6
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Разумно вообще сделать отдельный модуль с часто используемыми функциями, чтобы по 10 раз не переписывать один и тот же код.
Из данного скрипта в модуль нужно запихнуть функцию LoadText. А также в модуль следует пихнуть такие функции как: Serialize, сохранение таблиц, всякие форматирования шары и тд. |
|
|
6.1.2010, 10:14
Сообщение
#7
|
|
Developer Группа: Модераторы Сообщений: 541 Регистрация: 11.11.2008 Пользователь №: 1 075 Спасибо сказали: 244 раза |
Добавлена Версия 1.2:
|
|
|
6.1.2010, 10:29
Сообщение
#8
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
|
|
|
6.1.2010, 10:48
Сообщение
#9
|
|
Developer Группа: Модераторы Сообщений: 541 Регистрация: 11.11.2008 Пользователь №: 1 075 Спасибо сказали: 244 раза |
написано красиво, но так делает мой вариант. а то что в первом посту на мой взгляд не работает так... Эту функцию убрал в версии 1.2. Т.к.: Код return true sMessage else return nil Хаб ругается Цитата error loading module 'texts' from file '...\Hub\libs\texts.lua':
...\Hub\libs\texts.lua:9: 'end' expected (to close 'function' at line 1) near 'sMessage' |
|
|
6.1.2010, 10:53
Сообщение
#10
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
запятая пропущена
Код return true, sMessage else return nil |
|
|
6.1.2010, 10:59
Сообщение
#11
|
|
Developer Группа: Модераторы Сообщений: 541 Регистрация: 11.11.2008 Пользователь №: 1 075 Спасибо сказали: 244 раза |
Код .../Desktop/Hub/scripts/texts.lua:18: attempt to concatenate global 'sPath' (a nil value)
|
|
|
9.1.2010, 21:35
Сообщение
#12
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Только ссылаться я дума нужно не на сам модуль, я на тему, так как в модули будут добавляться функции и модули будут перезаливаться, и соответственно ссылки на сами модули будут меняться. Поэтому ссылаемся на тему с модулями, а там уже в первом посту не сложно найти тот или иной модуль.
Я поправил ссылки)) |
|
|
9.3.2010, 14:15
Сообщение
#13
|
|
Developer Группа: Модераторы Сообщений: 541 Регистрация: 11.11.2008 Пользователь №: 1 075 Спасибо сказали: 244 раза |
upd: те, кто успел скачать предшествующий архив, просьба, перекачать архив с первого поста. Была исправлена одна мелкая ошибка. |
|
|
26.12.2010, 7:03
Сообщение
#14
|
|
Продвинутый участник Группа: Пользователи Сообщений: 162 Регистрация: 19.8.2009 Из: Москва Пользователь №: 4 201 Спасибо сказали: 24 раза |
В Windows версия 1.3 работает без проблем.
В Убунте этот скрипт запустился, когда закомментировал: Код --require "files" Однако текст из файла не выдает...ошибка:Код texts.lua:39: attempt to index global 'Files' (a nil value) Включил последнюю версию 2.0 - не находит папки с текстовыми файлами:Код [07:13:02] <LuaErrors> Ошибка в скрипте: texts.lua: /etc/rushub/scripts/texts.lua:21: module 'files' not found: no field package.preload['files'] no file '/etc/rushub/libs/files.lua' no file '/etc/rushub/libs/files/init.lua' no file '/etc/rushub/files.lua' no file '/etc/rushub/files/init.lua' no file '/etc/rushub/scripts/files.lua' no file '/etc/rushub/scripts/files/init.lua' no file '/etc/rushub/plugins/files.lua' no file '/etc/rushub/plugins/files/init.lua' no file '/etc/rushub/scripts/libs/files.lua' no file '/etc/rushub/scripts/libs/files/init.lua' no file './files.lua' no file '/usr/local/share/lua/5.1/files.lua' no file '/usr/local/share/lua/5.1/files/init.lua' no file '/usr/local/lib/lua/5.1/files.lua' no file '/usr/local/lib/lua/5.1/files/init.lua' no file '/usr/share/lua/5.1/files.lua' no file '/usr/share/lua/5.1/files/init.lua' no file '/etc/rushub/libs/files.so' no file '/etc/rushub/files.so' no file '/etc/rushub/scripts/files.so' no file '/etc/rushub/plugins/files.so' no file '/etc/rushub/scripts/libs/files.so' no file './files.so' no file '/usr/local/lib/lua/5.1/files.so' no file '/usr/lib/lua/5.1/files.so' no file '/usr/local/lib/lua/5.1/loadall.so' Вариант Warinera с поправкой Код local sPath = Core.sMainDir.."texts/" ошибок не дает, но содержимое текстового файла не выводит...команда проходит в чат.
|
|
|
26.12.2010, 8:11
Сообщение
#15
|
|
Участник Группа: Пользователи Сообщений: 32 Регистрация: 4.11.2008 Пользователь №: 983 Спасибо сказали: 1 раз |
Ошибка в 26 строке.
Код [Sun Dec 26 11:03:05 2010] /etc/rushub/scripts/texts.lua:26: attempt to index a nil value в файле texts.lua 26 строка: Код local sText = Files.LoadText(sPath..sCmd..".txt"):gsub("%[(%S+)%]", { |
|
|
27.12.2010, 15:50
Сообщение
#16
|
|
Продвинутый участник Группа: Пользователи Сообщений: 104 Регистрация: 1.4.2009 Из: Россия Пользователь №: 2 871 Спасибо сказали: 42 раза |
Сменил
Код local sPath = Core.sMainDir.."texts/" на Код local sPath = Core.sScriptsDir.."texts/" тексты подгрузились. |
|
|
27.12.2010, 16:10
Сообщение
#17
|
|
Продвинутый участник Группа: Пользователи Сообщений: 162 Регистрация: 19.8.2009 Из: Москва Пользователь №: 4 201 Спасибо сказали: 24 раза |
Мне Артем прислал версию 2.0 этого скрипта, возможно с редакцией.
Скрипт запускается, тексты выводит, но очень долго! И в Win, и под Линуксом. Надо рыть какой параметр в конфиге определяет этот период. |
|
|
27.12.2010, 22:28
Сообщение
#18
|
|
Продвинутый участник Группа: Пользователи Сообщений: 104 Регистрация: 1.4.2009 Из: Россия Пользователь №: 2 871 Спасибо сказали: 42 раза |
Вполне вероятно из-за размера самих текстовых файлов которые запрашиваешь
|
|
|
11.5.2011, 20:24
Сообщение
#19
|
|
Продвинутый участник Группа: Пользователи Сообщений: 189 Регистрация: 20.4.2009 Пользователь №: 3 121 Спасибо сказали: 12 раз |
Ребят, не могу решить проблему в скрипте !
Пишет в логе ! [Wed May 11 20:13:47 2011] c:/RusHub/scripts/texts.lua:10: unexpected symbol near '=' менял я Код local sPath = Core.sMainDir.."texts/" На Код local sPath = Core.sScriptsDir.."texts/" Не помогло, что может быть ? |
|
|
13.5.2011, 23:01
Сообщение
#20
|
|
Продвинутый участник Группа: Пользователи Сообщений: 189 Регистрация: 20.4.2009 Пользователь №: 3 121 Спасибо сказали: 12 раз |
Ребят серьёзна, прошу помощи, скрипт падает сам по себе, не могу понять из за чего он падает, приходится в ручную запускать его постоянно !
в Логе пишет Ошибку на Строку ! Лог Код /scripts/texts.lua:8: attempt to index a nil value Строка под номером 8 Код local sText = Files.LoadText(sPath..sCmd..".txt"):gsub("%[(%S+)%]", { Список Скриптов в Хабе, так прописаны в скриптах ! Код "BanManager.lua" "ChatFilter.lua" "chathist.lua" "ContextMenu.lua" "CountGraphic.lua" "FirstRusHubBot.lua" "hideme.lua"> "Informer.lua" "messenger.lua" "noCAPS.lua" "Records.lua" "Reports.lua" "scripts.lua" "texts.lua" Прошу вас, выручайте ! |
|
|
|
Сейчас: 13.10.2024, 4:04 |