myDC.ru

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

 
История благодарностей участнику Ksan. Спасибо сказали: 657
Дата поста: В теме: За сообщение: Спасибо сказали:
21.5.2016, 1:11 Current_Weather_All_Cities
Выводит текущую погоду автом. в чат и по запросу, любые города
Nikolaevich, посмотрел я на вашу картинку и обратил внимание на "Полярный день" для Нью-Йорка. big_smile.gif
И сделал выводы.. Результат ниже.
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

Дата заливки последней версии: 2016-05-21 01:07 (мск.)
Nikolaevich
13.5.2016, 2:58 Rss_RT_Curl + Rss_RusNext + Rss_RusVesna
Ленты посл. новостей от RussiaToday, RusNext и RusVesna
UPD-4:
-- на сайте новостей опять внесли маленькое изменение и в показываемой новости стали появляться артефакты. Исправил скрипт и перезалил.

Дата перезаливки: 2016-05-13 02:55 (мск)
Nikolaevich
27.4.2016, 14:49 Rss_RT_Curl + Rss_RusNext + Rss_RusVesna
Ленты посл. новостей от RussiaToday, RusNext и RusVesna
На сайте RT-ленты затеяли редизайн, поэтому скрипт выдаёт новости с артефактами.
Я слежу за ситуацией и меняю скрипт почти в онлайн-режиме, и когда всё устаканится, выложу исправленный.
----------------

UPD-3:
-- на сайте новостей сделали редизайн страниц новостей, скрипт пришлось тоже подогнать под это дело. Скрипт перезалит.

Дата перезаливки: 2016-04-10 19:00 (мск)
Артём
21.4.2016, 23:31 PtokaX 0.5.2.1 Mod
Модификация PtokaX от alex82
Эхх, если бы все эти возможности были где-нибудь начиная с 2008-2009 годов, насколько были бы короче скрипты, а в некоторых, возможно, и нужды бы не было big_smile.gif
Спасибо, доктор alex82, за отличную работу!
мамин_парень
19.4.2016, 21:59 Требуется скрипт
Нужен скрипт запрета на подключение
Nikolaevich,
Вот простецкий скриптик, работает через sTag (хотя можно было бы и через sClient сделать). В таблицу можете сами добавить других клиентов по аналогии с уже включенным. Если не хотите уведомлять юзера перед дисконнектом о неправильном клиенте, можете закомментить ту строку.
Код
Код
local sBot = SetMan.GetString(21)
tClients = {
    "Shareaza",
--    (тут можете вписать другие названия нехороших клиентов, присутствующие в тэгах)
}

function UserConnected(tUser)
    if tUser.sTag then
        for i = 1, #tClients do
            if tUser.sTag:find(tClients[i]) then
                Core.SendToNick(tUser.sNick, "<"..sBot..">: *** В наш хаб запрещено заходить через ваш клиент.")
                Core.Disconnect(tUser)
                break
            end
        end
    end
end
RegConnected = UserConnected

Но учтите, многие клиенты имеют возможность в настройках подменять название клиента. Если юзер воспользуется этим, то скрипт не поможет. Но ваша совесть будет чиста.
Если не хотите пускать юзеров без тэга (а такие могут быть), можете в настройках хаба запретить таким вход (либо перенаправить в другой хаб).
Nikolaevich
10.11.2015, 23:43 Current_Weather_All_Cities
Выводит текущую погоду автом. в чат и по запросу, любые города
Привет!
AndreiDC, вы хоть показывайте, как выглядит эта строка! Привыкайте при сообщениях об ошибках сразу показывать строку с той ошибкой.
В загруженной на форум скрипте в строке 416 нет такого слова - sTempNow, но зато есть в следующей, 417-й строке.
Это означает, что вы, как минимум, одну строку добавили!

Промежуточный ответ
Со своей стороны, согласен, есть одна проблемка, связанная с получением температуры воды. Выдаёт вместе неё кусок кода (что означает, на сайте погоды что-то изменили)..
Тем не менее, скрипт не выдаёт ошибку, которую вы тут показали, и работает в штатном режиме (кроме указанного мной артефакта вместо температуры воды) и выдаёт текущую погоду..

Над исправлением выдачи температуры воды работаю.
А вы, со своей стороны, выдайте сюда строку с ошибкой и ещё - при каких запросах ошибку показывает (на каких городах, странах, приморские ли эти города или без моря, или ошибка при любом запросе)..

UPD-15:
- пришлось изменить чуток код, ибо на сайте погоды внесли небольшие изменения в исходники страницы (добавили "+" к положительной температуре, в другом месте тоже изменили кусок и из-за этого температура воды не получалась, и была давненько появившаяся проблемка - перестало выдавать архивные температуры (для России), и тоже исправил). И да, заменил один из доп. файлов в папке, так что рекомендую у себя его заменить на мой - называется "citylist_Other.tbl")
Скрипт перезалит, ссылка в первом комменте.

Дата заливки последней версии: 2015-11-10 23:40 (мск.)
Артём, stone
10.11.2015, 8:22 Вопросы Разработчикам Скриптов
вопросы по скриптам (мелкие вопросы)
MIKHAIL, у меня стоит PtokaX 0.5.0.1 Mod9 от Alex82.
И на нём работает эта библиотека от Русхаба (я про "rex_pcre").
Рекомендую (и лучше ставить x32, а то некоторые библиотеки под x64 не найти, а под x32 уже включены в сборку).
MIKHAIL
1.11.2015, 5:16 Вопросы Разработчикам Скриптов
вопросы по скриптам (мелкие вопросы)
MIKHAIL, вот тут кодик, как определить - винда или *nix:
Код 1
Код
local sAdmin = "MIKHAIL"
f,e = io.popen("uname -o 2>/dev/null","r")
if f then
    osname = f:read()
end
if osname then
    Core.SendToNick(sAdmin, osname)
else
    Core.SendToNick(sAdmin, "Непонятно, что за ось тут, наверно, винда..")
end

Но как разрядность узнать, не знаю, возможно, нужно поиграться командой os.execute("команда")

UPD:
Возможно, для винды достаточно будет проверить наличие папки Program Files (x86) в корне системного диска (насколько я понимаю, эта папка присутствует только в 64-битной системе (в дополнение к папке Program Files), а в 32-битной винде только папка Program Files). Вот тут я накидал, как можно это сделать (на базе предыдущего кода):
Код 2
Код
local sAdmin = "MIKHAIL"
local bWinBit
f,e = io.popen("uname -o 2>/dev/null","r")
if f then
    osname = f:read()
end
if osname then
    Core.SendToNick(sAdmin, osname)
else
    Core.SendToNick(sAdmin, "Непонятно, что за ось тут, наверно, винда..")
    f,e = io.popen("C:\\Program Files (x86)\\desktop.ini")  -- проверяем наличие этого файла
    if f then
        bWinBit = true -- это можно позже использовать для каких-то действий
        Core.SendToNick(sVipNick, "И, похоже, она 64-битная.")
    else
        bWinBit = false -- это можно позже использовать для каких-то действий
        Core.SendToNick(sVipNick, "И, похоже, она 32-битная.")
    end
end

Как в коде и написано, параметр bWinBit в дальнейшем можно будет использовать в скрипте при необходимости.
MIKHAIL
29.10.2015, 20:16 MsgToChatFromFile
Скрипт для периодич. отправки в чат динамич. информации из файла
Error, не нужно писать в личку!
Все вопросы задавайте в теме скрипта.
Отвечаю тут:
1. elseif - именно так и должно быть, всё там правильно написано, не трогайте, скрипт рабочий.
2. Если вам не нужно отсылать в чат возобновлённый файл сразу же, то самое простое, что вы можете сделать в скрипте у себя - просто закомментируйте (что означает - спереди строки поставьте 2 или больше символа --- (вы увидите в скрипте там местами есть такое)) строку 63. Вот эта строка номер 63 как выглядит:
Код
            Core.SendToAll("<"..sBot.."> *** "..sMsg) -- отправляем в чат от имени бота (2-й вариант)
А когда вы закомментируете её, будет выглядеть так:
Код
---            Core.SendToAll("<"..sBot.."> *** "..sMsg) -- отправляем в чат от имени бота (2-й вариант)

И теперь не будет лишней отправки.
stone, Error
27.10.2015, 2:31 Сообщение в чат через заданный промежуток времени
Error, написал для вас скрипт. Берите тут.
Error
27.10.2015, 2:26 MsgToChatFromFile
Скрипт для периодич. отправки в чат динамич. информации из файла
Скрипт для периодической отправки в чат динамической информации, прочитываемой из файла
Название: MsgToChatFromFile.lua
Платформа: PtokaX
API: API 2
Автор: Ksan
Город: Томск (Россия)
Дата: 2015-10-27

Скрипт изготовлен по просьбе пользователя Error. Уверен, что таких скриптов море, но раз человека другие не устраивают.. пусть будет ещё один.
Для работы скрипта нужно наличие папки MsgToChatFromFile в папке скриптов. В этой папке должен лежать файл с текстом, отправляемым в чат. В предлагаемом архиве папка с файлом уже присутствует, надо только положить куда надо (не забудьте поправить текст на нужный).

Описание: При старте скрипт проверяет наличие файла, если его нет, сообщает админу, чей ник прописан в настройках скрипта, и остаётся в рабочем режиме. При наступлении времени отправки информации в чат (сработал таймер №2 - (1 час, изменить можно в настройках) проверяется файл, считывается текст (админ может в любое время изменить текст в файле) и отправляется в чат (либо как есть, либо от имени бота хаба (в скрипте представлены оба варианта отправки, один вариант закомментен)). При отсутствии же файла с информацией (либо файл есть, но внутри нет текста) скрипт запускает таймер (№1) ожидания файла с информацией (проверяется каждые 55 секунд, но вы можете сами выставить нужный период в настройках), и при появлении информации сразу же отправляет его в чат, и таймер (№1) отключается.. Дальше - в обычном режиме - отправка по таймеру (№2).
Примечание: Срабатывание короткого таймера (появление файла и последующая отправка информации в чат) может произойти в произвольное время (зависит от того, когда вы положите файл в папку), так что возможно одноразовое сокращённое время вывода в чат.
dimetro, мамин_парень, Error
20.10.2015, 19:39 Ваши Вопросы И Предложения По Поводу Форума
Nickolya, эх, своей картинкой напомнил мне о временах, когда и я считался миллионером, получая зарплату в таких купюрах. big_smile.gif
И - приветствую! Давно тебя не было!
Nickolya
18.9.2015, 11:57 Rss_RT_Curl + Rss_RusNext + Rss_RusVesna
Ленты посл. новостей от RussiaToday, RusNext и RusVesna
UPD-1:
-- сегодня что-то чуток изменили на сайте RT-ленты и в выводимых новостях появился артефакт, так что вот подправил код и перезалил скрипт (в сообщении #1).

Дата перезаливки: 2015-09-18 11:53 (мск.)

P.S.: И да, они там что-то накосячили (я не думаю, что это специально так сделано) и теперь в исходниках даты-времени вообще нет, поэтому нет даты-времени и в выводимой скриптом новости.. Надеюсь, исправят.
P.P.S: Время уже исправили (я им письмо отправлял).
Артём, serxxx
25.8.2015, 15:34 Rss_RT_Curl + Rss_RusNext + Rss_RusVesna
Ленты посл. новостей от RussiaToday, RusNext и RusVesna
У меня работает:
Цитата
[18:34:04] <Rss_Russian.RT.com>

•••• Источник: Сергей Лавров встретится с участниками комитета по межсирийским консультациям ••••
[ Вторник, 25 Авг. 2015 15:26:43 +0300

Глава МИД РФ Сергей Лавров планирует встретиться с участниками комитета по наблюдению за выполнением решений межсирийских консультаций 31 августа. Об этом сообщил анонимный источник РИА Новости в российском дипведомстве...
Больше букв: http://russian.rt.com/article/111152
————————————————————————————————————————
serxxx
14.6.2015, 22:33 PtokaX 0.5.0.1 Mod
Модификация PtokaX от alex82
fabelum,
Чего вам не хватает? Чем не устраивает последний мод? Там что-то не работает?
Или вы ждёте, что мод на основе 0503 вам кофе сварит и в магазин за сигаретами будет бегать?
Артём
7.6.2015, 7:14 Current_Weather_All_Cities
Выводит текущую погоду автом. в чат и по запросу, любые города
Sinsei, вы когда научитесь правильно презентовать проблему?
1. Как минимум нужно показывать, к какой строке относится представленная ошибка, то есть, как выглядит строка 86! (Хотя тут я понимаю, к какой строке относится, тем не менее, это не всегда очевидно)
2. Что меняли сами в коде скрипта - что-нибудь добавляли, изменяли, удаляли из исходного скрипта..
3. Подсказка - если ошибка скрипта указывает вам, что 'sCmdTemp2' (a nil value), то есть, переменная оказалась не определена, просто проверьте по скрипту, встречается ли переменная sCmdTemp2 до строки с ошибкой, и имеет ли не пустое строчное значение, если встречается..

Короче, сравните свой вариант скрипта с исходным (с форума) вариантом. И изучите изменения и потери, найдите, куда делась строка с изначальным определением переменной sCmdTemp2. Восстановите её и будет вам погода. Если ещё что-то не испортили..
stone
2.4.2015, 21:59 Вопросы Разработчикам Скриптов
вопросы по скриптам (мелкие вопросы)
MIKHAIL, тут лёгких путей нет. big_smile.gif
Вот есть другой путь (тоже не простой, но без разрезания, хотя расчленение присутствует - фразу разбираем посимвольно, заносим их в таблицу по отдельности, заменяем конкретную позицию и выкладываем обратно фразу в собранном виде):
Код
local s = 'здесь заменить 2-ю букву "з"'
local z,n,t = "z",0,{}  --  "z" - тут для примера ("з" будем менять на "z")
Core.SendToAll("1. "..s)  -- первоначальная фраза
if s:sub(7,7) == "з" then
    for S in string.gmatch(s, ".") do
        n = n + 1
        t[n] = S
        if n == 7 then
            t[n] = z
        end
    end
    s = table.concat(t)
end
Core.SendToAll("2. "..s)  --  результат
MIKHAIL
5.1.2015, 2:47 Current_Weather_All_Cities
Выводит текущую погоду автом. в чат и по запросу, любые города
Обобщая последние поправки (из-за перехода сайта погоды на безопасный режим), закинул в первое сообщение исправленный скрипт.
Исправления такие:
1. Необходимо установить библиотеку SSL. Как - читайте в теме LuaSec
Для линукса (дебиан/убунту/Минт) - команда установки этой библиотеки
Цитата
sudo apt-get install liblua5.1-sec1

2. В функции function OnStartup() строку
Код
http = require("socket.http")
заменил (первоначальную строку можно просто закомментировать или удалить) этой строкой
Код
http = require("ssl.https")
И также заменил 270-ю строку (номер может быть у вас иным)
Код
local msg,err = http.request("http://pogoda.mail.ru/prognoz/"..index)
на строку
Код
local msg,err = http.request("https://pogoda.mail.ru/prognoz/"..index.."/")

Скрипт заработал благодаря ценным советам от Alex82, так что ему большое спасибо! big_smile.gif
А то я уже чуть было не взялся писать другой скрипт погоды..
stone
17.12.2014, 15:18 Вопросы по протоколу NMDC
Делаю программу
Считаю, что нужно всем умерить пыл и снизить тон разговора!
Человек делает нечто полезное, сгоряча, от незнания специфики этого форума, говорит некоторые нелицеприятные слова, но всё же остальным не стоит сразу же закусывать удила, ибо это идёт не на пользу общему делу! Человек закроется и начнёт что-то очень нужное выдавать на гора в других местах...а зачем? Нужно найти компромисс, показывать друг другу ошибки, признавать ошибки, если поняли, что они присутствуют... И в любом случае следить за словами! Обидеть художника может каждый.. но если вы сами художники, тем более должны понимать, что обидно слышать неприятные слова вместо помощи и понимания..
Учитесь терпению у министра иностранных дел России С. Лаврова, ребята! И у В.Чуркина, нашего представителя в ООН. big_smile.gif
Надеюсь на понимание!
Nickolya, Iskandark
27.11.2014, 3:18 DiapasonGag
тихая заглушка по диапазону (удобно против динамич. IP)
dimetro,
Похоже, я две строки забыл оставить в скрипте (я этот скрипт переделывал со своего более расширенного).
Нужно вот что сделать - в коде функции
Код
function UserConnected(tUser)
после строки (возможно, номер этой строки у вас - 60):
Код
local tAdmin = Core.GetUser(sAdmin)
нужно вставить вот эти 2 строки:
Код
    local sIP = tUser.sIP
    local iIP = IPtoDec(sIP)
затем сохранить скрипт и перезапустить его.

Прошу прощения за свой ляп!
dimetro
26.10.2014, 1:17 Bash_Random_w_Antimat
Случайные цитаты из Баша (с антиматом)
Скрипт для выдачи в чат (или в приват) случайных цитат из Баша (с антиматом) с сайта http://bash.im/random/
Название: Bash_Random_w_Antimat.lua
Платформа: PtokaX
API: API 2
Автор: Ksan
Город: Томск, Россия
Дата: 2014-08-10

Библиотека: Для работы скрипта требуется библиотека http://mydc.ru/topic43.html

Возможности:
- периодически выводит в чат случайную цитату из Баша (частоту вывода прописанный в скрипт админ может менять или совсем отменить, введя цифру 0), по умолчанию стоит = 60 минут (для болтливых чатов можно уменьшить (в скрипте либо через меню))
- любой юзер может принудительно вывести в чат цитату (есть ограничение по частоте (меняется через меню админом))
- админ, прописанный в скрипте, может принудительно вывести в чат цитату (без ограничений)
- через меню цитату можно получить в приват по запросу
- для цитат, выводящихся в чат, предусмотрен лимит числа строк (бывают ну очень многострочные цитаты), тоже регулируется (в т.ч. и через меню)
- через меню же можно выбрать режим антимата (0 - без цензуры, 1 - завуалированный мат (f***k), 2 - без матов (выдача цитаты с матом отменяется и анализируется следующая, и выдаётся, если без мата)). По умолчанию стоит 1 (завуалированный мат)
- при скрипте присутствует папка с таблицами шаблонов матов и их исключений (при уверенности, что вы понимаете, что делаете, можете сами изменять или добавлять новые шаблоны).

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

UPD-1:
- на сайте Bash.im тоже перешли на защищённое соединение, поэтому пришлось в скрипте тоже применить SSL, код чуть-чуть изменил в связи с этим и перезалил.

Дата последней заливки: 2018-05-09 22:29 (мск.)
stone, мамин_парень
7.10.2014, 4:41 Мафия
игра Мафия для Птохи API2
taylor, послушайте, может, вам забить на всё это?
Ну их к чёрту, эту Птоку и эти хабы, всё это не под ваши руки заточено, разве вам самому непонятно ещё?
Артём
13.8.2014, 0:39 Несколько Слов О Захватах И Регулярных Выражениях
исключительно для разработчиков
MIKHAIL,
Подозреваю, это непечатаемые символы с цифровым кодом до 32 (от 0 до 31).
Как пример - \r, \n, \t Надеюсь, они вам знакомы? big_smile.gif
Вот полный перечень этих символов:
%c: \0 \1 \2 \3 \4 \5 \6 \a \b \t \n \v \f \r \14 \15 \16 \17 \18 \19 \20 \21 \22 \23 \24 \25 \26 \27 \28 \29 \30 \31
Возможно, есть ещё один символ.
Где-то на форуме было описание каждого из них.
MIKHAIL
8.8.2014, 13:11 Интересные факты
Скрипт вставляет в главный чат интересные факты с сайта
Marc, Devil_Blood,
Об этом написано уже тысячу раз, и в сотне скриптов решение применено!
Просто меняете кодировку результата на читабельную.
Применительно к этому скрипту - перед отправкой в чат полученный результат нужно преобразовать в ANSI-кодировку:
Код
if fd and sz then
    fd = Utf8ToAnsi(fd)  --  это новая добавленная строка
    Core.SendToAll("<"..sBot.."> "..fd)
end

А вот само преобразование будет происходить ниже в другой функции (то, что в спойлере, нужно добавить к существующему скрипту ниже всех строк):
Переконвертирование с UTF-8 на ANSI
Код
---- Функция преобразования UTF-8 в ansi (by Setuper)
local utf8_decode = {
    [128]={[147]='\150',[148]='\151',[152]='\145',[153]='\146',[154]='\130',[156]='\147',[157]='\148',[158]='\132',[160]='\134',[161]='\135',[162]='\149',[166]='\133',[176]='\137',[185]='\139',[186]='\155'},
    [130]={[172]='\136'},
    [132]={[150]='\185',[162]='\153'},
    [194]={[152]='\152',[160]='\160',[164]='\164',[166]='\166',[167]='\167',[169]='\169',[171]='\171',[172]='\172',[173]='\173',[174]='\174',[176]='\176',[177]='\177',[181]='\181',[182]='\182',[183]='\183',[187]='\187'},
    [208]={[129]='\168',[130]='\128',[131]='\129',[132]='\170',[133]='\189',[134]='\178',[135]='\175',[136]='\163',[137]='\138',[138]='\140',[139]='\142',[140]='\141',[143]='\143',[144]='\192',[145]='\193',[146]='\194',[147]='\195',[148]='\196',
    [149]='\197',[150]='\198',[151]='\199',[152]='\200',[153]='\201',[154]='\202',[155]='\203',[156]='\204',[157]='\205',[158]='\206',[159]='\207',[160]='\208',[161]='\209',[162]='\210',[163]='\211',[164]='\212',[165]='\213',[166]='\214',
    [167]='\215',[168]='\216',[169]='\217',[170]='\218',[171]='\219',[172]='\220',[173]='\221',[174]='\222',[175]='\223',[176]='\224',[177]='\225',[178]='\226',[179]='\227',[180]='\228',[181]='\229',[182]='\230',[183]='\231',[184]='\232',
    [185]='\233',[186]='\234',[187]='\235',[188]='\236',[189]='\237',[190]='\238',[191]='\239'},
    [209]={[128]='\240',[129]='\241',[130]='\242',[131]='\243',[132]='\244',[133]='\245',[134]='\246',[135]='\247',[136]='\248',[137]='\249',[138]='\250',[139]='\251',[140]='\252',[141]='\253',[142]='\254',[143]='\255',[144]='\161',[145]='\184',
    [146]='\144',[147]='\131',[148]='\186',[149]='\190',[150]='\179',[151]='\191',[152]='\188',[153]='\154',[154]='\156',[155]='\158',[156]='\157',[158]='\162',[159]='\159'},[210]={[144]='\165',[145]='\180'}
}

local nmdc = {
    [36] = '$',
    [124] = '|'
}

function Utf8ToAnsi(s)
    local a, j, r, b = 0, 0, ""
    for i = 1, s and s:len() or 0 do
        b = s:byte(i)
        if b < 128 then
            if nmdc[b] then
                r = r..nmdc[b]
            else
                r = r..string.char(b)
            end
        elseif a == 2 then
            a, j = a - 1, b
----*****        elseif a == 1 then
        elseif a == 1 and utf8_decode[j] and utf8_decode[j][b] then
--            local z = string.char(b)
--            Core.SendToNick(sAdmin, z.." "..a.." "..r.." "..j.." "..b)
            a, r = a - 1, r..utf8_decode[j][b]
        elseif b == 226 then
            a = 2
        elseif b == 194 or b == 208 or b == 209 or b == 210 then
            j, a = b, 1
        else
            r = r..'_'
        end
    end
    return r
end
---- конец функции преобразования  ------

function OnError(s)
    Core.SendToOpChat(s)
end

В конце я добавил вывод в Опчат ошибок скрипта при падении в ходе тестирвания или работы. Это нужно приделать в любой ваш скрипт в Птоке.
Хотя я бы скрипт написал несколько иначе. big_smile.gif Но что есть, то есть, дело авторское.
Marc
29.7.2014, 10:31 PtokaX 0.5.0.1 Mod
Модификация PtokaX от alex82
Строка для перезагрузки базы:
Код
IP2Country.Reload()

Что вам мешает изучить файл "scripting-interface_mod6.txt" в корне папки Птоки мод 6 ?
Nickel89
7.7.2014, 8:26 Rss_RT_Curl + Rss_RusNext + Rss_RusVesna
Ленты посл. новостей от RussiaToday, RusNext и RusVesna
Скрипты для чтения лент новостей с сайтов http://russian.rt.com/, http://rusnext.su/ и http://rusvesna.su/
Названия: Rss_RussiaToday.lua Rss_RT_Curl.lua, Rss_RusNext.lua и Rss_RusVesna.lua
Платформа: PtokaX
API: API 2
Автор: Ksan
Дата: 1-я версия: 2014-07-07, последняя: 2022-06-24 (Rss_RT_Curl.lua)

Библиотеки:
- для работы скрипта Rss_RussiaToday требуется библиотека SSL (примечание - виндовая Птока должна быть версии x86, а если кому удалось найти рабочую библиотеку для Птоки x64, поделитесь тут в теме). В PtokaX 0.5.0.1 Mod x86 от Alex82 виндовая библиотека уже встроена в папке libs.
- для работы скриптов Rss_RusNext и Rss_RusVesna требуется библиотека LuaSocket
Примечание: для последней версии Rss_RussiaToday (он же Rss_RT_Curl) необходима программа cURL (заменит библиотеку SSL), кладётся в отдельную папку Curl в корневой папке Птоки (папку с Curl'ом выкладываю в архиве скрипта).

Возможности:
- периодически выводит в чат последнюю новость с ленты RSS (частоту вывода прописанный в скрипт админ может менять или совсем отменить, введя цифру 0), по умолчанию стоит = 45 минут (для болтливых чатов можно уменьшить (в скрипте либо через меню))
- админ, прописанный в скрипте, может принудительно вывести в чат последнюю новость
- через меню можно получать в приват по запросу последние новости (1-20 новостей - по желанию)
- то же самое с жёстко прописанным в скрипте числом (у меня по умолчанию = 3) через отдельную строку в меню (для ленивых)
- скрипт Rss_RT_Curl при старте будет самопроверяться - скачает ленту (не обязательно), создаст вспомогательный файл (с Curl иначе никак), если его не было, при успешном получении информации и наличии файла сформирует последнюю новость и отправит в приват админу, чей ник прописан в настройках скрипта (предполагается, что он и будет запускать скрипт). Если же с сайта информация не получится, то, скорее всего, прилетит пустая новость, но файл будет создан (у меня создаётся). Я не уверен, что как-то можно получить "error" Curl'ом с сайта. Иногда при старте не выдаёт тестовую новость, хотя файл с RSS создаётся. Но обычно следующий вызов новости срабатывает нормально.

Пример вывода в чат:
Код
[21:30:53] <Rss_Russian.RT.com>

              ••••  Один человек погиб, семеро ранены при взрыве в турецкой Бурсе  ••••

        Один человек погиб и семеро получили ранения при взрыве в центре городе Бурса на северо-западе Турции в районе исторической мечети Улу Джами. Об этом сообщают местные СМИ...
        Вся новость тут: https://russian.rt.com/article/300108-odin-chelovek-pogib-semero-raneny-pri-vzryve                

      [ Среда, 27 Апр. 2016 18:23:00 (мск) ]    
————————————————————————————————————————

UPD-1:
-- сегодня что-то чуток изменили на сайте RT-ленты и в выводимых новостях появился артефакт, так что вот подправил код и перезалил скрипт.
UPD-2:
-- на сайте новостей повысили степень защищённости и теперь парсить можно стало только используя библиотеку SSL. Скрипт перезалит.
UPD-3:
-- на сайте новостей сделали редизайн страниц новостей, скрипт пришлось тоже подогнать под это дело. Скрипт перезалит.
UPD-4:
-- на сайте новостей опять внесли маленькое изменение и в показываемой новости стали появляться артефакты. Исправил скрипт и перезалил.
ВНИМАНИЕ! - скрипт Rss_RussiaToday пока не работает из-за проблем с RSS на сайте RT.
И именно поэтому в срочном порядке сегодня перелепил этот же скрипт под другой сайт новостей - RusNext (альтернативная версия РусВесны), скрипт выложен тут же, ссылка ниже.
Вот невезуха - и там та же проблема, теперь этот же скрипт загрузил под третий сайт новостей - RusVesna, скрипт выложен тут же, ссылка ниже. Хорошо, что эти два последних ресурса имеют одинаковый код исходников RSS, так что очень почти ничего не пришлось менять (ссылку да ещё чуть-чуть по мелочи)..
По RusNext - отбой тревоги, только залил последний скрипт, так этот RSS тоже заработал. Ладно, пусть тоже лежит.
----------
Так, на всякий случай - на сайте RT заработал RSS, но данные скрипту по-прежнему не отдаются, ошибка та же - "closed".
Так что я продолжаю у себя юзать скрипт под Руснекст.

Внимание!
Важное замечание для всех - эти три скрипта имеют одинаковые команды (наследие первого скрипта под RT), поэтому совместное использование нежелательно. При желании можете сами их изменить под каждый скрипт (под Руснекст и Русвесну). Вот эти три команды (просто можете в конце каждой команды добавить буквы "rn" для Руснекста и "rv" для Русвесны):
Код
local sCmdRssFreq = "!cmdrssrtfreq" -- (смена периода для чата)
local sCmdRssPrivat = "!cmdrssrtprivat" -- (новость в приват)
local sCmdRssChat = "!cmdrssrtchat" -- (новость в чат (от админа и випа))


Примечание:
- Перелопатил скрипт Rss_RussiaToday, последняя версия будет называться Rss_RT_Curl (из-за нежелания сайта отдавать скрипты по-доброму, пришлось вот состряпать курловую вытяжку по наводке Saymon21, хотя и несколько другим манером). Для этой версии скрипта необходимо иметь папку Rss_RT_Curl в папке scripts (папку Rss_RT_Curl я положил в архив, просто перенесите) и положить отдельную папку Curl в корневой папке Птоки (папку с Curl'ом тоже выкладываю в архиве скрипта). Папка с Curl'ом - только для Винды. У кого линукс - не обессудьте, у меня сейчас только винда, не на чём пробовать. Да и так есть ещё 2 рабочих скрипта - новости с Русвесны и с РусНекста.

UPD-5:
Из-за моей халатности при подготовке папки с Курлом для отправки на форум скрипт Rss_RT_Curl у вас не срабатывал. :(
Решение: содержимое папки Curl (три файла) нужно там же переместить в папку bin, которую сначала там же (в папке Curl) надо предварительно создать. После этого перезапустить скрипт.
Я это уже проделал и перезалил архив. Вы можете сами у себя проделать то же самое и без перекачивания архива.

UPD-6:
Скрипт Rss_RT_Curl долгое время не работал (по крайней мере, у меня), руки не доходили проверить причину, сегодня добрался, оказалось, надо было заменить Curl на свежую версию (возможно, это на последних версиях Вин 10 (у меня это стоит) только происходит, не могу проверить точнее). Заменил, заработал. Архив перезалил, но не на сервер форума (он почему-то оказался недоступен), а на свой Яндекс.Диск (ниже ссылка). UPD: глюк с загрузкой исправили, так что добавил файл в ресурс (в списке нижний), прежний, из моего Я.Диска, оставил как есть..
Похоже, остальные файлы будут недоступны по вышеобозначенной причине.
----------
Дата перезаливки Rss_RussiaToday: 2016-05-13 02:55 (мск)
Дата заливки Rss_RusNext: 2016-07-17 07:00 (мск)
Дата заливки Rss_RusVesna: 2016-07-17 09:20 (мск)
Дата заливки Rss_RT_Curl: 2022-06-24 09:20 (мск)
-----------
Rss_RT_Curl ( 4.24 мегабайт )
prapor, Артём, PSIX, Плюшевая_мишка, stone, Nikolaevich
22.6.2014, 17:02 Current_Weather_All_Cities
Выводит текущую погоду автом. в чат и по запросу, любые города
UPD-10:
Цитата
ToDo:
- возможно, добавлю вывод по отдельному запросу полного прогноза на ближайшее время суток - на сейчас + на 2 из следующих времён суток - утро + день, вечер + ночь и т.д. (как на сайте сделано)
СДЕЛАНО.

Ещё исправил небольшую ошибку.
Скрипт перезалит в первом сообщении.
Жду комментов.

Дата заливки текущей версии: 2014-06-22 17:50 (мск.)
Marc
31.3.2014, 6:30 lua-gd
debian
Тут выкладывали собранный пакет lua-gd, но на сторонний сервер, и теперь по истечению срока он оттуда удалён.
Вот выкладываю тут (на форуме) по-новой, вдруг кому понадобится ещё.
WINS, Андрей-rzn
7.3.2014, 5:57 Интересные факты
Скрипт вставляет в главный чат интересные факты с сайта
MIKHAIL,
А вы проследите работу цикла, начинающегося с
Код
while schet < 10  and not flag do
и поймёте.
Бонус: команда break применяется для останова и выхода из цикла до выполнения изначальных условий (они в той строке, которую я привёл выше).
Хотя я подозреваю, что можно было не and not flag do, а or not flag do и обойтись без break (цикл автоматом завершился бы после первого же появления значения true для булевой переменной flag, отправив в чат сообщение и дойдя до end уровня while).
Это моё imho, возможно, у автора есть иное мнение.. big_smile.gif
MIKHAIL
22.2.2014, 15:22 От: Функции Для Разработчиков
От темы с ID: 334
del
Tsd
19.12.2013, 20:14 Посылка команд процессу
Nickolya, я думаю, что ему важен не сам bat-файл, а именно перезагрузка текстовых файлов Птоки. А про bat он написал только потому, что не знал, что бы ещё придумать такого, чтоб перезагрузить эти самые файлы. big_smile.gif
Как-то так, я думаю. Дальше моя экстрасенсорика не может углубиться.
Nickolya
2.12.2013, 13:12 Protector
API2 | бот всё в одном
Dani_Filth, хы, помог я, а спасибо другому? Как-то нелогично..
Я не любитель вытягивать спасибки, но тут явно напрашивается претензия. Нужно быть внимательнее.
Извините!
Артём, Dani_Filth
1.12.2013, 20:01 Protector
API2 | бот всё в одном
Dani_Filth, попробуйте вот в этой функции
Код
function ValidateNickArrival(tUser, sData)
    if tUsers[tUser.sIP] then
        CheckBans(tUser)
        AutoRegCheck(tUser)
    end    
end
закомментить строку
Код
AutoRegCheck(tUser)
Setuper
17.11.2013, 21:05 Сохранение и загрузка таблиц в файл (из файла)
1. Попробуйте заняться чем-нибудь попроще..
2. Либо начните с изучения чужих скриптов, их на этом форуме тьма-тьмущая.
daslex
1.11.2013, 18:05 Current_Weather_All_Cities
Выводит текущую погоду автом. в чат и по запросу, любые города
Скрипт с изменениями выложен в сообщении #1.
UPD-7:
- пришлось перелопатить скрипт из-за изменений на странице погоды, в том числе и кодировки символов.
- теперь для городов США уверенно отсутствуют архивные температуры. На сайте архивных данных сильно изменили представление страницы именно для США, для них необходимо отдельно парсить страницы и вытаскивать архив. Начал было делать эту работу, почти добил, потом подумал - а нафиг это надо кому, зачем эта лишняя работа, и забил. А так уже давно мог бы выложить исправленный скрипт, но так получилось, сорри.. плюс лень одолела в последнее время (но это скорее минус).

Дата заливки последней версии: 2013-11-01 19:00 (мск.)
KCAHDEP
22.10.2013, 5:35 Open Dc Hub
Unix/Linux
Стоял у нас Северский хаб как раз в те годы на этом самом ОпенДЦ-хабе..
Убожество редкостное (я чрезвычайно редко говорю такие слова, но это самое подходящее для данного случая), минимальная возможность управления (в смысле - очень мало команд, для подсчёта хватает пальцев одной руки).
Даже YnHub по сравнении с ним - вершина гениальности.. big_smile.gif
При наличии других хабов сидеть на ОпенХабе - это всего лишь для выпендривания..
Артём, мамин_парень
3.10.2013, 19:21 Информер
API2 | Показывает сообщения по таймеру в назначенный день
Не, он же для protax спрашивает..
Артём
28.9.2013, 18:58 Скрипт выводящий раз в час сообщение
Ahton, по-моему, таких кусков кода (сообщение в чат по таймеру) в скриптах форума сотня, не меньше..
Но вот ради практики написал на скорую руку спешал фор ю небольшой скриптик, делающий только то, что вы просите.
Код
local iTime = 3600  -- это 1 час

tMessages = { -- при необходимости только одного сообщения, можно в списке оставить только одно, либо написать все одинаковыми текстами
    [1] = "Тестовое сообщение номер 1",
    [2] = "Тестовое сообщение номер 2",
    [3] = "Тестовое сообщение номер 3",
}

function OnStartup()
    TmrMan.AddTimer(iTime*1000, "MessageToChat")
end

function MessageToChat()
    Core.SendToAll(tMessages[math.random(#tMessages)])
end

function OnError(s)
    Core.SendToOpChat(s)
end


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

Скрипт мной не проверен, напишите сюда, как проверите.
мамин_парень
4.9.2013, 14:24 DiapasonGag
Диапазон гаг
Строка 80:
Код
                    if tAdmin and bFlag2 then
должна выглядеть так:
Код
                    if tAdmin and bFlag3 then


Это моя ошибка (в исходном скрипте для PtokaX та же ошибка, там уже исправил и перезалил). big_smile.gif
Артём
1.8.2013, 0:32 Crazy_Writer
Разные юзеры вводят разные слова и получаем готовую фразу
Скрипт-игра, аналог настольной из докомпьютерной эры, которую играли с карандашом и бумагой. big_smile.gif
Название: Crazy_Writer (Сумасшедший писатель)
Платформа: PtokaX
API: 2
Автор: Ksan
Дата создания: 2013-07-30
Дата изменения: 2014-08-24
Город: Томск

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

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

Примеры результатов из чата:
Цитата
[00:33:50] <Crazy_Writer> Лопоухий Hedgehogs глумливо лечит горбатого Mokizmezu64
[02:39:39] <Crazy_Writer> Бесподобный mike9410 шаловливо округляет смешного emissary


Дата заливки последней версии: 2014-08-26 13:20 (мск.)
Nickolya, ustas, Tsd, Артём, rival, dimetro, KCAHDEP
17.7.2013, 20:03 Fuck2UnReg
API1, API2 | Скрипт ограничений для незарегистрированных юзеров
Marc:
1. Попробуйте так - функцию function ConnectToMeArrival в скрипте закомментите (целиком, все строки функции), а вместо неё вставьте вот эту:
Код
function ConnectToMeArrival(tUser, sData)
    local sNick = tUser.sNick
    if tUser.iProfile == -1 and not tUsers[sNick] and tConfig["bDownload"] == 1 then
        Core.SendPmToUser(tUser, sBot, "*** "..sNick..", поиск и скачивание для незарегистрированных пользователей запрещены! Зарегистрируйтесь, пожалуйста!")
        return RETURN
    end
end
И сообщите тут, получилось запретить или нет.

2. Остаётся невыясненным вопрос - ваши незарегистрированные юзеры - не из локальной ли они сети? То есть, не принадлежат ли они диапазону, который в скрипте в исключениях в самом начале? Хотя, если запрет привата/чата работает для незарегенных, то вопрос снимается..

3. А вообще, скрипт написан так, чтоб удовлетворить и API 1 и API 2, потому трудновато воспринимается.
Лучше бы его переписать строго под API 2, ибо вряд ли кто уже сидит с API 1.
И вот что у меня получилось (скрипт под API 2):
Код
-- что запрещаем при старте скрипта (1 - запрещено)
tConfig = {
    ["bMainChat"] = 1,    -- главный чат
    ["bPM"] = 1,        -- лички
    ["bDownload"] = 1,    -- скачку
}

-- диапазоны IP, на которых не применяются правила блокировки
tAllowedRanges = {
    ["127.0.0.1"]= "127.0.0.255",            -- localhost
}

local tTemp = {}
local tUsers = {}

function OnStartup()
    sBot = SetMan.GetString(21)
    DoTemp()
    local tUsersOnline = Core.GetOnlineUsers()
    for i, tUser in ipairs(tUsersOnline) do
        UserConnected(tUser)
    end
end

function UserConnected(tUser)
    local sNick = tUser.sNick
    tUsers[sNick] = checkIP(tUser.sIP)
end
OpConnected,RegConnected = UserConnected,UserConnected

function UserDisconnected(tUser)
    local sNick = tUser.sNick
    tUsers[sNick] = nil
end
RegDisconnected,OpDisconnected = UserDisconnected,UserDisconnected

function ChatArrival(tUser, sData)
    local sNick = tUser.sNick
    if tUser.iProfile == -1 and not tUsers[sNick] and tConfig["bMainChat"] == 1 then
        Core.SendPmToUser(tUser, sBot, "*** "..sNick..", главный чат для незарегистрированных пользователей запрещен, сообщение не отправлено! Зарегистрируйтесь, пожалуйста!")
        return true
    end
end

function ToArrival(tUser, sData)
    local sNick = tUser.sNick
    if tUser.iProfile == -1 and not tUsers[sNick] and tConfig["bPM"] == 1 then
        Core.SendPmToUser(tUser, sBot, "*** "..sNick..", приватные сообщения для незарегистрированных пользователей запрещены, сообщение не отправлено! Зарегистрируйтесь, пожалуйста!")
        return true
    end
end

function ConnectToMeArrival(tUser, sData)
    local sNick = tUser.sNick
    if tUser.iProfile == -1 and not tUsers[sNick] and tConfig["bDownload"] == 1 then
        Core.SendPmToUser(tUser, sBot, "*** "..sNick..", поиск и скачивание для незарегистрированных пользователей запрещены! Зарегистрируйтесь, пожалуйста!")
        return true
    end
end
SearchArrival = ConnectToMeArrival
MultiConnectToMeArrival = ConnectToMeArrival
RevConnectToMeArrival = ConnectToMeArrival
SRArrival = ConnectToMeArrival
UDPSRArrival = ConnectToMeArrival

function DoTemp()
    for a,b in pairs(tAllowedRanges) do
        tTemp[(computeIP(a))] = computeIP(b)
    end    
end

function computeIP(sIP)
    local _,_,a,b,c,d = string.find(sIP, "(%d+).(%d+).(%d+).(%d+)")
    return a*16777216 + b*65536 + c*256 + d
end

function checkIP(sIP)
    local iIP = computeIP(sIP)
    if iIP then
        for startRange,endRange in pairs(tTemp) do
            if (iIP >= startRange) and (iIP <= endRange) then
                return true
            end
        end
    end
end

function OnError(s)
    Core.SendToOpChat(s)
end

Скрипт сам не проверял, предоставляю эту радость вам. big_smile.gif
Удачи!

UPD: Добавил в версию из пункта 3 строку
Код
SearchArrival = ConnectToMeArrival
Marc
16.6.2013, 22:16 Current_Weather_All_Cities
Выводит текущую погоду автом. в чат и по запросу, любые города
KCAHDEP, нужно строку 196 (по скрипту на форуме)
Код
bArchive, sErr = GetData(sHubCity)
написать так
Код
bArchive, sErr = GetData(sHubCity, sChatCity)

Естественно, выше в настройках должна присутствовать строка
Код
local sChatCity = "Каменск-Шахтинский"

Не пойму, из каких соображений пропустил раньше, и почему у меня Томск работал в таком виде. big_smile.gif

PS: Исправил скрипт, перезалил в первом сообщении.
Дата перезаливки последней версии: 2013-06-16 23:30 (мск.)
Артём, KCAHDEP
16.6.2013, 15:43 Current_Weather_All_Cities
Выводит текущую погоду автом. в чат и по запросу, любые города
UPD-6:
- добавил возможность выбрать любой город/посёлок мира (но оставил возможность просмотра жёстко привязанных к меню городов)...для этого пришлось писать отдельный скрипт (он здесь не представлен) для выборки из сайта погоды и сборки в таблицу списков всех городов со странами и областями.
- в архиве есть папка с обязательными файлами (таблицы городов и цифровых кодов городов (последнее - для архивных температур))

Дата заливки последней версии: 2013-06-16 16:35 (мск.)
KCAHDEP
9.6.2013, 18:28 От: Скрипт приветствия Motd
От темы с ID: 5053
RoL, может, вам пора уже начинать изучать содержание этого форума?
Ткните сюда, полазайте по разделам, подразделам и темам, и вы найдёте всё, что душа захочет (кроме слишком специфических скриптов на одного человека, конечно, как с вашим баланс-скриптом), в том числе и аналог скрипта МОТД для Птоки.
И прекращайте тут просить, обвинять и снова просить! Не смешите людей.

И да, прекращайте писать "луя", не бесите уже! Язык называется Луа (Lua), и это слово не склоняется никаким образом! Никто из нас не учил этот язык в школе, универе или ещё в каких-то учебных заведениях, всему учимся тут. Пора и вам, хватит попрошайничать, оскорблять и тупить. И следите за своей речью...за русской речью! Напишите хотя пару предложений без ошибок в половине слов..

Извините, уже невтерпёж на это смотреть.. :(
Артём, Littlemuk
7.6.2013, 15:36 Cкрипт проверки баланса
хз как описать
RoL, я фигею с вас.. :((
мамин_парень
3.6.2013, 15:21 Пассивный режим
valera_, и с каким профилем это делаете?
Короче (я уже спать, поэтому не стану дожидаться вашего ответа), по скрипту сообщение получит только тот, кто либо незарегистрированный, либо регистрирован, но он простой юзер..
valera_
21.5.2013, 5:26 Новые скрипты для птохи - новые вариации на старые темы
baltica, и да, кстати, в варианте скрипта newgag.lua, который я показал выше (думаю, и в оригинале так же), командой заглушки/разглушки может служить любое другое !слово, а не только !gag или !ungag, так как по коду достаточным условием заглушки является наличие ника в таблице заглушки.
Поэтому лучше так и сделать, а в дальнейшем попытаться нарастить мощность скрипта дополнительными фишками-удобствами...в частности, добавить меню, сохранение таблицы в файл, возможность добавить срок заглушки, причину заглушки и т.д. и т.п.. То есть, на базе этого скрипта учиться кодировать на Луа..
Все эти фишки уже давно реализованы в полной мере в других скриптах форума (и вы вполне можете ими пользоваться), но вам, раз желаете самостоятельно научиться писать, советую прислушаться и продолжить наращивать этот скрипт. big_smile.gif Вся мощь данного форума к вашим услугам, берите скрипты, изучайте..
Удачи!
мамин_парень
19.5.2013, 23:07 Новые скрипты для птохи - новые вариации на старые темы
baltica, у вас странная манера написания скриптов.. я даже не уверен, все ли они работают и правильно ли..
Если бы вы выложили на этом форуме, то можно было бы поговорить на эту тему, а так...где-то далеко-далеко лежат какие-то скрипты - а нам-то что до них? тут своих хватает...вот когда они станут частью нашего форума, вот тогда и можно принять всерьёз.
Так, навскидку, - нет проверки (или проверок) прав на команду, сомнительные регулярки... пример:
Код
local nick = sData:match("!gag%s-(%S-)|")

Я скрипты на рабочесть не проверял, изучил через Нотепад++ только один (newgag.lua), вот на основании этого и. big_smile.gif
Кстати, этот скрипт я бы написал так:
Обозначения переменных оставил как есть. Сообщения о разглушке (юзеру и в общий чат) счёл ненужными.
Код
local bot = "Hub-Security"
gg = {}

local tProfiles = {
    [0] = 1,
    [1] = 1,
    [2] = 0,
    [3] = 0,
    [-1] = 0,
}

function ChatArrival(tUser, sData)
    if tProfiles[tUser.iProfile] == 1 and sData:find("!gag") then
        local nick = sData:match"^%b<>%s+%S+%s+(%S+)|"
        if not gg[nick] then
            gg[nick] = true
        else
            Core.SendToNick(tUser.sNick, "<"..bot.."> Этот юзер уже заглушен.")
        end
        return true
    elseif tProfiles[tUser.iProfile] == 1 and sData:find("!ungag") then
        local nick = sData:match"^%b<>%s+%S+%s+(%S+)|"
        if not gg[nick] then
            Core.SendToNick(tUser.sNick, "<"..bot.."> Этот юзер и так не заглушен.")
        else
            gg[nick] = nil
        end
        return true
    elseif tProfiles[tUser.iProfile] == 0 and gg[tUser.sNick] then
        return true
    end
end
А вообще, гагать юзеров через эту штатную команду (!gag/!ungag) - позапрошлый век! Писать скрипт под такую команду сейчас - только разве что для тренировки..
ustas, мамин_парень
19.5.2013, 8:50 Checker
API2 | Детектор чата и привата
valera_, я не знаю, как надо постараться, чтоб получить такую ошибку, да ещё с ..
Я скачал скрипт из первого сообщения, добавил в начале ник админа (чтоб было кому отправить в приват), и далее вместо отправки в опчат сделал отправку в приват админу (строку отправки уже показал выше).
Как при таком случае можно получить такую ошибку, и как потом его исправить, я не знаю.
Просто делай всё как я сказал, и не должно быть ошибок.

UPD: Если проблема решена, вы должны тут написать, КАК вы её решили, в чём была ошибка..

И нехорошо удалять сообщение с проблемой и писать вместо него, типа всё, проблема решена..
Нужно добавлять ниже, как я делаю, не удаляя предыдущий текст.
valera_
19.5.2013, 5:25 Checker
API2 | Детектор чата и привата
valera_, первоисточник у меня работает без проблем. Скачал, запустил и выдаёт всё, что от него требуется..
Цитата
[09:10:58] <..OpChat_Test> *** Юзер Test_User сказал подозрительную фразу: 109.227.235.80

Что до проблемы с твоим вариантом даже со скобками, я не знаю, почему там ошибка вылетает, но это легко решается подстановкой нужных данных вместо %s :
Код
Core.SendPmToNick(Nick, sBot," *** Юзер "..tUser.sNick.." сказал подозрительную фразу: "..sMsg)
И выдаст тоже правильный ответ:
Цитата
[09:21:11] <Checker> *** Юзер Test_User сказал подозрительную фразу: 109.227.235.80


UPD.: Внимательнее изучив ту ошибку, понял, как надо было строить фразу для привата юзеру:
Код
Core.SendPmToNick(sNick, sBot, (" *** Юзер %s сказал подозрительную фразу: %s"):format(tUser.sNick, sMsg))
Проверено, мин нет работает!
мамин_парень, valera_
16.5.2013, 2:16 Вопросы Разработчикам Скриптов
вопросы по скриптам (мелкие вопросы)
MIKHAIL, ну разве что сразу в таблицу будете записывать целиком полную дату одной строкой (в смысле - одним значением).. ну и забирать так же. Ну я не знаю, как образована ваша таблица, это я как пример говорю.
Только вопрос - а для чего вам такая головная боль на пустом месте? (я про ваши попытки сократить строку вывода даты за счёт сокращения количества упоминаний хедера таблицы)
Забейте, ваша экономия выеденного яйца не стоит..
MIKHAIL
3.4.2013, 15:14 WhoIsNew + WhoIs_Rest-Api
Добывает WHOIS-информацию по IP
Saymon21, к тому времени уже скрипты были готовы, и я уже был не в состояни начинать менять всё. Я был очень уставший. Может, позже.
Работает и ладно. Там посмотрим, будет настроение, изучу тему.

PS: На всякий случай прикрепил к первому сообщению библиотеку JSON, точнее, луа-скрипт json.lua (должен лежать там же, где все библиотеки).
мамин_парень
3.4.2013, 0:54 WhoIsNew + WhoIs_Rest-Api
Добывает WHOIS-информацию по IP
Скрипт просмотра через админское меню хаба WHOIS-информации по IP (вводом IP либо через онлайн-ник)
В результате получаем диапазон, к которому принадлежит вводимое IP, название сети, страну, город и ещё кое-какие данные этой сети. Представлены 2 версии скрипта.

Название1: Whois_Rest-api.lua
Версия: 1.0
Название2: WhoisNew_&_Rest-api.lua
Версия: 2.0
Платформа: PtokaX
API: API 2
Авторы: Saymon21 (г.Чебоксары) & Ksan (г.Томск)
Дата: 01-04-2013

Библиотеки: Для работы требуются библиотеки Lua Socket и JSON
В папку библиотек (scripts\libs\ для Windows_PtokaX и папка библиотек операционной системы для Linux_PtokaX) требуется положить модуль для работы с JSON (файл json.lua)

Комментарии:
1. Скрипт Whois_Rest-api.lua - это просто переделка под PtokaX скрипта whois.lua под Русхаб от Saymon21. Плюс добавлена возможность получать диапазон подсети, в который попадает анализируемый IP. Этот скрипт без меню, команда для выполнения в чате:
!whois опция
Опцией может быть как IP, так и -h, при этом выдаст сообщение с помощью (на английском).

2. Скрипт WhoisNew_&_Rest-api.lua - переделка моего же скрипта WhoIs.lua с заменой метода получения основных данных на метод из скрипта от Saymon21, но диапазон подсети получается старым методом.
Скрипт снабжён меню и двуязычен - то есть, при входе проверяется страна пребывания пользователя скрипта и отсылается меню на русском или английском (для русскоязычного меню в скрипте имеется таблица из нескольких стран СНГ). То же самое - со всеми сообщениями скрипта. Локальному пользователю (тому, кто сидит на том же компе, где хаб, или в одной домашней сети с ним) отправит англоязычный текст и меню.

3. Оба скрипта (так как метод получения основных данных один), скорее, подходят как резервный к моему первому, либо он - как резервный к этим двум, так как некоторые данные могут быть не получены (например, страна или город), так что лучше иметь под рукой по 2 скрипта с разными методами.

4. Первый из двух - для любителей работать с командной строкой, второй - с меню. big_smile.gif
5. На всякий случай прикрепил к сообщению библиотеку JSON, точнее, луа-скрипт json.lua.

Просьба отписываться о работе скриптов.
Tsd, Артём, valdis73, Saymon21, SKIFI, KCAHDEP, мамин_парень
18.3.2013, 22:04 Ddos
Информация к размышлению
Тема стала больше походить на срач между шакалами и гиенами...вроде бы и разные животные, а на деле одинаково противные твари. Что защитники наркоты, что так называемые "борцы" с ними, что ддосеры, что спамеры, что апологеты великих арийцев...Все воняют.
Для некоторых - борьба со злом незаконными методами всегда кончается плохо. И никогда не решает поставленную задачу, только даёт временное ощущение превосходства.
Nickolya
18.3.2013, 19:43 Ddos
Информация к размышлению
Гыы...он возомнил себя Спайдерменом.. big_smile.gif
Nickolya
5.2.2013, 12:53 Заткни Меня Нежно
API2 | Оригинальная заглушка для юзеров
tammi_0909, попробуй ещё этот скрипт, там нет такого.
tammi_0909
29.1.2013, 13:42 XenoPhobia
Скрипт для защиты от потенциальных прокси-спамеров из других стран
Yamakasi, ну, ребятки, если вы взялись держать хаб и ставить туда скрипты, должны уж как минимум знать, где это ваше меню.. или найти его. Неужели надо учить админа хаба азбуке?
И насчёт версии хаба 0.5.0.0 ничего не скажу, я делал на версии 0.4.1.2..
Yamakasi
29.1.2013, 12:58 XenoPhobia
Скрипт для защиты от потенциальных прокси-спамеров из других стран
Yamakasi, а у вас лежит в нужном месте база стран и диапазонов? В первом сообщении в самом начале в абзаце Дополнительно написано про это.
А вот эта фраза вообще непонятна:
Цитата
и норма, и нет не флагов и не меню

Если вы про упоминаемые мной в первом сообщении флажки, то это всё просто указания через меню - банить кого-то или нет, глушить или нет..а слово флажок это просто термин для таких меток в скрипте, исходя из которых кто-то банится или глушится...или нет. Зависит от того, что вы выбрали в меню.
А меню находится по умолчанию настроек скрипта в • Сервис / << АДМИНКА >> / Ксенофобия..
Если вы сменили этот путь на свой, ищите по своему пути.
Yamakasi
21.1.2013, 13:21 Rss_NewsRu
Скрипт для чтения лент новостей с сайта http://www.NEWSru.com/
KCAHDEP, это вас Бог наказывает за неблаговидные дела.. Покайтесь и просите прощения у тех, кого обидели. big_smile.gif
Артём
13.1.2013, 15:39 NetSeparator
Не даст качать, если помегабайтная плата за трафик на внешке.
reidel_viktor, изучить меню скрипта. big_smile.gif
Там есть команда отключения предупреждений.
мамин_парень

11 страниц V  < 1 2 3 4 > » 
RSS Сейчас: 18.4.2024, 19:46