myDC.ru

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

 
История благодарностей участнику alex82. Спасибо сказали: 1406
Дата поста: В теме: За сообщение: Спасибо сказали:
15.10.2010, 20:52 StatPX
API1, API2 | Статистика хаба
RAND(i)M

Логично. Только так наверное проще:

Код
tCopy[i] = {Name = v.sNick, Sort = v.bOperator and "\1"..v.sNick:lower2() or v.sNick:lower2(), Share = v.iShareSize, Profile = v.iProfile,
                Client = client or "?", Version = version or "", Descr = Descr or "",Email = Email,
                Mode = Mode, Hubs = hubs or "?", Slots = slots or "?", Limit = GetNormalSpeed(limit)}


bahodiruz
Попробуй так:
Код
Path = "",

Файлы будут сохраняться в корне FTP-сервера.
Milena
15.10.2010, 10:16 Модуль GeoCity
Определяем местоположение по IP с точностью до города
Доступен GeoCity Updater 1.02

Изменения:
Переписан интерфейс программы.
Теперь утилита умеет самостоятельно скачивать архив с базами данных.
Добавлена функция уплотнения БД, позволяющая удалить информацию о городах для определенных стран.
Добавлена возможность перевода названий городов (В текущей версии переводятся только города Украины и России).
Утилита совместима с модулем GeoCity 1.01, и не совместима с версией 1.00
Milena, Saymon21
15.10.2010, 10:05 StatPX
API1, API2 | Статистика хаба
Цитата(RAND(i)M @ 15.10.2010, 0:49) *
alex82
1. Было бы неплохо приблизить список пользователей в WEB-статистике к привычному списку юзеров в ДЦ. т.е. сделать сортировку нечувствительной к регистру, и может даже поместить "ключканутых" вверх списка.
2. Скрипт создаёт пусту папку htdocs на диске C:, вроде все папки поменял, но он продолжает создавать, где именно в скрипте - я так и не нашёл.
1. Юзеров с ключом не получится переместить вверх без изменения формата БД, а сортировку хотел исправить, но забыл. Исправлю в следующей версии.
2. Проверил. Папка создается именно там где надо, а не на диске C.


--------------------------------------------------------
Исправление сортировки:
Открываем Raw.lua. Находим (около 30 строки):
Код
                table.insert(tCopy, {sEnter = v.Enter, iSessionTime = tonumber(v.SessionTime), iOnline = v.Online, iTotalTime = tonumber(v.TotalTime),
                        sLeave = v.Leave, sNick = v.Name, iProfile = v.Profile, sIP = i, sRank = GetRank(i) } )
Заменяем на
Код
                table.insert(tCopy, {sEnter = v.Enter, iSessionTime = tonumber(v.SessionTime), iOnline = v.Online, iTotalTime = tonumber(v.TotalTime),
                        sLeave = v.Leave, sNick = v.Name, sSort = v.Name:lower2(), iProfile = v.Profile, sIP = i, sRank = GetRank(i) } )

Далее несколькими строками ниже находим:
Код
table.sort(tCopy, function(a, b) return (a.sNick < b.sNick) end)
Заменяем на:
Код
table.sort(tCopy, function(a, b) return (a.sSort < b.sSort) end)

Находим (около 94 строки):
Код
        tCopy[i] = {Name = v.sNick, Share = v.iShareSize, Profile = v.iProfile,
                Client = client or "?", Version = version or "", Descr = Descr or "",Email = Email,
                Mode = Mode, Hubs = hubs or "?", Slots = slots or "?", Limit = GetNormalSpeed(limit)}
Заменяем на:
Код
        tCopy[i] = {Name = v.sNick, Sort = v.sNick:lower2(), Share = v.iShareSize, Profile = v.iProfile,
                Client = client or "?", Version = version or "", Descr = Descr or "",Email = Email,
                Mode = Mode, Hubs = hubs or "?", Slots = slots or "?", Limit = GetNormalSpeed(limit)}

Далее несколькими строками ниже находим:
Код
table.sort(tCopy,function(a,b) return(a.Name<b.Name) end)
Заменяем на:
Код
table.sort(tCopy,function(a,b) return(a.Sort<b.Sort) end)
Milena, RAND(i)M
14.10.2010, 13:14 От: StatPX
От темы с ID: 1269
infection

С помощью меню
infection
14.10.2010, 12:42 StatPX
API1, API2 | Статистика хаба
Доступна версия 1.06 beta

Список изменений:
Добавлена возможность отправки сгенерированных страниц на удаленный FTP-сервер
Добавлен топ пользователей по числу сообщений в чате
Добавлена возможность отключения сообщений о достижении рекордов
Переписаны некоторые функции (обработка команд, отправка меню, получение ранга)
Исправлена ошибка, не позволявшая удалять лог главного чата из сообщения дня
Исправлена ошибка, приводящая к увеличению числа сообщений в графиках главного чата при отправке команд
В чат-лог добавлена фильтрация kick-сообщений
И еще много-много мелких изменений
Milena, Saymon21
12.10.2010, 12:46 Unknown Blocker
API2 | Блокировка неизвестных команд
Unknown Blocker

Версия: 1.00
Версия API: API2 (Lua 5.1)
Автор: alex82

Описание: Скрипт предназначен для блокирования неизвестных команд в главном чате и личке главного бота хаба. При создании скрипта преследовались следующие цели:
* Исключить возможность "пробивания" скриптов блокировки главного чата при помощи произвольной команды.
* Сделать невозможным использование команд просмотра статистики посторонними юзерами.
* Исключить возможность попадания в главный чат команды, обрабатываемой скриптом, если при обработке команды в нем произошла ошибка.

Внимание! Скрипт должен находиться в самом низу списка скриптов. При запуске он самостоятельно переместится на последнюю позицию списка. Однако следует помнить, что если Вы не выполняете полный перезапуск скриптов при их установке, Вам необходимо самостоятельно переместить данный скрипт на последнюю позицию после установки нового скрипта.

[attachment=5096:Unknown_...ker_1.00.rar]
Nickolya, rus.region78, Tsd, Invisible, Accelerator, PomanoB, OVERLORD1979, Kingston, Milena, Saymon21, Dimon21, TiGRpp, RAND(i)M, DEN 007, shur49, AfLc
11.10.2010, 3:37 StatPX
API1, API2 | Статистика хаба
Ameet

Полная совместимость будет только тогда, когда появитcя библиотека Lua-GD для Win64. А пока что придется отключить графики.
Milena
11.10.2010, 2:49 Заготовки скриптов для PtokaX
Делимся болванками скриптов
1) В этой таблице хранятся функции, отвечающие за обработку команд. Подробное описание есть в комментариях.
2) Ага. Зачем при каждой отправке меню выполнять десятки конкатенаций, если можно сделать это при запуске скрипта, а при подключении юзера просто отправлять готовую строку?
Saymon21
11.10.2010, 1:57 Заготовки скриптов для PtokaX
Делимся болванками скриптов
Ksan

Я не претендую на эксклюзивность, так что можешь выкладывать свою. big_smile.gif

-----------------------------------------------------------------------

Небольшие исправления в заготовке #1 - теперь алгоритм обработки команд стал еще ближе к встроенному обработчику птоки. Также добавил пару комментариев для кода, который может показаться новичкам темным лесом.

Выложил заготовку #2
Saymon21
10.10.2010, 22:29 ChatHistorySQL
История чата
Решение проблемы: заменяем 125 строку на эту:
Код
            if me or not data:find("^["..SetMan.GetString(29):gsub("[%^%$%(%)%%%.%[%]%*%+%-%?]","%%%1").."]"..tCfg.CmdPattern) and not data:find("^%s*is%s+kicking%s+%S+%s+because:") then

Kingston, Milena, Saymon21, WINS, shullz
10.10.2010, 14:12 Заготовки скриптов для PtokaX
Делимся болванками скриптов
Думаю, ни для кого не секрет, что скрипты далеко не всегда пишутся с нуля - многие скрипты, предназначенные для какой-либо определенной программы (в данном случае под "определенной программой" следует понимать PtokaX) содержат много практически идентичного кода (обработчик команд в чате, отправка меню, и.т.д), переписывать который в каждом скрипте не имеет смысла.

Некоторые, наверное, даже догадываются о том, что в арсенале скриптеров со стажем имеются заранее написанные "болванки" скриптов, содержащие тот самый повторяющийся код, и позволяющие быстро сваять нужный скрипт.

Предлагаю выкладывать подобные заготовки в этой теме.

Для затравки выкладываю одну из своих заготовок:
[attachment=5091:script_template_1.lua]
Еще одна заготовка:
[attachment=5092:script_template_2.lua]Отличается от первой тем, что позволяет устанавливать разные права доступа для команд.

Тем, кто ковырялся в моих скриптах, данный код может показаться знакомым, и в этом нет ничего удивительного - прочитайте еще раз первый абзац этого сообщения, и вы поймете почему big_smile.gif.
Nickolya, Tsd, Invisible, Ksan, Артём, HackFresse, rival, Kingston, Milena, Saymon21, Dimon21, Antibiotic
10.10.2010, 11:38 CmdToAdmin
Скрипт посылает в приват владельцу хаба команды | API2
Можно несколько упростить код отлова команды в чате:

Код
function ChatArrival(user,data)
    if Core.GetUser(sNick) and user.sNick ~= sNick then
        local pre,cmd = data:match("%b<>%s+(["..SetMan.GetString(29):gsub("[%^%$%(%)%%%.%[%]%*%+%-%?]","%%%1").."])(%S+)")
        if pre then
            if not (pre == "+" and cmd:find("^%d+")) then -- Не реагируем на "+5", к примеру.
                cmd = cmd:lower()
                for i = 1,#tIgnoreCmd do
                    if cmd == tIgnoreCmd[i] then return end
                end        
                Core.SendPmToNick(sNick, sBot, "\tПослана команда хабу:  "..data:sub(1,-2))
            end    
        end
    end
end
Префиксы команд берутся из настроек хаба. Соответственно отпадает необходимость в таблице команд и цикле, проверяющем наличие команды в таблице. И чистка памяти, я думаю, здесь лишняя.

Код
ToArrival = ChatArrival
А это лучше удалить, поскольку во-первых, подавляющее большинство юзеров вообще не знают о возможности отправки команд главному боту хаба, во-вторых, будут проверяться все лички, а не только те, что были отправлены боту, а в третьих, при текущей реализации функции отлова команд, в лог будет попадать вся команда $To. Будет что-то вроде этого:
Цитата
<bot> Послана команда хабу: $To: bot From: user $<user> !command
Invisible, Saymon21
5.10.2010, 17:48 Модуль GeoCity
Определяем местоположение по IP с точностью до города
Таки выложил обещанный класс php. В архиве также имеется тестовый скрипт.

Подробности в первом посте.
Milena, Saymon21
5.10.2010, 2:03 Модуль GeoCity
Определяем местоположение по IP с точностью до города
У меня вопрос к форумчанам. Найдутся ли добровольцы, знающие географию России, и желающие помочь проекту?

Если да - обьясню суть проблемы подробнее.

Добровольцы могут отписываться в этой теме.
Milena
4.10.2010, 0:39 StatPX
API1, API2 | Статистика хаба
Можно взять скин для StatPX Lite (пока что их всего 2), и переделать под StatPX. А можно самому сверстать. Если с веб-дизайном плохо, то можно сделать скин на основе какого-нибудь готового HTML-шаблона.
Milena
3.10.2010, 5:17 Вопросы Разработчикам Скриптов
вопросы по скриптам (мелкие вопросы)
Наверное потому что надо
Код
local _,_,information,fd=string.find(
вместо
Код
local _,information,fd=string.find(


PS.
Цитата
А мыши плакали, кололись, но продолжали жрать кактус
Я решительно не понимаю, зачем вновь и вновь использовать эту хрень с прочерками (и делать в ней ошибки), если есть string.match()
Saymon21
2.10.2010, 6:09 Anekbot
API2 | Анекдоты из Интернета
Цитата(DEN 007 @ 2.10.2010, 4:26) *
Чтобы не было пустых вопросов?
В этом случае пустые вопросы все равно будут, ибо переменная Core определяется при запуске хаба. Соответственно, если скрипт запустить при остановленном хабе, он выкинет ошибку.

Если уж менять, то на это:
Код
path = debug.getinfo(1).source:match("^@?(.+[/\\]).-$"):gsub("\\","/")
Milena
30.9.2010, 21:38 StatPX
API1, API2 | Статистика хаба
Идея действительно хороша, и уже реализована в StatPX Lite. Если когда-нибудь решусь на выпуск очередной версии, обязательно добавлю.
Milena, Saymon21
21.9.2010, 12:24 string.gsub
string.gsub замена > < аналогом < >
Функция обработки смайлов из StatPX:
Код
tSmiles = {
    ["biggrin.gif"] = {":D", ":-D", ":=D"},
    ["blink.gif"] = {"oO", "o.O", "o_O", "оО", "о.О", "о_О"},
    ["confused.gif"] = {":S", ":-S", ":=S", ":confused:"},
    ["cry.gif"] = {":'(", ":'-(", ":'=(", ":cry:"},
    ["lol.gif"] = {":lol:", ":LOL:", "LOL"},
    ["sad.gif"] = {":(", ":-(", ":=("},
    ["shock.gif"] = {"O.O", "O_O", "О.О", "О_О", ":shock:"},
    ["smiley.gif"] = {":)", ":-)", ":=)"},
    ["tongue.gif"] = {":P", ":-P", ":=P"},
    ["wink.gif"] = {";)", ";-)", ";=)"},
    ["woohoo.gif"] = {"8-D", "8=D", ":woohoo:"},
}

function string.Smiles(str)
    for i,v in pairs(tSmiles) do
        local rep = "<img src=\"smiles/"..i.."\" border=\"0\" alt=\"%1\" />"
        for _,smile in ipairs(v) do
            str = str:gsub(smile:gsub("[%^%$%(%)%%%.%[%]%*%+%-%?]","%%%1"),rep)
        end
    end
    return str
end

Используется так:
Код
src=src:Smiles()


PS. Изобретать велосипед - на редкость неблагодарное занятие.
foXDEvil
21.9.2010, 12:07 string.gsub
string.gsub замена > < аналогом < >
Nickolya

Код
tMagic = {
    ["%^"] = "%%%^",
    ["%["] = "%%%[",
    ["%)"] = "%%%)",
    ["%("] = "%%%(",
    ["%+"] = "%%%+",
    ["%*"] = "%%%*",
    ["%$"] = "%%%$",
    ["%?"] = "%%%?",
    ["%."] = "%%%.",
    ["%-"] = "%%%-",
}

function MakeNormMagicCharacters(sData)
    local sData = string.gsub(sData, "%%", "%%%%")
    for sFrom, sTo in pairs(tMagic) do
        sData = string.gsub(sData, sFrom, sTo)
    end
    return sData
end
Вся эта лабуда делается при помощи одного метода:
Код
:gsub("[%^%$%(%)%%%.%[%]%*%+%-%?]","%%%1")

Об этом я уже писал здесь.
Saymon21
20.9.2010, 20:08 string.gsub
string.gsub замена > < аналогом < >
Наверное, в качестве аргумента при втором вызове нужно указывать zamena, а не data.

А еще лучше так:
Код
       zamena = data:gsub("<", "<"):gsub( ">", ">")
foXDEvil
20.9.2010, 12:08 Модуль GeoCity
Определяем местоположение по IP с точностью до города
Доступна версия 1.01. Подробности в первом посте.

PS. Чуть позже выложу класс php для работы с GeoCity.
Milena, Saymon21
20.9.2010, 11:24 PXControl
Удаленное управление PtokaX 0.4.x.x
Цитата(xproffx @ 20.9.2010, 2:15) *
[02:58:27] <Bot> *** Error, script PXControl_Server.lua start failed.
Попробуй закомментировать
Код
if path:find("^/") then    -- OS detection
    require "lfs"    -- Linux
    bLinux = true
else
    require"pxlfs"    -- Windows
end
Если после этого скрипт запустится, проблема в неправильно установленной LFS
Milena
18.9.2010, 13:26 StatPX Lite
API2 | Веб-статистика хаба, чат-ранг, статистика местоположения юзеров
Напиши в shortstat.tpl:
Код
<a href="/hubstat/stat.php">Хаб <font color="red">( (Юзеров: [TOTALUSERS], шара: [TOTALSHARE]) )</font></a>
Потом в настройках скина включи страницу краткой статистики:
Код
    ShortStat = y,    -- Генерировать страницу краткой статистики для размещения на главной странице сайта (шаблон shortstat.tpl)
Потом пропиши абсолютный путь и имя файла в переменной tWebFiles.ShortStat.

PS. Принцип работы краткой статистики был таким изначально, так что это актуально для любой версии.
Invisible, Saymon21
13.9.2010, 18:44 StatPX Lite
API2 | Веб-статистика хаба, чат-ранг, статистика местоположения юзеров
Мдя, и в самом деле, фигню сморозил. extreme_sexy_girl.gif

Ладно, теперь серьезно. Находим в Raw.lua:
Код
    local f = io.open (tWebFiles.ChatRank, "w")
перед этим добавляем:
Код
if tTemp[1] then sTopChat = tTemp[1][1].." ("..tTemp[1][2].." сообщ.)" end
Теперь вместо той фигни, что ты процитировал, пишем:
Код
:gsub("%[TOPCHAT%]",sTopChat or "?")
Invisible, Saymon21
12.9.2010, 18:27 Ваши Вопросы И Предложения По Поводу Форума
В свое время настраивал подсветку кода Lua для highlight.js (цвета а-ля Notepad++). Если надо - могу скинуть.
Invisible
12.9.2010, 18:18 StatPX Lite
API2 | Веб-статистика хаба, чат-ранг, статистика местоположения юзеров
Saymon, Ksan

Это мусор, оставшийся от StatPX.

Правильным будет удалить эти строки:
Код
        if not(tWebCfg.Enable) then
            UpdateUserStats()
        end
Saymon21
11.9.2010, 18:42 StatPX Lite
API2 | Веб-статистика хаба, чат-ранг, статистика местоположения юзеров
Saymon
Открываем Raw.lua, находим:
Код
        local f = io.open (tWebFiles.TopShare , "w")
перед этим добавляем:
Код
        if tCopy[1] then sTopShare = tCopy[1].Name.." ("..FormatSize(tCopy[1].Share)..")" end

Открываем Web.lua, находим:
Код
                :gsub("%[BANNED%]",sBanned)
после чего добавляем
Код
                :gsub("%[TOPSHARE%]",sTopShare or "?")
                :gsub("%[TOPCHAT%]",tCountryStats and tCountryStats[1] and tCountryStats[1][1].." ("..tCountryStats[1][1].." сообщ.)" or "?")

И заменяем:
Код
    WebstatUpdateTime=FormatDate2(os.time())
    BuildMainStat(user)
    BuildOnline()
на
Код
    WebstatUpdateTime=FormatDate2(os.time())
    BuildOnline()
    BuildMainStat(user)

PS. Работоспособность не проверял.
PPS. Для сообщения дня напишу чуть позже
Invisible, Saymon21
11.9.2010, 1:36 Переименовка Ptokax Dc Hub 0.3.6.0
можно ли переименовать
Удаление копирайта PtokaX

Открываем SettingManager.cpp, находим (в районе 1400 строки):
Код
    if(sTexts[SETTXT_HUB_TOPIC] == NULL) {
        iLen = sprintf(msg, "$HubName %s|<%s> %s %s (%s: ",
            sTexts[SETTXT_HUB_NAME], sPreTexts[SetMan::SETPRETXT_HUB_SEC], LanguageManager->sTexts[LAN_THIS_HUB_IS_RUNNING],
            sTitle.c_str(), LanguageManager->sTexts[LAN_UPTIME]);
    } else {
        iLen =  sprintf(msg, "$HubName %s - %s|<%s> %s %s (%s: ",
            sTexts[SETTXT_HUB_NAME], sTexts[SETTXT_HUB_TOPIC], sPreTexts[SetMan::SETPRETXT_HUB_SEC], LanguageManager->sTexts[LAN_THIS_HUB_IS_RUNNING],
            sTitle.c_str(), LanguageManager->sTexts[LAN_UPTIME]);
    }
Заменяем на:
Код
    if(sTexts[SETTXT_HUB_TOPIC] == NULL) {
        iLen = sprintf(msg, "$HubName %s|", sTexts[SETTXT_HUB_NAME]);
    } else {
        iLen = sprintf(msg, "$HubName %s - %s|", sTexts[SETTXT_HUB_NAME], sTexts[SETTXT_HUB_TOPIC]);
    }

Открываем utility.cpp, находим (в районе строки 973):
Код
int GetWlcmMsg(char * sWlcmMsg) {
#ifdef _WIN32
    int iLen =  sprintf(sWlcmMsg, "%s%I64d %s, %I64d %s, %I64d %s / %s: %I32d)|", SettingManager->sPreTexts[SetMan::SETPRETXT_HUB_NAME_WLCM],
#else
    int iLen =  sprintf(sWlcmMsg, "%s%" PRIu64 " %s, %" PRIu64 " %s, %" PRIu64 " %s / %s: %u)|", SettingManager->sPreTexts[SetMan::SETPRETXT_HUB_NAME_WLCM],
#endif
        iDays, LanguageManager->sTexts[LAN_DAYS_LWR], iHours, LanguageManager->sTexts[LAN_HOURS_LWR],
        iMins, LanguageManager->sTexts[LAN_MINUTES_LWR],
        LanguageManager->sTexts[LAN_USERS], ui32Logged);
    if(CheckSprintf(iLen, 1024, "GetWlcmMsg2") == false) {
        sWlcmMsg[0] = '\0';
        return 0;
    }
    return iLen;
}
Заменяем на:
Код
int GetWlcmMsg(char * sWlcmMsg) {
    int iLen =  sprintf(sWlcmMsg, "%s", SettingManager->sPreTexts[SetMan::SETPRETXT_HUB_NAME_WLCM]);
    if(CheckSprintf(iLen, 1024, "GetWlcmMsg2") == false) {
        sWlcmMsg[0] = '\0';
        return 0;
    }
    return iLen;
}


Далее качаем Borland Developer Studio или Borland C++ Builder, и собираем PtokaX.exe из исходников. А пока качается, размышляем о том, имеем ли мы моральное право удалять копирайты.

PS. А для особо ленивых выкладываю модифицированную GUI-версию:
[attachment=5006:PtokaX_n...opyright.rar] файл раздается на правах лулзов
Invisible, Alexey, dembel
10.9.2010, 16:08 StatPX Lite
API2 | Веб-статистика хаба, чат-ранг, статистика местоположения юзеров
Ksan

Вообще-то время запуска хаба устанавливается в строке 36, и только при первом запуске:
Код
    if not tHubStat.Start then tHubStat.Start = os.time() end

А 267 строка - это и есть та самая функция установки времени запуска в "удобоваримом" формате.


В связи с этим у меня предложение: давайте будем хоть немного вникать в суть прежде чем писать сообщения.

И еще. Давайте не будем устанавливать километровые подписи.
мамин_парень
10.9.2010, 4:18 StatPX Lite
API2 | Веб-статистика хаба, чат-ранг, статистика местоположения юзеров
Error404

Даже представляю, куда могла деться переменная, обьявленная в самом начале скрипта. amazing.gif
Может ты сам ее удалил? Или пытаешься подсунуть птоке файл конфигурации отдельно от скрипта?

Цитата(mariner @ 10.9.2010, 0:15) *
А ты в config.lua задал переменную path?
Она задается глобально в StatPX_Lite.lua


Доступна версия 1.00 beta2. Изменения:

* Исправлена ошибка в функции перезагрузки шаблонов
* Добавлена возможность использовать в сообщении дня переменной [MESSAGES], отвечающей за количество сообщений текущего юзера.
* Удален отладочный код, приводящий к периодическому получению сообщения об ошибке "Ошибка StatPX Lite: upd"
* Удалены неиспользуемые настройки, оставшиеся от StatPX
* Незначительные исправления скина Default
* Добавлен скин Simple
* Более оптимальные настройки по умолчанию
мамин_парень, Unique
9.9.2010, 20:49 Registrator
API2 | Скрипт регистрации
Has21

Первая ошибка возникает из-за наличия символа процента в нике юзера, вторая - из-за использования команды смены пароля без аргументов.

Лечатся так:
Код
return (tMsg.Reg:gsub("%[nick%]",user.sNick):gsub("%[pass%]",pass))
заменить на
Код
return (tMsg.Reg:gsub("%[nick%]",user.sNick:gsub("%%","%%%%")):gsub("%[pass%]",pass:gsub("%%","%%%%")))


Код
    [tCmd.NewPass] = function(user,data)
        local tReg = RegMan.GetReg(user.sNick)
        if tReg then
            local pass = data:match("^(%S+)")
            local newpass = data:match("^%S+%s+(%S+)")
            if pass and newpass then
                if tReg.sPassword == pass then
                    RegMan.ChangeReg(tReg.sNick,newpass,tReg.iProfile)
                    return "Пароль изменён. Новый пароль - "..newpass..". Не забудьте исправить пароль в настройках избранного хаба."
                else
                    return "Неверный пароль."
                end
            else
                return "Ошибка синтаксиса. Синтаксис: "..sPrefix..tCmd.NewPass.." <старый пароль> <новый пароль>."
            end
        else
            return "Команда доступна только для зарегистрированных пользователей!"
        end
    end,
заменить на
Код
    [tCmd.NewPass] = function(user,data)
        if data then
            local tReg = RegMan.GetReg(user.sNick)
            if tReg then
                local pass = data:match("^(%S+)")
                local newpass = data:match("^%S+%s+(%S+)")
                if pass and newpass then
                    if tReg.sPassword == pass then
                        RegMan.ChangeReg(tReg.sNick,newpass,tReg.iProfile)
                        return "Пароль изменён. Новый пароль - "..newpass..". Не забудьте исправить пароль в настройках избранного хаба."
                    else
                        return "Неверный пароль."
                    end
                else
                    return "Ошибка синтаксиса. Синтаксис: "..sPrefix..tCmd.NewPass.." <старый пароль> <новый пароль>."
                end
            else
                return "Команда доступна только для зарегистрированных пользователей!"
            end
        end
        return "Ошибка синтаксиса команды"
    end,
Milena, Has21
9.9.2010, 17:18 StatPX Lite
API2 | Веб-статистика хаба, чат-ранг, статистика местоположения юзеров
Выложил 2 скина. Подробности во втором посте.
мамин_парень, Unique
8.9.2010, 21:54 StatPX Lite
API2 | Веб-статистика хаба, чат-ранг, статистика местоположения юзеров
*FoxMalder*

Покрути эти опции:


Код
    ForceUpdate = 10, -- Количество отключений/подключений пользователей, после которого будет произведено внеочередное обновление статистики

Код
    CountryStatsUpdate = 10,    -- Число подключений, по достижении которого будет обновлен топ стран. Рекомендуется увеличить значение параметра на хабах с онлайном более 1000


Поставь около 50 в обеих.
мамин_парень, Unique
8.9.2010, 18:55 StatPX Lite
API2 | Веб-статистика хаба, чат-ранг, статистика местоположения юзеров
Invisible

Найди кусок кода:
Код
    {"%[RANK%]",[[
    result = result:gsub("%[RANK%]",tChatRank[user.sNick] and GetRank(tChatRank[user.sNick]) or "нет")]]},

После него добавь:
Код
    {"%[MESSAGES%]",[[
    result = result:gsub("%[MESSAGES%]",tChatRank[user.sNick] or 0)]]},

Теперь можно использовать переменную [MESSAGES] в сообщении дня
Invisible, Saymon21, мамин_парень, Unique
8.9.2010, 16:26 StatPX Lite
API2 | Веб-статистика хаба, чат-ранг, статистика местоположения юзеров
*FoxMalder*

Сколько юзеров на хабе?
мамин_парень
8.9.2010, 5:23 StatPX Lite
API2 | Веб-статистика хаба, чат-ранг, статистика местоположения юзеров
Часто задаваемые вопросы

Вопрос: Зачем было удалять базу данных пользователей? Кому она мешала?
Ответ: Это сделано для того, чтобы сделать возможной работу скрипта на крупных инет-хабах - из-за засорения БД динамическими IP-адресами, StatPX становился неработоспособным уже через несколько дней использования. Данный скрипт лишен этого недостатка.

Вопрос: В какую папку надо положить папки со смайлами и флагами чтобы они отображались на сайте?
Ответ: В ту же папку, в которую сохраняются сгенерированные html-страницы

Вопрос: Как сделать так, чтобы страницы статистики могли видеть юзеры из сети?
Ответ: Для этого необходимо установить веб-сервер (например Apache), и указать в качестве пути сохранения страниц корневую директорию веб-сервера

Вопрос: Как заставить работать пункт "Последний зарегистрировавшийся юзер" на главной странице?
Ответ: Для этого необходимо добавить в скрипт регистрации код, записывающий ник зарегистрировавшегося юзера в файл lastreg.txt, находящийся в папке StatPX_Lite. Код должен выглядеть примерно так:
Код
        local lastreg = io.open(Core.GetPtokaXPath().."scripts/StatPX_Lite/lastreg.txt","w")
        if lastreg then
            lastreg:write(user.sNick)
            lastreg:close()
        end
К примеру, в скрипт Registrator этот код нужно добавить сразу после строк:
Код
        if tCfg.ShowToAll then
            ToAll("Поприветствуем нового зарегистрировавшегося участника - "..user.sNick.."!")
        end

Скины

pixabella green
Автор стиля: pixabella
Адаптация для StatPX: alex82

[attachment=5001:pixabella_green.rar]

pixabella pink
Автор стиля: pixabella
Адаптация для StatPX: alex82

[attachment=5002:pixabella_pink.rar]
Invisible, Saymon21, Dimon21, DEN 007, dj_crazy_joker, ImDim, мамин_парень, kztm, Unique
8.9.2010, 5:18 StatPX Lite
API2 | Веб-статистика хаба, чат-ранг, статистика местоположения юзеров
StatPX Lite

Версия: 1.01 beta
Версия API: API2
Системные требования:
PtokaX 0.4.x.x, Lua 5.1
База данных IP-To-Country
Библиотека Lua-GD ( http://mydc.ru/topic2356.html )
Веб-сервер (напр. Apache)

Автор: alex82

Описание: Скрипт представляет собой переделанный и дополненный StatPX. Основные отличия от оригинала:
* удалена база данных юзеров (со всеми вытекающими отсюда последствиями - топ хабберов и статистика посещаемости также пошли под нож)
* добавлено отображение страны юзера в списках
* добавлен топ стран
* тобавлен топ юзеров по количеству сообщений в чате


Возможности скрипта:

Статистика хаба:
учёт рекордов по размеру шары и количеству пользователей
* топ пользователей по размеру шары
* топ стран
* топ пользователей по количеству сообщений в главном чате

Web-статистика:
* топик хаба
* общая статистика хаба - время непрерывной работы, количество пользователей, общий размер шары, рекорды по размеру шары и количеству пользователей, количество забаненных пользователей
* ограничения хаба - минимальная шара, минимум слотов, и.т.д
* лог главного чата с поддержкой смайлов
* список пользователей онлайн
* топ пользователей по размеру шары
* топ пользователей по количеству сообщений в главном чате
* список забаненных пользователей
* список заглушек скрипта GagMe ( http://mydc.ru/topic1627.html )
* поддержка скинов

Скриншоты


Скачать:
[attachment=5140:StatPX_L....01_beta.rar]
Старые версии
[attachment=5004:StatPX_L...00_beta2.rar]


Флаги стран:
[attachment=4993:flags.rar]

Смайлы:
[attachment=4995:smiles.rar]
Nickolya, Tsd, Invisible, Ksan, Артём, Accelerator, Satib, dka, Milena, Saymon21, Dimon21, Just, random name, WINS, viperrr, grifons, ke(x)one, dj_crazy_joker, ImDim, Hashish, мамин_парень, Unique
8.9.2010, 4:04 StatPX
API1, API2 | Статистика хаба
Оно должно быть включено в настройках скина:
Код
    ShortStat = n,    -- Генерировать страницу краткой статистики для размещения на главной странице сайта (шаблон shortstat.tpl)


Ты, эт самое, уточни с какой версией возишься. 1.05 сильно отличается от предыдущих.
Milena
8.9.2010, 2:41 StatPX
API1, API2 | Статистика хаба
Дело в том, что автор скрипта - ленивая скотина. Он до сих пор не переделал шаблоны, предназначенные для встраивания в движки, под новую версию StatPX (формат шаблонов изменился в версии 1.05).

В общем, в данный момент единственный выход - самому сверстать шаблоны для Вашего движка.

PS. Хотя, можно взять шаблон краткой статистики из старой версии скрипта (разумеется, нужно переименовать его из hubstat.tpl в shortstat.tpl) - изменений в нем почти нет. Это не решит всех проблем, однако ручной работы станет поменьше.
Milena, Avalon55
5.9.2010, 20:44 Автозапуск с Windows
http://mydc.ru/index.html?showtopic=1164&a...ost&p=32061

To Saymon
Ту тему давно пора прибить, или на худой конец убрать из прилепленных - она морально устарела
random name
3.9.2010, 13:50 Registrator
API2 | Скрипт регистрации
Milena, xXx-Portal
2.9.2010, 4:14 вход/выход
kc_duke

[attachment=4975:conn_log.lua]
Invisible, kc_duke
28.8.2010, 17:42 HubBanner
API2 | Графический баннер хаба
Доступна версия 2.01

Изменения:
* Добавлена возможность отрисовки текста произвольным шрифтом (можно использовать любые шрифты, поддерживаемые библиотекой FreeType).
* В настройки изображений добавлена переменная [topic].
* Открыд код функции отрисовки текста шрифтом Visitor.
Invisible, Saymon21, averon.nv
28.8.2010, 11:59 StatPX
API1, API2 | Статистика хаба
640 строка. Меняем
Код
MOTDChat

на
Код
(MOTDChat or "")
alexvv, Milena, xXx-Portal
26.8.2010, 23:54 Hub Menu
API2 | Меню для встроенных команд PtokaX
xXx-Portal

Подозреваю, что всему виной кривая настройка прав профилей, точнее пункта "Заходить с забаненных IP-адресов".
Milena, xXx-Portal
16.8.2010, 12:18 PXControl
Удаленное управление PtokaX 0.4.x.x
Цитата(Tsd @ 15.8.2010, 10:05) *
Хотелось бы чтобы можно в настройках указать с ключиком/без ключика с сохранением всех функций.
Насколько мне известно, права на просмотр статистики имеют все юзеры. А насчет всех функций - доступ к некоторым функциям (в частности, UDP-отладчик) дается ТОЛЬКО с ключом, и это НИКАК нельзя исправить из Lua.

И перестань называть юзера ботом. Никакой это не бот, а обычный юзер. А клиент PXControl - обычный DC-клиент, в который добавлены расширения протокола для управления настройками, и UDP-отладчик.
Milena
15.8.2010, 18:48 ChatHistorySQL
История чата
Добавлен конвертер БД ChatLogsMySQL --> ChatHistorySQL
Nickolya, Milena, Saymon21
14.8.2010, 19:39 StatPX
API1, API2 | Статистика хаба
averon.nv
Ну так укажи высоту ячейки
Код
<tr><td align="center" height="30"><a href="http://страница"><IMG SRC="http://адрес рисунка.png" border="0" alt="Перейти к теме"></a></td></tr>
Milena
14.8.2010, 18:55 StatPX
API1, API2 | Статистика хаба
Цитата(averon.nv @ 14.8.2010, 18:45) *
ALex82
Спасибо, копирайт вернулся, но сейчас у изображения появился отступ первой строки и после него - как бы по середине стал - так и должно быть?
Нихрена не понял.
Цитата(averon.nv @ 14.8.2010, 18:45) *
И не отображается фукция «alt="Перейти к теме"» - при наведении мышкой на изображение, показывает обычный переход по указнной ссылке, когда за место этого должно быть замена на: Перейти к теме
Насколько мне известно, alt используется в том случае, когда в браузере отключено отображение рисунков. Для создания всплывающей подсказки нужно использовать параметр title тега a


Николяся
Не надо флудить.
Milena
14.8.2010, 18:17 StatPX
API1, API2 | Статистика хаба
averon.nv

Вставлять нужно внутрь таблицы:
Код
<body>
<table cellpadding="0" cellspacing="0" border="0" align="center" class="mainblock">
<tr><td align="center"><a href="http://страница"><IMG SRC="http://адрес рисунка.png" border="0" alt="Перейти к теме"></a></td></tr>
<tr><td valign="top" class="content">
<table class="head" width="100%" cellpadding="0" cellspacing="0" align="center">
    <tr>
        <th nowrap="nowrap" class="head">Статистика хаба [HUBNAME]</th>
    </tr>


Код
но как сайт вкл не получается
Я надеюсь, у тебя установлен вебсервер? Или ты ждешь, что раздавать файлы в сеть начнет сама птока?
Milena
14.8.2010, 17:56 PXControl
Удаленное управление PtokaX 0.4.x.x
Можно создать отдельный профиль админа без ключа, но в этом случае не будет работать UDP-отладчик.

А можно заставить сервер удалять админа, использующего команды удаленного управления, из списка юзеров:
Tsd, Milena, Saymon21
14.8.2010, 1:13 PXControl
Удаленное управление PtokaX 0.4.x.x
Цитата(Tsd @ 13.8.2010, 11:09) *
Можно ли добавить функцию - бот с ключиком/без ключика в списке на хабе?
Что-то не совсем понял. Куда добавить?

Если в серверную часть, то я не пойму нахрена ей нужна регистрация бота.
Milena
2.8.2010, 5:05 От: StatPX
От темы с ID: 1269
Ну вот, приехали. В моем скрипте без моего ведома появилась функция чат-ранга, а я узнаю об этом последним. waaaht.gif

А если серьезно...
...то это вовсе не чат-ранг, а звание топа хабберов - по проведенному на хабе времени. И в конфиге есть соответствующий комментарий:
Цитата
Ранги должны добавляться от самого низкого к самому высокому

{время,"Ранг"}

[время] - количество дней проведённых пользователем на хабе

Пример: {30, "Постоялец"}
Означает: чтобы получить ранг "Постоялец" пользователь должен просидеть на хабе не менее 1 месяца
Invisible
31.7.2010, 19:10 LinkCollect
API2 | Сборщик ссылок
GASTROLER692

Теоретически можно все.

Если ты внятно обьяснишь свою задумкку, тогда станет ясно, можно ли это практически.
Invisible
28.7.2010, 21:57 IP Info
API2 | Информация об IP-адресах, отправленных в главный чат
IP Info

Версия скрипта: 1.00
Версия API: API2 (PtokaX 0.4.0/0.4.1, LUA 5.1)
Автор: alex82

Описание:
Скрипт отлавливает в главном чате IP-адреса, и отображает информацию о них. Если информация об IP-адресе не найдена в базе данных скрипта, то он попытается определить местоположение адреса по базе данных IP-To-Country.

[attachment=4784:IPInfo_1.00.rar]
Nickolya, intlive, rus.region78, Invisible, rival, Milena, Chimera, Cyber_voodoo
26.7.2010, 10:06 FAQ | Часто задаваемые вопросы
Общие вопросы относительно программирования на Lua
Вопрос: Не могу запустить lua.exe - выкидывает ошибку "Приложению не удалось запуститься, поскольку оно некорректно настроено. Повторная установка приложения поможет решить проблему". Подскажите, что надо настроить, чтобы эта ошибка не возникала?

Ответ: Данная ошибка присуща официальным бинарникам Lua и пакету LuaForWindows. Для ее устранения нужно установить набор runtime-библиотек Visual C++ 2005: http://www.microsoft.com/downloads/details...;displaylang=en . Также можно в очередной раз пнуть фирму Майкрософт за столь "информативное" сообщение об ошибке bad_smile.gif .



Вопрос: Я написал скрипт на Lua, но, судя повсему, допустил в нем ошибку - консоль Lua сразу закрывается, игнорируя ключ -i, и я не могу посмотреть сообщение об ошибке. Подскажите, можно ли сделать так, чтобы консоль переходила в интерактивный режим даже в том случае, когда в скрипте есть синтаксическая ошибка?

Ответ: Можно. Для этого Вы можете добавить в контекстное меню Lua-скриптов команду, запускающую скрипт в "безопасном" режиме:
Код
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\lua\shell\runsafe]
@="Запуск (безопасный режим)"

[HKEY_CLASSES_ROOT\lua\shell\runsafe\command]
@="\"D:\\Program Files\\lua\\lua.exe\" -i -e \"r,e = pcall(dofile,[=[%1]=]); if r then print([=[File %1 has no errors]=]) else print(e) end\""

либо команду, позволяющую проверить скрипт на наличие синтаксических ощибок, но не запускающую его выполнение (Следует помнить, что данная команда проверяет скрипт только на наличие грубых синтаксических ошибок, не позволяющих интерпретатору Lua скомпилировать его в байт-код. Для поиска ошибок в алгоритмах скрипта, Вам необходимо отлаживать его непосредственно на той платформе, для которой он написан):
Код
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\lua\shell\check]
@="Проверить"

[HKEY_CLASSES_ROOT\lua\shell\check\command]
@="\"D:\\Program Files\\lua\\lua.exe\" -i -e \"r,e = loadfile([=[%1]=]); if r then print([=[File %1 has no errors]=]) else print(e) end\""

Чтобы добавить команду в контекстное меню, скопируйте код в файл с расширением .reg, и запустите его.
Во всех приведенных выше фрагментах кода предполагается, что бинарники Lua находятся в папке D:\Program Files\lua\. Если Lua установлен в другую папку, то Вам необходимо исправить пути вручную. Имя раздела реестра, который используется для создания контекстных меню файлов с расширением .lua, также может отличаться. Чтобы узнать его, запустите редактор реестра, откройте ветвь HKEY_CLASSES_ROOT, найдите раздел .lua, и посмотрите значение параметра "По умолчанию". Если Вы по каким-либо причинам не хотите лезть в реестр, то можете воспользоваться готовым файлом, который внесет все необходимые изменения, и добавит в контекстное меню файлов .lua и .luac команды для редактирования в Notepad++, запуска в обычном и безопасном режимах, и проверки на наличие ошибок:
[attachment=4766:lua.reg.rar]
Не забудьте исправить пути перед запуском файла!
Nickolya, Invisible, Drakula, Milena, Saymon21
26.7.2010, 0:13 Ваши Вопросы И Предложения По Поводу Форума
  • Скачивание файл-листа, nmdc
  • SQL & Hub

Это вроде как в "Всё о Direct Connect" надо.

Еще можно реорганизацию раздела скриптов для птоки. Уже давно просится раздел "Взаимодействие хаба с сетью" (ну, или что-то в этом роде), в который можно переместить все веб-статистики, мониторинги игровых серверов, парсеры RSS - в общем, все, что так или иначе взаимодействует с Сетью.

Также можно выделить все антиматы, антирекламы и антипрокси в раздел "Безопасность"
Nickolya, Saymon21
25.7.2010, 13:51 ChatHistorySQL
История чата
ChatHistorySQL

Версия скрипта: 1.00
Версия API: API2 (PtokaX 0.4.0/0.4.1, LUA 5.1)
Автор: alex82

Описание:
Скрипт предназначен для сохранения истории сообщений главного чата в базе данных MySQL, и последующего вывода ее при подключении к хабу, либо по запросу. Имеется возможность поиска сообщений по нику, IP-адресу, или тексту. Также имеется возможность создания резервной копии базы данных скрипта непосредственно с помощью меню хаба, либо команды в главном чате. Скрипт умеет самостоятельно восстанавливать соединение с сервером MySQL.

ВНИМАНИЕ!
Для работы скрипта требуется библиотека MySQL.
Перед запуском скрипта необходимо создать базу данных MySQL.

[attachment=4760:ChatHist...SQL_1.00.rar]

Конвертер базы данных ChatLogsMySQL --> ChatHistorySQL
[attachment=4885:chatlog_converter.rar]
Nickolya, intlive, rus.region78, Tsd, Invisible, Herurg, Kingston, whuru, Milena, CrazyKiller, Saymon21, Dimon21, WINS, lankmv, shullz
24.7.2010, 12:23 ! Часто Задаваемые Вопросы !
Обязательно прочитать всем!!!
Как установить/удалить/запустить PtokaX как службу?

Консольная версия PtokaX прекрасно умеет устанавливать себя как системную службу.

  • Установка сервиса:
    Код
    PtokaX.exe -i "имя сервиса"
    Аналог:
    Код
    PtokaX.exe /install "имя сервиса"
  • Удаление сервиса:
    Код
    PtokaX.exe -u "имя сервиса"
    Аналог:
    Код
    PtokaX.exe /uninstall "имя сервиса"
  • Запуск сервиса:
    Код
    PtokaX.exe -s "имя сервиса"
    Аналог:
    Код
    PtokaX.exe /service "имя сервиса"
  • Установка конфиг директории:
    Код
    PtokaX.exe -c "абсолютный путь до директории"
  • Получение версии:
    Код
    PtokaX.exe -v
    Аналог:
    Код
    PtokaX.exe /version
  • Помощь по командам:
    Код
    PtokaX.exe -h
    Аналог:
    Код
    PtokaX.exe /help
  • Отключение проверки ключа в $Key команде:
    Код
    PtokaX.exe /nokeycheck


Примеры:

Конфигурирование директории и установка сервиса:
Код
"C:\Program Files\PtokaX\PtokaX.exe" -c "C:\PtokaX\" -i "PtokaX"

Удаление сервиса:
Код
"C:\Program Files\PtokaX\PtokaX.exe" -u "PtokaX"


Для запуска и остановки службы можно также использовать консольную программу NET, входящую в состав Windows. Команда запуска службы:
Код
NET START PtokaX

Команда остановки:
Код
NET STOP PtokaX
Invisible, Saymon21, shur49, мамин_парень
13.7.2010, 23:41 StatPX
API1, API2 | Статистика хаба
Цитата(WINS @ 13.7.2010, 18:17) *
одно интересное место в стате пользюка, обязательно такая космическая точность нужна? big_smile.gif

строку 433 меняем на эту:
Код
        FormatTime(math.round(tUserStat[IP].TotalTime/iAverage)).."\n\t- Ранг: "..GetRank(IP).."\n"


Цитата(WINS @ 13.7.2010, 18:17) *
И еще один момент: пишутся в лог любые русскоязычные команды, которые не перехватили вышестоящие скрипты.
Надо хотя-бы для приличия заглянуть в файл настроек. Там каждая настройка откомментирована.
Цитата
CmdPattern = "[a-zA-Z]+", --Шаблон команд в главном чате. Используется для фильтрации команд в логе главного чата.
--Шаблон, подходящий для настроек PtokaX по умолчанию: "[a-zA-Z]+"
--Если на хабе используются команды, содержащие символы кириллицы или цифры, то вместо [a-zA-Z]+ нужно использовать %S+


Milena
1.7.2010, 1:27 StatPX
API1, API2 | Статистика хаба
Доступна версия 1.05. Изменения:

Исправлена ошибка в функции поиска IP (attempt to concatenate global 'IP' (a nil value))
Исправлена ошибка в функции просмотра топа хабберов (attempt to concatenate global 'sRank' (a nil value))
Небольшое исправление в шаблоне gagme.tpl
Исправление в логе чата: при отправке в чат сообщения от третьего лица (команда !me), лог чата не обновлялся.
Milena, Saymon21
30.6.2010, 23:23 StatPX
API1, API2 | Статистика хаба
Цитата
В Web.lua нашел строку:

Код
ADDITMAINSTAT = LoadTemplate(path..tWebCfg.Skin.."/shortstat.tpl")

Но шаблона этого нет. Или мы его создаем?
Шаблона действительно нет. Качаем одну из старых версий, и берем шаблон оттуда.

Цитата
Никто не пробовал интегрировать сюда скрипт ChatLogsMySQL?
Зачем его сюда интегрировать? Ставь отдельно, бери веб-морду из webstats Романова, и подгоняй под дизайн StatPX.

Цитата
Простите. Но если проблема известная, почему же ее в релизе не исправить сразу?
В ближайшем будущем исправлю все засветившиеся ошибки. Может быть даже сегодня.

Цитата
truth, не годится, т.к. в сгенерированных страничках исчезнет ссылка на лог чата, автор это предусмотрел.
А что мешает убрать соответствующий переключатель из header.tpl?
Milena, Naum_Off
28.6.2010, 21:12 Нужна помощь по 2 скриптам
Не по таймеру, а при подключении нового юзера

Код
function UserConnected(user)
Core.SendToUser(user,BotShit)
end
OpConnected = UserConnected
RegConnected = UserConnected

Отправка по таймеру будет жрать траффик
prokazzza
26.6.2010, 0:49 ScriptTimer
API2 | Запуск/остановка скрипта по таймеру
ScriptTimer

Версия: 1.00
Версия API: API2 (Lua 5.1; PtokaX 0.4.x.x)
Автор: alex82, Nickolya

Описание:
Скрипт предназначен для запуска и остановки указанного скрипта в заданное время.

[attachment=4652:ScriptTimer_1.00.7z]
Перенесено из раздела "Запросы скриптов"
Tsd, Invisible, Karumo, rival, Milena, TiGRpp, Pro009, sania, shur49
21.6.2010, 10:43 Sourcemon
API2 | Мониторинг игровых серверов Source и GoldSource
Разве настройки серверов находятся в нескольких файлах?

Код
{Addr = "localhost",Timeout = 1,Client = "http://sample.ru/file.exe", Forum="http://sample.ru/forum/"},
Milena, brauzer84
21.6.2010, 10:37 Угадай онлайн
API2
Я тупо забыл добавить в архив файл конфига. beat_brick.gif

Перезалил архив.
Nickolya, Invisible, Milena
18.6.2010, 16:11 Угадай онлайн
API2
Угадай онлайн

Версия: 1.01
Версия API: API2 (PtokaX 0.4.x.x)
Автор: alex82

Описание:
Смысл игры заключается в угадывании количества юзеров на хабе в определенное время. Если никому из игроков не удалось угадать точное число юзеров, победителем становится тот, кто был наиболее близок к к победе.

[attachment=4636:GuessOnline_1.01.rar]
Зеркало
Nickolya, Invisible, Milena, Saymon21, Pro009, random name, Тёмич, доктор ливси, ImDim
18.6.2010, 15:52 Sourcemon
API2 | Мониторинг игровых серверов Source и GoldSource
Цитата(brauzer84 @ 17.6.2010, 21:10) *
ребят...мож знает кто как добавить ссылку на сам клиент для игры...

После этого:
Код
                    if tCfg.ShowServerCmd then
                        msg = msg.."\n"..sTab.."Для получения подробной информации введите "..Prefix..tCmd.Server.." "..i
                    end

вставляешь.
Код
                    if tServers[i].Client then
                        msg = msg.."\n"..sTab.."Скачать клиент: "..tServers[i].Client
                    end
                    if tServers[i].Forum then
                        msg = msg.."\n"..sTab.."Форум сервера: "..tServers[i].Forum
                    end

Теперь в настройки серверов можно добавлять параметры Client и Forum.

Milena, brauzer84
18.6.2010, 15:26 Nick Protect
API2 | Защита ников от подделки
Nick Protect

Версия: 1.00
Версия API: API2
Автор: alex82

Описание:
Скрипт предназначен для защиты ников от подделки методом подмены символов на аналогичные по начертанию.

ВНИМАНИЕ! Скрипт не совместим с идиотскими никами операторов (@dm1№, |З@©Я, и.т.д). Настоятельно рекомендуется удалить операторов с такими никами перед установкой скрипта.

[attachment=4618:nick_protect_1.00.rar]
Nickolya, FallenAngel, mariner, Karumo, OVERLORD1979, Drakula, Kingston, Milena, Jet1k, Barmolei0808, Saymon21, FreeNas, TiGRpp, WINS, DEN 007, Змий
12.6.2010, 16:16 Hub Menu
API2 | Меню для встроенных команд PtokaX
Как именно не работает? Команда пролетает в чат, или вылазит сообщение о неизвестной команде? Если второе, то виноват один из скриптов, блокирующий команду !topic
Milena
31.5.2010, 19:57 StatPX
API1, API2 | Статистика хаба
Правильное исправление ошибки:
меняем 274 строку на эту:
Код
                if #tCopy[i].sRank < 9 then tCopy[i].sRank = tCopy[i].sRank.."\t" end
Milena, Saymon21
24.5.2010, 18:52 StatPX
API1, API2 | Статистика хаба
Строка 374:
Код
return "\n\t"..string.rep("=", 40).."\n\tРезультат поиска по IP "..IP..": ".."\n\t"..string.rep("=", 40)..

заменяем на:
Код
return "\n\t"..string.rep("=", 40).."\n\tРезультат поиска по IP "..data..": ".."\n\t"..string.rep("=", 40)..

Milena
23.5.2010, 23:19 StatPX
API1, API2 | Статистика хаба
Конвертер баз писал довольно давно, и уже подзабыл как он работает.

Код
    if loadfile(fOnline) then
        -- blablabla
    else
        error("Файл "..fOnline.." не найден.")
    end
Отсюда следует, что птока не просто открывает файл, а пытается загрузить его как порцию Lua, и не может, поскольку в файле есть синтаксическая ошибка.

Чтобы узнать, где именно ошибка, сделай так:
Код
function Main()
    local c,e = loadfile(fOnline)
    if c then
        os.execute("md \""..path.."StatPX/\"")
        dofile(fOnline)
        for i, v in pairs(tUserStat) do
            tUserNicks[i] = tUserStat[i].Names
            tUserStat[i].Names = nil
        end
        Save()
    else
        error("Ошибка: "..e)
    end
end
Milena
23.5.2010, 22:49 StatPX
API1, API2 | Статистика хаба
Цитата(Angel_D @ 22.5.2010, 16:37) *
Возраст хаба - хотелось бы что б это была дата, которую можно было указать. Моему хабу, к примеру, не 15 минут отроду. big_smile.gif В data.tbl видимо делается запись Start и берутся значения из неё, я так понял - т.е. можно подправить там, только пока не понятен формат даты / числа, в котором оно там записано.
Ну а для чего, по-твоему, сделано меню "Установить время запуска"?

Цитата
можно ли такую опцию, как ввести настраиваемый диапозон IP адресов, кол-во пользователей из которого на графике будет отображено отдельной линией? смысл сей "фантазии" в том, чтобы, к примеру, локальные (пользователи локальной сети) и внешние пользователи (точнее их кол-во) на графике как-то отражались, или, например, россияне и все остальные. "Нафантазировать" можно и подвязку графиков к ip-to-country.csv, но это уже имхо излишний гемор, чтобы получить "кашу", а не график.
Можно и отдельной линией, но придется перепилить весь код создания графиков. Куда проще сделать это отдельным графиком.

Цитата
Под виндой я так понял дело связано с слешом. (пытаться победить даже не стал)
Под фри пробовал в скрипте указать полные пути но все арвно ошибка появлятся таже.
(уж поверте файл базы по этим путям есть )
что делать как быть?
При любой чертовщине с файлами хорошо помогает утилита FileMon - она покажет, где на самом деле птока ищет файл, и почему не может открыть его.
Milena
21.5.2010, 10:31 StatPX
API1, API2 | Статистика хаба
Доступна версия 1.05 beta

Список изменений:
Переписаны функции обработки команд.
Добавлено отображение возраста хаба.
Добавлена возможность просмотра топа шары на хабе.
Оптимизация отправки сообщения дня.
В систему шаблонов добавлены переключатели, благодаря чему стало возможным отключение некоторых функций веб-статистики без необходимости редактирования шаблонов.
Добавлен лог главного чата. Лог отображается в сообщении дня и на странице веб-статистики.
Добавлено отображение графиков на странице веб-статистики.
Удалена функция удаления префиксов из ников.
Настройки скинов убраны из файла конфигурации. Теперь они хранятся непосредственно в папке скина.
Удалена возможность выбора скина из меню.
Переверстаны шаблоны "По умолчанию" и "Простой".
Nickolya, truth, Milena, Saymon21
20.5.2010, 15:51 Registrator
API2 | Скрипт регистрации
baralgin
Цитата
можно ли переделать этот скрипт так, что бы список зарегестрированных пользователей чистился сам, например если с аккаунта не выходили месяц , то он удаляется автоматически
Это можно реализовать отдельным скриптом. Где-то на форуме такой валялся (название даже приблизительно не помню).

Цитата
и добавить ограничение на скорость скачки незарегестрированным юзерам

Это нереализуемо в принципе - скачка происходит напрямую между клиентами, и хаб не может контролировать ее.
Milena
18.5.2010, 4:02 От: StatPX
От темы с ID: 1269
Цитата(serrrios @ 17.5.2010, 21:46) *
А планируется ли когда-нибудь портировать сей скрипт на RusHub? =)
Я об этом думал. Может возьмусь, как закончу пилить птоковую версию (если будет настроение).
Saymon21
14.5.2010, 20:35 StatPX
API1, API2 | Статистика хаба
Цитата(serrrios @ 14.5.2010, 17:07) *
alex82, спасиб за функцию, все сделал, работает отлично. WMR есть? Хоть на пивас подкину ;)
WMR нету, зато есть WMZ - Z843102502936 big_smile.gif


Цитата
alex82, как правильно запихнуть функцию перекодирования в utf8?)
Если заменить на
Код
$this->output = toutf8(@file_get_contents("имя_файла"));

старничка вовсе не отображается..
Пихай сразу после открывающего тега препроцессора (<?php или просто <?) - не ошибешься. И включи отображение ошибок PHP - не дело отлаживать скрипты вслепую.
Код
error_reporting  =  E_ALL
display_errors = On
(это в php.ini)
Milena
14.5.2010, 6:55 StatPX
API1, API2 | Статистика хаба
Цитата(Angel_D @ 14.5.2010, 1:41) *
Постановления обязующие хранить чуть ли не логи личек уже давно актуальны, но хоть это благо компенсируется пониманием исполнителей. Из запросов с которыми приходилось сталкиваться - "ник такой-то в такое-то время - какой IP адрес был?" Ответы на такие вопросы формулировкой "нет технической возможности" вполне могут закончится закрытием ресурса, как "несоответствующего требованиям постановления №...".
Проблема решается с помощью переноса хаба на выделенный сервер, находящийся в цивилизованной стране.
Беларусским патриотам
Можете сколько угодно брызгать слюной в монитор по поводу сказанного выше, но мое мнение останется неизменным - государство с ТАКИМИ законами нельзя считать цивилизованным.

Milena
13.5.2010, 22:19 StatPX
API1, API2 | Статистика хаба
Цитата(truth @ 13.5.2010, 21:44) *
Я не про phpbb говорю, а про форумный движок IPB.
Видимо померещилось... ops.gif Но это, по сути, мало что меняет.
Код
                $this->output = toutf8(@file_get_contents("имя_файла"));
                $this->title  = "Статистика хаба";

Не забудь добавить в скрипт функцию преобразования в utf8.
Milena
13.5.2010, 19:35 StatPX
API1, API2 | Статистика хаба
Цитата(Angel_D @ 13.5.2010, 18:34) *
Когда онлайн хаба 3.5-4к и файл базы до метров 9ти-10ти разрастается, начинает складываться ощущение, что сервер только тем и занимается, что работает с этим файлом. Если закрыть Птоху, то она закрываться будет минуту - две. Это нормально, или мне имеет смысл поискать потенциальный конфликт с другими скриптами?
Это нормально - Lua не умеет работать с такими большими объемами данных - вот оно и тупит. Экспериментальным путем было выяснено, что предел скрипта - 50 тысяч записей в базе. При достижении этого предела Lua умирает.

После выхода новой версии слеплю облегченный вариант скрипта - с веб-статистикой, но без статистики ников/IP.


Цитата(truth @ 13.5.2010, 18:40) *
А как насчет интеграции с IPB 3? big_smile.gif Добавляем дополнительную страницу со всей статой хаба.. иными словами: статистика в шаблоне форума (=
Было бы весьма популярно. Понимаю, что это не так легко, но авось выйдет. Как сделать доп. страницу с поддержкой php на IPB 3 уже известно big_smile.gif
Ну, тогда ничего не мешает подгрузить в эту страницу содержимое файла статистики.

Прежде всего, добавляем в скрипт функцию перекодирования cp1251 в utf8 (поскольку мазохистский движок phpbb3 работает именно в этой кодировке, а функция utf8_encode, встроенная в не менее мазохистский язык php, не умеет работать с кодировкой cp1251):
Код
function toutf8 ($txt)  {
    $in_arr = array (
        chr(208), chr(192), chr(193), chr(194),
        chr(195), chr(196), chr(197), chr(168),
        chr(198), chr(199), chr(200), chr(201),
        chr(202), chr(203), chr(204), chr(205),
        chr(206), chr(207), chr(209), chr(210),
        chr(211), chr(212), chr(213), chr(214),
        chr(215), chr(216), chr(217), chr(218),
        chr(219), chr(220), chr(221), chr(222),
        chr(223), chr(224), chr(225), chr(226),
        chr(227), chr(228), chr(229), chr(184),
        chr(230), chr(231), chr(232), chr(233),
        chr(234), chr(235), chr(236), chr(237),
        chr(238), chr(239), chr(240), chr(241),
        chr(242), chr(243), chr(244), chr(245),
        chr(246), chr(247), chr(248), chr(249),
        chr(250), chr(251), chr(252), chr(253),
        chr(254), chr(255)
    );  

    $out_arr = array (
        chr(208).chr(160), chr(208).chr(144), chr(208).chr(145),
        chr(208).chr(146), chr(208).chr(147), chr(208).chr(148),
        chr(208).chr(149), chr(208).chr(129), chr(208).chr(150),
        chr(208).chr(151), chr(208).chr(152), chr(208).chr(153),
        chr(208).chr(154), chr(208).chr(155), chr(208).chr(156),
        chr(208).chr(157), chr(208).chr(158), chr(208).chr(159),
        chr(208).chr(161), chr(208).chr(162), chr(208).chr(163),
        chr(208).chr(164), chr(208).chr(165), chr(208).chr(166),
        chr(208).chr(167), chr(208).chr(168), chr(208).chr(169),
        chr(208).chr(170), chr(208).chr(171), chr(208).chr(172),
        chr(208).chr(173), chr(208).chr(174), chr(208).chr(175),
        chr(208).chr(176), chr(208).chr(177), chr(208).chr(178),
        chr(208).chr(179), chr(208).chr(180), chr(208).chr(181),
        chr(209).chr(145), chr(208).chr(182), chr(208).chr(183),
        chr(208).chr(184), chr(208).chr(185), chr(208).chr(186),
        chr(208).chr(187), chr(208).chr(188), chr(208).chr(189),
        chr(208).chr(190), chr(208).chr(191), chr(209).chr(128),
        chr(209).chr(129), chr(209).chr(130), chr(209).chr(131),
        chr(209).chr(132), chr(209).chr(133), chr(209).chr(134),
        chr(209).chr(135), chr(209).chr(136), chr(209).chr(137),
        chr(209).chr(138), chr(209).chr(139), chr(209).chr(140),
        chr(209).chr(141), chr(209).chr(142), chr(209).chr(143)
    );  

    $txt = str_replace($in_arr,$out_arr,$txt);
    return $txt;
}

Затем загружаем файл статистики, и перекодируем его в UTF8:
Код
$content = toutf8(@file_get_contents("имя_файла"));

После этого в переменной $content будет лежать содержимое файла, перекодированное в UTF8, и мы можем делать с ним все, что душе угодно.
evg, serrrios, Milena, Saymon21
12.5.2010, 23:42 Trivia Mod
API2 | Игра "Викторина"
Прекрасно меняется. Главное - редактировать новую базу адекватным текстовым редактором (виндовый Блокнот таковым не является).
Milena
12.5.2010, 22:06 От: StatPX
От темы с ID: 1269
serrrios

Оно-то можно, только новая версия не за горами, и если после выхода ты захочешь обновиться - придется все переделывать по-новой. Может лучше чуток подождать?
Saymon21
7.5.2010, 4:26 Функции Для Разработчиков
склад полезных функций
Цитата(Ksan @ 6.5.2010, 23:33) *
Не вижу проблему в установке локали - поставил локаль, инвертнул регистр, вернул локаль.
Только работать такая функция будет раза в 2 медленнее, чем те, что выложил я.

PS. Если вам не нравятся функции, выложенные мной - используйте другие. Я выложил их в надежде, что они окажутся полезными кому-нибудь, а вовсе не для того, чтобы развязать холивар.
MIKHAIL
6.5.2010, 16:12 Функции Для Разработчиков
склад полезных функций
Функции преобразования регистров:

Код
function string.lower2(s)
    return s:gsub("([А-Я])",function(str) return string.char(str:byte()+32) end):gsub("Ё", "ё"):lower()
end

function string.upper2(s)
    return s:gsub("([а-я])",function(str) return string.char(str:byte()-32) end):gsub("ё", "Ё"):upper()
end

Работают быстрее, чем все аналогичные функции, выложенные ранее в этой теме.
__________________________________________________

Функция экранирования "волшебных" символов регулярных выражений Lua (собственно, даже не функция, а метод):
Код
:gsub("[%^%$%(%)%%%.%[%]%*%+%-%?]","%%%1")

Метод необходим при использовании произвольных строк в качестве второго аргумента функций string.gsub(), string.match(), string.gmatch(). Пример:
Код
local result = data:gsub(str:gsub("[%^%$%(%)%%%.%[%]%*%+%-%?]","%%%1"),repl)

Стоит напомнить, что в третьем аргументе функции string.gsub() необходимо экранировать символ %, иначе функция будет "съедать" этот символ, или вызывать ошибку "Invalid capture index". Экранирование производится так:
Код
repl:gsub("%%","%%%%")
Nickolya, Alexey, Kingston, Saymon21, MIKHAIL
6.5.2010, 12:44 FireBans
API2 (Linux only) | Баны при помощи фаервола
Андрей JuNiOr

  • Команды фаервола
  • Формат файла автозагрузки

При этом каждый бан будет сопровождаться мельканием консоли.
Milena
3.5.2010, 21:16 Lua-GD
Библиотека для обработки изображений
Цитата(Nickolya @ 2.5.2010, 16:35) *
А релиза либсы со всеми возможностями не предвидется?
Либу с freetype давно собрал, просто забыл выложить. А fontconfig подключить так и не получилось. unhappy.gif

Выложил новую сборку в первом посте
Nickolya, Milena, Kasteill
2.5.2010, 9:30 Скрипт тестирования множеств в регулярных выражениях
Версия Lua: 5.1
Автор: alex82

Описание:
Данный скрипт наглядно демонстрирует, какие символы будут захвачены при использовании тех или иных множеств в регулярных выражениях Lua.

Пример
%a => A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z
%c => \0 \1 \2 \3 \4 \5 \6 \a \b \t \n \v \f \r \14 \15 \16 \17 \18 \19 \20 \21 \22 \23 \24 \25 \26 \27 \28 \29 \30 \31 
%d => 0 1 2 3 4 5 6 7 8 9
%l => a b c d e f g h i j k l m n o p q r s t u v w x y z
%p => ! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~
%s => \t \n \v \f \r <space>
%u => A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
%w => 0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z
%x => 0 1 2 3 4 5 6 7 8 9 A B C D E F a b c d e f
%z => \0

[attachment=4459:capture_test.lua]
Nickolya, intlive, Ksan, Milena, Saymon21, X-Sky, MIKHAIL
16.4.2010, 14:11 Нужен скрипт freshstuff под PtokaX 0.4.1.2
Нужен нормально работающий скрипт freshstuff под PtokaX 0.4.1.2
Решение проблемы предельно простое - перейти обратно на 0.4.1.1 big_smile.gif
мамин_парень
15.4.2010, 20:48 Setting Saver
API2 | Сохраняет настройки хаба
Малость доработал скрипт - добавил функции сохранения профилей и скриптов.

[attachment=4392:Settings_saver.lua]
Tsd, Артём, HackFresse, Kingston, Saymon21, X-Sky, Enyby, random name, forZejkee, Kar@bas
15.4.2010, 17:04 FireBans
API2 (Linux only) | Баны при помощи фаервола
Доступна версия 1.01

Изменения:

* В сообщениях о бане теперь отображется причина бана.
* При бане iptables блокирует только порты, используемые хабом.
* Добавлена возможность временного бана.
Milena
15.4.2010, 0:59 FireBans
API2 (Linux only) | Баны при помощи фаервола
FireBans

Версия: 1.01
Версия API: API2
Системные требования: iptables
Совместимость с Windows: нет
Автор: alex82 (Пинки в зад и ковыряние linux'а by mariner) big_smile.gif

Описание:
Скрипт позволяет банить юзеров при помощи фаервола. Для забаненного юзера такой бан выглядит весьма забавно - как будто по данному адресу нет хаба. Равно как и всех остальных ресурсов, находящихся на этой машине.

ВНИМАНИЕ! Для нормальной работы скрипта, необходимо добавить файл, указанный в переменной tCfg.File в автозапуск.

[attachment=4386:FireBans_1.01.7z]

Старые версии:
[attachment=4383:FireBans_1.00.rar]

PS. Если, несмотря на жирный красный шрифт, все же найдутся люди, которые захотят потестить скрипт под Windows, то я настоятельно рекомендую им закомментировать строки 95 и 109.

PPS. Все вопросы, касающиеся настройки Linux'а, адресовать mariner'у
Nickolya, Tsd, mariner, Ksan, Артём, Milena, Saymon21, andromed, MIKHAIL, мамин_парень
12.4.2010, 19:29 Отправка сообщений в диапазон IP
Угу, начудил...

Зачем было пихать проверку диапазона в функцию обработки rss? В ней нету таблицы user, да и результат работы она засовывает в сообщение дня птоки. А оно глобальное, т.е одинаковое для всех, вне зависимости от диапазона.

Как я понимаю, ты хочешь отправлять данные, полученные из rss-потока, юзерам из локалки при входе? Если да, то так делать нельзя:
Код
            local ip = user.sIP:iptonumber()
            for _,range in ipairs(tLocal) do
            if range[1] <= ip and ip <= range[2] then
            if DoMotd and Motd ~= "" then SetMan.SetMOTD(Motd.."\n\n\t"..s) end

Почему нельзя - написано одним абзацем выше.

SAG
11.4.2010, 18:42 Отправка сообщений в диапазон IP
http://mydc.ru/topic3167.html
http://mydc.ru/topic2816.html

PS. Совсем забыл - проверяемый айпи тоже нужно перевести в числовой формат
Код
local ip = user.sIP:iptonumber()
for _,range in ipairs(tLocal) do
    if range[1] <= ip and ip <= range[2] then
        -- Здесь выполняются действия, необходимые только для указанных диапазонов
        break
    end
end
valdis73, Saymon21
11.4.2010, 9:48 Отправка сообщений в диапазон IP
Цитата(SAG @ 11.4.2010, 7:16) *
Да и вообще, как это делается в скриптах?

Создаем таблицу с диапазонами:
Код
tLocal = {
    {"10.0.0.0","10.255.255.255",},
    {"172.16.0.0","172.31.255.255"},
    {"192.168.0.0","192.168.255.255"},
}

При запуске скрипта преобразовываем адреса в числовой формат:
Код
function OnStartup()
    for i in ipairs(tLocal) do
        tLocal[i][1] = tLocal[i][1]:iptonumber()
        tLocal[i][2] = tLocal[i][2]:iptonumber()
    end
end

Ну а дальше остается проверить принадлежность IP-адреса к одному из диапазонов:
Код
for _,range in ipairs(tLocal) do
    if range[1] <= ip and ip <= range[2] then
        -- Здесь выполняются действия, необходимые только для указанных диапазонов
        break
    end
end

Ну и, разумеется, нужна функция преобразования адреса в числовой формат:
Код
function string.iptonumber(ip)
    local i1, i2, i3, i4 = ip:match("^(%d+)%.(%d+)%.(%d+)%.(%d+)$")
    if i1 then
        return i1*16777216+i2*65536+i3*256+i4
    end
end

Saymon21
29.3.2010, 23:44 Userbars
API2 | Персональные юзербары пользователей
Цитата
Я уже предлагал такую идею, но видимо про неё забыли
Про нее не забыли, на нее положили прибор. big_smile.gif Ибо веб-морда скрипту нафиг не нужна - он прекрасно и без нее работает.
Milena
28.3.2010, 20:37 Anekbot
API2 | Анекдоты из Интернета
Цитата(((((F@UST)))) @ 28.3.2010, 19:29) *
здесь на форуме я скачивал две библиотеки,и только одна мне подошла.Почему так???
Видимо, вторая была предназначена для РусХаба.

К PtokaX 0.4.x.x подходят только те библиотеки, которые были скомпилированы специально для нее. Даже не пытайся подсовывать ей либы от PtokaX 0.3.x.x, RusHub'а, Lua-AIO, и.т.д.
Milena
27.3.2010, 21:43 RusRC
Графический интерфейс для управления RusHub'ом
Исправил эту ошибку, и еще несколько не менее идиотских ошибок.

Перезалил серверную часть.
Milena, Saymon21
27.3.2010, 21:03 RusRC
Графический интерфейс для управления RusHub'ом
Действительно странно. Особенно если учесть что Lua не может создавать сообщения об ошибках со словом "mistakes". Можешь убедиться в этом сам, пробежавшись поиском по исходникам.





PS. Кажись я понял в чем причина. Я забыл убрать подключение lfs beated.gif .

Попробуй удалить
Код
require"lfs"

Milena, Saymon21
27.3.2010, 20:44 RusRC
Графический интерфейс для управления RusHub'ом
Цитата(Saymon @ 27.3.2010, 19:37) *
В смысле???
В прямом. Голый RusHub версии 2.1.5 такое не выдает.

Цитата(Saymon @ 27.3.2010, 19:37) *
Клиент даже к хабу не подключается.
Естественно. Перед тем как подключаться к хабу, нужно запустить серверный скрипт.

PS. Попробуй запустить на голом хабе.

Milena
27.3.2010, 19:40 RusRC
Графический интерфейс для управления RusHub'ом
RusRC
RusHub Remote Control

Серверная часть:
Версия: 1.00 beta
Системные требования: RusHub 2.1.5, Lua Plugin 1.16


Клиентская часть:
Версия: 1.00 beta

Автор: alex82 (основано на PtokaX Remote Administration v2.12 by Hungarista)

Описание: Программный комплекс, предназначенный для управления RusHub'ом, состоящий из двух частей:
•Серверная часть. Представляет собой скрипт, устанавливаемый на хаб.
•Клинетская часть. GUI-приложение, с помощью которого и производится удаленное управление хабом
Клиентская программа подключается к хабу как обычный DC-клиент. Следовательно, клиент и хаб могут находиться на разных машинах.

Возможности:
•Просмотр главного чата.
•Управление настройками хаба и скриптами.

Дополнительная информация:
Расширение протокола, используемое программой
$SHELLO - Команда, сообщающая хабу о том, что к нему подключился клиент удаленного управления. В ответ хаб должен отправить команду $SHELLO, список настроек, и список скриптов.

$SGET - Запрос файлов и информации о настройках.
1 - Информация о настройках хаба.
2 - Информация о скриптах.
4 - Запрос скрипта. Пример: $SGET 4 <имя файла>.

$SSET - Управление настройками и файлами.
1 - Управление настройками хаба. Пример: $SSET 1 <имя_параметра_1>$<значение параметра 1>$$<имя_параметра_2>$<значение параметра 2>$$
2 - Информация о скриптах. Пример: $SSET 2 <имя скрипта 1>:<состояние (0 или 1)>$<использование памяти>$$<имя скрипта 2>:<состояние (0 или 1)>$<использование памяти>$$
3 - Управление скриптами. Пример: $SSET 3 <имя скрипта>:<UP/DOWN/ON/OFF/RS>
4 - Передача файла скрипта. Пример: $SSET 4 <имя скрипта>:<содержимое файла>

$SERR - Сообщение об ошибке
1 - Клиент использует неподдерживаемую версию протокола удаленного управления.
2 - Отказано в доступе.
3 - Ошибка при применении параметра настроек.
4 - Ошибка при изменениии состояния скрипта. Пример: $SERR 4 <имя скрипта>:<UP/DOWN/ON/OFF/RS>
5 - Синтаксическая ошибка в скрипте.
6 - Ошибка при чтении файла скрипта.
7 - Ошибка при сохранении файла скрипта.


[attachment=4306:RusRC_Se...00_beta2.rar]
[attachment=4302:RusRC_1.00_beta.rar]

Убедительная просьба сообщать обо всех найденных ошибках.
Nickolya, Setuper, Invisible, Артём, valdis73, KT315, Drakula, Kingston, Milena, Saymon21
7.3.2010, 20:19 Помогите пожалуйста отладить скрипт FileSearch
У тебя есть 2 варианта:

  • Вписать IP в настройки хаба
  • Вписать IP непосредственно в скрипт:
    Код
    H,I,P = SetMan.GetString(0),Core.GetHubIP(),SetMan.GetString(4)
    вместо Core.GetHubIP() пишешь "твой IP"
Saymon21
7.3.2010, 15:17 CountryStats
API2 | Статистика местоположения пользователей по странам
Цитата(DrakonSP @ 6.3.2010, 20:14) *
Всё таки работает...
Если не заносить диапазон IP-адресов 89.222.212.0 по 89.222.215.255 в список локальных, то например IP-адрес 89.222.214.82 определяет как "Россия"
Если же внести этот диапазон в список локальных IP-адресов, то этот же IP-адрес определяется как "Локальная сеть"
Мдя, скрипт просто притягивает к себе разного рода чертовщину.
Как следует из этого куска кода:
Код
            local country = IP2Country.GetCountryCode(v.sIP)
            if country == "??" then
                local ip = v.sIP:iptonumber()
                for _,range in ipairs(tLocal) do
                    if range[1] <= ip and ip <= range[2] then
                        country = "LN"
                        break
                    end
                end
            end

принадлежность к локальным диапазонам проверяется ТОЛЬКО в том случае, если не удалось узнать страну юзера посредством IP-To-Country. Но несмотря на это, у одного юзера скрипт умудряется работать по совершенно другим алгоритмам dribble.gif . Чертовщина, однако.

PS. Может его святой водой окропить?


Цитата(DrakonSP @ 6.3.2010, 20:14) *
А как же на счёт:

Цитата(DrakonSP @ 4.3.2010, 14:13)
А возможно ли добавить функцию, чтобы можно было посмотреть к какой стране относиться юзер и просмотр юзеров относящихся к определёной стране.
Соответственно добавив менюшку
"проверить страну юзера" - вводишь ник юзера и узнаёшь его страну
"юзеры страны" - вводишь страну и узнаёшь список юзеров относящихся к этой стране
Можно.

Можно даже банить страны big_smile.gif . Если будет настроение - займусь.
Milena
6.3.2010, 18:55 CountryStats
API2 | Статистика местоположения пользователей по странам
Saymon

Под РусХабом оно сможет работать только с использованием MySQL.

Может займусь чуть позже, когда закончу гуевину для РусХаба.
Milena, Saymon21
6.3.2010, 17:50 StatPX
API1, API2 | Статистика хаба
Цитата(Chumaster59 @ 5.3.2010, 21:02) *
Если стоит шаблон по умолчанию то обновляется всё кроме hubstat.htm (((
Кто что скажет об этом глюке ?
Это не глюк, а невнимательность.
Код
    {"По умолчанию","default","",true,false},    --1. - Название скина. 2. - Папка скина. 3. - URL файлов скина. 4. - Добавлять к страницам "шапку" и "подвал". 5. - Дополнительная страница общей статистики
Как видишь, дополнительная страница отключена.

Milena
4.3.2010, 0:59 Sourcemon
API2 | Мониторинг игровых серверов Source и GoldSource
Цитата(CraZy @ 2.3.2010, 20:24) *
как убрать повторения слов

=====================================================================
CS: Source - Public (--------------:27017) - Counter-Strike: Source, Counter-Strike: Source
Карта: de_train. Игроков: 0/22.
Для получения подробной информации введите !serv 3
=====================================================================

В 135 строке заменить
Код
if tInfo[i].Game then

на
Код
if tInfo[i].Game and tInfo[i].Game ~=(tInfo[i].Descr or "?") then

Цитата(CraZy @ 2.3.2010, 20:24) *
так же оч интересует как допесать инфу:

=====================================================================
CS 1.6 - Public (---------------:27016) - Counter-Strike (А надо Counter-Strike 1.6)
Карта: cs_estate. Игроков: 0/22.
Для получения подробной информации введите !serv 2
=====================================================================
Заранее благодарен!

В 138 строке заменить
Код
msg = msg..(tInfo[i].Descr or "?").."\n"..sTab

на
Код
msg = msg..((tInfo[i].Descr or "?") == "Counter-Strike" and "Counter-Strike 1.6" or (tInfo[i].Descr or "?")).."\n"..sTab


Цитата(foXDEvil @ 3.3.2010, 18:20) *
хотелось бы чтобы скрипт в неё сам пиарил допустим каждые 15 минут =) как такое можно сделать?
Для этого нужно объединить данный скрипт со скриптом чат-комнат.
Или, как вариант, приспособить ОпЧат под игровую комнату dribble.gif .
Milena
3.3.2010, 17:19 CountryStats
API2 | Статистика местоположения пользователей по странам
CountryStats

Версия: 1.00
Версия API: API2
Автор: alex82

Описание:
Скрипт отображает статистику местоположения пользователей по странам. Статистика может отсылаться как при входе юзера на хаб, так и по команде.

Скриншот:
[attachment=4157:screenshot.gif]

ВНИМАНИЕ! Перед использованием скрипта необходимо установить базу данных IP-to-Country - http://ip-to-country.webhosting.info/downl...country.csv.zip. Для установки нужно извлечь содержимое архива в папку cfg, после чего перезапустить PtokaX.

[attachment=4156:CountryStats_1.00.rar]
Nickolya, Tsd, Invisible, Артём, Accelerator, DrakonSP, xRayNeo, Milena, Saymon21, TiGRpp, @_JuNiOr_@, STIVAN
3.3.2010, 10:51 HelloBot
API2 | Скрипт приветствий
HelloBot

Версия: 1.00
Версия API: API2
Автор: alex82

Описание:
Данный скрипт позволяет устанавливать приветствия/прощания, автоматически отправляемые в главный чат при входе/выходе юзеров. Доступны два вида приветствий:
*Случайные, отправляемые в чат при входе/выходе любого юзера с указанным профилем. Приветствия данного типа устанавливаются администраторами и операторами хаба.
*Пользовательские приветствия/прощания.

В скрипте имеется система антифлуда - приветствия и прощания отправляются в чат с задержкой. Если в течение этого промежутка времени отключившийся юзер вернулся на хаб (читай переподключился), прощание и приветствие не отправляются.

[attachment=4155:HelloBot_1.00.rar]
BIMMER71, Invisible, Milena, Тёмич, доктор ливси, shur49, 111222, zeusby
26.2.2010, 16:12 CopyCrop
Пакетная обработка изображений
Название: CopyCrop
Версия: 1.00

Совместимость с дистрибутивами Lua:
Lua/LuaForWindows: нет
Lua-AIO: да

Совместимость с операционными системами:
Windows XP: да
Windows Vista/Windows 7: ?
Linux: ? (теоретически возможно, но нет возможности проверить)

Автор: alex82

Описание:
Программа предназначена для пакетной обработки изображений - урезания, уменьшения размеров и наложения логотипа. Поддерживаемые форматы конвертируемых изображений: JPEG, PNG; поддерживаемые форматы логотипов: JPEG, PNG, GIF.

Особенности программы:
*Функция урезания изображения отрезает указазанное число пикселов от края изображения, в отличие от других программ, умеющих обрезать только до указанного размера (собственно, ради этой функции программа и писалась).
*При конвертировании сохраняется структура папок.

Недостатки:
*Низкое быстродействие (по сравнению с аналогичными программами, написанными на C/C++).
*Нет возможности выбрать алгоритм ресайза.

Как запустить:
В целях экономии места на хостинге, в дистрибутиве присутствует только файл программы (читай скрипт). Следовательно, для того, чтобы запустить программу, необходимо сделать следующее:
*Скачать дистрибутив Lua-AIO отсюда: http://luaforge.net/projects/luaaio/ , и извлечь его в любую удобную папку.
*Извлечь файл copycrop.lua в папку Lua-AIO.
*Создать копию хост-программы Lua-AIO (lua.exe), и присвоить ей имя copycrop.exe.
*Запустить copycrop.exe

Скриншот:
[attachment=4131:screenshot.gif]

Скачать:
[attachment=4132:CopyCrop_1.00.rar]
Nickolya, Invisible, Milena, Saymon21
1.2.2010, 4:13 Переименовка Ptokax Dc Hub 0.3.6.0
можно ли переименовать
Цитата(bonch @ 31.1.2010, 22:22) *
Вышла 0.4.1.2. Уважаемые, киньте PtokaX.exe с отключённым by me.
Что такое by me я не знаю, what.gif а птоку с отключенной проверкой целостности могу выложить.

[attachment=4001:PtokaX_nocrc.rar]

super_man.gif
Drakula
31.1.2010, 17:08 StatPX
API1, API2 | Статистика хаба
Цитата(Saymon @ 31.1.2010, 15:57) *
"сделать хардлинк" - что это такое? как работает? как поставить?
Гуглишь на тему "hardlink shell extension", ставишь к себе на комп, перезагружаешься. Потом тыркаешь правой кнопкой на папке и жмешь "Pick link source", переходишь в папку, в которой должна быть вторая директория веб-статистики, и снова тыркаешь правой кнопкой - Drop as... --> Junction. Если ты все сделал правильно, то папка веб-статистики будет находиться в двух местах одновременно.

PS. Данный способ работает только в пределах одного раздела NTFS.
Milena, Saymon21
31.1.2010, 16:55 StatPX
API1, API2 | Статистика хаба
Saymon

Сделать такое средствами StatPX затруднительно - прийдется значительную часть кода переписать. Есть куда более простой способ - если у тебя Windows, и файлы сохраняются на раздел NTFS, то можно сделать хардлинк.
Milena, Saymon21
31.1.2010, 16:47 Registrator
API2 | Скрипт регистрации
Цитата(Gate001 @ 27.1.2010, 20:53) *
Ситуация такая-нужно, чтобы функция запрета регистрации многих пользователей с одного ip работала для всех, кроме определенных ip адресов

Меняешь строку 133
Код
        if tCfg.OneNickIP and tNickIP[user.sIP] then

на эту:
Код
        if tCfg.OneNickIP and tNickIP[user.sIP] and not tMultipleReg[user.sIP] then

После чего можно добавлять IP-адреса в таблицу tMultipleReg:
Код
tMultipleReg = {
    ["123.123.123.123"] = true
    ["111.111.111.111"] = true
}
Milena
29.1.2010, 23:43 Lua 5.2
тестовый вариант
Цитата
Функции table.maxn больше нету. Если вам она необходима, напишите её на lua.

Идиотизм, чесслово. Кому она мешала?

И вообще, в чейнджлоге только и видно, что "Удалено-Переименовано", "Переименовано-Удалено". А что добавлено-то? Это больше напоминает имитацию бурной деятельности, чем разработку.

PS. Переименовывать и кромсать мы и сами могем, даже при полном незнании С/С++.
Invisible, Ksan
20.1.2010, 0:57 StatPX
API1, API2 | Статистика хаба
Версия 1.04a - исправлены все ошибки, замеченные в версии 1.04 (см. предыдущие сообщения). Ссылка на скачивание - в первом посте.

Цитата
Неделю тестирую не замечал ничего подобнова
Какая методика тестирования?

PS. Если очень хочется отправлять сообщение дня до полного входа юзера на хаб, то в функцию ValidateNickArrival нужно вынести код, отвечающий только за отправку сообщения, а не тащить туда всё подряд:

Код
if bSendMOTD then
    function ValidateNickArrival(user)
        Core.GetUserAllData(user)
        if LastUpdate+iUpdateTime*60 <    os.time(os.date("*t")) then
            UpdateUserStats()
        end
        msg = GetMOTD(user)
        Core.SendToUser(user,"<"..sBot.."> "..msg)
    end
end


Milena
20.1.2010, 0:36 StatPX
API1, API2 | Статистика хаба
Saymon

Цитата
находим 81 строку function UserConnected(user) и заменяем на function ValidateNickArrival
Так делать нельзя - статистика будет искажаться, и нагрузка на хаб повысится.

Цитата
Заменить StatNick на SearchNick

Цитата
После Мая идёт Июнь, а у Вас Июль =))

Мдя, много идиотских ошибок я умудрился наделать... Надо будет новую версию склепать.
Milena
12.1.2010, 4:21 StatPX
API1, API2 | Статистика хаба
DrakonSP
Первое число - хабы, на котором юзер зарегистрирован, второе - не зарегистрирован, третье - оператор. Соответственно, для того, чтобы отображалось одно число, надо сложить три big_smile.gif .

Код
            local h1,h2,h3 = Tag:match("H:(%d+)/(%d+)/(%d+),")
            if h1 then
                hubs = tonumber(h1)+tonumber(h2)+tonumber(h3)
            end
DrakonSP, Milena
10.1.2010, 23:37 Lua-AIO
Дистрибутив Lua, предназначенный для создания приложений
Вот кусок кода из того самого пингера, о котором я говорил (некоторые фрагменты удалены, дабы не отвлекать от самой сути):
Код
    [2] = function()
        tData.NumHubs = 0
        local hubs,num = {},0
        local cur = con:execute(("SELECT address,port FROM %shubs WHERE `pinged`<%s AND `special`=0"):format(tMySQL.Prefix,os.time()-tCfg.RePingTime*3600))
        local address,port = cur:fetch()
        while address do -- В этом цикле мы разбиваем таблицу хабов на несколько. Число таблиц равно числу ветвей
            tData.NumHubs = tData.NumHubs+1
            num = num+1
            if num > tCfg.PingThreads then num = 1 end
            if not hubs[num] then hubs[num] = {} end
            table.insert(hubs[num],{address,port or 411})
            address,port = cur:fetch()
        end
        -- Тут был кусок кода, отвечающий за общие элементы интерфейса
        local threads,dist,progr = tCfg.PingThreads,34,180
        if threads > #hubs then threads = #hubs end
        GUI.Status,tTh = {},{}
        for i = 1,threads do -- В этом цикле мы создаем ветви, которые и будут пинговать хабы
            GUI.Status[i] = {}

            -- Тут был кусок кода, отвечающий за элементы интерфейса каждого потока.
            tTh[i] = {}
            tTh[i].Env = luasql.mysql()
            tTh[i].Con = assert(tTh[i].Env:connect(tMySQL.DB,tMySQL.User,tMySQL.Pass,tMySQL.Host))
            tTh[i].Con:execute("SET NAMES "..tMySQL.Charset)
            tTh[i].ThID = ThreadCreate(PingThread,{i,hubs[i]}) -- Тут, собственно, и создается ветвь. В качестве аргументов передается номер ветви, и её персональная таблица хабов
        end
        GUI.StatusPanel:SetScrollbars(1, dist, 1, threads, 0, 0, false)
    end,
Nickolya, Invisible, Milena
10.1.2010, 22:22 Lua-AIO
Дистрибутив Lua, предназначенный для создания приложений
Nickolya
Преимущество многопоточности - не изолированность, а независимость скрипта (да и, в общем-то, самой хост программы, под управлением которой работает этот скрипт) от времени выполнения определенных функций в тех случаях, когда время выполнения этих функций ограничено не производительностью компа, а чем-то иным.

Ты ведь наверняка замечал подвисания PtokaX при использовании на ней скриптов, использующих библиотеку сокетов. А ведь этого можно избежать, если запускать функции, отвечающие за получение информации из сети, в отдельной ветви.

В качестве другого примера могу привести твой пингер хабов. Вот скажи - может ли он пинговать несколько хабов одновременно? Могу поспорить что нет. А мой может, поскольку использует многопоточность.

Также не стоит забывать, что Lua-AIO используется для создания программ с графическим интерфейсом, и использование ветвей позволяет избежать подвисания GUI во время выполнения продолжительных и ресурсоемких фрагментов кода.
Milena
10.1.2010, 5:52 Lua-AIO
Дистрибутив Lua, предназначенный для создания приложений
Lua-AIO (Lua All-in-One) представляет собой пакет для написания программ на Lua, созданный по принципу "Всё в одном". Пакет включает в себя практически все библиотеки, которые могут понадобиться при написании приложений.

В состав пакета входят:
Хост-программа Lua-AIO (lua.exe) - приложение, позволяющее запускать Lua-скрипты. Отличия от хост-программы из официального дистрибутива Lua:
  • Возможность использовать функции многопоточности операционной системы.
  • Возможность установки приложения как системной службы.
  • Функция обработки ошибок.
Встроенные функции
Функции:

Код
thid = ThreadCreate(function, {args,...})
Создает ветвь для выполнения функции "function" с аргументами "args,...". Функция возвращает идентификатор ветви "thid".

Код
ThreadDestroy(thid)
Уничтожает ветвь "thid", созданную при помощи функции ThreadCreate.

Код
ThreadWait(msec)
Приостанавливает ветвь на "msec" миллисекунд.

Код
ThreadNewMutex()
Создает мьютекс (mutex), который может быть использован при помощи функций ThreadLockMutex и ThreadUnlockMutex.

Код
ThreadLockMutex(mutex)
Блокирует совместный доступ к указанному мьютексу (предварительно созданному при помощи функции ThreadNewMutex)

Код
ThreadUnlockMutex(mutex)
Разрешает совместный доступ к указанному мьютексу (предварительно созданному при помощи функции ThreadNewMutex)

Код
ThreadDestroyMutex(mutex)
Уничтожает мьютекс


События:

Код
function OnError(msg) ... end
Вызывается при возникновении ошибки в скрипте.

Код
function OnStop() ... end
Вызывается при получении kill-сигнала при использовании под Linux, а также при остановке службы Windows.
Параметры командной строки
-v: Показать версию Lua-AIO
-d: Режим отладки. В этом режиме Вы можете отправлять сообщения в отладочное окно при помощи функции print().
-t: Запустить тест. С этим параметром программа будет запущена в консольном режиме.
-i: Установить программу как системную службу.
-u: Удалить службу.
-c <имя файла>: Компилировать указанный скрипт.
<имя файла>.lua: Запустить указанный скрипт

Библиотеки:
Раскрывающийся текст
base64: Предназначена для форматирования данных в соответствии со стандартом MIME.
Сайт: http://www.tecgraf.puc-rio.br/~lhf/
Автор: Luiz Henrique de Figueiredo


bc: Библиотека больших чисел, основанная на исходном коде GNU bc
Сайт: http://www.tecgraf.puc-rio.br/~lhf/ftp/lua/
Автор: Luiz Henrique de Figueiredo


ber: Simple Basic Encoding Rules (BER) of Abstract Syntax Notation One (ASN.1)
Автор: Nodir Temirhodzhaev


bit: bitlib. Операции с битами
Сайт: http://luaforge.net/projects/bitlib/
Автор: Reuben Thomas


bz2: bzip2 и libbzip2. Сжатие данных.
Автор: Julian R Seward


cd: CD (Canvas Draw) Кроссплатформенная графическая библиотека.
Сайт: http://luaforge.net/projects/cdlib/
Автор: Antonio Scuri


crypto: Интерфейс к криптографической библиотеке OpenSSL.
Сайт: http://luaforge.net/projects/luacrypto/
Автор: Keith Howe, Enrico Tassi


curl: Lua-cURL library.
Сайт: http://luaforge.net/projects/lua-curl/
Автор: Jьrgen Hцtzel


dc: Библиотека, реализующая некоторые функции протоколов NMDC и ADC

des56: (часть библиотеки md5) Криптографическая библиотека для Lua.
Сайт: http://luaforge.net/projects/md5/
Автор: Andre Carregal, Tomas Guisasola, Danilo Tuler, Fabio Mascarenhas


extend: Расширяет некоторые функции Lua.
Автор: Arnaud Le Ber


gd: Библиотека для обработки изображений, основанная на библиотеке GD от Thomas Boutell.
Сайт: http://luaforge.net/projects/lua-gd/
Автор: Alexandre Erwin Ittner


geoip: Реализует некоторые функции geoIP
Сайт: http://www.maxmind.com/
Автор: MaxMind LLC


gzip: Доступ к функциям библиотеки gzip
Сайт: http://mega.ist.utl.pt/~tngd/lua/
Автор: Tiago Dionizio


he3: Реализует функции декодирования Хаффмана
Автор: Jan Vidar Krey


hpdf: Библиотека для создания PDF-файлов.
Сайт: http://luaforge.net/projects/luahpdf/
Автор: Kurt Jung


iconv: Библиотека, предназначенная для преобразования текста из одной кодировки в другую.
Сайт: http://lua-iconv.luaforge.net/
Автор: Alexandre Erwin Ittner


im: IM is a toolkit for Digital Imaging.
Сайт: http://luaforge.net/projects/imtoolkit/
Автор: Antonio Scuri


irr: Irrlicht (Irrlicht Engine) — трёхмерный графический движок.
Сайт: http://irrlua.sourceforge.net/
Автор: Josh Turpen


iup: IUP Переносимый тулкит для создания графического интерфейса.
Сайт: http://luaforge.net/projects/iup/
Автор: Antonio Scuri


lfs: Реализует функции для работы с файловой системой
Сайт: http://www.keplerproject.org/luafilesystem
Автор: Roberto Ierusalimschy, Andrй Carregal and Tomбs Guisasola


lpeg: pattern-matching library based on Parsin Expression Grammars (PEGs)
Сайт: http://www.inf.puc-rio.br/~roberto/lpeg/
Автор: Roberto Ierusalimschy


lualdap: Простой интерфейс к LDAP-клиенту
Сайт: http://www.keplerproject.org/lualdap/index.html
Автор: Andre Carregal, Alessandro Hecht, Danilo Tuler, Leonardo Godinho, Luis Eduardo Jason Santos and Tomas Guisasola


lxp: SAX XML-парсер, основанный на библиотеке Expat
Сайт: http://www.keplerproject.org/luaexpat/
Автор: Roberto Ierusalimschy, Andrй Carregal and Tomбs Guisasola


md5: Криптографическая библиотека для Lua
Сайт: http://luaforge.net/projects/md5/
Автор: Andre Carregal, Tomas Guisasola, Danilo Tuler, Fabio Mascarenhas


mysql: Библиотека для работы с БД MySQL.
Сайт: http://luaforge.net/projects/luasql/
Автор: Roberto Ierusalimschy, Andrй Carregal and Tomбs Guisasola


ntlua: (Windows only) create Windows NT administration and logon scripts.
Сайт: http://luaforge.net/projects/ntlua/
Автор: Antonio Scuri


pg: Библиотека для работы с БД PostgreSQL
Сайт: http://luaforge.net/projects/luapgsql/
Автор: Stefan


ploticus: Пакет ПО для создания графиков из набора данных.
Сайт: http://ploticus.sourceforge.net/
Автор: Steve Grubb


profiler: time profiler designed to help finding bottlenecks on your Lua program.
Сайт: http://luaprofiler.luaforge.net/
Автор: Luiz Silveira, Miguel Osуrio, Fбbio Mascarenhas, with the help of Andrй Carregal, Tomбs Guisasola and Danilo Tuler


rexlib: Библиотека реализует функции, позволяющие использовать две основные системы регулярных выражений : posix и pcre.
Сайт: http://lrexlib.luaforge.net/
Автор: Reuben Thomas and Shmuel Zeigerman


sdl: Позволяет использовать часть функций библиотеки SDL: the SDL, SDL_image, SDL_mixer, SDL_net and SDL_ttf.
Сайт: http://luaforge.net/projects/luasdl/
Автор: Kein-Hong Man


serial: Позволяет использовать параллельный порт ПК.
Автор: Arnaud Le Ber


snmp: Реализует функции, необходимые для создания SNMP-клиента. Основана на библиотеке NET-SNMP.
Сайт: http://luaforge.net/projects/luasnmp/
Автор: Herbert Leuwer


socket: Библиотека для работы с сокетами. Реализует доступ к TCP, UDP, DNS, SMTP, FTP, HTTP, MIME.
Сайт: http://luaforge.net/projects/luasocket/
Автор: Danilo Tuler, Diego Nehab


sqlite: Библиотека для работы с БД SQLite 2.
Сайт: http://luaforge.net/projects/luasqlite/
Автор: Tiago Dionizio


sqlite3: Библиотека для работы с БД SQLite database 3.
Сайт: http://www.nessie.de/mroth/lua-sqlite3/index.html
Автор: Michael Roth


ssl: Создание TLS/SSL-соединений с использованием библиотеки socket.


tcps: Библиотека для создания TCP-серверов
Сайт: http://www.summerblue.net/computing/libiocp/index.html for windows and "epoll" for Linux.


th: Алгоритмы Tiger Hash


tth: Алгоритмы TigerTree Hash


udps: Библиотека для создания UDP-серверов
Автор: Arnaud Le Ber


uname: retrieve some machine specific information
Автор: Arnaud Le Ber


unicode: support for ASCII, LATIN and UTF-8 unicode
Сайт: http://luaforge.net/projects/sln/
Автор: Klaus Ripke


wx: Многофункциональная кроссплатформенная библиотека, основанная на wxWidgets. Основное назначение - создание графического интерфейса приложений.
Сайт: http://wxlua.sourceforge.net/
Автор: Francesco Montorsi


xml: Парсер XML-файлов, основанный на Tiny XML 2.5.2
Сайт: http://sourceforge.net/projects/tinyxml/
Автор: Lee Thomason + Arnaud Le Ber


zip: Чтение содержимого zip-архивов
Сайт: http://www.keplerproject.org/luazip/
Автор: Danilo Tuler


zlib: Использование функций библиотеки zlib
Сайт: http://mega.ist.utl.pt/~tngd/lua/
Автор: Tiago Dionizio


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


Скачать последнюю версию версию дистрибутива можно с официальной страницы проекта

Файл справки (формат CHM) можно скачать отсюда
Справка в формате HTML: [attachment=3865:luaaio_doc.rar]

Дополнительно:
Как запустить скрипт под Lua-AIO
Имеются как минимум три способа запустить Ваш скрипт под Lua-AIO:
Первый (и самый очевидный): При запуске хост-программы указываем имя скрипта в качестве параметра командной строки. Например:
Код
"C:\luaaio\lua.exe" C:\scripts\myscript.lua

При этом можно использовать относительный путь. Т.е. если Ваш скрипт лежит в папке Lua-AIO, то запустить его можно так:
Код
"C:\luaaio\lua.exe" myscript.lua

Разумеется, если имя скрипта содержит пробелы, его необходимо заключить в кавычки.

Второй (плавно вытекающий из первого): Тупо перетащить Ваш скрипт на иконку lua.exe. Результат ничем не отличается от предыдущего, с той лишь разницей, что при этом совершается меньше телодвижений.

Третий способ (правильный): присвоить хост-программе имя Вашего скрипта. Например, если скрипт зовется "myscript.lua", то необходимо переименовать lua.exe в myscript.exe. Данный способ имеет одно очень важное преимущество - при попытке запуска скрипта, содержащего грубую синтаксическую ошибку, хост-программа выдаст сообщение, содержащее подробную информацию о характере ошибки. При использовании первых двух способов, приложение закроется молча, и Вам прийдется самостоятельно выяснять причину незапуска скрипта.
Программы, созданные с использованием Lua-AIO
Nickolya, Tsd, Invisible, Milena, Saymon21, MIKHAIL
9.1.2010, 20:56 StatPX
API1, API2 | Статистика хаба
Цитата(Gate001)
Все шаблоны отрабатывают четко и пишут инфу в файлики. Все, кроме топа хабберов.
В логах ошибок как скрипта так и хаба пусто
Ошибка в функции OnStartup:
Код
function OnStartup()
    sBot = SetMan.GetString(21)
    HubName = SetMan.GetString(0)

    if loadfile(fOnline) then dofile(fOnline) end
    TmrMan.AddTimer(60000,"MainTimer")
    TmrMan.AddTimer(iSave*60000,"Save")
    TmrMan.AddTimer(iCleanMemory*60000,"CleanMemory")
    UpdateOnline()
    UpdateHubStats()
    if bSendMOTD then
        LoadMOTD()
    end
    if WebStat then
        TmrMan.AddTimer(WebStatUpdate*60000,"WebTimer")
        TmrMan.AddTimer(TopHubbersUpdate*60000,"BuildTopHubbers")
        if AllowChangeSkins and loadfile(fTplConfig) then
            dofile(fTplConfig)
        end
        LoadTemplates()
        if next(tUserStat) then
            BuildTopHubbers()
        end
        BuildWebStat()
    else
        UpdateUserStats()
    end
end

меняем на:
Код
function OnStartup()
    sBot = SetMan.GetString(21)
    HubName = SetMan.GetString(0)

    if loadfile(fOnline) then dofile(fOnline) end
    TmrMan.AddTimer(60000,"MainTimer")
    TmrMan.AddTimer(iSave*60000,"Save")
    TmrMan.AddTimer(iCleanMemory*60000,"CleanMemory")
    UpdateOnline()
    UpdateHubStats()
    if bSendMOTD then
        LoadMOTD()
    end
    if WebStat then
        if AllowChangeSkins and loadfile(fTplConfig) then
            dofile(fTplConfig)
        end
        LoadTemplates()
        TmrMan.AddTimer(WebStatUpdate*60000,"WebTimer")
        TmrMan.AddTimer(TopHubbersUpdate*60000,"BuildTopHubbers")
        if next(tUserStat) then
            BuildTopHubbers()
        end
        BuildWebStat()
    else
        UpdateUserStats()
    end
end
evg, Milena, shullz
8.1.2010, 1:45 Userbars
API2 | Персональные юзербары пользователей
Хабыч
Кавычки внутри строк надо экранировать. Вот так:
Код
\"
Milena, Saymon21
2.1.2010, 1:55 Userbars для RusHub
Хаб не поддерживает библиотеки от PtokaX, но, как выяснилось, прекрасно работает с библиотеками из пакета Lua-AIO. Чтобы убедиться в этом наверняка, я решил переделать под RusHub один из скриптов для PtokaX, и выбор мой пал на последний скрипт, выложенный мной - Userbars. Итак, начнем установку:

1. Переименовываем плагин lua51.dll в lua.dll. Этот шаг необходим для того, чтобы получить возможность использовать библиотеки Lua-AIO. При этом нельзя сохранять Lua-плагин с оригинальным именем в папке plugins

2. Скачиваем пакет Lua-AIO отсюда, извлекаем из него библиотеку gd.dll, и помещаем её в корневую папку RusHub`а (устанавливать библиотеки Lua в папку plugins не рекомендуется, поскольку в этом случае хаб попытается подключить библиотеку как плагин).

3. Устанавливаем скрипт: [attachment=5206:Userbars_RusHub.zip]

Если Вы все сделали правильно, то при следующем входе на хаб Вам будет отправлено сообщение о том, что для Вас был создан юзербар.
Nickolya, Setuper, Invisible, fixx, Saymon21, hipimps71
1.1.2010, 23:56 Userbars
API2 | Персональные юзербары пользователей
Цитата(Хабыч @ 1.1.2010, 22:26) *
А как код для форума поправить? Чтобы он был не [IMG16:LOAD]...
...отключить обработку вв-кодов в читерском грейлинке. bad_smile.gif
Milena
1.1.2010, 22:02 Userbars
API2 | Персональные юзербары пользователей
Цитата(Хабыч @ 1.1.2010, 20:50) *
а как сделать чтобы он делал несколько изображений?
пример чтобы он делал юзербар simple и simple2 и так же bg и bg2? baffle.gif
Открывай настройки юзербаров (userbars_cfg.lu), и добавляй сколько влезет. big_smile.gif
Milena, Saymon21
1.1.2010, 21:24 Userbars
API2 | Персональные юзербары пользователей
Userbars

Версия: 1.00
Версия API: API2
Совместимость с Linux: частично
Автор: alex82

Описание:
Скрипт создает юзербары для пользователей хаба, содержащие ник юзера, и размер его шары. При выходе юзера с хаба, размер шары заменяется на надпись "оффлайн".

Для работы скрипта требуются:
*Библиотека Lua-GD
*И, разумеется, Apache (или любой другой веб-сервер)


P.S. Результат работы скрипта можно наблюдать на хабе myDC.ru.

[attachment=3742:Userbars_1.00.rar]
Nickolya, intlive, Invisible, PRIZrak, denis, Milena, wasd, Saymon21, TiGRpp, Pro009, Specnazovec, mastersweet, ImDim
28.12.2009, 15:01 От: StatPX
От темы с ID: 1269
knuckles

Если ты имеешь ввиду "выбрать", то это делается через меню.

PS. Зачем цитировать предыдущий пост? Тем более он никак не связан с твоим вопросом.
Angel_D
27.12.2009, 15:54 ЮБ (юзербар) с твоим ником и статусом на хабе (онлайн / оффлайн)
Помогайте
X-Sky
Вчера начал перепиливать HubBanner под это дело. Сегодня, ближе к вечеру, может быть дам на бета-тестирование. big_smile.gif

Цитата(trojan @ 27.12.2009, 9:42) *
а HubBanner это разьве не одно и тоже что там???
Нет, не одно и тоже что там. И вообще, зачем писать если не знаешь?
X-Sky
22.12.2009, 16:40 StatPX
API1, API2 | Статистика хаба
Setuper

Просто в качестве шаблона скрипта взял конвертор базы, и на эту фигню не обратил внимания.
Milena, shullz
22.12.2009, 15:48 StatPX
API1, API2 | Статистика хаба
Доступна версия 1.04.

Список изменений:

*Оптимизация кода веб-статистики. Производительность веб-статистики увеличена на несколько порядков.
*Добавлена возможность отображения списка заглушек скрипта GagMe.


Сравнение производительности:

Сравнение производилось на стандартной конфигурации, скине "По умолчанию" и случайно сгенерированной базе данных. БД генерировалась таким образом, чтобы информация обо всех юзерах попадала в список юзеров за сутки.

Тестовая конфигурация:

CPU: Intel Core 2 Duo E8400 @3000 MHz
RAM: 3 GB DDR2 (2GB+1GB) @800MHz
Swap-файл: не используется
Остальные характеристики, в общем-то, не имеют значения.

Итак, результаты сравнения:

5000 юзеров
1.03 beta2 - ~9 сек
1.04 - ~0.5 сек

10000 юзеров
1.03 beta2 - ~15 сек, после чего выкидывает ошибку "not enough memory"
1.04 - ~1 сек

20000 юзеров
1.03 beta2 - не рискнул запускать big_smile.gif
1.04 - ~2 сек

Исмерения времени производились "на глаз", однако в данной ситуации это не имеет совершенно никакого значения.

Желающие повторить эксперимент могут воспользоваться генератором баз данных:
[attachment=3688:base_random.lua]
Milena, Saymon21
21.12.2009, 7:52 SendToRanges
API2 | Массовая рассылка диапазонам адресов
SendToRanges

Версия: 1.00
Версия API: API2
Автор: alex82

Описание:
Скрипт предназначен для массовой рассылки сообщений диапазонам IP-адресов. При рассылке можно использовать один из диапазонов, содержащихся в списке (при этом один диапазон может содержать несколько "поддиапазонов"), либо указать диапазон вручную непосредственно при рассылке. Доступные варианты массовой рассылки:
  • В главный чат от своего имени.
  • В ЛС от своего имени.
  • В главный чат от имени главного бота хаба.
  • В ЛС от имени главного бота хаба.

[attachment=3666:SendToRanges_1.00.rar]
FallenAngel, Invisible, Артём, xRayNeo, valdis73, Kingston, Milena, Saymon21, lewonchik, WINS
12.12.2009, 13:06 StatPX
API1, API2 | Статистика хаба
Цитата(fixx @ 12.12.2009, 1:59) *
Код
#     Ник    Всего                    Сессия           Пришел на хаб      Покинул хаб      Ранг
1    СъёМ    8 м. 0 д. 9 ч. 56 м.    4 час. 33 мин.    9 дек в 0:19    8 дек в 23:31    Житель хаба
Чую, всему виной автокоррекция времени.
Milena, shullz
9.12.2009, 23:39 PXControl
Удаленное управление PtokaX 0.4.x.x
Обновление серверной части: версия 1.01

Изменения:

Исправлена ошибка, возникающая при запуске на остановленном хабе.
Исправлена невозможность запуска скрипта на некоторых сборках Lua.

Цитата
Или же клиента надо было на каком-нить Qt писать...

А разве wx не кроссплатформенный? И, кстати, PRA тоже. И линуксовые фрагменты кода я не удалял при создании этого мода.

Тут проблема не в тулките, а в том, что я совсем не дружу с линуксом, и не могу даже проверить работоспособность клиента, не говоря уже о тщательном выпиливании багов.
Milena
2.12.2009, 2:43 PXControl
Удаленное управление PtokaX 0.4.x.x
На данный момент самый доступный способ - поставить FTP-сервер.
Milena
24.11.2009, 7:32 Registrator
API2 | Скрипт регистрации
Цитата(Sergey613 @ 23.11.2009, 22:32) *
А если ИПы раздаются сервером, и меняются при каждом входе в сеть?
Ну, тогда не используй эту функцию.
Milena
20.11.2009, 20:54 GraphPX
API2 | Графики для сайта
GraphPX


Версия скрипта: 1.00
Версия API: API2
Автор: alex82

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

Дополнительная информация:
Для работы скрипта требуется библиотека Lua-GD.

Простейший код для встраивания графиков в страницу сайта
Код
<center><h1>Графики</h1><br />
<h2>Пользователи на хабе</h2>
За сутки:<br><img src='users_day.png' border=0><br><br>За месяц:<br><img src='users_month.png' border=0><br />
<h2>Общая шара</h2>
За сутки:<br><img src='share_day.png' border=0><br><br>За месяц:<br><img src='share_month.png' border=0><br />
<h2>Сообщения в главном чате</h2>
За сутки:<br><img src='chat_day.png' border=0><br><br>За месяц:<br><img src='chat_month.png' border=0><br />
<h2>Поисковые запросы</h2>
За сутки:<br><img src='search_day.png' border=0><br><br>За месяц:<br><img src='search_month.png' border=0><br />
</center>

Встраивание графиков в StatPX

1. Скачиваем html-файл[attachment=3692:graph.rar] разархивируем его, открываем в блокноте, и заменяем [Hub name] на имя Вашего хаба (в двух местах). После чего перемещаем файл в директорию web-статистики.

2. Открываем шаблон default/header.tpl, находим строку:
Код
<td class="menu" align="center" onclick="window.location.href='bans.html?#39;" OnMouseOver="this.style.background='#F8F8F8'" OnMouseOut="this.style.background='white'"><b><a href="bans.html?#34;>Бан-лист</a></b></td>
после добавляем:
Код
<td class="menu" align="center" onclick="window.location.href='graph.html?#39;" OnMouseOver="this.style.background='#F8F8F8'" OnMouseOut="this.style.background='white'"><b><a href="graph.html?#34;>Графики</a></b></td>



[attachment=3528:GraphPX_1.00.rar]
intlive, Invisible, Serx, Smorg, Accelerator, MIhan, Andrew Frost, Kingston, whuru, Milena, PSIX, Saymon21, X-Sky, TiGRpp, Pro009, shmeks
20.11.2009, 17:46 StatPX
API1, API2 | Статистика хаба
Цитата(Климент @ 20.11.2009, 15:56) *
Хочу подправить но не могу найти где. Задача скинуть рекорд шары,но сохранить данные по пользователям.
В файле data.tbl. Переменные MaxShare и MaxShareTime.
Milena
9.11.2009, 1:00 TopicTemp
API2 | Температура воздуха в топике хаба
lewonchik
Методом научного тыка скрипты лучше не лечить.

Чтобы данная ошибка не возникала, нужно найти в скрипте строку:
Код
tTemp[id] = {}

и заменить на
Код
tTemp[id] = {"",0}


Но это всего лишь костыль, не позволяющий ошибке светиться в логе, и первопричину глюка (неправильные данные, приходящие с сервера mail.ru) он не исправляет.
Milena
5.11.2009, 11:15 Хаблисты
Цитата
Ибо после $BotINFO мне рвут соединение без какого-либо ответа.

Так и должно быть. Только перед отключением хаб должен отправить команду $HubInfo с информацией о хабе, но только в том случае, если ты не забыл указать в $Supports поддержку $BotInfo/$HubInfo.
Enyby
30.10.2009, 21:07 HubBanner
API2 | Графический баннер хаба
FurLion

Библиотеки устанавливаются в папку libs, или в папку scripts/libs, или в корневую папку PtokaX.
FurLion
24.10.2009, 22:03 PXControl
Удаленное управление PtokaX 0.4.x.x
Обновление серверной части:

1.01 beta
[+] Сохранение в файл настроек профилей, регистраций и скриптов происходит непосредственно после внесения изменений.

Подробности в первом посте.

PS. Поскольку сохранение профилей и скриптов производится посредством костылей, просьба ко всем добровольцам проверить правильность сохранения (сам проверял 100 раз, но в некоторых случаях лучше паранойя, чем пофигизм big_smile.gif ).
truth, Milena
17.10.2009, 16:03 Trivia Mod
API2 | Игра "Викторина"
Имена таблиц отличаются, содержимое, насколько я помню, нет.
Milena
15.10.2009, 2:42 Registrator
API2 | Скрипт регистрации
Цитата
Для любителей українского язика перевел на с рус. на укр.
Ещё бы на олбанский перевел...

Цитата
Реєстрація декілька аккаунтов з однієї IP-адреса не вирішується.
Для Вашої IP-адреса не допускається самостійна реєстрація.
Вказаний профіль вищий за Ваше.
Гуглом переводил?

Цитата
Помилка при удалении регистрации
Гугл перешел на суржик...

PS. Видео в тему: http://www.youtube.com/watch?v=5TzZ20A7UTE
Milena
22.9.2009, 17:57 Sourcemon
API2 | Мониторинг игровых серверов Source и GoldSource
Цитата(thehawk @ 22.9.2009, 14:09) *
Да и ещё: можно как-нибудь сделать чтобы сообщения о серверах выскакивали не в чате с Ptokax, а с другим ботом (у меня он назван Android-Info)? ну т.е. зарегестрировать что ли его?
Да можно и не регистрировать. Находишь строку:
Код
    bot = frmHub:GetHubBotName()

и заменяешь frmHub:GetHubBotName() на имя бота (естественно в кавычках)
Milena, thehawk
23.8.2009, 8:02 GeoCity MOTD
API2 | Информация о местоположении юзера в сообщении дня
GeoCity MOTD

Версия: 1.00
Версия API: API2
Автор: alex82

Описание: Скрипт предназначен для создания сообщения дня, содержащего информацию о местоположении юзера с точностью до города. Для получения информации используется модуль GeoCity.

Скриншот:
[attachment=3104:gcm.gif]

[attachment=3103:GeoCityMOTD_1.00.rar]

PS. Результат работы скрипта можно увидеть на хабе MyDC.ru.
BIMMER71, Invisible, mariner, Alexey, Sekretchik, Milena, Saymon21, Dimon21, TiGRpp, Тёмич, Rei_Volia, мамин_парень, Unique
23.8.2009, 7:30 Модуль GeoCity
Определяем местоположение по IP с точностью до города
Модуль GeoCity

Версия: 1.00
Системные требования: Lua 5.1, MySQL 4.1 или новее
Автор: alex82

Описание:
Данный модуль предназначен для получения информации о местоположении IP-адреса с точностью до города. В качестве источника информации используется база данных GeoLite City, хранящаяся в бд MySQL. Дистрибутив модуля также включает в себя набор утилит, необходимых для его установки.

Установка модуля:
Для PtokaX:
1. Извлечь файл geocity.lua в папку libs, в папку scripts/libs, или в корневую папку PtokaX.
2. Открыть файл geocity.lua в блокноте, и прописать имя БД, имя пользователя и пароль.

Для Lua-AIO:
1. Извлечь файл geocity.lua в папку lib, или в корневую папку программы.
2. Открыть файл geocity.lua в блокноте, и прописать имя БД, имя пользователя и пароль.


Установка базы данных:
1. Скачать базу данных GeoLite City отсюда - http://www.maxmind.com/app/geolitecity.
2. Распаковать файлы GeoLiteCity-Blocks.csv и GeoLiteCity-Location.csv в папку geocity.
3. Создать базу данных в MySQL.
4. Открыть файл config.lua (находится в папке tools) и прописать имя БД, имя пользователя и пароль.
5. Запустить GeoCity Updater и нажать "Пуск"

Функции модуля
geocity.GetInfo(sIP or iIP) - Возвращает информацию об указанном IP-адресе. В случае успешного вызова возвращается двухбуквенный код страны и название города. В случае неудачи возвращается nil.

geocity.GetFullInfo(sIP or iIP) - Возвращает информацию об указанном IP-адресе. В случае успешного вызова возвращается таблица, которая может содержать поля loc_id, country, region, city, postal, lat, long. В случае неудачи возвращается nil.

geocity.GetLocId(sIP or iIP) - Возвращает Location ID для указанного IP-адреса. В случае неудачи возвращает nil.

geocity.GetInfoById(sLocID or iLocID) - Возвращает информацию о Location ID. В случае успешного вызова возвращается двухбуквенный код страны и название города. В случае неудачи возвращается nil.

geocity.GetFullInfoById(sLocID or iLocID) - Возвращает информацию о Location ID. В случае успешного вызова возвращается таблица, которая может содержать поля loc_id, country, region, city, postal, lat, long. В случае неудачи возвращается nil.


geocity.GetCountry(sCountryCode) - Возвращает название страны, соответствующее её двухбуквенному коду. В случае неудачи возвращает nil.

geocity.GetRegion(sCountryCode, sRegion) - Возвращает название региона. В случае неудачи возвращает nil.


geocity.Check() - Проверяет наличие соединения с MySQL, и, при необходимости, восстанавливает его. Если соединение имеется, или было восстановлено, возвращает true. В случае неудачи возвращает nil
Описание утилит
GeoCity Updater
Предназначена для импорта базы данных GeoLite City, а также информации о странах и регионах, в БД MySQL.

GeoCity Test
Небльшая программа для тестирования модуля GeoCity.

Country Select
Программа, предназначенная для уменьшеня размера базы данных GeoLite City путем удаления из неё ненужной информации о странах.

Get Ranges
Программа позволяет получить список диапазонов, отсутствующих в базе данных GeoLite City
Changelog
1.01
Изменен формат хранения названий регионов, благодаря чему упростился код выборки данных из соответствующей таблицы
Названия стран теперь хранятся в таблице Lua

[attachment=5110:GeoCity_...ter_1.02.rar]
[attachment=5032:geocity_1.01.7z]
[attachment=3102:geocity_1.00.7z]

Класс php для работы с GeoCity:[attachment=5076:php_geocity.rar]

Скрипты, использующие модуль GeoCity:
GeoCity MOTD
Nickolya, BIMMER71, Invisible, district, Master-Grow, Alexey, Milena, Saymon21
21.8.2009, 15:59 Lua-GD
Библиотека для обработки изображений
Milena
20.8.2009, 23:20 Lua-GD
Библиотека для обработки изображений
Lua-GD

Описание: Библиотека Lua-GD представляет собой Lua-порт хорошо известной в определенных кругах библиотеки GD, и предназначена для проведения различных манипуляций над изображениями - рисования, наложения текста, ресайза, и.т.д.
Windows
x86
PtokaX: http://www.ptokax.org/files/Libs-482/Lua-G....33r3-rev311.7z
PtokaX Mod: [attachment=7235:gd.rar]
x64

PtokaX 0.4.0.x и 0.4.1.x
PNG support - да
GIF support - да
JPEG support - да
XPM/XBM support - да
FreeType support - да
Fontconfig support - нет

Скачать:
[attachment=4460:gd.7z]

Тестовый скрипт 1: [attachment=3091:gd_info.rar]
Тестовый скрипт 2: [attachment=3092:gd_test.rar] (ввиду того, что в данной сборке отсутствуют библиотеки Freetype и Fontconfig, некоторые тесты отключены)[/indent]
Linux
Исходный код: [attachment=7234:lua_gd.zip]
Собирается примерно так:
Код
cd <directory>/lua-gd && make all install clean

Перед сборкой необходимо установить зависимости:
Код
apt-get install liblua5.1-dev libgd2-xpm-dev


Мануал: [attachment=3090:gd_manual.rar]
Nickolya, BIMMER71, Tsd, Invisible, Ksan, Karumo, Kingston, Milena, PSIX, Saymon21, Antibiotic, RAND(i)M
7.8.2009, 19:12 TopicTemp
API2 | Температура воздуха в топике хаба
Исправил

Цитата
alex82, правильно ли я ставлю???

tData = {City = 1,Text = true,CurText = 1}
Это служебные параметры. Их нельзя трогать.
Milena

14 страниц V  « < 3 4 5 6 7 > » 
RSS Сейчас: 5.5.2024, 10:00