myDC.ru

Здравствуйте, гость ( Вход | Регистрация )

 

> Тексты, версия 2.0

Теги
Accelerator
сообщение 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
Изменения
    Версия 2.0:
  • Добавил дополнительные возможности, такие как: Получение названия хаба, его портов, Макс. и мин. длинна ника

    Версия 1.4:
  • Вновь исправлена ошибка в регулярном выражении. Команда /me не пропукалась в чат © STRELOK

    Версия 1.3:
  • Исправлен путь до папки texts в связи с выходом новой версии RusHub'а © STRELOK

    Версия 1.2:
  • Исправлена ошибка в регулярном выражении. (В чат не пропускались некоторые смайлы) (с) STRELOK

    Версия 1.1:
  • Функция LoadText перенесена в модули © STRELOK
  • Теперь скрипт ищит текстовый файл по любой введёной команде, если текстовый файл есть, его содержимое отобразится, если его нет, то функция возвращает nil © Serx
Для работы скрипта необходимо скачать модуль files здесь
Прикрепленные файлы
Прикрепленный файл  Texts.rar ( 2.07 килобайт ) Кол-во скачиваний: 78
 
Go to the top of the page
+Quote Post
2 страниц V   1 2 >  
Начать новую тему
Ответов
Wariner
сообщение 5.1.2010, 14:23
Сообщение #2


Самый главный активист :-D
***********

Группа: Модераторы
Сообщений: 2 790
Регистрация: 29.6.2008
Из: г. Тула
Пользователь №: 97
Спасибо сказали: 440 раз




А сможешь немного переделать скрипт чтобы не прописывать команду а по любой команде искал файл?

PS: на данном этапе думаю стоит указывать версию плагина и хаба!
Go to the top of the page
+Quote Post
Accelerator
сообщение 5.1.2010, 14:57
Сообщение #3


Developer
******

Группа: Модераторы
Сообщений: 541
Регистрация: 11.11.2008
Пользователь №: 1 075
Спасибо сказали: 244 раза




Цитата(Wariner @ 5.1.2010, 16:23) *
А сможешь немного переделать скрипт чтобы не прописывать команду а по любой команде искал файл?

Попробую. Сейчас займусь big_smile.gif

UPD: Никак не могу додуматься, как взять название текстового файла за команду. Допустим есть файл rules.txt, надо взять его название, т.е. при вводе команды !rules, чтобы выводилось содержимое файла rules.txt, также и для других файлов. Если додумаюсь, то сегодня к вечеру может быть выложу, если нет, то жду помощи big_smile.gif
Go to the top of the page
+Quote Post
Serx
сообщение 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


Спасибо сказали:
Go to the top of the page
+Quote Post
Wariner
сообщение 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


думаю позже этот скрипт надо будет разделить и функцию чтения текстового файла убрать в модули
Go to the top of the page
+Quote Post
Setuper
сообщение 5.1.2010, 18:14
Сообщение #6


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




Разумно вообще сделать отдельный модуль с часто используемыми функциями, чтобы по 10 раз не переписывать один и тот же код.
Из данного скрипта в модуль нужно запихнуть функцию LoadText. А также в модуль следует пихнуть такие функции как: Serialize, сохранение таблиц, всякие форматирования шары и тд.
Go to the top of the page
+Quote Post
Accelerator
сообщение 6.1.2010, 10:14
Сообщение #7


Developer
******

Группа: Модераторы
Сообщений: 541
Регистрация: 11.11.2008
Пользователь №: 1 075
Спасибо сказали: 244 раза




Добавлена Версия 1.2:
  • Исправлена ошибка в регулярном выражении. (В чат не пропускались некоторые смайлы)
Go to the top of the page
+Quote Post
Wariner
сообщение 6.1.2010, 10:29
Сообщение #8


Самый главный активист :-D
***********

Группа: Модераторы
Сообщений: 2 790
Регистрация: 29.6.2008
Из: г. Тула
Пользователь №: 97
Спасибо сказали: 440 раз




Цитата(STRELOK @ 5.1.2010, 14:18) *
если текстовый файл есть, его содержимое отобразится, если его нет, то функция возвращает nil © Serx

написано красиво, но так делает мой вариант. а то что в первом посту на мой взгляд не работает так...
Go to the top of the page
+Quote Post
Accelerator
сообщение 6.1.2010, 10:48
Сообщение #9


Developer
******

Группа: Модераторы
Сообщений: 541
Регистрация: 11.11.2008
Пользователь №: 1 075
Спасибо сказали: 244 раза




Цитата(Wariner @ 6.1.2010, 12:29) *
написано красиво, но так делает мой вариант. а то что в первом посту на мой взгляд не работает так...

Эту функцию убрал в версии 1.2. Т.к.:
Код
        return true sMessage
    else
        return nil

Хаб ругается big_smile.gif
Цитата
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'
Go to the top of the page
+Quote Post
Wariner
сообщение 6.1.2010, 10:53
Сообщение #10


Самый главный активист :-D
***********

Группа: Модераторы
Сообщений: 2 790
Регистрация: 29.6.2008
Из: г. Тула
Пользователь №: 97
Спасибо сказали: 440 раз




запятая пропущена
Код
        return true, sMessage
    else
        return nil


Go to the top of the page
+Quote Post
Accelerator
сообщение 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)
big_smile.gif
Go to the top of the page
+Quote Post
Setuper
сообщение 9.1.2010, 21:35
Сообщение #12


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




Только ссылаться я дума нужно не на сам модуль, я на тему, так как в модули будут добавляться функции и модули будут перезаливаться, и соответственно ссылки на сами модули будут меняться. Поэтому ссылаемся на тему с модулями, а там уже в первом посту не сложно найти тот или иной модуль.

Я поправил ссылки))
Go to the top of the page
+Quote Post
Accelerator
сообщение 9.3.2010, 14:15
Сообщение #13


Developer
******

Группа: Модераторы
Сообщений: 541
Регистрация: 11.11.2008
Пользователь №: 1 075
Спасибо сказали: 244 раза




    Версия 2.0:
  • Добавил дополнительные возможности, такие как: Получение названия хаба, его портов, Макс. и мин. длина ника


upd: те, кто успел скачать предшествующий архив, просьба, перекачать архив с первого поста. Была исправлена одна мелкая ошибка.
Go to the top of the page
+Quote Post
TiGRpp
сообщение 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/"
ошибок не дает, но содержимое текстового файла не выводит...команда проходит в чат.
Go to the top of the page
+Quote Post
Herurg
сообщение 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+)%]", {




Спасибо сказали:
Go to the top of the page
+Quote Post
Sekretchik
сообщение 27.12.2010, 15:50
Сообщение #16


Продвинутый участник
****

Группа: Пользователи
Сообщений: 104
Регистрация: 1.4.2009
Из: Россия
Пользователь №: 2 871
Спасибо сказали: 42 раза




Сменил
Код
local sPath = Core.sMainDir.."texts/"

на
Код
local sPath = Core.sScriptsDir.."texts/"

тексты подгрузились.


Спасибо сказали:
Go to the top of the page
+Quote Post
TiGRpp
сообщение 27.12.2010, 16:10
Сообщение #17


Продвинутый участник
****

Группа: Пользователи
Сообщений: 162
Регистрация: 19.8.2009
Из: Москва
Пользователь №: 4 201
Спасибо сказали: 24 раза




Мне Артем прислал версию 2.0 этого скрипта, возможно с редакцией.
Скрипт запускается, тексты выводит, но очень долго! И в Win, и под Линуксом.
Надо рыть какой параметр в конфиге определяет этот период.
Go to the top of the page
+Quote Post
Sekretchik
сообщение 27.12.2010, 22:28
Сообщение #18


Продвинутый участник
****

Группа: Пользователи
Сообщений: 104
Регистрация: 1.4.2009
Из: Россия
Пользователь №: 2 871
Спасибо сказали: 42 раза




Вполне вероятно из-за размера самих текстовых файлов которые запрашиваешь
Go to the top of the page
+Quote Post
CrazyKiller
сообщение 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/"


Не помогло, что может быть ?
Go to the top of the page
+Quote Post
CrazyKiller
сообщение 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"



Прошу вас, выручайте ! still_dreaming.gif
Go to the top of the page
+Quote Post

2 страниц V   1 2 >
Ответить в данную темуНачать новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



RSS Сейчас: 27.11.2024, 1:45