myDC.ru

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

 

> PtokaX, Описание. Публикация новых версий

Рейтинг 5 V
Alexey
сообщение 11.4.2017, 23:07
Сообщение #41


7 квадратиков
*******

Группа: Модераторы
Сообщений: 793
Регистрация: 21.1.2009
Пользователь №: 1 895
Спасибо сказали: 301 раз




Релиз PtokaX 0.5.2.2
build 556

Сборки с Lua 5.1.5:
Win32 GUI with Lua 5.1.5 and SQLite
Win64 GUI with Lua 5.1.5 and SQLite
Win32 service/console with Lua 5.1.5 and SQLite
Win64 service/console with Lua 5.1.5 and SQLite

Сборки с Lua 5.3.4:
Win32 GUI with Lua 5.3.4 and SQLite
Win64 GUI with Lua 5.3.4 and SQLite
Win32 service/console with Lua 5.3.4 and SQLite
Win64 service/console with Lua 5.3.4 and SQLite

Исходный код: http://www.ptokax.org/files/0.5.2.2-nix-src.tgz
Прикрепленный файл  0.5.2.2_nix_src.tar.7z ( 3.46 мегабайт ) Кол-во скачиваний: 3

Прикрепленный файл  0.5.2.2svn20170411_r155.7z ( 459.95 килобайт ) Кол-во скачиваний: 4

Список изменений (на английском)
Added: Reconnect to database on connection failure or connection lost.
Fixed: Compile for Windows 10 IoT.
Fixed: Typo in server manager and resource leak in sqlite on exit (thx Pavel Pimenov for report).
Fixed: Incorrect long length message when incomplete search command was received (thx Alexey for report).
Fixed: Search request was sent to users without share (thx Pavel Pimenov for report).
Fixed: Missing $ValidateDenide when user use nick that is in reserved nicks (thx Alexey for report).
Fixed: Extra pipe in !checknickban result (thx Alexey for report).
Fixed: IP and Port check in DC commands. (thx Mank and Rolex for report).
Fixed: Missing IP check for validity in some hub commands.
Fixed: Empty password received from user was not checked properly and accepted as new password for reg.
Fixed: Bandwidth waste, when IPv6 user send search request with IPv4 address.
Fixed: Possible crash on hublist registration (thx Pavel Pimenov for report).
Fixed: Bind to single IP caused bind to all addresses when IPv6 address was empty.
Fixed: Typo in scripting interface. MaxSlotsLimt -> MaxSlotsLimit (thx C??oЯy†? for report).
Changed: Log script errors is enabled by default for PtokaX versions without GUI.


Спасибо сказали:
Go to the top of the page
+Quote Post
5 страниц V  < 1 2 3 4 5 >  
Начать новую тему
Ответов
Alexey
сообщение 15.9.2011, 15:31
Сообщение #42


7 квадратиков
*******

Группа: Модераторы
Сообщений: 793
Регистрация: 21.1.2009
Пользователь №: 1 895
Спасибо сказали: 301 раз




Для работы с сокетами используются несколько модулей на Lua, которые поставляются вместе с библиотекой и в архиве находятся в каталоге scripts. Содержимое этого каталога нужно поместить в любое из перечисленных мест: корневой каталог птоки, каталог libs или каталог scripts/libs. После чего создать в этом каталоге подкаталог socket, в который переместить файлы: ftp.lua, http.lua, smtp.lua, tp.lua, url.lua.

Примечание: Если стояла старая версия библиотеки сокетов, то предварительно надо найти и удалить старые версии этих файлов.

Для сомневающихся в работоспособности библиотеки сокетов: У меня всё работает, что я делаю не так?
Прикрепленный файл  20110917_PX0420_WebAdmin.png ( 28.46 килобайт ) Кол-во скачиваний: 1102


Спасибо сказали:
Go to the top of the page
+Quote Post
IRainman
сообщение 22.9.2011, 18:37
Сообщение #43


Начинающий
*

Группа: Пользователи
Сообщений: 16
Регистрация: 20.3.2009
Пользователь №: 2 666
Спасибо сказали: 2 раза




Доброго времени суток подскажите пожалуйста как установить сабж как службу, инструкция
http://wiki.ptokax.ch/doku.php/settingup/s...e_install_guide не помогает, делал всё как там описано
Код
PtokaX-x64_svc -c "C:\Ptokax\cfg" -i PtokaX

PtokaX-x64_svc.exe разумеется существует, папка с конфигам тоже, рядом лежит gui версия она стартует и работает прекрасно, апри запуске службы получаю сообщение от системы "Данная служба была запущена а потом автоматически остановлена, ..."

ps: во время запуска службы gui версия разумеется выгружена.
Go to the top of the page
+Quote Post
Alexey
сообщение 23.9.2011, 0:10
Сообщение #44


7 квадратиков
*******

Группа: Модераторы
Сообщений: 793
Регистрация: 21.1.2009
Пользователь №: 1 895
Спасибо сказали: 301 раз




Если заглянуть в файл ReadMe-Service.txt, идущий в комплекте с консольной версией птоки, то можно увидеть следующие ключи и их описание:
Цитата
Command line commands available:
-c <configdir> - absolute path to PtokaX config directory (where will PtokaX have cfg, logs, scripts and texts directories).
-i <servicename> - install PtokaX as windows service with given name.
-u <servicename> - uninstall PtokaX service with given name.
-h - show help.
-v - show PtokaX version with build date and time.


Из описания ключа -c следует, что в той вики написана недостоверная информация и команда должна иметь вид:
Код
PtokaX-x64_svc -c "C:\Ptokax" -i PtokaX
Go to the top of the page
+Quote Post
Ksan
сообщение 23.9.2011, 5:31
Сообщение #45


Белый Волк
*********

Группа: Пользователи
Сообщений: 1 723
Регистрация: 11.9.2008
Из: г.Томск
Пользователь №: 516
Спасибо сказали: 657 раз




Alexey, может, исправишь в той Вики?
Go to the top of the page
+Quote Post
IRainman
сообщение 23.9.2011, 13:39
Сообщение #46


Начинающий
*

Группа: Пользователи
Сообщений: 16
Регистрация: 20.3.2009
Пользователь №: 2 666
Спасибо сказали: 2 раза




Alexey
благодарю, помогло, а я балбес - даже в доки не глянул big_smile.gif


Ksan
мая уже исправил.
Go to the top of the page
+Quote Post
x-ray
сообщение 24.10.2011, 17:41
Сообщение #47


Абсолютный новичок


Группа: Пользователи
Сообщений: 5
Регистрация: 7.10.2008
Пользователь №: 749
Спасибо сказали: 0 раз




Цитата(Alexey @ 13.9.2011, 8:21) *
Новая версия PtokaX: 0.4.2.0

Внимание! В версиях под Windows не работает функция Lua API TmrMan.RemoveTimer(nTimerId)

Исправили в 0.4.2.0 build 301
Цитата
Fixed: TmrMan.RemoveTimer Lua api call in windoze version (thx Cęńoßy†ę for report)
Go to the top of the page
+Quote Post
Who.Is
сообщение 19.12.2011, 14:39
Сообщение #48


Абсолютный новичок


Группа: Пользователи
Сообщений: 9
Регистрация: 27.11.2010
Из: Volzhsky
Пользователь №: 8 157
Спасибо сказали: 1 раз




Ну вроде как вышла новая версия 0.4.2.0 build 316 with final Lua 5.2.0

Переставил скрипты с 0.4.2.0 build 241 не хотят работать Хуббабот и Скрипт действий

HUBBABOT/timer.lu:144: attempt to call global 'TableMaxSize' (a nil value)

adic.lua:293: invalid escape sequence near '\$'

Антиреклама и Автотопик работают))
Go to the top of the page
+Quote Post
Tsd
сообщение 23.12.2011, 21:01
Сообщение #49


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

Группа: Пользователи
Сообщений: 176
Регистрация: 11.7.2008
Пользователь №: 171
Спасибо сказали: 182 раза




Хаб на PtokaX 0.4.2.0 build 301 (поставлены библиотеки как сказано тут ) всё работает. Решил потестить PtokaX 0.4.2.0 build 316-lua5.2.0. Используются те же бибилиотеки.
Но при включении скриптов, использующих сокет выкидывает ошибки:
1. (во всплывающем окошке) Точка входа в процедуру @luaL_addlstring не найдена в библиотеке DLL PXLUA.DLL
2. (в сообщении скриптов PtokaX) Синтаксис error loading module 'pxsocket' from file 'E:\WithoutInstaller\Test PtokaX 0.4.2.0-316\libs\pxsocket.dll':
Не найдена указанная процедура.

В чём может быть причина?
Go to the top of the page
+Quote Post
mariner
сообщение 23.12.2011, 21:54
Сообщение #50


Местная ТехПоддержка
**********

Группа: Администраторы
Сообщений: 1 875
Регистрация: 18.7.2008
Из: Моск. Обл, г. королев, район Болшево
Пользователь №: 221
Спасибо сказали: 220 раз




А в том, что другой язык уже и плагины (либы) несовместимы.
Go to the top of the page
+Quote Post
Tsd
сообщение 23.12.2011, 22:44
Сообщение #51


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

Группа: Пользователи
Сообщений: 176
Регистрация: 11.7.2008
Пользователь №: 171
Спасибо сказали: 182 раза




Цитата(mariner @ 23.12.2011, 20:54) *
А в том, что другой язык уже и плагины (либы) несовместимы.

Значит решения не существует?
Go to the top of the page
+Quote Post
mariner
сообщение 24.12.2011, 10:03
Сообщение #52


Местная ТехПоддержка
**********

Группа: Администраторы
Сообщений: 1 875
Регистрация: 18.7.2008
Из: Моск. Обл, г. королев, район Болшево
Пользователь №: 221
Спасибо сказали: 220 раз




пока не выйдут свежие версии либ
Go to the top of the page
+Quote Post
Alexey
сообщение 28.12.2011, 7:39
Сообщение #53


7 квадратиков
*******

Группа: Модераторы
Сообщений: 793
Регистрация: 21.1.2009
Пользователь №: 1 895
Спасибо сказали: 301 раз




Последняя, на данный момент, тестовая версия PtokaX со старой версией Lua 5.1.4: 0.4.2.0b314.7z

Список изменений (на английском)
Added: Core.SetUserInfo call to Lua api.
Added: IDs 28 - 42 for Core.GetUserValue Lua api call (see Lua API docs).
Added: IPv6 support to sockets.
Added: IPv6 support to bans and range bans.
Added: IPv6 country database support.
Added: IPv6 client to client connections support.
Added: IPv6 search support.
Added: IP64 and IPv4 protocol extensions support.
Added: Check for IPv4 connection for user connected to hub by IPv6.
Added: IPv4 client connection support for users connected to hub by IPv6 when IPv4 connection check success.
Added: IPv4 search support for users connected to hub by IPv6 when IPv4 connection check success.
Added: Setting for manual IPv4 and IPv6 addresses.
Changed: Country database for IPv4 from ip-to-country to IpToCountry.
Fixed: TmrMan.RemoveTimer Lua api call in windoze version (thx CęńoЯy†ę for report).
Fixed: MOTD was not updated after change in gui (thx mappy for report).
Fixed: Few settings was not updated after change in gui.


Работает с библиотеками из этого поста.

Из списка изменений особо стоит отметить исправление ошибки в функции Lua API TmrMan.RemoveTimer(nTimerId) и появление возможности полноценно менять MyINFO пользователей.


Спасибо сказали:
Go to the top of the page
+Quote Post
ramzes
сообщение 16.3.2012, 10:28
Сообщение #54


Начинающий
*

Группа: Пользователи
Сообщений: 12
Регистрация: 7.7.2010
Из: Камышин
Пользователь №: 7 220
Спасибо сказали: 0 раз




Добрый день. Установил 0.4.2.0 сборка 314 Ptokax с оф.сайта, но перестало работать несколько скриптов. Кто может посмотреть, в чём проблема с данным скриптом "Кулинар", например:
CODE
--[[
Название скрипта: Kulinar
Версия скрипта: 1.0
Версия API: API2
Автор: Tsd © 09.2010
Описание: Скрипт выдаёт через меню случайный кулинарный рецепт с сайта http://kniga-receptov.net/
Для работы скрипта требуется библиотека LuaSocket, взять можно тут: http://mydc.ru/topic43.html
]]

------ Настройки.
local sBot = "Кулинарные рецепты" -- Имя бота. Оставьте пустые кавычки если основной бот хаба.
local bRegBot = true -- Регистрировать бота? true - да, false - нет.
local bKeyBot = true -- Бот будет с ключиком? true - да, false - нет.
local sBotDesc = "Кулинарный маньяк" -- Описание бота. Оставьте пустые кавычки если не надо описание.
local bMC = false -- Отсылать рецепт в майнчат/приват. true - майнчат, false - приват.
local sMenu = "Кулинарные рецепты" -- Путь к меню.
local sCom = "#eath" -- Команда.
------ Конец настроек.

function OnStartup()
if sBot == "" then sBot = SetMan.GetString(21)
else
if bRegBot then
Core.RegBot(sBot,sBotDesc,"",bKeyBot)
end
end
require("socket.http")
assert(socket,"Ошибка загрузки библиотеки socket.http. Проверьте наличие файлов необходимых библиотек.")
end

function Main()
assert(nil, "Ошибка. Эта версия скрипта предназначена для API2 !")
end

function UserConnected(user)
Core.SendToNick(user.sNick,"$UserCommand 1 3 "..sMenu.."$<%[mynick]> "..sCom.."|")
end
OpConnected,RegConnected = UserConnected,UserConnected

function ChatArrival(user,sData)
if sData:find("%b<> "..sCom.."|") then
local fd,sz,hd = socket.http.request "http://kniga-receptov.net/"
if fd and sz then
local sMsg = fd:match("#b09d7e;'>(.-)</font>(.*)")
sMsg = string.gsub (sMsg, "</b></div><br><font style='color: #f0ddde;'><div style='padding%-left: 15px; padding%-right: 15px;'>","\n")
if bMC then
Core.SendToUser(user,"<"..sBot..">\t\t"..sMsg.."\n\t\t\t\tПриятного аппетита!\n")
else
Core.SendPmToNick(user.sNick,sBot,"\t\t"..sMsg.."\n\t\t\t\tПриятного аппетита!\n")
end
else
Core.SendToUser(user, "<"..sBot.."> Все захотели кушать, видимо сервер перегружен. Попробуйте позже...")
end
collectgarbage("collect")
return true
end
end

Ошибка на хабе такая: G:\ptokax\scripts\Kulinar_1.0.lua:42: attempt to index global 'socket' (a nil value)
42 строка в скрипте : local fd,sz,hd = socket.http.request
Библиотеки установлены со ссылок данного форума под 64 бита : http://mydc.ru/topic19.html?view=findpost&p=40183
вот какие файлы и папки в каталоге моего Птоки http://s2.ipicture.ru/Gallery/Viewfull/9269981.html
Работало и работало со старой, надо было мне удалить всё =(
Go to the top of the page
+Quote Post
ramzes
сообщение 19.3.2012, 12:03
Сообщение #55


Начинающий
*

Группа: Пользователи
Сообщений: 12
Регистрация: 7.7.2010
Из: Камышин
Пользователь №: 7 220
Спасибо сказали: 0 раз




Так же проявилась проблема с ChatHistory скриптом. Ошибка в 159 строке, сервер выдаёт ошибку ChatHist.lua:159: attempt to index a nil value
Вот сам скрипт:

CODE
--[[

Chat History On Entry 1.06 LUA 5.11 [Strict][API 2]

By Mutor 01/15/07

Logs Main Chat and provides chat history
in private message at user connect.

-Provides manual history command
-Provides delete message command
-Provides delete all messages command
-Provides history by days command
-Provides chat history help command
-Provides context menu [right click]
-Optional max history entries
-Optional number of messages sent at connect
-Optional exclude pm at login per user

+Changes from 1.05
+Added Anti-advertisement options. Requested by sphinx


<BotName> Chat History Help

Command Description
????????????????????????????????????????????
+delchat Delete Single Chat Entry
+history Get Chat History
+togglehistory Toggle Chat History
+dayhistory Chat History By Days
+chathelp Chat History Help
+delete Delete Chat History

????????????????????????????????????????????


]]

Cfg = {
-- Botname pulled from the hub or use "CustomName"
Bot = "[Летописец]", --SetMan.GetString(21),
-- Bot description
Desc = "I send a message to new users.",
-- Bot email address
Mail = "nomail@fuck.com",
-- Admin's profile
AdminProf = 0,
-- Admins nick for status / error messages
OpNick = "Администратор",
-- File to save chat data to
File = "HubChat.dat",
-- File to save chat data to
UserFile = "ChatUsers.dat",
-- Maximum number of lines to display on user connect
History = 15,
-- Maximum number of lines to cache
MaxChat = 50,
-- Context Menu Title
Menu = "Ваше меню",
-- Context Submenu Title
SubMenu = "История чата",
-- Set your profiles permissions here.
-- profile_idx, history enabled [0=no 1=yes], "Profile Name"
Profiles = {
[-1] = {1,"Unregistered User"},
[0] = {1,"Master"},
[1] = {1,"Operator"},
[2] = {1,"Vip"},
[3] = {1,"Registered User"},
},
-- Block Advert Strings? 0 = disabled, 1 = From History, 2 = From History/Main Chat
AaBlock = 0,
-- Message to send to user when advert trigger was found. "" = disabled [(user) will be replaced with user nick]
AaReply = "(user), ваш чат заблокирован, не рекламьте здесь, пожалуйста.",
-- External File Advert Strings "" = disabled
AaFile = "AntiAd.txt",
-- Default Anti-Advertisement triggers, if not using external file
AaTrigs = {
"dchub:","http:","ftp:","hopto.org","myftp.biz","myftp.org","myvnc.com","no-ip.biz","no-ip.info","no-ip.org",
"redirectme.net","servebeer.com","serveblog.net","servecounterstrike.com","serveftp.com","servegame.com",
"servehalflife.com","servehttp.com","servemp3.com","servepics.com","servequake.com","sytes.net","mine.nu",
"zapto.org","blogsyte.com","cable-modem.org","ciscofreak.com","damnserver.com","ditchyourip.com","bounceme.net",
"dnsiskinky.com","geekgalaxy.com","homesecuritymac.com","homesecuritypc.com","myactivedirectory.com",
"mymediapc.net","mypsx.net","net-freaks.com","no-ip.ca","no-ip.co.uk","no-ip.com","no-ip.net","point2this.com",
"pointto.us","quicksytes.com","securityexploits.com","securitytactics.com","serveexchange.com","servehumour.com",
"servep2p.com","servesarcasm.com","stufftoread.com","unusualperson.com","workisboring.com","dns2go","myftpsite",
},
}

OnStartup = function()
local LuaVer = _VERSION:sub(1,7)
if LuaVer ~= "Lua 5.1" then
return OnError("This script is incompatible with ".._VERSION),true
end
Cfg.Script = "История чата для хаба PtokaX ".._VERSION.." "
Cfg.Pfx = SetMan.GetString(29):sub(1,1)
if Cfg.Bot ~= SetMan.GetString(21) or Cfg.Bot ~= SetMan.GetString(21) and not SetMan.GetHubBot().bEnabled then
Core.RegBot(Cfg.Bot,Cfg.Desc.." PtokaX ".._VERSION, Cfg.Mail,true)
end
Cfg.Path = string.gsub(Core.GetPtokaXPath().."scripts/","/","\\")
Cfg.File = Cfg.Path..Cfg.File
Cfg.UserFile = Cfg.Path..Cfg.UserFile
if loadfile(Cfg.File) then
dofile(Cfg.File)
local f,e = io.open(Cfg.File)
local size = f:seek("end")
size = FormatSize(size)
f:close()
OnError(Cfg.File.." was found and executed. File size: "..
size.." "..#Cfg.Chat.." entries.")
else
Cfg.Chat = {}
local t = {
tonumber(os.date("%Y") + os.date("%j")),
os.date("%m/%d/%y"),
os.date("%I:%M")..string.sub(string.lower(os.date("%p")),1,1),
"<"..Cfg.Bot.."> Файл истории чата был создан "..
os.date("on: %B %d, %Y at: %I:%M")..string.sub(string.lower(os.date("%p")),1,1)
}
table.insert(Cfg.Chat,t)
SaveToFile(Cfg.File,Cfg.Chat,"Cfg.Chat")
OnError(Cfg.File.." был найден. Этот файл был создан для вас big_smile.gif.")
end
if loadfile(Cfg.UserFile) then
dofile(Cfg.UserFile)
local f,e = io.open(Cfg.UserFile)
local size = f:seek("end")
size = FormatSize(size)
f:close()
OnError(Cfg.UserFile.." был найден и запущен. Размер файла: "..
size.." "..#Cfg.Exclude.." entries.")
else
Cfg.Exclude = {}
SaveToFile(Cfg.UserFile,Cfg.Exclude,"Cfg.Exclude")
OnError(Cfg.UserFile.." не был найден. Этот файл был создан для вас big_smile.gif.")
end
if Cfg.AaFile ~= "" and loadfile(Cfg.AaFile) then
dofile(Cfg.File)
end
OnError(Cfg.Script.." был запущен. Использованая память: "..CleanMem())
end

OnExit = function()
OnError(Cfg.Script.." остановлен, освобождено "..CleanMem().." памяти.")
end

OnError = function(msg)
if Core.GetUser(Cfg.OpNick) then
Core.SendToNick(Cfg.OpNick,"<"..Cfg.Bot.."> "..msg)
end
end

ChatArrival = function(user, data)
data = data:sub(1,-2)
local _,_,to = data:find("^$To: (%S+) From:")
local _,_,prefix = data:find("%b<> (["..SetMan.GetString(29).."])")
if not prefix and not to then
local op = ProfMan.GetProfile(user.iProfile).tProfilePermissions.bIsOP
if not op and ChkAd(data) and Cfg.AaBlock > 0 then
if Cfg.AaReply ~= "" then
Core.SendToUser(user,"<"..Cfg.Bot..">"..Cfg.AaReply:gsub("%(user%)",user.sNick).."|")
end
if Cfg.AaBlock == 2 then
return true
else
return false
end
end
local t = {
tonumber(os.date("%Y") + os.date("%j")),
os.date("%m/%d/%y"),
os.date("%I:%M")..string.sub(string.lower(os.date("%p")),1,1),
data,
}
table.insert(Cfg.Chat,t)
for x = 1, #Cfg.Chat - Cfg.MaxChat do
table.remove(Cfg.Chat,1)
end
SaveToFile(Cfg.File,Cfg.Chat,"Cfg.Chat")
else
local _,_,cmd = data:find("%b<> %p(%w+)")
if cmd and Cmds[cmd] then
if Cfg.Profiles[user.iProfile] and Cfg.Profiles[user.iProfile][1] == 1 then
if to and to == Cfg.Bot then
return Core.SendPmToUser(user,Cfg.Bot,Cmds[cmd](user,data).."|"),true
else
return Core.SendToUser(user,"<"..Cfg.Bot.."> "..Cmds[cmd](user,data).."|"),true
end
else
if to and to == Cfg.Bot then
Core.SendPmToUser(user,Cfg.Bot,user.sNick..
" у вас нет прав использования этой команды.|")
else
Core.SendToUser(user,"<"..Cfg.Bot.."> "..user.sNick..
" у вас нет прав использования этой команды.|")
end
return true
end
end
end
end
ToArrival = ChatArrival

UserConnected = function(user)
if Cfg.Profiles[user.iProfile] and Cfg.Profiles[user.iProfile][1] == 1 then
local Exclude = CheckEx(user)
if not Exclude then
local add = "\n\n\tВведите "..Cfg.Pfx.."togglehistory чтобы выключить прием этого сообщения.\n\n"
Core.SendPmToUser(user,Cfg.Bot,add..GetChat(Cfg.History).."|")
end
end
if SendCmds(user) then
local Profile = ProfName(user)
Core.SendToUser(user,"<"..Cfg.Bot.."> "..Profile.."История чата 1.06 "..
"включена. Управление из меню по правому клику.|")
end
end
RegConnected,OpConnected = UserConnected,UserConnected

CleanMem = function()
collectgarbage("collect")
Cfg.Mem = string.format("%-.2f Kb.",collectgarbage("count"))
return Cfg.Mem
end

CheckEx = function(user)
for a,b in ipairs(Cfg.Exclude) do
if b:lower() == user.sNick:lower() then
return a
end
end
end

GetChat = function(lines)
local x = lines
if lines > #Cfg.Chat then
x,lines = #Cfg.Chat,#Cfg.Chat
end
x = #Cfg.Chat - x
local str = "\r\n\r\n <"..string.rep("?",70).."[ Последние ( "..(lines).." ) сообщений чата ]??????????>\r\n"
for i,v in ipairs(Cfg.Chat) do
if i > x then
str = str.."\r\n "..string.format("%"..string.len(#Cfg.Chat)..
"s",i).."] "..v[2].." "..v[3].." "..v[4]
end
end
return str.."\r\n\r\n <"..string.rep("?",70).."[ Конец истории чата ]"..
string.rep("?",4 + string.len(lines)).."??????????>\r\n\r\n"
end

DelChat = function(lines)
local count = lines
if lines > #Cfg.Chat then
lines = #Cfg.Chat
end
if lines == #Cfg.Chat then
count = "all "..lines
end
for x = 1, lines do
table.remove(Cfg.Chat,1)
end
if #Cfg.Chat == 0 then
local t = {
tonumber(os.date("%Y") + os.date("%j")),
os.date("%m/%d/%y"),
os.date("%I:%M")..string.sub(string.lower(os.date("%p")),1,1),
"<"..Cfg.Bot.."> История чата очищена "..
os.date("on: %B %d %Y at: %I:%M")..string.sub(string.lower(os.date("%p")),1,1)
}
table.insert(Cfg.Chat,t)
end
SaveToFile(Cfg.File,Cfg.Chat,"Cfg.Chat")
return count.." messages deleted."
end

function Serialize(tTable, sTableName, sTab)
assert(tTable, "tTable equals nil")
assert(sTableName, "sTableName equals nil")
assert(type(tTable) == "table", "tTable must be a table!")
assert(type(sTableName) == "string", "sTableName must be a string!")
sTab = sTab or ""
sTmp = ""
sTmp = sTmp..sTab..sTableName.." = {\n"
for key, value in ipairs(tTable) do
local sKey = (type(key) == "string") and string.format("[%q]",key) or string.format("[%d]",key)
if(type(value) == "table") then
sTmp = sTmp..Serialize(value, sKey, sTab.."\t")
else
local sValue = (type(value) == "string") and string.format("%q",value) or tostring(value)
sTmp = sTmp..sTab.."\t"..sKey.." = "..sValue
end
sTmp = sTmp..",\n"
end
sTmp = sTmp..sTab.."}"
return sTmp
end

function SaveToFile(File , Table , Tablename)
local handle = io.open(File,"w")
handle:write(Serialize(Table, Tablename))
handle:flush()
handle:close()
CleanMem()
end

SendCmds = function(user)
if Cfg.Profiles[user.iProfile] and Cfg.Profiles[user.iProfile][1] == 1 then
for i,v in pairs(Cmds) do
local m,s,pfx = Cfg.Menu,Cfg.SubMenu,Cfg.Pfx
local c,n,pm,p = "$UserCommand 1","$<%[mynick]>","$$To: "..
Cfg.Bot.." From: %[mynick] ","||"
local d,a1,a2 = Cmds[i]()
Core.SendToUser(user,c.." 1 "..m.."\\"..s.."\\"..d..n.." "..pfx..i..a1..p)
Core.SendToUser(user,c.." 2 "..m.."\\"..s.."\\"..d..pm..n.." "..pfx..i..a2..p)
end
CleanMem()
return true
end
end

FormatSize = function(int)
local i,u,x = tonumber(int) or 0,{"","K","M","G","T","P"},1
while i > 1024 do i,x = i/1024,x+1 end return string.format("%.2f %sB.",i,u[x])
end

ProfName = function(user)
local p,prof = user.iProfile
if p and p ~= -1 then
prof = ProfMan.GetProfile(p).sProfileName
else
prof = "Unregistered User"
end
return prof
end

ChkAd = function(data)
for i,v in ipairs(Cfg.AaTrigs) do
if data:lower():find(v:lower(),1,1) or data:lower():find("%d+%.%d+%.%d+%.%d+") then
return i
end
end
end

Cmds = {
togglehistory = function(user,data)
if user then
local status,result = "убраны из","Теперь вы будете "..
"получать истрию чата при заходе на хаб."
local Exclude = CheckEx(user)
if not Exclude then
table.insert(Cfg.Exclude,user.sNick)
status,result = "добавлены в","Больше вы "..
"не будете получать историю чата при входе."
else
table.remove(Cfg.Exclude,Exclude)
end
SaveToFile(Cfg.UserFile,Cfg.Exclude,"Cfg.Exclude")
return "Вы были "..status.." таблицы исключений. "..result
else
return "Активация сохранения истории чата","",""
end
end,
history = function(user,data)
local ChatLines = Cfg.MaxChat
if user then
local _,_,lines = data:find("%b<> %p%w+ (%d+)")
if not lines then
lines = ChatLines
else
lines = tonumber(lines)
end
return GetChat(lines)
else
return "Получить историю чата",
" %[line:# Число линий для вывода (макс) "..ChatLines.."]",
" %[line:# Число линий для вывода (макс) "..ChatLines.."]"
end
end,
dayhistory = function(user,data)
local today = tonumber(os.date("%Y") + os.date("%j"))
if user then
local _,_,days = data:find("%b<> %p%w+ (%d+)")
if days then
local past = today - tonumber(days)
OnError(past)
local str = "\r\n\r\n <"..string.rep("?",70)..
"[ Last ( "..days.." ) days of chat ]??????????>\r\n"
for i,v in ipairs(Cfg.Chat)do
if v[1] > past then
str = str.."\r\n ["..i.."] "..v[2].." "..v[3].." "..v[4]
end
end
str = str.."\r\n\r\n <"..string.rep("?",70).."[ Конец истории чата ]"..
string.rep("?",string.len(days)).."??????????>\r\n\r\n"
return str
else
return "You must specify how many days"
end
else
return "История чата по дням",
" %[line:За сколько дней показать историю?]",
" %[line:За сколько дней показать историю?]"
end
end,
delete = function(user,data)
local ChatLines = #Cfg.Chat
if user then
if user.iProfile == Cfg.AdminProf then
local _,_,lines = data:find("%b<> %p%w+ (%d+)")
if not lines then
lines = ChatLines
else
lines = tonumber(lines)
end
return DelChat(lines)
else
return "Sorry "..user.sNick..", this command is for "..
ProfMan.GetProfile(Cfg.AdminProf).sProfileName.."'s only."
end
else
return "Стереть историю чата",
" %[line:# линий **ноль = все ("..ChatLines..") сообщения ]",
" %[line:# линий **ноль = все ("..ChatLines..") сообщения ]"
end
end,
delchat = function(user,data)
local ChatLines = #Cfg.Chat
if user then
if user.iProfile == Cfg.AdminProf then
local _,_,line = data:find("%b<> %p%w+ (%d+)")
if line then
line = tonumber(line)
if Cfg.Chat[line] then
local str = Cfg.Chat[line][4]
table.remove(Cfg.Chat,line)
SaveToFile(Cfg.File,Cfg.Chat,"Cfg.Chat")
return "Линии истории чата "..line.." были удалены.\r\n"..
"Удаленная история: "..string.format("%q",str)
else
return line.." не верный ввод."..GetChat(Cfg.History)
end
else
return "Вы должны указать что нужно удалить."
end
else
return "Прости "..user.sNick..", эта команда только для "..
ProfMan.GetProfile(Cfg.AdminProf).sProfileName.."пользователей."
end
else
return "Удалить строку истории",
" %[line:Какую трем?]",
" %[line:Какую трем?]"
end
end,
chathelp = function(user,data,to)
if user then
local reply = "Chat History Help\n\n\tCommand\t\tDescription\r\n"..
"\t"..string.rep("?",40).."\r\n"
for i,v in pairs(Cmds) do
local desc,args = Cmds[i]()
reply = reply.."\t"..Cfg.Pfx..string.format("%-15s",i).."\t"..desc.."\r\n"
end
return reply.."\n\t"..string.rep("?",40).."\r\n\r\n"
else
return "Помощь по истории чата","",""
end
end,
}


При этом историю скрипт записывает, но постоянно выпадает эта ошибка, как её отключить и влияет ли она на что-либо ещё?
В lua мало понимаю, прошу помощи.
Go to the top of the page
+Quote Post
Артём
сообщение 19.3.2012, 14:38
Сообщение #56


Наруто на аваторке
***********

Группа: Пользователи
Сообщений: 2 606
Регистрация: 11.10.2008
Из: Харькова
Пользователь №: 771
Спасибо сказали: 774 раза




ramzes, попробуй новее версию этого скрипта


Спасибо сказали:
Go to the top of the page
+Quote Post
Alexey
сообщение 20.3.2012, 13:02
Сообщение #57


7 квадратиков
*******

Группа: Модераторы
Сообщений: 793
Регистрация: 21.1.2009
Пользователь №: 1 895
Спасибо сказали: 301 раз




Цитата(ramzes @ 16.3.2012, 10:28) *
Ошибка на хабе такая: G:\ptokax\scripts\Kulinar_1.0.lua:42: attempt to index global 'socket' (a nil value)
42 строка в скрипте : local fd,sz,hd = socket.http.request
Библиотеки установлены со ссылок данного форума под 64 бита : http://mydc.ru/topic19.html?view=findpost&p=40183
вот какие файлы и папки в каталоге моего Птоки http://s2.ipicture.ru/Gallery/Viewfull/9269981.html

Ты не полностью обновил библиотеку сокетов, в этом причина.

Цитата(ramzes @ 19.3.2012, 12:03) *
Так же проявилась проблема с ChatHistory скриптом. Ошибка в 159 строке, сервер выдаёт ошибку ChatHist.lua:159: attempt to index a nil value

При этом историю скрипт записывает, но постоянно выпадает эта ошибка, как её отключить и влияет ли она на что-либо ещё?
В lua мало понимаю, прошу помощи.

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


Спасибо сказали:
Go to the top of the page
+Quote Post
ramzes
сообщение 20.3.2012, 13:34
Сообщение #58


Начинающий
*

Группа: Пользователи
Сообщений: 12
Регистрация: 7.7.2010
Из: Камышин
Пользователь №: 7 220
Спасибо сказали: 0 раз




Цитата(Alexey @ 20.3.2012, 14:02) *
Ты не полностью обновил библиотеку сокетов, в этом причина.


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

Артём, установил предложенный тобою скрипт, работает отлично!
Alexey, скрипт кулинар отлично работал на прошлой версии птохи, буду писать в другую ветку форума, извините.
Go to the top of the page
+Quote Post
Rokudze
сообщение 22.3.2012, 20:13
Сообщение #59


Абсолютный новичок


Группа: Пользователи
Сообщений: 2
Регистрация: 22.3.2012
Пользователь №: 10 425
Спасибо сказали: 0 раз




Здравствуйте. Скачал те скрипты на предыдущей странице, распаковал всё в libs и в script/libs, однако:

Синтаксис error loading module 'pxsocket' from file 'C:\ptokax 4.2\pxsocket.dll':
Не найдена указанная процедура.

Помогите, возможно я просто не туда распаковал либы... Стоит последняя версия птокакса.
Go to the top of the page
+Quote Post
Alexey
сообщение 22.3.2012, 21:34
Сообщение #60


7 квадратиков
*******

Группа: Модераторы
Сообщений: 793
Регистрация: 21.1.2009
Пользователь №: 1 895
Спасибо сказали: 301 раз




Привет. Из ошибки однозначно следует, что ты не до конца удалил остатки старой библиотеки. Тут есть ясное описание, что и куда надо распаковать и какие файлы найти и удалить.
Go to the top of the page
+Quote Post
Rokudze
сообщение 23.3.2012, 1:22
Сообщение #61


Абсолютный новичок


Группа: Пользователи
Сообщений: 2
Регистрация: 22.3.2012
Пользователь №: 10 425
Спасибо сказали: 0 раз




Ничерта там не понял ) Я уже везде эти libs создал, а старые не знаю какие >_>. Ставил птокакс новый этот с нуля.
Go to the top of the page
+Quote Post

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

Collapse

> Похожие темы

  Тема Ответов Автор Просмотров Последнее сообщение
No New Posts Перехват выполнения бана(ов) PtokaX
Возможно ли?
0 MIKHAIL 1 198 1.8.2022, 10:31 Посл. сообщение: MIKHAIL
No new Topic has attachmentsУстановка хаба PtokaX 0.5.2.2 на роутер под прошивкой LEDE 2017
DC++ сервер в роутере
15 мамин_парень 18 159 29.1.2021, 8:02 Посл. сообщение: мамин_парень
No new ВАЖНО: Topic has attachmentsPtokaX 0.5.0.1 Mod
Модификация PtokaX от alex82
112 alex82 108 087 13.9.2019, 17:57 Посл. сообщение: CyberGhost404
No new Topic has attachmentsPtokaX 0.5.2.1 Mod
Модификация PtokaX от alex82
17 alex82 22 176 22.8.2019, 12:27 Посл. сообщение: SergSat
No New Posts Ptokax 0.5.0.2
Crash-14.11.2014-01.11.48.log
8 Drakula 13 342 6.6.2019, 15:09 Посл. сообщение: avalon
No New Posts Topic has attachmentsПрошивка LEDE 17.01.4 для 740n v4,v5 c PtokaX 0.5.0.1
Готовая прошивка с поддержкой сервера DC++, все влезло в 4мб ))
1 мамин_парень 6 376 10.3.2018, 15:29 Посл. сообщение: мамин_парень
No New Posts Ptokax, opendchub (DC++) - Сборка пакета для OpenWRT, LEDE 2017
Пакеты хабов для прошивки роутера
0 мамин_парень 5 557 29.8.2017, 7:00 Посл. сообщение: мамин_парень
No new Topic has attachmentsАнтиреклама для PtokaX
API1, API2 | Скрипт антирекламы для чата и лички
39 Damaks 56 610 9.8.2017, 14:26 Посл. сообщение: Ksan
No new Topic has attachmentsPtokaX в OpenWrt (Linux)
Ребята как собрать под эту систему?
21 мамин_парень 29 451 10.4.2017, 15:19 Посл. сообщение: мамин_парень
No New Posts Автозапуск PtokaX на Rassberry Pi?
Не могу запустить
13 Sezam 15 483 7.11.2016, 9:14 Посл. сообщение: Saymon21
No New Posts Доска обьявлений для Ptokax 0.5.0.x
3 NightmareUA 8 450 11.8.2016, 16:22 Посл. сообщение: Ksan
No New Posts FreeBSD 11.0 & PtokaX
Проблема подключения в клиенте PtokaX по имени
5 nsd7 8 925 22.4.2016, 3:47 Посл. сообщение: Saymon21
No New Posts От: PtokaX 0.5.2.1 Mod
От темы с ID: 5784
0 Alexey 4 525 21.4.2016, 18:16 Посл. сообщение: Alexey
No New Posts Перенос базы пользователей с RusHub на PtokaX
3 Angel_D 8 871 5.12.2015, 2:11 Посл. сообщение: Saymon21
No new ВАЖНО: Topic has attachmentsСборка Ptokax 0.4.1.1 В Debian & Ubuntu
Руководство по установке
248 mariner 242 127 16.5.2015, 18:39 Посл. сообщение: KT315

 



RSS Сейчас: 23.11.2024, 2:33