Здравствуйте, гость ( Вход | Регистрация )
| Дата поста: | В теме: | За сообщение: | Спасибо сказали: | ||
|---|---|---|---|---|---|
| 21.5.2012, 13:19 |
С Днюхой Тебя! поздравления |
Присоединяюсь к поздравлениям Успехов и удачи во всём! |
Nickolya | ||
| 17.5.2012, 10:39 |
Greylink API userinfo гг. |
Думаю для начала следовало бы прочитать вот это: ME - это признак тебя (если этот юзер ты, то равно "1", иначе nil). NI - это ник юзера. Функция DC():GetUserInfo(uid) возвращает объект "юзер" по его uid. uid можно получить из аргумента функции-события: Код dcpp = {} function dcpp.OnPublicMessage(uid, data) local user = DC():GetUserInfo(uid) DC():SendPublicMessage(user.HL, "test") end |
Lamo | ||
| 5.4.2012, 22:13 |
Бан по ID компа |
Прошу не создавать больше тем про незнамо что! |
Nickolya, ke(x)one | ||
| 3.4.2012, 10:15 |
Скрипт для пингеров |
В русхабе есть настройки антифлуда: Код <Item Name="iFloodTimeUnknown">3.0</Item> <Item Name="iFloodTimeUnknown2">60.0</Item> <Item Name="iFloodCountUnknown">1</Item> <Item Name="iFloodCountUnknown2">10</Item> Описание: Код iFloodTime... и iFloodCount.. — ряд параметров защиты от флуда (количество iFloodCount за время iFloodTime (в сек.)). При обнаружении флуда вызывается событие OnFlood Поставь так: Код <Item Name="iFloodTimeUnknown">3.0</Item> и никаких проблем не будет<Item Name="iFloodTimeUnknown2">60.0</Item> <Item Name="iFloodCountUnknown">1000</Item> <Item Name="iFloodCountUnknown2">1000</Item> |
ShadoWx | ||
| 1.4.2012, 13:37 |
ChatHistorySQL История чата (MySQL) |
Код path = Core.sScriptsDir.."ChatHistorySQL/" |
ShadoWx | ||
| 1.4.2012, 13:24 |
Вопросы Разработчикам Скриптов вопросы по скриптам (мелкие вопросы) |
Лучше лишний раз не дёргать сбоку мусора, так как эта функция тратит ресурсы процессора. Lua интерпретатор сам время от времени производит сборку мусора, поэтому не нужно об этом так уж заботиться. |
MIKHAIL | ||
| 24.3.2012, 22:20 |
crypto RusHub | Библиотека криптографии |
не нравится - не юзай |
Saymon21 | ||
| 24.3.2012, 17:35 |
crypto RusHub | Библиотека криптографии |
Название: crypto Версия: 0.3.0 Хаб: RusHub Автор библиотеки: Keith Howe Описание: Библиотека для работы с методами криптографии. Использование: Файл crypto.dll кладём в папку libs. Файл libeay32.dll кладём рядом с исполняемым файлом (rushub.exe). В скриптах библиотека подключается так: require"crypto". Библиотека win32: [attachment=6408:crypto_win32.zip] Библиотека win64: [attachment=6409:crypto_win64.rar] Мануал: [attachment=6405:manual.html] Исходники для *nix систем: [attachment=6410:luacrypto.tar.gz] Проект для сборки на vs2008: [attachment=6413:luacrypt..._src_vs9.zip] |
Nickolya, Saymon21 | ||
| 5.3.2012, 22:04 |
Вопросы по RusHub Технические вопросы |
Действительно для некоторых 64 битных систем могли возникать конфликты. Поправил, написав более универсальную функцию. Теперь должно собираться. Скачать можно из trunk |
KT315 | ||
| 4.3.2012, 14:16 |
Несколько Слов О Захватах И Регулярных Выражениях исключительно для разработчиков |
Реверс делать не эффективно. Эффективнее ограничиться правильной регуляркой. Замена gsub тоже не эффективный вариант, так как заменять каждый символ затратно. Вариант 1: Код local sFileName = sFilePath:match".+/(.*)$" Вариант 2: Код local sFileName = sFilePath:match"[^/]*$" В случае если после последнего слеша ничего нету, то в обоих вариантех получим пустую строку. В случае если слешей вообще нету, то в первом варианте получим nil, во втором варианте получим всю строку. Какой вариант лучше - решать самому скриптописателю. |
MIKHAIL | ||
| 3.3.2012, 14:37 |
RusHub Кроссплатформенный консольный DC хаб |
rushub v 2.3.9 lua plugin v 2.8 Added: Добавлен показ сообщения при первом отключении после частых переподключений. Added: Добавлен языковый файл English.xml.example. Added: Добавлен единственный таймер на длительность входа и соответствующая настройка: iTimeoutLogon. Fixed: Модифицирован формат времени в логах. Fixed: Исправлена ошибка, возникающая при ipv6 коннекте. Fixed: Исправлен баг в отключениях при антифлуде (несоответствие с настройками). Fixed: Обновлен tinyxml до версии 2.6.2. Fixed: Удалены таймеры, а также соответствующие им настройки: iTimeoutKey, iTimeoutNick, iTimeoutLogin, iTimeoutMyinfo. iTimeoutGetpass. Fixed: Исправлен баг в проверке ника. Теперь если входит юзер с профилем -1, а на хабе пользователь с таким ником уже есть, то входящий отключается. Если же входит юзер с профилем не равным -1, то отключается тот, кто находится на хабе с его ником (защита для зарегистрированных от обрыва соединений). |
Nickolya, ShadoWx, PomanoB, KT315, CrazyKiller | ||
| 29.2.2012, 20:39 |
Defend PM, RusHub edition Полностью автоматическая защита ЛС от спама |
В русхабе в командах никогда нету разделителя на конце |. Возможно поэтому и не работает. Нужно убрать разделитель из регулярки. |
Enyby | ||
| 16.2.2012, 23:53 |
base32 Encoder костыль алгоритма |
Итак, найден очень неприятный костыль, который тянется из оригинального DC++ клиента, и который перенесён в производные от него клиенты, а также в ADC хабы, которые используют base32 для CID. Косяк заключается в неправильно алгоритме преобразования из и в base32. Берется некий ADC CID: "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ". Он состоит из 39 символов. Преобразовываем этот CID по алгоритму DC++ из base32 (размер dst равен 24): Код Encoder::fromBase32(src, dst, sizeof(dst)) а потом опять в base32: Код Encoder::toBase32(dst, sizeof(dst), newSrc) По идее должны получить тот же CID, однако получаем следующее: "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZY" Почему это возникает? В base32 кодировке каждый символ имеет всего 32 комбинации, поэтому может занимать 5 бит, вместо 8. Отлично! Умножаем 39 на 5 и делим на 8, получаем 24,375. Однако размер dst равен 24, то есть мы теряем хвост данных. Дальше ещё интереснее. Если мы возьмём размер dst с запасом - 25, вместо 24, то хвост мы не потеряем, однако на стадии преобразования в base32 мы получим лишние данные, ибо по алгоритму преобразования 0 в пяти битах преобразуется в символ base32 'A'. Однако, алгоритм может срабатывать правильно. Это возникает тогда, когда хвост не имеет значимой величины (биты хвоста все равны 0). Хвост равен 3 бита. Получаем, что для того чтобы срабатывал алгоритм нужно чтобы последний символ был равен A (00000), I (01000), Q (10000) или Y (11000), в противном случае получаем значимые биты в хвосте, и обратное преобразование ломается. |
Nickolya | ||
| 15.2.2012, 10:21 |
Аналог в verlihub |
Действительно, не корректно работало. Спасибо. Исправил. Сообщения от хаба и не будет. Хаб тупо отключает юзера. Отсутствие сообщения связано с минимизацией со стороны хаба времени на обработку таких реконнектов. Хотя при первом реконнекте возможно сообщение нужно сделать. |
ShadoWx, KT315 | ||
| 9.2.2012, 9:48 |
Протокол IPv6 в протоколе NMDC Спецификация и тестирование IPv6 в NMDC |
Вот поэтому разумнее сделать хаб, который поддерживает оба протокола одновременно. Понятное дело, что в ADC протоколе больше разнообразных фич, но всё же нужно сделать минимум - набор команд NMDC, максимум - набор команд ADC. Народ будет видеть новые возможности ADC и постепенно переползать на него. Русхаб продвигается в этом направлении. |
IRainman | ||
| 7.2.2012, 15:44 |
FirstRusHubBot приводим RusHub к рабочему виду функционалом скриптов |
Просто не сохраняется удаление. В файле cmds.lua перед строчкой: Код local tMsg = {"*** ", tUser.sNick, ", регистрация ника \"", sData, "\" с профилем №", iProfile, " (", tProfiles[iProfile].tNames[1], ") удалена!"} добавь строчку:Код SaveTable(sThisScriptDir.."RegUsers.dat", tRegUsers, "tRegUsers") Перезалил исправленную версию. |
ShadoWx | ||
| 7.2.2012, 10:07 |
Вопросы Разработчикам Скриптов вопросы по скриптам (мелкие вопросы) |
Советую не браться за это дело. Оно гиблое. Настройки клиентов у всех разные. Найти что-то универсальное невозможно. Единственная универсальная штука для выравнивания - это табуляции. Табуляции следует использовать только в начале строки. Конечно можно использовать и в середине, но тогда опять же возникают зависимости от шрифтов и в особенности от размера шрифта, так как число символов, которые укладываются в табуляцию зависит именно от этого. |
MIKHAIL | ||
| 5.2.2012, 17:38 |
Протокол IPv6 в протоколе NMDC Спецификация и тестирование IPv6 в NMDC |
Ты изобрёл свой велосипед. Этот велосипед уже изобретён и называется ADC протокол. Вместо того чтобы адаптировать NMDC хаб на работу с каким-то расширением, лучше адаптировать работу хаба на одновременное взаимодействие по двум протокола NMDC и ADC. Получится тоже самое. То есть, хочешь ipv6 - переходи на ADC! Нужно продвигать новый протокол, а не продолжать накручивать что-то на старый. |
Otshelnik-Fm | ||
| 4.2.2012, 15:37 |
Сборка Rushub на платформе SUN (Oracle). OpenSolaris, Nexenta для x86 Патч для Rushub 2.3.8 |
Попробуй сейчас скачать из trunk и собрать, должно собираться безо всяких патчей |
KT315 | ||
| 4.2.2012, 0:56 |
Вопросы Разработчикам Скриптов вопросы по скриптам (мелкие вопросы) |
функцией table.remove можно удалить только элементы с числовым ключом. В твоём случае следует делать так: Код tTable["nick"] = nil |
LoT | ||
| 2.2.2012, 18:23 |
Ipv6 Test Hub RusHub |
Если подключаться к хабу по локальному ipv6 (::1), то должно пахать. Кстати, для ipv6 я исправил выхлоп в лог при возникновении ошибки (в ревизии 675), так как раньше показывалась не та ошибка, поэтому диагноз возникновения ошибки мог быть неправильным. Только что проверил... Действительно была ошибка, из-за которой хаб сбрасывал ipv6 соединение. Устранил её только что. Качайте исходники из trunk - теперь должно входить по ipv6 Кстати, для тестирования ipv6 можно использовать консольного клиента stress-test, но только для NMDC, для ADC он ещё не адаптирован. |
mariner, PomanoB, KT315, CrazyKiller | ||
| 1.2.2012, 21:53 |
Логотип для RusHub'а ваши варианты и предложения |
Ну да, вопрос уже давно был решён, и изменять иконку никто не собирается. Вообще говоря логотипом является картинка с двумя буквами RH в соответствующих цветах: http://rushub.org/ |
KT315 | ||
| 31.1.2012, 17:21 |
Стресс тест для хаба |
Такая ошибка действительно была. Бери из trunk версию, там это уже исправлено |
CrazyKiller | ||
| 31.1.2012, 9:59 |
Вопросы Разработчикам Скриптов вопросы по скриптам (мелкие вопросы) |
Такое возможно только если между хабом и юзером нету активного сетевого оборудования, которое меняет mac-адрес. |
MIKHAIL | ||
| 29.1.2012, 0:39 |
Вопросы Разработчикам Скриптов вопросы по скриптам (мелкие вопросы) |
на быстродействие никак не повлияет, ибо хаб всё равно будет впихивать в стек этот id при вызове OnTimer, просто этот id не используется |
MIKHAIL | ||
| 29.1.2012, 0:22 |
Особенности приготовления PtokaX Некоторые особенности работы скриптов на данном хабе |
Могу ещё добавить до кучи, что возможен случай, когда при входе не будет выполняться скриптовая функция ValidateNickArrival. Происходить это будет в том случае, если клиент поддерживает характеристику QuickList |
Enyby | ||
| 29.1.2012, 0:13 |
Вопросы Разработчикам Скриптов вопросы по скриптам (мелкие вопросы) |
Во-первых, tmr тут вовсе не функция, а переменная. Во-вторых, в lua всякая переменная, которая не объявлена как локальная, является глобальной. В-третьих, по внегласному правилу обращелние к локальным переменным происходит быстрее чем к глобальным. В-четвертых, в указанном примере переменная tmr в функции OnStartup является глобальной, а переменная в функции OnTimer является локальной, то есть это разные переменные в разных областях видимости. Чтобы не путаться в них следует называть их по-разному: Код function OnStartup() tmr = TmrMan.AddTimer(60000) end ... function OnTimer(id) ... end |
MIKHAIL | ||
| 26.1.2012, 22:38 |
RusHub: Запрет неразрывного пробела rushub |
Ksan, Ты думаешь я ему ни подсказываю? Пожалуйста не обижайся на мою критику, я иногда бываю резок, когда дело касается нюансов. Отчасти я так сказал только для того чтобы ты обратил внимание на нюансы, а не пытался заменить код на более простой, но менее функциональный. Теперь аналог этого кода для птохи, для того чтобы можно было попробовать как это работает: Код local sBot = "Bot" function ChatArrival(tUser, sData) if tUser.iProfile == -1 or tUser.iProfile == 3 then local sText = sData:sub(#tUser.sNick + 4, -2) if sText:find"\160" then SendToUser(tUser, "*** Использование неразрывного пробела в тексте запрещено!", sBot) return true end end end function ToArrival(tUser, sData) if tUser.iProfile == -1 or tUser.iProfile == 3 then local sTo, sText = sData:sub(1, -2):match("^%$To:%s+(%S+)%s+From:%s+(.*)") if sText:find"\160" then SendToUser(tUser, "*** Использование неразрывного пробела в тексте запрещено!", sBot, sTo) return true end end end function SendToUser(tUser, sMsg, sNick, sSender) if sSender and sNick then Core.SendToUser(tUser, (("$To: %s From: %s $<%s> %s"):format(tUser.sNick, sSender, sNick, sMsg))) elseif sNick then Core.SendToUser(tUser, (("<%s> %s"):format(sNick, sMsg))) end end P.S. Для того чтобы набрать неразрывный пробел нужно включить Num Lock и, удерживая alt, набрать 0160 на расширенной клавиатуре, после этого отпустить alt. |
ShadoWx | ||
| 25.1.2012, 18:31 |
HubTopic Скрипт показывающий ваш текст в строке состояния |
Код Core.GetConfig("sHubBot") заменить на Код Config.sHubBot или на Код Config["sHubBot"] кому как больше нравится.Однако в любом случае это не ошибка, а всего лишь предупреждение |
CrazyKiller | ||
| 18.1.2012, 21:15 |
Единая платформа для скриптов Обсуждения вопроса создания единой платформы скриптов |
В русхабе это делается очень просто, тем более на последней версии. скрипт1: Код function OmMyINFO(tUser, sData) tUser.sDesc = "Новое описание" end скрипт2: Код function OmMyINFO(tUser, sData) tUser.sMode = "P" end Нечто универсальное считаю неправильным, ибо функционал даёт очень разные возможности. Конечно можно сделать нечто универсальное, но это может ухудшить работу. |
Enyby | ||
1 2 3 > »
|
Сейчас: 24.5.2012, 17:13 |