Автор alex2014 — 27.1.2012, 13:24 — 2 комментариев
захожу на хаб у них вот такой скрипт стоит
Подробности: IP : **** Истекает : **** Оператор : ***** Причина : ******* хочу такой же СКРИПТ.. как можно такой же скрипт чтоб юзерам выводилось когда они будут забанены такие же надписи..ПОМОГИТЕ!!
Автор ShadoWx — 26.1.2012, 17:34 — 11 комментариев
Автор: Setuper Название: Запрет неразрывного пробела в чате или ПМ. Описание: Этот символ не распознается хаб-клиентами и им могут воспользоваться спамеры для рассылки любой рекламы, обхода антимата и пр. Идею буквально вчера предложил Andrean, когда проверял мои RegEx'ы.
Если не хотите перегружать хаб скриптами, то просто добавьте этот символ в антирекламу. Символ неразрывного переноса виден в блокноте, просто скопируйте и поставьте этот символ в вашу антирекламу.
Код
local sBot = Config.sHubBot
function OnChat(UID, sData) if UID.iProfile == -1 or UID.iProfile == 3 then local sText = sData:sub(#UID.sNick + 4, -1) if sText:find"\160" then Core.SendToUser(UID, "*** Использование неразрывного пробела в тексте запрещено!", sBot) return true end end end
function OnTo(UID, sData) if UID.iProfile == -1 or UID.iProfile == 3 then local sTo, sText = sData:match("^%$To:%s+(%S+)%s+From:%s+(.*)") if sText:find"\160" then Core.SendToUser(UID, "*** Использование неразрывного пробела в тексте запрещено!", sBot, sTo) return true end end end
P.S. Надеюсь вместе, мы шаг за шагом увеличим функционал нашего хаб-сервера .. Спасибо Илье за правку черновой копии скрипта.
Делал, делал я свой хаб и уткнулся в проблему: не работает команда $SR. Вскоре определился, что дело все в Regex'ах, а именно, проверка на качество команды всегда отрицательное. Вот плохое выражение:
Всем привет. Хочу иметь скрипт рассылающий сообщения юзерам 1 раз при конекте на хаб, но если только этот юзер принадлежит определенному диапазону IP адресов. ДИапазоны чтобы можно было удобно добавлять или изменять. Посмотрел, что имеется по данным темам... частично подходит OneSend, частично SendToRanges
Поковырялся сам, вот что получилось... но не выходит пока каменный цветок, прошу помощи =)
function string.InRange(ip,rnum) local iIP = ip:iptonumber() for i,v in ipairs(tRanges[rnum]) do if v[1] <= iIP and iIP <= v[2] then return true end end end
function string.iptonumber(ip) local i1, i2, i3, i4 = ip:match("^(%d+)%.(%d+)%.(%d+)%.(%d+)$") if i1 then local r = i1*16777216+i2*65536+i3*256+i4 if r < 0 then error(ip) end return r end end
function LoadRanges() local f = io.open(Ranges,"r") if f then tRanges,tRangeNames = {},{} local rnum = 0 for line in f:lines() do local ip1,ip2 = line:match("^(%d+%.%d+%.%d+%.%d+)%-(%d+%.%d+%.%d+%.%d+)") if ip1 and ip2 then if rnum > 0 then table.insert(tRanges[rnum],{ip1:iptonumber(),ip2:iptonumber()}) end else local rname = line:match("^%[(.+)%]") if rname then rnum = rnum+1 tRanges[rnum] = {} tRangeNames[rnum] = rname end end end f:close() end end
function OnStartup() hFileName = Core.GetPtokaXPath().."scripts/"..hFileName bot = SetMan.GetString(21) assert(LoadRanges(),"Не удалось загрузить список диапазонов") if loadfile(hFileName) then dofile(hFileName) end if not tIpBase then tIpBase = {} end end
function UserConnected(tUser) if tUser.sIP:InRange(rnum) then if not tIpBase[tUser.sIP] then Core.SendPmToUser(tUser, sBot, sMsg) tIpBase[tUser.sIP] = 1 SaveToFile(tIpBase, "tIpBase", hFileName) end end end
function SaveToFile(tTable, sTableName, sFile) local f = io.open(sFile, "r+") if f then Serialize(tTable, sTableName, f) f:flush() f:close() end end
function Serialize(tTable, sTableName, hFile, sTab) sTab=sTab or "" hFile:write(sTab..sTableName.." = {\n") for i,v in pairs(tTable) do local sKey=(type(i)=="string") and string.format("[%q]",i) or string.format("[%d]",i) if(type(v)=="table") then Serialize(v,sKey,hFile,sTab.."\t") else local sValue=(type(value)=="string") and string.format("%q",v) or tostring(v) hFile:write(sTab.."\t"..sKey.." = "..sValue) end hFile:write(",\n") end hFile:write(sTab.."}") end RegConnected = UserConnected
вот такая ошибка вылезает:
Код
rassilka.lua:51: Не удалось загрузить список диапазонов rassilka.lua:8: bad argument #1 to 'ipairs' (table expected, got nil)
Возможно ли написать универсальный скрипт, работающий на всех хабах без переделок, адаптаций? LUA. Загрузил-сохранил файл и запустил под любым хабом? И какая максимальная функциональность у этого скрипта будет?
Доброго дня, подскажите пожалуйста 1. как для определенных рангов, запретить перенаправление на др ресурсы... 2. как убрать ключики для определенных рангов.
Код
function OnValidateNick( UID, sData ) local sNick = UID.sNick local iProfile = 1 if UID.iProfile == 1 then UID.bInOpList = 0 UID.bRedirect = 0 end return true end
это что-то подобное?
Но после того как пробую редиректить падает FirstRusHubBot
Цитата
<Network> *** Произошла ошибка в скрипте: /home/shadowx/rushub_bin/scripts/FirstRusHubBot.lua:120: attempt to index local 'tRegInfo' (a nil value)
ругается на то что пароль пустой, вот эта строка
Код
if not sPass or sPass ~= tRegInfo.sPass then -- Проверяем правильность пароля
Название скрипта: Isolator Автор: Tsd Версия скрипта: 1.6 Платформа: PtokaX Версия API: API2 Описание скрипта: Скрипт реагирует на сообщения в чате и привате (опционально). Только операторы хаба могут пользоваться функциями и меню. Если добавлен один из параметров в изолятор (по шаре, почте, описанию, коду страны), то при любом сообщении в чате или привате(опционально) юзер получит одно из наказаний (см. конфиг). Возможность удаления из изолятора по параметрам, дать/удалить иммунитет по нику. Прежде чем изолировать юзера рекомендуется сначала посмотреть информацию о нём по параметрам (через меню). На нике и на вкладке хаба меню немного отличается. Рекомендуется добавлять ники в таблицу иммунитета только зарегистрированных на хабе. Пример расшифровки сообщения из изолятора: ----------------------------------------------- <PtokaXBot> Попытка сказать из изолятора: (PM)[127.0.0.1]RO <Unreg> Вы все *удаки! ----------------------------------------------- (PM) означает, что сообщение было послано кому-то в привате, в квадратных скобках айпи, RO означает, что юзер входит в список изолятора по коду страны (в данном случае Румыния).
ВАЖНО !!!!!!!
Для работы скрипта необходимо установить базу данных стран. Скачать базу можно здесь: Для PtokaX <= 0.4.1.2 http://mydc.ru/ipb.html?act=attach&type=post&id=6187 Для PtokaX 0.4.2.0 (Вкладка Downloads для IPV4 или IPV6). Для завершения установки баз необходимо скопировать распакованный файл в папку cfg и перезапустить хаб.
Скрипт для защиты от потенциальных прокси-спамеров (да и не только прокси) из других стран Название: XenoPhobia (Ксенофобия) Платформа: PtokaX API: 2 Автор: Ksan (aka Trans) Местоположение: г.Томск Дата: 25-01-2012
Дополнительно: Для работы скрипта необходима база стран и диапазонов, и она должна лежать в папке CFG в корневой папке Птоки. Скорее всго, она у вас уже есть, хотя, может, и устарела слегка. Последнюю версию можно Распаковать из архива и положить в папку CFG.
Описание: -- заглушает те страны, которых нет в списке исключений -- но из этих стран не глушит те диапазоны, которые в исключениях (к диапазонам можно добавлять комментарии) -- также не глушатся ники, которые есть в исключениях (к никам можно добавить комментарии) -- отдельные IP тоже можно вносить в исключения (как диапазон, у которого начало и конец совпадают с данным IP) -- при показе страны заходящего на хаб или пишущего сообщение юзера показывается полное название страны + аббревиатура кода, например, так: "Россия (RU)". Так же и при просмотре списка. -- можно посмотреть списки исключений - страны, диапазоны, ники. -- все вышеуказанные операции производятся через меню, не останавливая скрипт и не открывая файлы блокнотом -- в коде присутствует примитивное предупреждение о рекламе (если в приватном сообщении у юзера из заглушенной страны имеется точное совпадение хотя бы одного слова из таблицы меток (tMarkers), то это сообщение скрипт покажет операторам/админам в приват). Поэтому вносите туда выражения только однозначные, например, "http://" и/или "dchub://", скрипт не антиреклама и не антимат, поэтому слова-исключения не предусмотрены -- сообщения юзеров заглушенных стран (не исключенных тем или иным способом) в чате видит только сам юзер и операторы/админы
Примечания: -- скрипт написан практически без проверки корректности ввода (дабы не усложнять и не загромождать код), так что следите за своими руками, при неправильном вводе просто отмолчится, хотя ничего в таблицы не добавит и не убавит. -- в таблицы страны вносятся ТОЛЬКО в виде двухбуквенных кодов стран латинскими буквами, например: RU , но по ходу работы скрипт сам определяет полное название страны и при необходимости сообщает его (при выводе таблицы или в текущих сообщениях) -- текстовку скрипта можете изменять по своему усмотрению, но для этого вы должны хорошо понимать суть этого участка кода -- можно удалить из исключений все страны, даже свою, и добавить только диапазоны нужные, это ограничит любое общение всем, кроме своего окружения, например, локалки -- при запуске скрипта должны быть в наличии папка "XenoPhobia" и в ней 2 файла - один для динамических таблиц и второй - с полными названиями стран. Если файлы при запуске скрипта не обнаружатся, скрипт сообщит об этом, но сам останется в режиме ожидания, периодически проверяя их наличие, и при появлении файлов сразу же входит в нормальный режим.
PS: -- чуть не забыл сказать - таблицу с полными названиями стран взял из скрипта CountryStats (автор - alex82). PPS: -- вдогонку - при первом запуске не забудьте заранее внести свой ник в список исключений (соблдая структуру таблицы, как в представленных примерах), руками, а не через меню, иначе случайно можете оказаться без управления хабом, особенно это важно для тех, у кого хаб управляется удалённо.
Картинки из жизни скрипта (списки в реале слегка форматированные, но тут это не будет видно):
Список стран в исключениях
Код
[07:32:41] <Ксенофоб> *** Список разрешённых стран:
1: Армения (AM) 2: Азербайджан (AZ) 3: Болгария (BG) 4: Беларусь (BY) 5: Эстония (EE) 6: Европейский Союз (EU) 7: Грузия (GE) 8: Израиль (IL) 9: Киргизия (KG) 10: Казахстан (KZ) 11: Литва (LT) 12: Латвия (LV) 13: Польша (PL) 14: Россия (RU) 15: СССР (SU) 16: Таджикистан (TJ) 17: Туркмения (tm) 18: Украина (UA) 19: Узбекистан (UZ)
Список разрешённых диапазонов
Код
[07:34:46] <Ксенофоб> *** Список разрешённых диапазонов:
Описание: Скрипт позволяет блокировать чат и личные сообщения для не зарегистрированных пользователей, уведомляя их об этом...
Код
local sBot = Config.sHubBot local sMsg = "*** ОШИБКА!!! Вы не зарегистрированы на хабе."
function OnChat(UID, sData) sData = sData:match"%b<> (.*)" if UID.iProfile == -1 then Core.SendToUser(UID, sMsg, sBot) return true end end
function OnTo(UID,sData) local sTo,sFrom = sData:match"^%$To:%s+(%S+)%s+From:%s+(%S+)" if UID.iProfile == -1 then Core.SendToUser(UID, sMsg, sBot, sTo) return true end end
Название скрипта: GagCountry_ExcludeRangeIP Автор: Артём Огромное спасибо за помощь с диапазонами: Enyby Описание: Скрипт заглушки Стран с исключениями по профилю, IP и диапазону IP. В таблице tGoodPmUser укажите ник в ЛС которому смогут писать юзеры с гагнутой страны, для добавления в исключения IP "просящего". Внимание!!! Для нормальной работы функций определения страны юзеров, необходимо установить базу данных IP-To-Country. Скачать базу можно здесь. Для установки необходимо копировать файл ip-to-country.csv в папку cfg. GagCountry_ExcludeRangeIP.lua ( 4.05 килобайт )
Кол-во скачиваний: 19
Название скрипта: RedirectCountry Автор: коллектив хаба MyDC Описание: Скрипт редиректа Стран которые указаны в таблицы tRedirector, на каждую страну можно указывать свою причину и адрес куда перенаправляем. Внимание!!! Для нормальной работы функций определения страны юзеров, необходимо установить базу данных IP-To-Country. Скачать базу можно . Для установки необходимо копировать файл ip-to-country.csv в папку cfg. RedirectCountry.lua ( 2.21 килобайт )
Кол-во скачиваний: 6
P.S. Если хотите получать сообщение о редиректе, "кого и куда", впишите свой ник, 19 строка, место BolLoT ваш ник.
------------------ Название скрипта: RedirectCountry Версия: 2 Автор(копипастер кода из других скриптов ): Артём Огромное спасибо за помощь: Alexey, Enyby, alex82, Nickolya ! Описание: Скрипт редиректа Стран, на каждую страну можно указывать свою причину и адрес куда перенаправляем. Через меню хаба.. Внимание!!! Для нормальной работы функций определения страны юзеров, необходимо установить базу данных IP-To-Country. Скачать базу можно здесь. Для установки необходимо копировать файл ip-to-country.csv в папку cfg. RedirectCountry_v.2.lua ( 9.82 килобайт )
Кол-во скачиваний: 10
Автор roflDDDD — 22.1.2012, 21:35 — 1 комментариев
Особо не шарю в линуксе, стоит Ubuntu. Нужно создать пользователя для Ptokax, от которого и будет запускаться хаб, так чтобы у этого пользователя небыло никаких прав "лазить" выше своей домашней директории. В общем, чтобы хаб не создавал лишних файлов за пределами домашней директории (в которой он лежит. скриптами и т.д.).. сори если криво обьяснил
--Ниже находится то, что можно настраивать local xNotice = true -- Будет ли оповещать в OpChat при отправлении запрещенных сообщений | true (Да) , false (Нет) local xChangeMgs = false -- Будем ли заменять Запреты на сообщения из таблицы tChangeMgs| true (Да), false (Нет) -- ^ Если нет то просто не пропускает|
tChangeMgs = { "--> Народ, кто хочет выпить пива? Угощаю. <--", "--> У меня сегодня праздник! Проставляюсь всем! <--", "--> Постучите мне по голове, чтобы я проснулся. <--", } --Выше находится то, что можно настраивать
Автор Vizunchik — 21.1.2012, 22:18 — 2 комментариев
Название: mafia v.1.068 Автор: dimajak Перевод под Verlihub: Vizunchik Протестировано удачно на версии: Verlihub 1.0.0 build Fri Jan 06 2012 Оригинальный скрипт под PtokaX:http://mydc.ru/index.html?showtopic=4764&a...ost&p=38119 Описание: Известная психологическая игра "Мафия". При отсутствии какой-либо помощи, однозначных ответов по вопросам правил игры, их реализации и пр. придумал свои правила, простейшие, т.е. Мирные, Мафия и Комиссар. Процентное соотношение настраивается в скрипте. Также настраиваются временные интервалы для регистрации в игру, для голосования. Баллы за игру суммируются и сохраняются в файл. В данном варианте победившая команда получает по 10 баллов. Надо будет пересмотреть, например, проголосовавший за "посадку" другого игрока получает 1 балл, оставшиеся в живых +5.
Автор Vizunchik — 21.1.2012, 21:59 — 0 комментариев
Название скрипта: AutoTopic Автор: Wariner Перевод под Verlihub: Vizunchik Протестировано удачно на версии: Verlihub 1.0.0 build Fri Jan 06 2012 Описание: Скрипт меняет топики через интервал времени. Есть возможности добавлять через меню и смотреть все топики. Перенесено из раздела "Запросы скриптов".