myDC.ru

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

 
История благодарностей участнику Ksan. Спасибо сказали: 657
Дата поста: В теме: За сообщение: Спасибо сказали:
19.12.2012, 4:50 Surdo_Isolation
Почти универсальный скрипт заглушек с богатым меню и возможностями
Пофиксил вышеобсуждённую проблему, перезалил (точнее, дозалил) файл (старый остался доступен) в первом сообщении.
Тем не менее, обнаружилась и осталась не пофиксенной в силу большой трудозатратности и возможного увеличения нагрузки на хаб другая фишка, суть которой не стану тут описывать. big_smile.gif

P.S.: Файл залит в виде RAR-архива, но скачивается почему-то как ZIP-архив и, естественно, не разархивируется. Поэтому после скачивания расширение файла нужно сразу поменять на .rar

Время заливки нового файла: 19-12-2012 05:30 Мск.
Stym
17.12.2012, 19:05 Surdo_Isolation
Почти универсальный скрипт заглушек с богатым меню и возможностями
Stym, а вы скрипт держите ниже других скриптов, как я советовал в первом сообщении?
Цитата
Примечания:
Раскрывающийся текст
- Скрипт держать ниже других скриптов, работающих с сообщениями юзеров.

Я вот только что поставил на отдельном хабе и проверил скрипт из первого сообщения - антимат работает как надо - в режиме 1 (замена словом только мата) мат заменяет на слово [•ценZура•], вместо него поставил *** - тоже работает (другие режимы тоже работают).
Цитата
[22:49:55] <Тест-юзер> проверка антимата: [•ценZура•]
[22:52:52] <Тест-юзер> проверка антимата: [***]
[22:53:27] <Тест-юзер> проверка антимата: ***
[22:57:59] <Тест-юзер> Я такой матершинник, мне даже говорить об этом противно! •••

И да, помните, в конфиг-файле есть таблица профилей, для кого мат разрешён (пишу на всякий случай).
Ну и, напоследок, - если до этого скрипта (выше в списке скриптов) стоит другой антимат, то сработает он, а не обсуждаемый.
Stym
9.10.2012, 19:21 NewsMix
API2 | Новости с двух сайтов
Booth, библиотеку берите отсюда.
Не обращайте внимания, что она для Русхаба, для вашей Птоки тоже пойдёт.
Та библиотека, что у вас сейчас стоит, она годится для более ранних версий Птоки, но не для вашей.
Booth
4.8.2012, 15:12 Скрипт кол-во скачиваний
Объем: 0 Скачан: 0 раз Раздающие: 1 Качающие: 2 3 В раздаче
Эту твою требуемую информацию выдаёт клиент, а не хаб. Вот если написать скрипт для клиентского АПИ и получать через него информацию по запросу с хаба (естественно, скриптом)...Но ведь не заставишь каждого посетителя ставить твой скрипт принудительно.
Да и не факт, что есть возможность запроса с хаба клиенту.
мамин_парень
17.6.2012, 1:09 Скрипты API 2. Защита хаба. Базы TTH
Скрипты защиты от спама, флуда, рекламы, порно
Пипец скрипты..
Кто скачает посмотрит, поймёт, о чём я...если вообще понимает что-то в скриптах.
Извините.

И да, автору - комменты, вопросы и пожелания здесь принято писать в теме, а не лезть куда-то в ВК.
мамин_парень
17.5.2012, 7:19 Объединю свой хаб с другими
Mellon, Ameet, вы стоите друг друга, может, вам объединиться?
Может, это ваша судьба?
Подумайте над этим!
Но только, ради бога, оставьте нас в покое!
ke(x)one
13.5.2012, 3:13 Погода для нескольких городов
API1, API2 | Скрипт погоды для нескольких городов
FIGO, специально сейчас скачал скрипт, поставил, ничего не изменяя, запустился нормально. Тыкнул в меню на Харьков - показал погоду на Харьков. Что я не так делал? big_smile.gif
Хотя кое-что я изменил, но об этом ниже (ещё ниже, в послании Артёму) и оно не касается твоей проблемы.

Я полагаю, что у тебя в 9-й строке в середине выражения вместо точки стоит запятая:
Код
local sBot = SetMan.GetString(21)         -- Имя бота
Исправь на точку и запусти, если больше ничего не менял, будет работать, думаю.

PS: Артём, у тебя в архиве текстовый файл имеет сдвоенное расширение - ".txt.txt", надо бы подправить, а то при первом включении говорит, что не нашёлся файл. И правильно говорит, я не глянул и запустил, и получил эту ошибку.
Артём
8.5.2012, 22:50 помогите переделать скрипт для Ptokax
N3RO, вместо
Код
Core.SendToAll("Текст")
пишешь
Код
Core.SendToUser(curUser, "Текст")
в тех местах, где тебе надо получать только юзеру вместо всех.
N3RO
24.4.2012, 13:40 Тест хаба
Verd, всё это можно без тестирования сказать:
1. Пропусная способность - примерно 250 юзеров на реальный 1 мбит/с - комфортное существование (можно и больше, но с возрастанием числа юзеров начнутся подтормаживания). Соответственно, на 10 мбит/с (но реальных, а не заявленных) - около 2 тыс. big_smile.gif Ну тут возможны разные мнения, но приблизительно так и будет.
2. Скорость - не знаю, о чём ты, но если я правильно понял, то всё зависит от твоих скриптов и их настроек. И читай предыдущий пункт.
3. Насчёт атак - практически нет защиты, если ты не платишь деньги какой-нибудь сторонней специализированной организации, занимающейся защитой чужих серверов от атак типа DoS/DDoS. Ты можешь только предпринять некоторые половинчатые меры в помощью скриптов либо команды хаба о переходе на "псевдо-спящий" режим (есть скрипт для этого - http://mydc.ru/topic5101.html ). Возможно, кто-нибудь ещё добавит на эту тему..
4. Флуд - регулируется только настройками хаба, или скриптами опять же. Или политикой администрации хаба вкупе со скриптами и настройками.

PS: И да, горячие споры вокруг моего ответа выше считаю открытыми. big_smile.gif
Verd
15.4.2012, 21:13 IP INFO v 1.0
Получаем информацию об ip с ripe.net
-=Zion=-, тогда можешь использовать этот скрипт.
-=Zion=-
26.3.2012, 4:33 Вопросы Разработчикам Скриптов
вопросы по скриптам (мелкие вопросы)
MIKHAIL, если эти 2 файла входят в один скрипт (вызываются при запуске одного скрипта), то нет никаких проблем - работаешь с этими переменными, как родными. Они и есть родные, ибо принадлежат одному скрипту (головному. вызывающему оба файла).
А если переменные принадлежат двум разным скриптам, то это весьма проблемно, если у тебя не Русхаб.
MIKHAIL
4.3.2012, 3:56 Несколько Слов О Захватах И Регулярных Выражениях
исключительно для разработчиков
MIKHAIL:
Код
local sFilePath = "http://sHostName/sDir1/sDir2/sDir3/sDirN/sFileName.sExt"
local sFileName = sFilePath:gsub(".-/", "")
MIKHAIL
2.3.2012, 15:42 Defend Chat
API 2 | Полностью автоматическая защита чата от спама
alex82, насчёт "отлавливая команду..." - вопрос - если она (команда) есть - бот, или наоборот, если нет такой команды - бот?
мамин_парень
24.2.2012, 22:24 Вопросы Разработчикам Скриптов
вопросы по скриптам (мелкие вопросы)
Код
    Core.SendToUser(tUser, ("Доброй ночи %s"):format(sMsg))

AirKobra45, тут %s означает, что при выводе сообщения вместо шаблона %s подставится очередная переменная из списка, идущего как аргумент выражения format, в данном случае подставится sMsg (оно должно быть уже создано до этого).
Так же можно использовать несколько таких %s, и при каждом встреченном в сообщении %s вместо него подставится очередная переменная из аргументов format'а.
Пример:
Код
    Core.SendToUser(tUser, ("<%s> Доброй, ночи %s! Твоё IP: %s, твоя шара: %s"):format(sBot, sNick, sIP, sShara))
Значения переменных sBot, sNick, sIP, sShara уже должны быть известны перед применением.
Выведет в чате, например, это:
Цитата
<Страшный_Бот> Доброй ночи, AirKobra45! Твоё IP: 10.20.30.40, твоя шара: 1234567890
ustas, AirKobra45
22.2.2012, 20:56 Вопросы Разработчикам Скриптов
вопросы по скриптам (мелкие вопросы)
MIKHAIL, да. Достаточно вот этого, если твой хаб на АПИ 2:
Код
function OnError(s)
    Core.SendToOpChat(s)
end
MIKHAIL
16.2.2012, 10:03 Дисконнект юзеров с хаба
Naum_Off, по совокупности твоей информации делаю вывод - у тебя Птока стала отправлять слишком много меню, ты перестарался с набивкой хаба скриптами и развлечениями..

1. Относительно тебя самого - удали из папки скриптов все невключенные скрипты в отдельную папку "ОТключенные скрипты", если они тебе ещё могут понадобиться...дело в том, что если у тебя стоит, к примеру, скрипт HubMenu, то он отправляет тебе как админу список всех скриптов - и работающих и отключенных - и у каждого скрипта в меню есть ещё подменю - отключить, включить, передвинуть вверх/вниз, перезапустить...а сколько других скриптов ещё..
Когда клиент перегружен менюшками, с какого-то количества их (думаю, объёма в кб), он тупо отключается от хаба. Можешь проверить - отключить какие-то скрипты с кучей строк меню - ты перестанешь слетать.

2. То же самое и для юзеров. У них не будет HubMenu и других админских менюшек, но ты мог их перегрузить менюшками развлекательного характера типа "Действия" или иными скриптами с меню.

3. Короче, если подтвердится моя версия, пересмотри своё отношение к хабу и юзерам. Может, оно того не стоит - такое количество скриптов/развлекалок?

PS: Это только версия. big_smile.gif
Но у меня такое было, долго не мог понять причину, почему меня после захода сразу скидывает как админа, а как юзер спокойно захожу.. big_smile.gif А причина оказалась та, которую изложил выше.
Naum_Off
15.2.2012, 16:17 Script_Matrix
Скриптовая матрица-заготовка
-- Скриптовая матрица-заготовка

Название: Script_Matrix.lua
Платформа: PtokaX API-2

Доктрина: "Были бы кости, мясо нарастёт."
-- Когда то и дело пишешь скрипты, то также приходится то и дело писать одни и те же функции и коды, и зачастую приходится их вытаскивать/копировать из собственных же (бывает и из чужих) скриптов. Вот снова решил было написать скрипт и задумался - а почему я каждый раз лезу куда-то копировать уже написанное, пора собрать черновую заготовку скриптов и уже начинать сразу с него писать, всё меньше работы.
-- Да и заодно новичкам будет легче ориентироваться, что к чему в скриптах (хотя бы самое простое)

Описание:
-- почти готовая к разным действиям заготовка скрипта
-- достаточно только инициировать нужные переменные и отслеживать за их правильным применением
-- всё, что между кавычками, можно менять по своему усмотрению
-- все ненужные функции и объявления переменных можно закомментить или удалить
-- можно добавить свои переменные и функции (само собой, данная матрица далеко (и очень далеко!) не всеобъемлюща)
-- это просто первичная заготовка, но пригодится даже опытным скриптерам (если их устроит принятые в данной матрице обозначения и иные мелочи) big_smile.gif Всё равно приходится выцеплять/копировать части кода со своих/чужих скриптов, так почему бы это всё не держать рядышком в корзиночке.

PS:
-- Данная матрица даже как заготовка несовершенна, ибо нет в мире совершенства, однако я понимаю, что можно увеличить универсальность данной матрицы, если добавить туда кучу других функций (штатных и самописных) и обращаться к ним при необходимости, используя флаги (есть флаг - используется, нет - проходим мимо).
Но это уже другая песня.
-- И да, я помню, что Alex82 тоже аналогичную тему создавал. Но то его тема, а это моя. big_smile.gif Тем более, я давно собирался сам, просто руки не доходили.

UPD: - исправил одну грубую синтаксическую ошибку в 85-й строке, перезалил.
Nickolya, Артём, rival, TiGRpp, Littlemuk
11.2.2012, 17:44 Есть ли такой скрипт?
изменить адрес хаба
Пора бы уже знать, что на клиенте ты ничего не можешь менять с хаба, хоть тресни..
Посылать каждому при каждом входе в личку и в чате оповещение о новом адресе, пусть помнят и держат под рукой. И так до тех пор, пока не перейдёте на новый адрес.
И поспеши, а то можешь остаться без юзеров, если вдруг сегодня/завтра старый домен умрёт.
dj hoodo
10.2.2012, 6:07 NetSeparator
Не даст качать, если помегабайтная плата за трафик на внешке.
UPD: -- а вот и первый апдейт..
-- обнаружил ошибку в детектировании и анализе при $ConnectToMe и исправил.
-- заодно добавил в сообщение с предупреждением показ юзеру ника того, с кем он безуспешно пытается соединиться;
-- и для тестового режима на всякий случай сделал сохранение списка тех, кто с внешки (при запуске скрипта список обнуляется, чтоб не дублировались ники при каждом сохранении). Это сохранение можно отключить в настройках.

Время перезаливки: 2012-02-10 07:05 (МСК)
мамин_парень
8.2.2012, 17:54 NetSeparator
Не даст качать, если помегабайтная плата за трафик на внешке.
Скрипт регулирования поиска и скачивания между юзерами двух разных сетей (внешки и локали)
(аналог NetworkSeparation, только для частного случая, но код свой)

Название: NetSeparator
Платформа: PtokaX
API: 2
Автор: Ksan (aka Trans)
Город: Томск
Дата: 2012-02-08

Примечания:
- 2 варианта скриптов:
---- NetSeparator_AutoUpd - с возможностью автоматического и ручного обновления с сайта списка диапазонов местных сетей
---- NetSeparator - без оного (то есть, список заранее прописываешь в таблицу в нужном формате и при необходимости вручную обновляешь)
- Для работы скриптов требуется папка NetSeparator с двумя файлами, в одном диапазоны, в другом - ники (открывших внешку и отключивших показ предупреждений при скачке).
---- при запуске при отсутствии таблицы с местными диапазонами автообновляемый скрипт сам полезет обновляться при наличии ресурса, содержащего диапазоны местных сетей (адрес нужно прописать в настройках), а когда обновится, входит в рабочий режим, если и обновиться не может, то выпадает в осадок, сообщив о ситуации админам (при наличии нужной таблицы скрипт продолжит работать, даже если в дальнейшем обновления провалятся)
---- необновляемый скрипт при запуске тоже проверяет наличие файла с таблицей диапазонов, если не находит, то сообщает админам и самоотключается.
- Меню: для внешних юзеров - только ОТКЛ/ВКЛ сообщений с предупреждениями, для местных, кроме этого, ещё в меню есть возможность открыться внешке и посмотреть свой статус.
---- админу отправляется отдельное меню в админский раздел - для ручного обновления с сайта (NetSeparator_AutoUpd)
-- И да, чуть не забыл - та ошибка, которая иногда проявлялась в НетворкСепаратион в виде предупреждений не тому юзеру, здесь отсутствует.
-- И ещё - в этом скрипте юзеры с внешки открыты для местных, то есть, для них нет разделения сетей, им не надо заморачиваться насчёт этого. Так что дело только за местными.

Nota Bene: Скрипт писался под свои хабы (хабы нашего города), где весь город и область (грубо говоря) с бесплатным трафиком, у большинства пользоватлей и с внешним интернетом нет проблем, но есть часть населения, сидящие на тарифах с помегабайтной оплатой трафика. Мало, но есть, раньше было больше. И скрипт писался как раз для разграничения в хабах двух сетей (условно говоря) - Томской сети и всего остального интернета. Благо, у нас есть ресурс ТомскНет, где как раз лежит постянно обновляемый список наших сетей и диапазонов, чем я и воспользовался для своего скрипта...для одного из них. Да и второй скрипт, хоть и не автообновляется, но там тоже юзается та же база.
Напоминаю, скрипт сейчас работает только на 2 стороны (на 2 группы сетей). а не на произвольное число групп сетей. Если у кого-то аналогичная или близкая ситуация, думаю, сможете приспособить скрипт под себя.

Библиотека: Для автоматического обновления базы с сайта для скрипта NetSeparator_AutoUpd требуется библиотека Lua Socket

Таблица диапазонов хранится в таком виде:
Код
tNets = {
    ["91.211.184.0"] = {  -- начало диапазона
        [1] = "91.211.184.255",  -- конец диапазона
        [2] = "1540601856",  -- начало (числовой вид)
        [3] = "1540602111",  -- конец (числовой вид)
    },
    ["193.150.68.0"] = {
        [1] = "193.150.68.255",
        [2] = "3247850496",
        [3] = "3247850751",
    },
}


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

Если найдутся те, кто будет юзать скрипт, просьба потом отписаться тут.

UPD: -- а вот и первый апдейт..
-- обнаружил ошибку в детектировании и анализе при $ConnectToMe и исправил.
-- заодно добавил в сообщение с предупреждением показ юзеру ника того, с кем он безуспешно пытается соединиться;
-- и для тестового режима на всякий случай сделал сохранение списка тех, кто с внешки (при запуске скрипта список обнуляется, чтоб не дублировались ники при каждом сохранении). Это сохранение можно отключить в настройках.

Время перезаливки: 2012-02-10 07:05 (МСК)
Tsd, ShadoWx, AfLc, мамин_парень
7.2.2012, 0:03 Вопросы Разработчикам Скриптов
вопросы по скриптам (мелкие вопросы)
MIKHAIL, попробуй этот метод. от district и ниже - от Setuper..
Они идут один за другим.
MIKHAIL
1.2.2012, 9:31 Вопросы Разработчикам Скриптов
вопросы по скриптам (мелкие вопросы)
Как бы и Птока 0.4.2.0 умеет, судя по ченчлогам.
Тут уже писали и не раз.
MIKHAIL
27.1.2012, 14:18 StatPX Lite
API2 | Веб-статистика хаба, чат-ранг, статистика местоположения юзеров
Sergius`, открываешь скрипт, находишь функцию UserConnected(user), там находишь строку
Код
        SendMOTD(user)
и вместо этого вписываешь это:
Код
        if user.iProfile ~= -1 then
            SendMOTD(user)
        end
Sergius`
26.1.2012, 20:29 RusHub: Запрет неразрывного пробела
rushub
Setuper, как у тебя всё запутано!
Извини, даже после твоего пояснения я не понял, то ли ты там описал небрежно, то ли что..Не хочется развивать разбор этих нюансов..
Что до обвинений меня - так помогайте сами, человек уже запарил чат хаба Майдц, мой приват там же, я хоть пытаюсь помочь, а те, кто занимается Русхабом, упорно делают вид, что не замечают его просьбы. И тут ты появился только после того, когда я что-то не так подсказал. Как понимаю, так и подсказываю.

ShadoWx, вот тебе работающий на Птоке код:
Код
function ChatArrival(tUser, sData)
    local sMsg = sData:match("^%b<>%s(.-)$")
    if sMsg:find"­" then
        Core.SendToNick("ShadoWx", "Неразрывный перенос")
        return true
    elseif sMsg:find" " then
        Core.SendToNick("ShadoWx", "Неразрывный пробел")
        return true
    end
end
Попытайся переделать его под себя. Хотя вроде они похожи.
ShadoWx
26.1.2012, 14:43 Список пользователей
fmit, ну этот вариант (без таблицы, проверка с подстановкой каждого префикса в одной строке) у меня сразу был готов, но я хотел с таблицей, на будущее. big_smile.gif
Тогда вот:
Код
local sBotMsg = "<"..SetMan.GetString(21).."> *** Просьба добавить к нику префикс и перезайти. Если у вас ADSL - припишите к нику спереди префикс [ADSL], если FTTB - то [FTTB]. Пример:\n [ADSL]Александр, [FTTB]4uMa и т.д." -- текст можно переделать на свой

function ValidateNickArrival(tUser, sData)
    if not tUser.sNick:find"^%[ADSL%]" and not tUser.sNick:find"^%[FTTB%]" then
        Core.SendToUser(tUser, sBotMsg)
        Core.Disconnect(tUser)
    end
end
fmit
26.1.2012, 13:20 СКРИПТ ЗАГЛУШКИ
Ищите сами. Здесь вам не детский сад.

1. Наверху страницы справа увидишь ПОИСК и окошко поисковое.
Слова для поиска подберите опытным путём.
2. А ещё на форуме есть каталог тем. Каталог разбит на понятные для любого разделы. Полазай.
Nickolya, shullz, Littlemuk
25.1.2012, 4:04 Вопросы Разработчикам Скриптов
вопросы по скриптам (мелкие вопросы)
Автоматически. Но не потому, что local tContains, а потому, что они задействованы только для выполнения данного цикла.
А если внутри этого цикла запустишь ещё один цикл с переменными с такими же наименованиями, они всё равно не будут путаться.
MIKHAIL
25.1.2012, 3:50 XenoPhobia
Скрипт для защиты от потенциальных прокси-спамеров из других стран
Скрипт для защиты от потенциальных прокси-спамеров (да и не только прокси) из других стран
Название: 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)
Список невъездных стран
Код
[01:33:03] <Ксенофоб> *** Список забаненных стран:

    1:  Бразилия   (BR)
    2:  Китай   (CN)
    3:  Дания   (DK)
    4:  Испания   (ES)
    5:  Индия   (IN)
    6:  Италия   (IT)
    7:  США   (US)
    8:  Вьетнам   (VN)
Список разрешённых диапазонов
Код
[07:34:46] <Ксенофоб> *** Список разрешённых диапазонов:

    1:   176.65.48.0 -- 176.65.55.255        [ INTERNET-NET, Томск ]
    2:   78.139.249.42 -- 78.139.249.42        [ TOMTEL-NET, Томск ]
    3:   172.16.0.0 -- 172.31.255.255        [ Локалка ]
    4:   90.188.95.153 -- 90.188.95.153        [ It's me! ]
    5:   10.0.0.0 -- 10.255.255.255        [ Локалка ]
    6:   46.161.144.0 -- 46.161.159.255        [ NTS-ETTH, Томск ]
    7:   127.0.0.0 -- 127.255.255.255        [ Компьютер с хабом ]
    8:   192.168.0.0 -- 192.168.255.255        [ Локалка ]
Список ников-исключений
Код
[07:05:56] <Ксенофоб> *** Список ников-исключений:

    1:  Тест            [ Просто так ]
    2:  Indy[wrk]        [ Админ ]
    3:  Indy            [ It's me! ]
    4:  Спорт            [  ]
    5:  Ksan            [ Админ ]
    6:  TestNick        [ Тестер ]

Граница на замке! big_smile.gif

UPD 1:
-- добавил "бан" отдельных стран (юзеры оттуда не будут допускаться на хаб) с возможностью добавления/удаления стран в этот список через меню (2-буквенный код страны) и просмотр этого списка
-- также добавил флажок включения этого бана (флажок можно ставить/снимать через меню)
-- и добавлен флажок такой же относительно заглушек стран, включая и меню
-- незначительно оптимизировал код
-- таблицы/файлы совместимы с предыдущей версией скрипта, достаточно просто ещё добавить через меню страны в таблицу банов
-- после перезапуска скрипта перезайти необходимо (добавлены новые пункты в меню)

UPD 2: (версия 1.1)
-- добавил в меню "Показывать/нет непускание"
(иногда достают тупые многочасовые попытки зайти из невъездной страны, как, например, сегодня из Китая (CN))
-- скрипт перезалит.
-- удалил первую версию (которая без бана). Если через меню отключить баны, то версия скрипта 1.1 работает как первая.

UPD 3: (версия 1.2)
-- по просьбе Артёма добавил блокирование поиска/скачивания для определённых стран ("спамоопасных"). Добавление/удаление/просмотр этих стран - через меню, как и в предыдущих случаях.
-- разная косметическая мелочь.

Дата последнего апдейта: 2013-04-26 19:10 (МСК)
Nickolya, ustas, rival, Inkvizitor_ks, WINS, Mellon, AfLc, tammi_0909, Nikolaevich
22.1.2012, 7:05 SuspendHub
Блокирование хаба от входящих (защита от внешних атак)
Цитата(Ferb @ 15.1.2012, 13:54) *
... Просто как бы невсегда доверяеш админам верно ?? У меня есть я доверяю им но проверяю поэтому я хотел бы дать только 3 людям это
Зачем брать себе админов, которым не доверяешь? У вас там что, дефицит адекватных?
Тогда лучше управляй один, чем мучиться недоверием.
Артём, мамин_парень
13.1.2012, 20:13 TotalGag
для аварийной заглушки всего хаба (кроме определенных лиц)
MIKHAIL, ага, есть такое, спасибо, что подсказал!
Это потому, что я
Код
ToArrival = ChatArrival
добавил в последний момент по просьбе кое-кого, не догадавшись проверить работу скрипта с изменением.
Исправляется так - вместо кода:
Код
        if sUngagable[tUser.sNick] ~= 1 and bFlag then
            Core.SendToUser(tUser, "<"..tUser.sNick.."> "..sMsg)
            if not (sData:match("From:") and sData:match("To:")) then
                Core.SendToOps("<"..tUser.sNick.."> ••• "..sMsg)
            end
            return true
        end
нужно вот это (тут всего 1 строка перемещена)
Код
        if sUngagable[tUser.sNick] ~= 1 and bFlag then
            if not (sData:match("From:") and sData:match("To:")) then
                Core.SendToOps("<"..tUser.sNick.."> ••• "..sMsg)
                Core.SendToUser(tUser, "<"..tUser.sNick.."> "..sMsg)
            end
            return true
        end

А строку
Код
ToArrival = ChatArrival
оставить включенным.

UPD: -- перезалил исправленный скрипт в первом сообщении.
MIKHAIL
10.1.2012, 5:23 SuspendHub
Блокирование хаба от входящих (защита от внешних атак)
Скрипт блокирования хаба от входящих юзеров (вариант защиты от внешних атак)

Название: SuspendHub.lua
Версия: 1.0
Платформа: PtokaX
API: API 2
Автор: Ksan (aka Trans)
Город: Томск, Россия
Дата: 10-01-2012

Описание:
1. Если вы заметили, что ваш хаб атакуют, то через меню можете заблокировать хаб для всех входящих. По умолчанию - на 5 минут (это регулируется в настройках хаба), также в меню есть блокирование на желаемое время (тоже в минутах). Разблокирование через меню либо по прошествию заданного времени.
При блокировании хаб извне будет казаться отключенным, с соответствующими сообщениями, а сидящие в хабе ничего не почувствуют, всё будет работать в обычном режиме.
2. Есть в скрипте и код блокирования без срока, но это опасно в случае вылета из хаба последнего оператора/админа - будет некому разблокировать хаб вплоть до его перезагрузки (а для удалённых хабов в некоторых случаях и это может оказаться проблемой). Для включения команды блокирования без срока нужно раскомментировать код в 2-х местах - в отправке меню и в исполняемом коде
3. Сообщения о блокировании/разблокировании приходят автору команды и в Опчат.
Текстовку можете менять по своему вкусу.
Nickolya, ustas, Tsd, Артём, stoparik, Cyber_voodoo, shur49, bENNY!, nafig, Ust, PAUK
8.1.2012, 0:04 Вопросы Разработчикам Скриптов
вопросы по скриптам (мелкие вопросы)
MIKHAIL
5.1.2012, 18:57 RegmeEmail
API2 | Регистрация через e-mail
Ameet, находишь в скрипте вот такой код:
Код
function GetPass()
  math.randomseed(os.time())
  return tostring(math.random(100, 99999999))
end
и вместо него копируешь отсюда этот:
Код
local sPass = ""
tAbc = {
    "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",
}

function GetPass()
    math.randomseed(os.time())
    sPass = tAbc[math.random(#tAbc)] -- 1-я буква пароля
    local iPass = math.random(4, 7) -- длина пароля = [(от 4 до 7) + 1]
    for i = 1, iPass do
        sPass = sPass..tAbc[math.random(#tAbc)]
    end
    return sPass
end

Тут в этой строке регулируется и создаётся произвольная длина пароля:
Код
local iPass = math.random(4, 7)
Вместо 4 и 7 можешь писать другие разумные размеры длины пароля. Только нужно учитывать, что 1 символ уже создался в предыдущей строке.

PS: Можно было обойтись без предварительной таблицы символов tAbc, но тогда код стал бы громоздче.

UPD:
Так, наверно, эту переменную - local sPass - надо объявить заранее, до использования в function GetPass(), иначе не уверен, что вытащится по return.. Поэтому в код внёс поправку небольшую.
Ameet
3.1.2012, 4:48 Вопросы Разработчикам Скриптов
вопросы по скриптам (мелкие вопросы)
1. MIKHAIL, изящность достигается не этим, не твоими "блошиными" исследованиями, ей-богу! Я уже писал тебе выше. Твои скрипты пашут с производительностью в 1 млн вычислений в секунду? Тогда да, твои экзерсисы оправданы. А если ты пишешь то же, что и мы, то забей, займись чем-то более полезным. Просто пиши, как умеешь...остальное придёт с практикой
2. И да, ты выше спрашивал про function, отвечаю - нет разницы.
Это вопрос предпочтений. Лично я пишу всегда так:
Код
function GetData(sData)


Цитата
[01:40:49] * 10
[01:40:49] * 11

Enyby, а ты проверял только 1 раз?
Проверь несколько раз, удивишься.
Вот у меня с 4 раз:
Тык сюда:
Цитата
[08:41:58] 6
[08:41:58] 6
[08:42:22] 6
[08:42:22] 6
[08:42:40] 5
[08:42:40] 6
[08:43:08] 6
[08:43:08] 6

Разница чисел у тебя и у меня, думаю, только из-за разных процессоров.
И вообще, иногда надо думать и о красоте, особенно когда нет практически разницы между способами в скорости. Разница в микросекунды и наносекунды не считаются.
Enyby, MIKHAIL
1.1.2012, 9:01 Kinozal_tv
API2 | Скрипт новостей с трекера
MIKHAIL, эти файлы у тебя могут лежать и в другом месте.
Проверь, нет ли у тебя в папке с Птокой где-нибудь ещё одной папки libs..
MIKHAIL
29.12.2011, 1:42 Вопросы Разработчикам Скриптов
вопросы по скриптам (мелкие вопросы)
Код
Stroka:sub(3,4)
- тут от строки Stroka выделяется кусок от 3-го по 4-е число символов.
Для изучаемого числа 0.141592654 это будет пропуск первых двух символов "0." и захват цифр "14" из "141592654"

Можно брать и отрицательные значения для этих аргументов:
Код
Stroka:sub(3,-4)
- тут у нас захватятся с 3-го по 4-е с конца, то есть, получим число "141592"
Знак минус при аргументе означает - с конца строки.
MIKHAIL
29.12.2011, 1:25 Вопросы Разработчикам Скриптов
вопросы по скриптам (мелкие вопросы)
MIKHAIL, заранее не парься.
Пиши скрипт спокойно. Вот когда появятся проблемы, тогда и будем решать. big_smile.gif

И да, ты смотри моё предыдущее сообщение, я там подправил кое-что.
MIKHAIL
28.12.2011, 23:43 Вопросы Разработчикам Скриптов
вопросы по скриптам (мелкие вопросы)
MIKHAIL, а ещё есть это:

Код
local Pi = 3.141592654  --  твоё обрабатываемое число
local sUnit = ""  --  единица измерения, в данном случае пусто (а может быть и метр, и процент и что угодно)
Core.SendToAll(string.format("%0.2f %s", Pi, sUnit))  --  где 2f - нужное число знаков после запятой, то есть, 2 в данном случае


PS: в числе Пи надо было точку вместо запятой.

А ещё можно так:
Код
local Pi = 3.141592654
local M, N = math.modf(Pi)  -- получение целой части числа и дробной части
Core.SendToAll(M.."."..tostring(N):sub(3,4))  -- получаем 3.14

Это для представления.
А для выполнения матем. операций в дальнейшем нужно применить команду
Код
tonumber(вышеполученное строчное выражение)

Например, продолжая предыдущий код (который с выводом числа в чат) - заменяем вывод в чат на эту строку:
Код
Core.SendToAll(tostring(tonumber(M.."."..tostring(N):sub(3,4))*10))  --  получаем 31.4

Тут происходит вот что - сначала соединяем и получаем в строковом виде 2 части (вторая часть только с двумя значащими цифрами после запятой) числа вновь, превращаем это полученное в числовой вид и умножаем на 10 и выводим результат в чат, превратив снова в строковый вид (чтоб убедиться в правильности метода). big_smile.gif
MIKHAIL
27.12.2011, 17:01 Public PHP hublist (Хаблист) by Enyby
Публичный открытый хаблист на PHP
Цитата(Mellon)
раз вы не тролль то я сделаю предположение что вам до 20.

На баш!

PS: [To All] И вообще, ребятки, зачем вы мучаете животное?
Забейте (забаньте?) его и хватит его бред читать.
Артём
27.12.2011, 16:51 Tiny Hublist
Программа для создания хаблистов
Mellon, хосспади, какое-то невнятное бормотание и бред сумасшедшего ты пишешь.
Может, просто промолчишь и за умного сойдёшь?
Никогда не поверю, что человек, пишущий ТАК, способен написать хоть 10 строк кода без ошибок, неважно на каком языке...если русским-то не владеет и логика дико страдает.
Артём, PomanoB
27.12.2011, 3:37 WhoisNew
Через меню хаба добывает WHOIS-информацию об IP
UPD-5:
- Перезалил, чуть-чуть изменив одну строчку (причина - маленькое изменение на странице результатов сайта, приведшее к неработе скрипта).
Теперь скрипт работает.

PS: Сорри, что так долго не исправлял...просто руки не доходили, а реально пришлось вносить всего лишь пустяковое изменение..
striker
26.12.2011, 15:11 Постоянно Зависает Работающая Ptokax 0.4.1.1
An error occured in the application
Fe(one)X, разбирайся лучше, почему хаб зависает. Просто так ничего не бывает.
У всех нормально пашет, и у тебя пахал столько времени, и вдруг стал виснуть....что-то тут не так у тебя.
Не факт, что следующая версия не будет зависать.
Так что разберись с этим сначала.
bENNY!
23.12.2011, 22:06 Нужен скрипт для вкл/выкл чата
Достаточно полазать по разделам.
мамин_парень
22.12.2011, 2:15 Current_Weather_All_Cities
Выводит текущую погоду автом. в чат и по запросу, любые города
UPD:
- добавил показ текущей даты/времени местности (правда, на сервере погоды время отстаёт минут аж на 5 big_smile.gif , но всё же...)
- исключил вывод данных при получении ошибки с сайта (чтоб все города не получали одну и ту же погоду)
- небольшие косметические малозаметные изменения, улучшающие работу скрипта.

Скрипт перезалил в сообщении #1.

UPD:
- убрал показ даты/времени для вывода в чат местной погоды (зачем местным показывать их время, тем более, не очень точное)

Скрипт перезалил в сообщении #1.
ustas
19.12.2011, 11:57 Current_Weather_All_Cities
Выводит текущую погоду автом. в чат и по запросу, любые города
UPD:
Выявился неучтённый момент - в архивных данных могут оказаться 2 года через запятую с одинаковой температурой Max. или Min., и при попадании такого случая скрипт падает. Что сегодня и случилось с Владивостоком.
Хорошо, хоть сам город не пострадал. big_smile.gif
Код подправил, скрипт перезалил в сообщении #1.

UPD-2:
Сделал косметическую подправку - восход/заход солнца разделил на 2 строки, а то слишком длинная получалась:
Код
Солнце:             восход: 09:52
                    заход:  16:42

Скрипт перезалил в сообщении #1.
striker
15.12.2011, 6:24 Current_Weather_All_Cities
Выводит текущую погоду автом. в чат и по запросу, любые города

Наконец-то собрался и переделал скрипт.
Причина - полное изменение структуры страницы на сайте.
Пришлось всё перелопатить.
Плюс добавил показ восхода/захода солнца.


Дата заливки: 15-12-2011 06:25 (мск.)

Качайте из первого сообщения темы.
rival, Dan Claimant
9.12.2011, 1:46 Как настроить поиск на винде 7 начальной
Ты когда научишься описывать свою проблему в сообщении, а не в заголовке темы?
Заголовок - только чтоб обозначить, о чём пойдёт тема, а суть проблемы описывают в первом сообщении!
Дурдом какой-то.
И ещё - тут КАПСОПИСЦАМ не помогают.
И напоследок - винда тут ни при чем, да хоть на MacOS сиди..
мамин_парень
8.12.2011, 2:51 Несколько Слов О Захватах И Регулярных Выражениях
исключительно для разработчиков
Попробуй внедрить в свой скрипт эту процедуру (названия переменных можешь изменить как тебе понравится):
Код
t = {}
for k, v in sMsg:gmatch("<pubDate>.-</pubDate>") do
    local s = v:match("<pubDate>(.-)</pubDate>")
    t[k] = s
end

При выполнении все строки, содержащее нужную тебе информацию (в данном случае время/дату) сохранятся в таблицу t
Потом сможешь вытаскивать их когда и как тебе угодно, например, так:
Код
local sTime = t[1]

дальше это вставляешь в своё выводимое сообщение в нужное место.
MIKHAIL
3.12.2011, 13:12 От: Mellon DC Hub List
От темы с ID: 5060
Как вариант - А.П.Чехов. "Письмо учёному соседу":
Цитата
..Вы сочинили и напечатали в своем умном соченении, как сказал мне о. Герасим, что будто бы на самом величайшем светиле, на солнце, есть черные пятнушки. Этого не может быть, потому что этого не может быть никогда. Как Вы могли видеть на солнце пятны, если на солнце нельзя глядеть простыми человеческими глазами, и для чего на нем пятны, если и без них можно обойтиться?..
-=ДЕМОН=-
3.12.2011, 12:30 От: Mellon DC Hub List
От темы с ID: 5060
Mellon, как тебе удаётся написать такие предложения - в 100 слов?

И ещё:
Цитата
ты об этом мало что знаешь (так как тебя тогда не было)

Интересно было бы услышать комментарии оппонента на эту тему. big_smile.gif
-=ДЕМОН=-
2.12.2011, 16:42 помогите сделать скрипт
max666:
Цитата
Да мне трудно потому что я в это не вникал и не собираюсь !!!!

В этом вся суть твоя.
Потому и не хотят тебе помогать.

И вообще, если ты такой пустяк не можешь и даже не хочешь сделать, то нафиг ты хаб завёл, спрашивается?!
Артём
8.11.2011, 16:31 Сдвиг таймеров для частного случая
Периодическая инициализация действий со сдвигом по времени
Товарищ один (Akvilon) попросил помощи, и вот кидаю частное решение (хотя расширить никто не мешает).
Цель - периодическая инициализация действий со сдвигом по времени (например, 2 сообщения в чат, разнесенных по времени на полчаса, то есть, общий период - 1 час)
Код
local iTime = 1 -- в данном случае - это 1 час

function OnStartup()
    tmr1 = TmrMan.AddTimer(iTime*3600000)
end

function OnTimer(tmr)
    if tmr == tmr1 then
        Core.SendToAll("Бла-бла-бла!")
        tmr2 = TmrMan.AddTimer(iTime*30000)
    elseif tmr == tmr2 then
        Core.SendToAll("Шурум-бурум-тяп-ляп!")
        TmrMan.RemoveTimer(tmr2)
    end
end

Возможно, решение уже где-то есть, а возможно, ещё кому-то пригодится. big_smile.gif
rival
8.11.2011, 10:50 Запрет поиска
определенныхслов\выражений
WINS, думаю, если тебе надо не пропускать поисковый запрос, то, наверно, нужно вместо бана юзера достаточно просто проигнорить его запрос через
Код
return true
в функции обработки поискового запроса.
WINS, мамин_парень
7.11.2011, 21:49 Запрет поиска
определенныхслов\выражений
WINS:
Цитата
нужен дроп поиска определенных слов, а там бан

Не вижу проблему. Переделать бан в дроп быстрее, чем писать ответ сюда.
Код
Код
Core.Disconnect(tUser)
вместо кода бана.
WINS, мамин_парень
6.11.2011, 21:10 Запрет поиска
определенныхслов\выражений
WINS, ищи по слову Antisearch тут на форуме через поисковую форму..
WINS
30.10.2011, 22:57 время входа на хаб
задержка при соединении
MaxFox, вот маленький скриптик, точнее, 2.
Первый отправишь для проверки наличия галочек, которые ты не можешь найти (про отправку юзерам майинфо).
Если тебе в чате напишет при этом хотя бы один раз true, то запусти второй скриптик, он снимет все 4 галочки.
Код
local sAdmin = "MaxFox"
for i = 13, 16 do
    Core.SendToNick(sAdmin, tostring(SetMan.GetBool(i)))
end


Код
local sAdmin = "MaxFox"
for i = 13, 16 do
    Core.SendToNick(sAdmin, tostring(SetMan.GetBool(i, false)))
end

После второго скрипта запусти ещё раз первый скрипт для проверки (если пришлось использовать второй)

UPD-1: Исправил одну букву в первом скрипте. Попробуй по-новой.
UPD-2: Проверил - работает.
UPD-3: Сейчас заходил к тебе - вход 6 секунд при 14 600 юзерах был.
мамин_парень
30.10.2011, 21:45 время входа на хаб
задержка при соединении
MaxFox, ты ведь всё-таки не снял галочки (ну если линукс, то не поставил нули в файлике настроек) в настройках "Моя информация"! Я тебе зря, что ли, писал про это?!
Иначе я ни у кого не видел бы всякие тэги, описания и иной мусор у 21 тысячи юзеров...
Убери их, и будет у тебя рай.

UPD: Во, Алексей уже показал..
мамин_парень, valera_
11.10.2011, 16:44 DDD++ – лёгкий и быстрый DC++ клиент
Преднастроенный клиент с готовыми списками хабов
Только я не понял, зачем здесь рекламировать клиента, который собран конкретно под ЛивКомм?
Там у вас (ну или у них), что, негде рекламить? Они тут сидят? Или тут их филиал?
По-моему, это уже перебор, извини..
mariner, Артём, PomanoB, KT315, Saymon21
7.10.2011, 17:58 Администрация
Скрипт Статус Модератора или Master по Ип
reidel_viktor, вот сварганил только что, получай тут.
Даже если и есть такой скрипт, мой не будет лишним, думаю..
reidel_viktor, ImDim
7.10.2011, 17:56 Reg_over_IP
Скрипт привязки профиля к постоянному IP
Скрипт привязки профиля к постоянному IP
(другими словами - автоматическая (без ввода пароля) авторизация руководящего состава по постоянному IP)

Название: Reg_over_IP.lua
Платформа: PtokaX
API: API 2
Автор: Ksan
Город: Томск, Россия
Дата: 07-10-2011

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

UPD:
-= Внимание! =-
Скрипт пока имеет недостатки, так что лучше пока не сильно на него надеяться!

UPD-2:
Пока отключил доступ к скрипту, надо разобраться с шероховатостями.

UPD-3:
Скрипт переделан, залит и доступен снова.
Прошу прощения за доставленные неудобства!

Примечания:
1. Теперь для работы скрипт обязательно наличие двух вспомогательных файлов в отдельной папке.
Туда вынесены 2 таблицы: в одной должны быть IP+профили, в другой таблице будут находиться не желающие добровольно исчезать из списка юзеров ники вышедших из хаба юзеров из первого списка (ради которых и сделан скрипт). Они будут принудительно скрыты из списка. Это костыль, но других, более изящных, путей я не нашёл)
2. О пароле можно не заботиться, скрипт при входе нашего юзера зарегистрирует его временно с паролем, равным его IP. Например, "127.0.0.1" При выходе юзера из хаба эта регистрация снова удалится из базы Птоки, ник будет свободен для захода и регистрации любым юзером.
3. В теле скрипта встроенная небольшая таблица - tFixNicks - туда нужно внести резервные ники для администратора хаба (чтоб по ходу экспериментов со скриптом или просто если использует скрипт для своего входа), чтоб случайно не остаться без заргенного админского ника (из этой таблицы ники скрипт не разрегистрирует ни при выходе юзера из хаба, ни при отключении самого скрипта)

Помните, скрипт только для тех, у кого постоянный IP (опы, випы и операторы). Мастеру тоже можно, но только на свой страх и риск. big_smile.gif

Дата последней заливки: 20-11-2011 17:45 (мск.)
ustas, PomanoB, darkangel17, CrazyKiller, DEN 007
13.9.2011, 17:41 Rss_NewsRu
Скрипт для чтения лент новостей с сайта http://www.NEWSru.com/
Можно:
Код
        for i,v in pairs(tCmds) do
            sRssMenu = "$UserCommand 1 3 "..sMenu..tCmds[i][1].."$<%[mynick]> "..i.."||"
            Core.SendToUser(tUser,"$UserCommand 0 3")  --  ЭТО НОВАЯ СТРОКА для отправления разделителей в меню
            Core.SendToUser(tUser, sRssMenu)
        end

Просто добавь одну строку, как показано выше, в функции
Цитата
function UserConnected(tUser)
больше ничего не меняя.
AfLc
11.9.2011, 13:22 Rss_NewsRu
Скрипт для чтения лент новостей с сайта http://www.NEWSru.com/
Скрипт для чтения лент новостей с сайта http://www.NEWSru.com/

Название: Rss_NewsRu.lua
Платформа: PtokaX
API: API 2
Автор: Ksan
Город: Томск, Россия
Дата: 11-09-2011

Примечания:
Каждая лента (тема) при первом открытии заносится в таблицу (в памяти) и сохраняется по умолчанию 1 час (это время регулируется в настройках ).
В дальнейшем, пока не пройдёт час, эта лента при запросе откроется мгновенно из памяти, по прошествии срока при первом вызове обновится из сайта.
Ну и ещё 30 секунд (тоже регулируется в настройках) - между любыми запросами через меню скрипта (зачем? а фиг знает...у меня такая привычка - сетевые скрипты стараюсь делать с паузами между запросами big_smile.gif )
Всего в базе 18 лент. Все - с новостного сайта NEWSru.

Думаю, ещё один новостной скрипт лишним не будет.
Nickolya, Tsd, Артём, ShadoWx, PomanoB, Saymon21, Агрессор, shullz, stone, AfLc, Hashish, Nikolaevich
10.9.2011, 16:30 Network Separation
API1, API2 | Скрипт разделения сетей пользователей
van21, для этого есть другие, специально для этого сделанные, скрипты. Я не знаю ссылки, так что придется искать тебе самому на форуме. Возможно, в разделе скриптов с MySQL...возможно.
van21
8.9.2011, 6:23 WhoisNew
Через меню хаба добывает WHOIS-информацию об IP
UPD-4:
- наконец-то дошли руки, подогнал скрипт под изменившиеся страницы результатов, скрипт снова работает.
У кого если вдруг какой-то IP вызовет падение скрипта (в силу множественности вариантов представления информации на странице результатов), сообщите сюда этот IP в тему мне, приму меры.

Последняя перезаливка 08-09-2011 07:15 (мск.)
striker, AfLc
31.8.2011, 20:00 Network Separation
API1, API2 | Скрипт разделения сетей пользователей
1. Тогда, как я и говорил, все "свои" диапазоны (локалка + выделенка) держи в одной таблице. И больше никаких таблиц диапазонов.
2. Чтоб не могли отключить разделение сетей, как вариант, можешь скрыть от юзеров из меню строку отправки команды.
Скажем, так:
Код
--    Core.SendToUser(curUser, "$UserCommand 1 3 "..sMenuWay.."ВКЛ./ВЫКЛ. разделение сетей$<%[mynick]> +"..sOn_OffCmd.."|")
van21
31.8.2011, 16:56 Network Separation
API1, API2 | Скрипт разделения сетей пользователей
1. van21, ты какой-то странный...всё время городишь одно на другое.
2. Вопрос - чего ты хочешь - чтоб первая сеть не могла качать из второй сети? или ещё что-то?
3. И что за третья сеть? 127.0.0.1 - это вообще-то комп, где стоит хаб. Удали эту сеть.
4. Насколько я вижу, первая сеть уже вобрала в себя все твои локальные диапазоны.
А во вторую сеть у тебя что за диапазоны попали?
Я же писал раньше тебе - все диапазоны, которые беспроблемно могут качать друг с друга, должны находиться в одной сети (таблице), а всё, что не вошло в эту таблицу - не надо заносить в списки. Они по умолчанию будут в сети №0.

Несколько сетей нужно организовывать только в том случае, когда на ваш хаб зходят люди из нескольких провайдеров, которые между собой "воюют", то есть, за скачивание между ними берутся деньги, вот тогда и необходимо организовать несколько разных сетей.
А если у тебя проблема только между локалью (где силят все ваши местные юзеры) и интернетом, то достаточно прописать в скрипте только сеть №1.
van21
31.8.2011, 0:39 Переделка скриптов
Прошу помощи
Fe(one)X, функцию function checkForSafe(msg) ты написал, но нет обращения к ней, то есть, у тебя нет проверки вхождения выражения из таблицы исключений в сообщение юзера.
Короче, надо вместо строки
Код
        if sdata then
написать так
Код
        if sdata and not checkForSafe(sdata) then

Fe(one)X
31.8.2011, 0:14 Network Separation
API1, API2 | Скрипт разделения сетей пользователей
Ну узнай, в какой диапазон входят ВПН-адреса и внеси в тот же список "своих"..
Так же поступи с выделенками. Они же не произвольные IP, а входят в какие-то определённые диапазоны, вот узнай и занеси в в таблицу.
А диапазоны можно узнать через сервера WHOIS. Запрашиваешь какой-то айпи и сервер тебе выдаст, в какой диапазон он входит.
van21
30.8.2011, 22:10 Network Separation
API1, API2 | Скрипт разделения сетей пользователей
Это уже тебе надо ориентироваться в сетях вашей местности...наверно, должен быть сайт какого-нибудь вашего провайдера, где будет таблица ваших сетей.
У нас в городе (области) есть. Там больше 120 диапазонов.
Ищи у себя тоже.
van21
30.8.2011, 21:38 Network Separation
API1, API2 | Скрипт разделения сетей пользователей
Повторюсь и тут:
Код
    tNetworkShareLimit = {
---        [0] = 1073741824,         -- 1 ГБ (1024^3), это все юзеры, ip которых не прописаны в таблице
---        [2] = 1099511627776,    -- 1 ТБ (1024^4)
    }

    tNetworkUsersLimit = {
---        [0] = 0,    -- это лишь пример, тут мы запрещаем вход всем тем, чей ip не описан в таблицах сетей
---        [1] = 40,
---        [3] = 2,
    }

Сделай как тут - комменты спереди...тогда не будет ограничений и выкидышей/незапусков.
И не обращай внимания на то, что написано после комментирующих чёрточек впереди, это не имеет значения, пока закомментены.
van21
28.8.2011, 20:29 Ваши Хабы И Их Адреса
А ещё говорят, что сны не сбываются...вот и верь людям после этого..
AfLc
26.8.2011, 20:57 Переделка скриптов
Прошу помощи
Fe(one)X, в скрипте отправки топика измени одну строку так:
Код
function OnTimer()
    if tTopic ~= {} then
        SetMan.SetString(10,tTopic[math.random(1,table.maxn(tTopic))]:sub(1,256).." Время: "..os.date("%X"))  -- изменённая строка*
    end
end

И будет выводить твои топики + текущее время (но только на момент отправки, потом до следующего топика время будет висеть одно и то же). Может, лучше хотя бы без секунд? Тогда время в топике будет более корректно выглядеть.
Если без секунд, то строка должна выглядет так:
Код
        SetMan.SetString(10,tTopic[math.random(1,table.maxn(tTopic))]:sub(1,256).." Время: "..os.date("%H:%M"))  --  изменённая строка*
Fe(one)X
20.8.2011, 18:54 Скрипт для открытия сайта через меню хаба.
Если так охота через меню хаба, делай команду в меню, которая выбросит в чат или приват ссылку, видную только тебе, потом нажимаешь на неё и заходишь на сайт.
Будет вместо одного два нажатия..
digor22
9.8.2011, 11:11 контекстное меню для АДМИНА
drkrol, нет уж, пиши тут. Я полагаю, твои вопросы по теме.
И я не люблю общаться в личках форумов по темам, для которых создан этот форум.

PS: Отвечаю тут на вопрос в привате насчёт пропажи всего меню - представь сюда свой список скриптов, наверняка там есть какой-нибудь малораспространённый бот с меню, убивающей все остальные меню, кроме себя, может.
Если не я, то кто-то другой просветит на эту тему, вопрос с такой проблемой поднимался уже не раз.

И по мелочам (безотносительно пропажи меню)..весь твой код приводить здесь не стану, отвечу по твоим косякам:
1. Посмотри сюда:
Код
function OpConnected(tUser)
Core.SendToUser(user,........
Видишь разницу в именах переменных user? Это должно быть одинаково! Если в предыдущих строках выше везде tUser, так и тут пиши так же везде.
2. Строка
Код
"$UserCommand 1 3 Бан\\Временный бан IP (полный)$<%[mynick]> fulltempbanip........
- тут команда без префикса, работать не будет.
3. Зачем правила/хабы/радио суёшь в баны/разбаны?
Код
Core.SendToUser(tUser,"$UserCommand 1 3 Бан\\Правила хаба$<%[mynick]> !rules||"..
"$UserCommand 1 3 Бан\\Хабы-друзья$<%[mynick]> !hubs||"..
"$UserCommand 1 3 разбан\\Сетевое радио$<%[mynick]> !radio||"

Да, и выше в самом верху (для юзеров) ты повторил одну команду два раза, вот эту:
Код
"$UserCommand 1 3 Меню хаба\\Правила хаба$<%[mynick]> !rules||"..


Похоже, ты надёргал из других скриптов строки, не понимая сути..
Насчёт пропажи меню уже написал выше.
drkrol
8.8.2011, 20:59 контекстное меню для АДМИНА
drkrol, вот пример:
Цитата
Core.SendToUser(user,"$UserCommand 1 2 "..UserMenu.."Баны\\Бан IP юзера на время$<%[mynick]> "..Prefix.."tempban %[nick] %[line:Время: m,h,d,M,y] %[line:Причина]|")

Тут кусочек
Цитата
$UserCommand 1 2
говорит, что команда работает только на нике онлайн-юзера, то есть, на нике открываешь меню
Цитата
%[nick]
, далее, исходя из команды выше, тебе будет предложено внести время, далее - причину. (Тут IP захватывается с живого юзера автоматом, главное, чтоб он был в списке).
Если бы в приведенной цитате вместо "1 2" было "1 1", то меню срабатывало бы только на вкладке хаба...если бы было "1 3", то и на вкладке и на никах живых юзеров.
Вот как-то так.. С твоей командой "!fulltempbanip" всё аналогично.
drkrol
8.8.2011, 9:51 контекстное меню для АДМИНА
drkrol, вместо
Код
function UserConnected(tUser)
пишешь
Код
function OpConnected(tUser)

и ниже удаляешь
Код
RegConnected = UserConnected
OpConnected = UserConnected
drkrol
25.7.2011, 13:07 Не могу качать с пользователей с интернета
???
Как почитаю темы и сообщения этого....так материться охота.. :(
Артём
3.7.2011, 22:35 Hub Menu
API2 | Меню для встроенных команд PtokaX
Может, пора уже тебе начать с элементарного? Например, с отправки команды !help в чат?
Ну либо с чего-нибудь чуть потруднее, скажем, с Букваря?
Цитата
"Рождённый ползать летать не может!"
© Древняя мезозойская поговорка..
Артём
3.7.2011, 18:44 программа для хаба
Тяжело перебросить порт?
Accelerator
16.6.2011, 22:03 Нужна помощь
спам боты
Можно просто не пропускать в чат сообщения, содержащие символы из определённого списка (куда входит, скажем, ряд символов из первого сообщения темы, не обязательно все возможные "нехорошие", но достаточное количество, чтоб какой-нибудь из них обязательно попадал в любой произвольный аналогичный набор символов)...
Вот накропал один из вариантов скрипта для нейтрализации такого спама:
Тык сюда:
Код
local sAdm = "Ksan"
local bShowAdm = true

local tForbidSimbols = { "Ђ", "Ѓ", "ѓ", "Љ", "Њ", "Ќ", "Ћ", "Џ", "ђ", "љ", "њ", "ќ", "ћ", "џ", "Ў", "ў", "Ј", "Ґ", "І", "і", "ґ", "ј", "Ѕ", "ѕ", "†", "‡", "¶",}

function ChatArrival(tUser, sData)
    local sData = sData:sub(1,-2)
    local sMsg = sData:match("^%b<>%s(.*)$")
    local bFS = false
    for _,v in pairs(tForbidSimbols) do
        if sMsg:find(v) then
            Core.SendToUser(tUser, "<"..tUser.sNick.."> "..sMsg)
            if bShowAdm == true then
                Core.SendToNick(sAdm, "<"..tUser.sNick.."> *** "..sMsg)
            end
            bFS = true
            return true
        end
        if bFS then
            break
        end
    end
end


Комментарий для всяких коч и мих:
-- строка
Код
local bShowAdm = true
для выбора - посылать ли админу с ником из строки
Код
local sAdm = "Ksan"
сообщение с показом заглушенного спама или нет...
Если неохота любоваться спамом, можете выбрать "false"
-- также можете дописать кик/дроп спамера вместо простого непропуска спама в чат...ну это сделаешь сам, если хочешь.
-- набор символов можно уменьшить/увеличить по своему усмотрению..

И - учись, а не списывай!
DEN 007
26.5.2011, 20:22 Подскажите где скрип такой найти
помогите
Master-Grow, убрал бы ты вот это из своей подписи:
Цитата
PtokaX упала в грязь.....

Неприятно видеть в твоих сообщениях каждый раз такое. Сам же его юзаешь, и такое пишешь..
Придумай что-то оригинальное, не обязательно ведь панковское.
Master-Grow
21.5.2011, 16:00 Милиция против DC
запрет со стороны милиции и провайдера
Надо в топиках, МОТД и по возможности в других местах позиционировать свой хаб как место для активного общения...
А если кто "нагло" предоставляет свои файлы и другие их "нагло" скачивают - ну это на их совести (ведь сам хаб не содержит ничего запрещённого - DC-софт ведь пока ещё не запрещён), пусть доблестные блюстители ими и занимаются, если смогут выявить "преступников"..
мамин_парень
12.5.2011, 20:46 Нужна помощь
помогите не кикает (dropip)
Хватит засирать форум тупостью, тебе уже тысячу раз всё разжевали и в рот положили, а ты всё клянчишь и клянчишь!
Если тебе не дано понять, ты хоть тресни, у тебя не получится, займись уже чем-нибудь полезным и доступным для твоих мозгов.
Артём
4.5.2011, 21:41 Подскажыте что делать незаходит в шару
1. Br@yZeR, вообще-то тебе советовали учить русский, а не "москалюгский"...
2. И с таким гавно-менталитетом (разделение людей на москалюг и хохлов, а может, ещё что-то не менее вонливое) и спесью тебе тут нечего делать, пожалуй!
3. И ещё - Птоке, и тем более, клиентам, насрать, какой национальности и какой страны юзеры, попробуй "зайти в шару" к американцам или румынам, и предъяви им претензии..
4. Твоя проблема решается на уровне местного админа (ибо твой вопрос - чисто юзерский), вот и обращайся к нему.
Saymon21
19.4.2011, 9:03 Tiny Hublist
Программа для создания хаблистов
Много хаблистов - к чему? Скоро народ начнёт гасить пингеров, не разбираясь, где чей айпи..
Цитата
Те, кто сможет понять — они и свой хаблист не сильно вспотев напишут или из этого слепят. Большинство-же будет мозг выносить нубскими вопросами.
....и вдобавок заменят авторскую подпись своими, "}{AI<Ep"-скими..
Даже на этот Tiny уже новые "авторы" есть...

Не надо выкладывать полную версию!
Артём
8.4.2011, 23:25 Отправка личек по профилям
Отправка сообщений в личку по профилям
Лучший мануал - это своя голова, чужие скрипты и scripting-interface.txt из папки scripting.docs Птоки.
И обязательное пособие - http://www.lua.ru/doc/
Плюс на форуме есть раздел для начинающих программистов.
sania
7.4.2011, 17:19 Пассивный режим
По-моему, проблема существует только в голове автора темы..
мамин_парень
7.4.2011, 10:59 Пассивный режим
Пусть получает при входе через МОТД.
Зачем для такого пустяка писать скрипт?

И не по теме - зачем хаб только для пассивов?
мамин_парень
4.4.2011, 4:53 Surdo_Isolation
Почти универсальный скрипт заглушек с богатым меню и возможностями
van21, например, если к тебе кто-то в чате пишет сообщение, то получится примерно так (смотря что написано в таблице):
Цитата
[08:41:07] <Ksan> сэр van21: Приветствую тебя!

Слово "сэр" берётся из таблицы и добавляется автоматом (для каждого прописанного ника своя приставка).
van21
1.4.2011, 23:52 RandomPrivet_by_Ksan.lua
Через меню можно отправить приветствие кому попало из списка юзеров
Ответил уже в соседней теме - смысл тот же - легко чуток изменить (убрав рандомность выбора адресата) и отправить конкретному человеку!
А тем более, новые приветствия в таблицу, - добавляйте сами, тут всё зависит только от вашей фантазии. Лично она у меня уже иссякла big_smile.gif

UPD: Я тебя уважаю, но хочу видеть, как стараешься и растёшь.
мамин_парень
1.4.2011, 5:33 RandomPrivet_by_Ksan.lua
Через меню можно отправить приветствие кому попало из списка юзеров
Вообще-то скрипт был создан изначально для отсылки собственных приветствий, а приложенная таблица приветствий только для самых ленивых.
А отослать конкретному человеку - что мешает самому взять и написать приветствие кому хочешь? big_smile.gif без скрипта..
Если я тебя не понял - поясни.
мамин_парень
31.3.2011, 12:43 RandomPrivet_by_Ksan.lua
Через меню можно отправить приветствие кому попало из списка юзеров
Пусть знают, что есть такой город на Земле. big_smile.gif
Это я пишу в каждом своем скрипте..
Кто-то пишет ссылку на свой хаб, а я - ссылку на свой город big_smile.gif
Invisible, mariner
31.3.2011, 11:34 RandomPrivet_by_Ksan.lua
Через меню можно отправить приветствие кому попало из списка юзеров
Скрипт для отправления приветствия кому попало из списка юзеров хаба

Название: RandomPrivet_by_Ksan.lua
API: API 2
Версия: 1.0
Автор: Ksan (aka Trans)
Дата написания: 31-03-2011
Место проживания автора: г.Томск (Россия)

Не удивляйтесь, если иногда приветствие отправится не только кому попало, но и от кого попало.. big_smile.gif Но редко.
Nickolya, Invisible, DEN 007, Mustik, AfLc, мамин_парень
31.3.2011, 2:53 Monetka_by_Ksan.lua
Простой скрипт для кидания монетки (орёл/решка)
Простой скрипт для кидания монетки (орёл/решка)

Название: Monetka_by_Ksan.lua
API: API 2
Версия: 1.0
Автор: Ksan (aka Trans)
Дата написания: 31-03-2011
Место проживания автора: г.Томск (Россия)

Сделан по просьбе Mustik'а
Текстовку можете сами подредактировать.
Это же касается и подбора степеней случайности для орёл/решка/ребро/"улетел куда-то"..
Nickolya, Invisible, Saymon21, @_JuNiOr_@, Mustik, AfLc, zeusby
31.3.2011, 2:42 Монетка
простой скрипт подкидывания монетки
Вот небольшой скриптик наскрипел.
Текстовку можете сами подредактировать.
Это же касается и подбора степеней случайности для орёл/решка/ребро/"улетел куда-то"..

Создал тему под этот скрипт в разделе Готовые/Развлечения.
Invisible, Mustik
21.3.2011, 12:56 Вопросы Разработчикам Скриптов
вопросы по скриптам (мелкие вопросы)
Попробуй
Код
#Message

Пример для теста:
Код
local sMess = "<-Bot>  В меню хаба добавлены \"Полезные ссылки\" - ограниченное количество хабов и много других полезных ресурсов широкого диапазона интересов (Тонет). Если у вас есть интересная ссылка, отсутствующая в этих списках, вы можете предложить это админам хаба для внесения."
Core.SendToNick("Ksan", tostring(#sMess))

Сохрани как скрипт и запусти. Только перед этим в скрипте в команде отправки сообщения впиши свой ник.
Результат будет
Код
[16:00:50] 267
длина сообщения.
А как дальше применить для своего скрипта, думаю, тебя учить не надо.
Damaks
16.3.2011, 20:00 antiproxy2
нету
Цитата(absent @ 16.3.2011, 22:33) *
поиском пользоваться умею

Так учись!
Пока не научишься, не лезь сюда, не позорься.

Accelerator,
Цитата
Тяжело, не правда ли?

Он никогда сам не сделает, так или иначе, мытьём или катанием, вытянет нужную информацию, нужные изменения от тебя, от меня, от других, но сам ни за что даже не шевельнётся в сторону обучения.
Уже столько времени тут пасётся, а всё ведёт себя, как будто первый раз зашёл.
Accelerator, Saymon21
6.3.2011, 19:10 MessCount
Выводит общее число сообщений чата в топик
-- Скрипт показа общего числа сообщений чата в топике.
-- Название: MessCount.lua
-- Платформа: PtokaX
-- API: API 2
-- Автор: Ksan (aka Trans)
-- Дата: 06-03-2011
-- Где: г.Томск

-- При необходимости освободить топик для иных сообщений оператор может через меню отменить показ числа сообщений в топике. Потом сможет так же через то же меню восстановить.
-- Папка "MessCount" должна быть создана заранее!
-- В число сообщений попадут и команды через меню (которые через ЧатАрривал), хотя их в чате не будет видно.
-- В принципе, можно внести таблицу исключений для команд различных скриптов, используемых через меню, но надо ли оно? Запаришься выцеплять все команды со всех скриптов, да потом ими грузить скрипт. Пусть идут в счёт сообщений. big_smile.gif
--
Nickolya, Tsd, Invisible, Saymon21, Cyber_voodoo, MIKHAIL
6.3.2011, 18:53 Общий подсчет сообщений
Вот один из вариантов (название скрипта - MessCount.lua ) :
Сам скрипт ТУТ
Код
-- Скрипт показа общего числа сообщений чата в топике.
-- Автор: Ksan (aka Trans)
-- Дата: 06-03-2011
-- Где: г.Томск

-- Скрипт показа общего числа сообщений чата в топике.
-- При необходимости освободить топик для иных сообщений оператор может через меню отменить показ числа сообщений в топике. Потом сможет так же через то же меню восстановить.
-- Папка "MessCount" должна быть создана заранее.

local sBot = SetMan.GetString(21)
local bTopic = true
local sCountFile = Core.GetPtokaXPath().."scripts/MessCount/MessCount.txt"

tProfiles = {  -- Кто может ставить/отменять показ в топике
    [0]  = 1, -- Мастер
    [1]  = 1, -- ОПератор
    [2]  = 0, -- VIP
}

function OnStartup()
    dofile(sCountFile)
    if tMessCount == nil then
        tMessCount = { }
        tMessCount["MessCount"] = 0
    end  
end

function OpConnected(tUser)
    Core.SendToUser(tUser, "$UserCommand 1 3 << АДМИНКА >>\\Число сообщений в топик$<%[mynick]> !messcount&#*124;") -- тут звёздочку в конце удалить
end

function ChatArrival(tUser, sData)
--    Core.GetUserAllData(tUser)
    local sData = sData:sub(1,-2)
    local sCmd = sData:match("^%b<>%s+(%S+)")
    if tProfiles[tUser.iProfile] == 1 and sCmd == "!messcount" then
        bTopic = not bTopic
        if bTopic == true then
            Core.SendToUser(tUser, "<"..sBot.."> Число сообщений будет показываться в топике.")
        else
            Core.SendToUser(tUser, "<"..sBot.."> Число сообщений не будет показываться в топике.")
        end
        return true
    end
    tMessCount["MessCount"] = tMessCount["MessCount"] + 1
    if bTopic == true then
        SetMan.SetString(10, "В чате написано "..tMessCount["MessCount"].." сообщений")  -- сам текст можете править как вам угодно
    end
    SaveToFile(sCountFile, tMessCount, "tMessCount")
    collectgarbage()
--    return true
end

function OnExit()
    SaveToFile(sCountFile, tMessCount, "tMessCount")    
end

function SaveToFile(file , table , tablename)
    local handle = io.open(file,"w+")
    handle:write(Serialize(table, tablename))
    handle:flush()
    handle:close()
end

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

Число сообщений будет сохраняться в файл, дабы при отключении скрипта или хаба сохранялось. Для этого надо заранее в папке "scripts" создать папку "MessCount" (только папку!). При первом запуске файл сам создастся.
При необходимости освободить топик для иных сообщений оператор может через меню отменить показ числа сообщений в топике. Потом сможет так же через то же меню восстановить показ.
В скрипте в коде отправки команды в меню в самом конце вставил *, её надо удалить перед запуском скрипта.

UPD: Создал тему со скриптом здесь.
Invisible
5.3.2011, 14:22 Опы дают добро на ссылки
1. Не понимаю я этой HTTP-фобии (или параноики), у вас что, хаб развалится, люди сбегут, если какая-то не такая ссылка проскочит в чат?
2. У меня на хабах проходят все ссылки, если они не в списке антирекламы, а в антирекламу попадает "нехорошая" ссылка сразу же, как только первый раз попадает в чат. Но с одного раза...(читай пункт 1)..
3. Премодерируемые сообщения в чатах - это уже ни к чёрту, хватит антирекламы с её "чёрными" списками.
Invisible, pol_91
23.2.2011, 11:30 Проблема на PtоkaX 0.4.1.2 в скрипте
Проблема на PtоkaX 0.4.1.2 в скрипте
Damaks, как ты не поймёшь, человек просто хочет, чтоб ему "сделали красиво"...и при этом чтоб ему не пришлось пальцем об палец (пардон, об клавиатуру) ударить..
sania
13.2.2011, 8:09 PortCheck и Clone Killer
1. Неправильно оформил тему (посмотри, как другие темы со скриптами оформлены).
2. Не написал автора скрипта.
3. И что тебе мешает перевести на русский?
4. И почему тема в Запросах скриптов, если ты готовый предлагаешь?

PS: У меня давно стоит свой Анти-КлоноСпамер.. big_smile.gif
мамин_парень
12.2.2011, 7:52 как удалить что хаб работает на версии
Как всегда, самые лузеры начинают с изменения входного сообщения.
Что это у вас такая аллергия на это?
Прописав туда вместо стандартного (и необходимого) сообщения Птоки это "этот хаб Супер-пупер_МОЙхаб версии 666.6", вы не станете умнее или круче выглядеть!

UPD: Сорри, модеры, но они уже достали этой темой (молчу уже про поиск)..
Можете даже удалить, если не понравится этот крик души big_smile.gif
Saymon21
7.2.2011, 5:36 TotalGag
для аварийной заглушки всего хаба (кроме определенных лиц)
Я стараюсь систематизировать отправку команд через их направленность, то есть, зависит от объекта действия.
Поэтому в своих скриптах в меню на нике юзера отправляю только те команды, которые касаются этого самого юзера (причём, только команды работы с онлайн-юзером), а остальные - в меню на вкладке хаба внизу.
Правда, некоторые команды общего характера иногда и через меню на нике юзера выдаю.
Наверно, в данном скрипте следовало действительно делать "1 3", а не "1 1".
absent
29.1.2011, 21:49 Автоматическая регистрация
UPD: Ладно, решил прекратить нудное выпрашивание и накидал скриптик (10 строк, как и говорил):
Код
local sBot = SetMan.GetString(21)
function UserConnected(tUser)
    if not(tUser.bRegistered) and RegMan.GetReg(tUser.sNick) == nil then
        local sPass = tostring(math.random(os.date("%H%M%S")))
        RegMan.AddReg(tUser.sNick, sPass, 3)
        RegMan.Save()
        Core.SendPmToUser(tUser, sBot, "*** Вы теперь зарегистрированы на хабе.\n\tВаш ник:  "..tUser.sNick.."\n\tВаш пароль:  "..sPass.." \nСохраните пароль, пропишите его в свойствах хаба в избранных хабах и не забудьте перезайти на хаб. Потом, при желании, пароль сами поменяете командой \"!passwd новый_пароль\" (без кавычек).")
    end
    collectgarbage()
end
Но, если у юзера в клиенте стоит игнор бота (а некоторые юзеры так и делают), то он не увидит сообщение о регистрации и при следующем заходе будет ему облом с этим ником.
CrazyCat
27.1.2011, 2:51 Автоматическая регистрация
CrazyCat, легко. big_smile.gif
Точнее, можно как уже готовые самые простые приспособить, так и новый написать.
Можно даже вообще его не спрашивая зарегистрировать и ему сообщить только его пароль.
Дерзнёшь?
мамин_парень
25.1.2011, 13:50 WhoisNew
Через меню хаба добывает WHOIS-информацию об IP
Артём, это уже исправлено и перезалито...написано в моём предыдущем сообщении.
Перезалил ещё 21-01-2011 20:56 (мск.)
Скачай снова.
Артём
23.1.2011, 3:43 Current_Weather_All_Cities
Выводит текущую погоду автом. в чат и по запросу, любые города
Dan Claimant, найди эти строки:
Код
function SendToChat()
    bArchive = GetData(tCities[sCity])
и добавь сразу под ними эту:
Код
local sArchive = ""

Когда делал последнее исправление, забыл с тестируемого скрипта скопировать эту строку сюда.

UPD: Исправил и перезалил в первом сообщении.

Тест ɐwʎ ɔ ɐvmоɔ
Dan Claimant
22.1.2011, 4:21 некоректные символы
ники
GanG, открываешь файл scripting-interface.txt (это лежит в папке Птоки - в папке scripting.docs) и читаешь строку:
Цитата
AddReg(sNick, sPass, nProfileNumber) - Chars $|<>:?*"/\ and space not allowed in nick. Char | not allowed in password. Max nick/pass length 64 chars. Return nil when failed, true if success.
И отвечаешь на свой вопрос, заданный выше, сам.
GanG
21.1.2011, 20:59 WhoisNew
Через меню хаба добывает WHOIS-информацию об IP
UPD-3:
- подкорректировав под дополнительно выявившиеся неучтённые нестандартные (отсносительно первоначального) участки парсинга, перезалил скрипт в первом сообщении.
Saymon21
14.1.2011, 15:15 WhoisNew
Через меню хаба добывает WHOIS-информацию об IP
UPD-2:
Артём, сделал костыль, перезалил. big_smile.gif
Артём
14.1.2011, 11:30 WhoisNew
Через меню хаба добывает WHOIS-информацию об IP
Скрипт просмотра через админское меню хаба WHOIS-информации по IP (вводом IP либо через онлайн-ник)
Получаем диапазон, к которому принадлежит вводимое IP, название сети, страну, город и ещё кое-какие данные этой сети.

Название: WhoisNew.lua
Версия: 1.2
Платформа: PtokaX
API: API 2
Автор: Ksan (aka Trans)
Город: Томск, Россия
Дата: 2011-01-14
Даты изменений: 2011-09-08, 2013-06-22, 2015-01-05

Библиотека: Для работы требуется библиотека Lua Socket
Библиотека: Для работы скрипта требуется библиотека SSL

Комментарии:
1. Информация изредка выводится недостаточная (например, может не быть города), поэтому иногда бывает необходимость получить инфу побольше за раз, поэтому в меню есть опция выбора размера результата. По умолчанию стоит короткий вариант.
2. Не по всем IP можно получить информацию, в этих случаях будет соответствующее сообщение.
3. В базе сервера WHOIS информация хранится в самых невероятных сочетаниях, никакого порядка, очень трудно и долго подбирал варианты парсинга, чтоб результат выцепить, но наверняка ещё могут всплыть неучтённые проколы с падением скрипта.
4. Поэтому - просьба сюда писать обо всех подобных случаях с предоставлением лога ошибки, и желательно строку, куда указывает ошибка, так как она у вас может уже оказаться под другим номером, и, самое главное, предоставить IP, на котором споткнулся скрипт. Я проверю и постараюсь внести корректировку.
5. Не проверяйте локальные IP, всё равно не получите ничего. При проверке локалок получите отмазку, что серверам WHOIS локальные IP недоступны.
Пример результата (клацнуть сюда изо всей силы)
Цитата
[09:18:12] <WHOIS_по_IP> *** 83.172.37.41:

**********************************************************************
inetnum: 83.172.32.0 - 83.172.39.255
netname: SELS-NET
descr: The municipal enterprise "Severskelektrosviaz", Solnechnaia 15, Seversk, Tomsk Region
country: RU
address: Solnechnaia 15
address: Seversk, Tomsk Region
address: Russia
phone: +07 3823 771999
e-mail: sov@sels.ru

**********************************************************************


Исправления:
UPD-1:
- как я и ожидал, находятся трудные для идентификации IP...Вот сделал очередной костыль, перезалил.
UPD-2:
- перезалил, подправив некритичный косметический нюанс и добавил таблицу профилей, кому можно юзать WHOIS (по умолчанию поставил и для випов, доверять так доверять)
UPD-3:
- перезалил, подкорректировав под дополнительно выявившиеся неучтённые нестандартные (отсносительно первоначального) участки парсинга.
UPD-4:
- перезалил, переделав парсинг (причина - изменения на страницах результатов)
UPD-5:
- перезалил, чуть-чуть изменив одну строчку (причина - маленькое изменение на странице результатов сайта, приведшее к неработе скрипта)
UPD-6:
- пришлось исправить пару строк в связи с переходом сервера WhoIs на безопасный режим, а также в связи с этим теперь необходимо доустановить библиотеку SSL. Скрипт перезалит.
UPD-7:
- на сайте-источнике данных чуток изменили исходный код страницы и скрипт перестал работать, пришлось в код скрипта внести маленькое изменение. Скрипт перезалит.

Последняя перезаливка: 2015-04-29 19:45 (мск.)
Nickolya, Tsd, Артём, Milena, Saymon21, Dimon21, striker, DEN 007, ProGeTTo, AfLc, MIKHAIL
8.1.2011, 3:10 ChatAfterLoginLocker
API2 | Доступ к чату после N минут онлайн
Эхх, тоже хотел кинуть, смотрю, тут уже успели сразу 2 помочь. big_smile.gif
Ай, ладно, чтоб труд не пропал даром, тоже кину своё зёрнышко..
Код
local iPause = 10*60 -- ожидание в секундах
local tWaitUsers = {}

function UserConnected(tUser)
    tWaitUsers[tUser.sNick] = os.time(os.date("*t")) + iPause
end
RegConnected = UserConnected

function UserDisconnected(tUser)
    tWaitUsers[tUser.sNick] = nil
end
RegDisconnected = UserDisconnected

function ChatArrival(tUser, sData)
    if tWaitUsers[tUser.sNick] then
        if tWaitUsers[tUser.sNick] > os.time(os.date("*t")) then
            Core.SendToNick(tUser.sNick, "<"..SetMan.GetString(21).."> "..tUser.sNick..": Для общения в чате ещё не прошли "..tostring(iPause/60).." мин. с вашего захода на хаб! Погодите малость..")
            return true
        else
            tWaitUsers[tUser.sNick] = nil
        end
    end
end
Nickolya, мамин_парень
5.1.2011, 18:46 Surdo_Isolation
Почти универсальный скрипт заглушек с богатым меню и возможностями
Для WINS:
1. Я бы посоветовал тебе не кикать через эту команду, а использовать штатную команду Птоки, либо использовать мой же скрипт отсюда (если, конечно, ты не ставишь целью кикать демонстративно, чтоб все видели, кто, кого и за что кикает). Этот скрипт работает бесшумно и без упоминания ника админа, что частенько избавляет от лишних разборок впоследствии с кикнутым юзером. big_smile.gif
2. Но есть решение и в топиковом скрипте, почти аналогично решению по указанной тобой ссылке. Я позже представлю его, когда перезалью обновлённый скрипт (когда допеределаю встроенный антимат)
WINS
3.1.2011, 17:33 Скрипт онлайн-погоды
скрипт погоды сейчас
Кстати, выложу-ка я тоже чуть подправленную версию этого скрипта.
Изменения:
- добавил меню
- добавил выборку погодных явлений (облачность, осадки и т.д.)
- подправил чуток вывод градусов и мм.рт.ст
- подогнал под себя дизайн вывода big_smile.gif
- при запуске скрипта сразу же с сайта берётся инфа о погоде, не дожидаясь сигнала от таймера (дальше уже отработает таймер)

Думаю, можно добавить в меню разные города (по желанию админа)
---------------------------------------------------------------------------------------

UPD: Всё, сделал с городами.
Готовый скрипт с меню и разными городами переложил отдельной темой сюда.
ProGeTTo
3.1.2011, 17:31 Current_Weather_All_Cities
Выводит текущую погоду автом. в чат и по запросу, любые города
Скрипт просмотра текущей погоды в разных городах (в чате периодически или по запросу через меню) с сервера http://pogoda.mail.ru/
Название: Current_Weather_All_Cities.lua
Платформа: PtokaX
API: API 2
Автор: Ksan (по мотивам скриптов от Nickolya и Saymon в этой теме

Библиотека: Для работы скрипта требуется библиотека Lua Socket
Библиотека: Для работы скрипта требуется библиотека SSL

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

Примечания:
1. Индексы городов находить так: поиск по городу на странице сервера http://pogoda.mail.ru/ в правом верхнем углу, в открывшейся странице в поле адреса последнее число - это индекс нужного города.
2. Таблицу городов стройте аналогично уже вписанным в скрипт.
Названия городов транслитом можно получить через этот же сайт погоды http://pogoda.mail.ru/ (прописываете город в окошке ввода кириллицей, и потом получаете в адресной строке последнее слово - название города латинскими буквами).
3. И да, кому хочется показывать давление и влажность в чате (для всех), можете просто раскомментить 2 строки в функции "function SendToChat()"

ToDo:
- возможно, добавлю вывод по отдельному запросу полного прогноза на ближайшее время суток - на сейчас + на 2 из следующих времён суток - утро + день, вечер + ночь и т.д. (как на сайте сделано) СДЕЛАНО.
- есть возможность сделать отдельный вывод по запросу и на следующие дни, только не знаю, есть ли в этом смысл, ведь прогноз погоды на несколько дней - вещь рискованная..

Пример результата работы скрипта - ответ на запрос полного прогноза и вывод по времени в чат:
Код
По запросу:

[20:39:04] <Current_Weather> Погода в городе Томск (Россия, Томская область) :
        ************************************************************
        Время:  воскресенье, 22 июня 2014, 20:37
        ************************************************************

        Температура:     29°
        Погодные явления:     "малооблачно"
        Давление:         748 мм рт.ст.
        Влажность:         33% (низкая)
        Ветер:         1 м/c (СВ легкий ветер)
        Солнце:         восход:  04:29
                    заход:    22:14

        В этот же день (из архивов):
            Max.:         33°    (1982 год)
            Min.:         0°    (2008 год)
    *****************************************************************************
    НОЧЬЮ...      t°: 18°    "Ясно"
            Ветер: 3 м/c (С-СВ)  Влажн. 56%  Давл. 749 мм
    *****************************************************************************
    УТРОМ...      t°: 24°    "Ясно"
            Ветер: 4 м/c (С-СВ)  Влажн. 27%  Давл. 748 мм
    *****************************************************************************

В чате:

[18:17:46] <-Bot-> Погода в городе Томск (Россия, Томская область) :
        ************************************************************
        Температура:     30°
        Погодные явления:     малооблачно
        Ветер:         1 м/c (СВ легкий ветер)

        В этот же день (из архивов):
            Max.:         33°    (1982 год)
            Min.:         0°    (2008 год)
        ************************************************************
[Сорри, тут с форматированием некоторые проблемы на сайте, так что вид не совсем идентичный]
При запросе только текущей погоды вид такой же, только не будет нижних двух участков (прогноза на ближайшее время).
Для периодического вывода в чат вид такой же, разве что нет показа времени и параметров чуть меньше (но это всё включаемо через раскомментирование нужных строк в скрипте).

UPD:
- при попадании на просмотре через меню города без архивов погоды (есть и такие) следующие города показывались тоже без данных из архива (до перезапуска скрипта). Исправлено.
- на сайте изменили вид ссылки (теперь там вместо кодов городов - названия самих городов латиницей и без пробелов (вместо пробела - символ подчеркивания)). Скрипт переделан под это.

UPD-2:
- добавлена инфа про макс. и мин. температуру в этот же день из архивов этого города (если отсутствует при выводе, значит, нет информации в архивах), скрипт перезалит.
UPD-3:
- добавлена возможность выбора места вывода по запросу - в приват или чат ( local bSendToPrivat = true )
UPD-4:
- скрипт исправлен и добавлена как новая версия. Причина - изменение представления адреса на сайте погоды.
Но нет худа без добра - пока менял скрипт под это изменение, нашёл(и исправил) причину потери временами архивных данных при выводе информации.
UPD-5:
- скрипт исправлен и залит сюда, старые версии удалены за ненадобностью. Причина - полное изменение структуры страницы на сайте.
Пришлось всё перелопатить.
- добавил показ восхода/захода солнца.
UPD-6:
- добавил показ текущей даты/времени местности (UPD: убрал показ даты/времени для вывода в чат местнй погоды (зачем местным показывать их время, тем более, не очень точное))
- исключил вывод данных при получении ошибки с сайта (чтоб все города не получали одну и ту же погоду)
- небольшие косметические малозаметные изменения, улучшающие работу скрипта
UPD-7:
- добавил возможность выбрать через меню любой город/посёлок мира (но оставил возможность просмотра жёстко привязанных к меню городов)...для этого пришлось писать отдельный скрипт для выборки из сайта погоды и сборки в таблицу списков всех городов со странами и областями.
- в архиве есть папка с обязательными файлами (таблицы городов и цифровых кодов городов (последнее - для архивных температур))
UPD-8:
- пришлось перелопатить скрипт из-за изменений на странице погоды, в том числе и кодировки символов.
- для городов США уверенно отсутствуют архивные температуры. На сайте архивных данных сильно изменили представление страницы именно для США, для них необходимо отдельно парсить страницы и вытаскивать архив. Начал было делать эту работу, почти добил, потом подумал - а нафиг это надо кому, зачем эта лишняя работа, и забил. А так уже давно мог бы выложить исправленный скрипт, но так получилось, сорри.. плюс лень одолела в последнее время (это, скорее минус).
UPD-9:
- ввиду того, что на сайте полностью переделали интерфейс вывода погоды, изменился и код страницы, пришлось полностью перелопачивать парсинг
- теперь архивы берутся из этой же страницы (раньше для многих стран приходилось парсить другой сайт с архивом), но вот насчёт точности архивных данных не ручаюсь big_smile.gif
- добавил вывод температуры воды (для городов у моря и если этот параметр присутствует на странице погоды)
UPD-10:
- добавлена возможность запроса на выдачу (кроме текущей погоды) и прогноза на ближайшее время суток
- исправлена небольшая ошибка в коде
UPD-11:
- добавил возможность менять через меню частоту вывода текущей погоды в чат (не открывая скрипт и не перезапуская его), особенно будет удобно для тех, у кого хаб стоит далеко от своего компа.
При необходимости отмены вывода погоды в чат достаточно ввести одну цифру 0 (ноль) в данном меню вместо периода времени. Для включения нужно просто просто написать период в минутах, не равный 0 (нулю).
Файл перезалит.
UPD-12:
- сегодня вдруг скрипт стал выдавать результат с лишним словом из исходника (</span>) при годе минимальной температуры архивных данных (не знаю, почему, до этого было без таких ляпов), не стал копать глубоко, просто добавил в одну строку исправляющий код. Архив перезалил (изменение только в самом скрипте).
UPD-13:
- обнаружился баг - при попытке просмотра погоды городов из подменю "Другие города", если оставить первое окошко ввода пустым (а там надо вводить 0 или 1), то скрипт падал с ошибкой вроде этого:
Цитата
[03:45:32] <#OpChat#> ...r/ptokax/scripts/Current_Weather_All_Cities_Mint.lua:118: attempt to index local 'sCity' (a nil value)
То есть, не было "защиты от дурака". Скрипт исправил и архив перезалил. Изменение только в самом скрипте.
UPD-14:
- пришлось исправить пару строк в связи с переходом сайта погоды на безопасный режим, а также в связи с этим необходимо доустановить библиотеку SSL
UPD-15:
- пришлось изменить чуток код, ибо на сайте погоды внесли небольшие изменения в исходники страницы (добавили "+" к положительной температуре, в другом месте тоже изменили кусок и из-за этого температура воды не получалась, и была давненько появившаяся проблемка - перестало выдавать архивные температуры (для России), и тоже исправил). И да, заменил один из доп. файлов в папке, так что рекомендую у себя его заменить на мой - называется "citylist_Other.tbl")
UPD-16:
- заметил, что для некоторых местностей сайт не предоставляет данные о восходе и закате, в том числе и для заполярных территорий, поэтому везде, где эти данные отсутствуют, скрипт стал выдавать "Полярный день" и, возможно, "Полярная ночь" (зависит от даты). Дабы не вызывало недоумения, сделал выдачу типа этого - "Нет данных (либо полярный день)". Скрипт перезалит, из архива достаточно заменить основной файл (если вы изменили для себя основной скрипт на своё усмотрение, то посмотрите свой скрипт на предмет разницы). Вот изменённый участок кода:
Код
                if tonumber(os.date("%m")) > 3 and tonumber(os.date("%m")) <10 then
                    sSun = "Нет данных (либо там полярный день)"
                elseif tonumber(os.date("%m")) < 4 or tonumber(os.date("%m")) > 9 then
                    sSun = "Нет данных (либо там полярная ночь)"
                end

UPD-17:
- на сайте погоды опять изменили код страницы (у них там руки чешутся, что ли?), пришлось вновь подправлять скрипт (правда, не сразу руки дошли, прошу прощения за это), возможно, где-то пошли уже корявости из-за частых исправлений скрипта (как правило, не по моей вине).. Но вроде работает пока. Если что не так, напишите, для какой местности и какая ошибка..

Дата заливки последней версии: 2020-04-30 14:27 (мск.)
Nickolya, ustas, Taulalan, Tsd, Invisible, Артём, rival, Dimon21, AndreiDC, Cyber_voodoo, SKIFI, stone, MIKHAIL, Nikolaevich, zeusby
3.1.2011, 8:51 Нужен скрипт
Помогите
Ferb, считай, ты уже поступил куда надо - ты учишься тут.
Моя единственная школа - файл из Птоки "scripting-interface.txt", http://www.lua.ru/doc/ , чужие скрипты и этот форум. Чтоб научиться как править скрипты, так и писать свои, достаточно перечисленного мной. Хотя можешь ещё куда-то поступить, где учат программировать, лишним не будет, вдруг в жизни пригодится. big_smile.gif
29.12.2010, 23:31 Surdo_Isolation
Почти универсальный скрипт заглушек с богатым меню и возможностями
Saymon, я подумал над твоим предложением. Вообще, скрипт задумывался именно как тихая заглушка с возможностью скрытия чата, только с дополнительными удобствами и решениями проблем, возникающих по ходу эксплуатации (я про антикапс, антимат и т.д.), и как-то не хочется превращать его совсем уж в подобие Экзекутора (а если вовремя не остановиться, к тому и придём). Не хочется повесить сюда ещё и предупреждения, для этого же есть обычный скрипт предупреждений и общения через бота (можно так же предупреждать и потом уже при необходимости применять Сурдо-изоляцию).

Для WINS:
1.
Цитата
Можно добавить чтоб при при замене самого мата, фраза бралась рандомо из таблицы, как при замене фразы целиком.
Можно, и даже нетрудно, но считаю, что ни к чему. Хотите разнообразия - применяйте режим 2 (замену всего сообщения случайной фразой). big_smile.gif А режим замены мата одним словом сделан, чтоб просто отметить, что мат был, и скрыть его, не устраивая из этого балаган (уверен, что найдётся немало любителей проверить весь список слов), как находятся любители проверить весь список случайных фраз (а список немалый).
2. Насчёт твоего теста антикапса...я знаю, но я пока не стал заморачиваться отыскивать алгоритм против тестов big_smile.gif
Решение - в совмещении трёх кодов - антикапса, антипробелов и анти-слишком-много-одинаковых-знаков - в один код.
Я такие тесты сам проводил по ходу работы над скриптом ещё. Не стал усложнять скрипт доп. кодом против нереальных (на 98%) сообщений.

UPD: Пока для меня самое важное - доделать антимат (работа с таблицей матов и исключений через меню (добавление, удаление, редактирование, просмотр) + изменение кода анализа матов из-за изменения структуры таблицы), но пока дело тормознулось из-за проблем со здоровьем...осталось изменить код анализа сообщений на маты и исключения, всё остальное сделано.
Saymon21, WINS
28.12.2010, 19:55 Spam-Report
Юзер может сообщать о спаме и спамере прямо в Опчат админам
Скрипт сообщения юзером в Опчат админам о спаме и спамере

Название: Spam-Report.lua
API: API 2
Автор: Ksan (aka Trans)
Место проживания: г.Томск
Дата: 28-12-2010

Сделан по просьбе DEN_007

Описание:
2 варианта отправки сообщения о спамере:
1. В привате спамера (если он ещё не успел соскочить с хаба) набрать !спам, далее через пробел туда же скопировать ВСЁ сообщение от спамера и нажать ENTER. Сообщение о спаме и спамере отправится в Опчат хаба админам для принятия мер.
Вместо !спам можно написать и латиницей !spam (для тех, у кого нет кириллицы на клавиатуре, например, зарубежные гости)
Пример:
!спам [18:43:58] <СПАМЕР> Заходите в наш супер-пупер хаб с адресом супер.пупер.ru:411
2. Всё то же самое, только в привате главного бота хаба (годится как для случаев, когда спамер уже ушёл с хаба, так и когда он ещё онлайн).

Что видим в Опчате
Цитата
[22:25:22] <_OpChat_> Похоже, у нас появился спамер.
Ник спамера: Uzer1234
IP спамера: спамер уже оффлайн, IP добывайте сами.
Содержание спама: [17:34:11] <Uzer1234> Это самый ужасный спам. Тест.
Сообщил юзер: Test_user
Держите уши на макушке, господа админы!

[2010-12-28 21:19] <_OpChat_> Похоже, у нас появился спамер.
Ник спамера: Uzer1234
IP спамера: 192.168.1.2
Содержание спама: [17:34:11] <Uzer1234> Это самый ужасный спам. Тест.
Сообщил юзер: Test_user
Держите уши на макушке, господа админы!

Nickolya, Invisible, Milena, Saymon21, DEN 007
27.12.2010, 13:47 AntiReclama_by_Ksan
Тихая антиреклама чата и привата с удалённым управлением
UPD 3: Добавлена возможность предупреждать рекламщика в привате бота при попытке рекламы (в режиме "0"). Это тоже можно переключать через меню скрипта.

Скрипт перезалит в первом сообщении.
Nickolya, Kingston, Saymon21

11 страниц V  « < 2 3 4 5 6 > » 
RSS Сейчас: 1.5.2024, 23:54