myDC.ru

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

 

> Антикапс, API1, API2 | Без наворотов, зато работает

Теги
Нет тегов для показа
Артём
сообщение 22.3.2009, 22:26
Сообщение #41


Наруто на аваторке
***********

Группа: Пользователи
Сообщений: 2 606
Регистрация: 11.10.2008
Из: Харькова
Пользователь №: 771
Спасибо сказали: 774 раза




Ошибка пропала ,и проверка на капс тоже пропала beat_brick.gif скрипт вообще умер
вот он страдалец,может я что-то не туда втулил,если не сложно то посмотри,а если сложно то я тогда удалю его лучше и подожду пока автор ответит beat_plaster.gif
Прикрепленный файл  NoCaps___v1_1_.1b__.lua ( 2.52 килобайт ) Кол-во скачиваний: 97
Go to the top of the page
+Quote Post
3 страниц V  < 1 2 3  
Начать новую тему
Ответов
Setuper
сообщение 22.3.2009, 22:46
Сообщение #42


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




Код
function ChatArrival(tUser, sData)
    if tAdmins[tUser.iProfile] and tAdmins[tUser.iProfile] == 1 then
        return
    end
  local sNick = tUser.sNick or tUser.sName
  sData = sData:sub(sNick:len() + 4, -2)
  local nk, data = sData:match"(%S+): (.*)"
  if nk and ((not frmHub and Core.GetUser(nk)) or (frmHub and GetItemByName(nk))) then
    sData = data
  end
  
    local sSubed, bChanged = MadeNormLen(sData, iSymbLimit, "%p+")
    if bChanged then
        sData = sSubed
    end
    if sData:len() >= iCheckSize then
        local sNoSpaces = sData:gsub("[%s%с%d%p]", "")
        local iNoSpasesLen = sNoSpaces:len()
        if iNoSpasesLen > 0 then
            local iCapsLen = 0
            local sChData = sData
            local sNoCapsData = sNoSpaces:gsub("["..sBigData.."]", function(c)
                iCapsLen = iCapsLen + 1
                sChData = sChData:gsub(c, LowString(c))
                return ""
            end)
            local iValue = iCapsLen / iNoSpasesLen
            if iValue >= iPersents then
                if not bChanged then
                    bChanged = true
                end
        if nk then
          sChData = nk..": "..sChData
        end
                sData = sChData
            end
        end
    end
    if bChanged then
        sData:SendToAll(sNick)
        return sRetVal
    end
end
Go to the top of the page
+Quote Post
Артём
сообщение 22.3.2009, 22:54
Сообщение #43


Наруто на аваторке
***********

Группа: Пользователи
Сообщений: 2 606
Регистрация: 11.10.2008
Из: Харькова
Пользователь №: 771
Спасибо сказали: 774 раза




2Setuper exciting.gif Спасибо за помощь!!! victory.gif
Go to the top of the page
+Quote Post
Ears
сообщение 24.3.2009, 19:35
Сообщение #44


Начинающий
*

Группа: Пользователи
Сообщений: 13
Регистрация: 9.3.2009
Пользователь №: 2 528
Спасибо сказали: 0 раз




Большое спасибо, теперь скрипт не коверкает ники, но появилось ещё одно, можно ли сделать так чтобы он так же не трогал magnet ссылки =(

пример ссылки

m*agnet:?xt=urn:tree:tiger:BH7XHWEXUWDTXJVEJMXLTL3HNSQKR6ODB7Y4SJI&xl=4151973&dn=%D0%9B%D0%B8%D0%B3%D0%B0%D0%BB%D0%B0%D0%B9%D0%B7+-+%D1%80%D0%BE%D0%B6%D0%B4%D1%91%D0%BD%D0%BD%D1%8B%D0%B5+%D0%B2+%D0%A1%D0%A1%D0%A1%D0%A0.mp3

а скрипт исправляет на

m*agnet:?xt=urn:tree:tiger:bh7xhwexuwdtxjvejmxltl3hnsqkr6odb7y4sji&xl=4151973&dn=%d0%9b%d0%b8%d0%b3%d0%b0%d0%bb%d0%b0%d0%b9%d0%b7+-+%d1%80%d0%be%d0%b6%d0%b4%d1%91%d0%bd%d0%bd%d1%8b%d0%b5+%d0%b2+%d0%a1%d0%a1%d0%a1%d0%a0.mp3

без *
Прикрепленные файлы
Прикрепленный файл  nocaps_newapi.lua ( 2.91 килобайт ) Кол-во скачиваний: 30
 
Go to the top of the page
+Quote Post
Setuper
сообщение 24.3.2009, 19:57
Сообщение #45


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




Код
function ChatArrival(tUser, sData)
  if tAdmins[tUser.iProfile] and tAdmins[tUser.iProfile] == 1 then
    return
  end
  local sNick = tUser.sNick or tUser.sName
  sData = sData:sub(sNick:len() + 4, -2)
  if sData:match"magnet:%?xt=urn:tree:tiger:" then
    return
  end
...
Go to the top of the page
+Quote Post
sphinx
сообщение 23.4.2009, 23:50
Сообщение #46


Активный участник
***

Группа: Заблокированные
Сообщений: 87
Регистрация: 16.10.2008
Пользователь №: 805
Спасибо сказали: 35 раз




В 3 раза меньше кода, чем в представленном здесь скрипте.
Правда, только для API2.

Код
-- Размер сообщения с которого начинает реагировать скрипт:
iCheckSize = 5

-- Процент капса, при котором сработает скрипт:
iPersents = 80

ChatArrival=function(sUser,sData)
    local noCaps,f=isYELL(sData)
    if f then
        Core.SendToAll("<"..sUser.sNick.. "> " ..noCaps)
        return true
    end
end

isYELL=function (sData)
    local flag=false
    if sData:match"magnet:%?xt=urn:tree:tiger:" then
        return sData,flag
    end
    local nk, data = sData:match"^(%S+): (.*)"
    if nk then sData = data end
    local nsp = sData:gsub ("[%s%p%c]", "")
    if nsp:len() > iCheckSize then
        local NoSpacesLen = nsp:len()
        local NoCAPSLen = (nsp:gsub("[%uА-ЯЁ]", "")):len()
        if (NoSpacesLen - NoCAPSLen)/NoSpacesLen * 100 > iPersents then
            sData=ToLowerCase(sData)
            flag=true
        end
    end
    if nk then sData=nk..": "..sData end
    return sData,flag
end

ToLowerCase = function(s)
    for i = 192,223 do
        s = s:gsub(string.char(i), string.char(i+32))
    end
    s = s:gsub(string.char(168), string.char(184))
    return s:lower()
end
Go to the top of the page
+Quote Post
Setuper
сообщение 23.4.2009, 23:56
Сообщение #47


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




В функции ToLowerCase к нижнему регистру не приводится буква Ё.
Go to the top of the page
+Quote Post
sphinx
сообщение 23.4.2009, 23:57
Сообщение #48


Активный участник
***

Группа: Заблокированные
Сообщений: 87
Регистрация: 16.10.2008
Пользователь №: 805
Спасибо сказали: 35 раз




А я и думаю, зачем вы меняете 168 на 184...
Go to the top of the page
+Quote Post
Setuper
сообщение 24.4.2009, 0:12
Сообщение #49


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




Замечательный алгоритм перевода в нижний регистр, если не считать баг с буквой Ё. Респект.
Функция значительно оптимальнее, чем у меня.
Go to the top of the page
+Quote Post
sphinx
сообщение 24.4.2009, 0:15
Сообщение #50


Активный участник
***

Группа: Заблокированные
Сообщений: 87
Регистрация: 16.10.2008
Пользователь №: 805
Спасибо сказали: 35 раз




Вроде поправил букву Ё
Go to the top of the page
+Quote Post
Setuper
сообщение 24.4.2009, 0:22
Сообщение #51


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




Можно убрать ещё одну строчку в функции, написав так:
Код
ToLowerCase = function(s)
  for i = 192, 223 do
    s = s:gsub(string.char(i), string.char(i + 32))
  end
  s = s:gsub(string.char(168), string.char(184))
  return s:lower()
end

Респект за представленную функцию. очень оптимальное решение big_smile.gif
Go to the top of the page
+Quote Post
alkogoluk
сообщение 24.4.2009, 9:44
Сообщение #52


Начинающий
*

Группа: Пользователи
Сообщений: 10
Регистрация: 9.8.2008
Из: Россия, Тула
Пользователь №: 351
Спасибо сказали: 0 раз




Нефига если просто капсом писать в чат то повторяется ник от которого пишешь и если писать кому то то к сообщению добавляется вертикальная табуляция после ника того кому пишешь

Цитата
[10:41:28] <plugman2> <plugman2> чварполсмрпсапмоирпоирлтыпоирлывпоилыполтватлдава

[10:42:55] <plugman2> OpChat:
фыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыы
Go to the top of the page
+Quote Post
IIPu3PAK
сообщение 26.3.2010, 18:58
Сообщение #53


Активный участник
***

Группа: Пользователи
Сообщений: 80
Регистрация: 25.2.2009
Пользователь №: 2 359
Спасибо сказали: 6 раз




Замени
Код
Core.SendToAll("<"..sUser.sNick.. "> " ..noCaps)

на
Код
Core.SendToAll("" ..noCaps)
Go to the top of the page
+Quote Post

3 страниц V  < 1 2 3
Ответить в данную темуНачать новую тему
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0

Collapse

> Похожие темы

  Тема Ответов Автор Просмотров Последнее сообщение
No New Posts Topic has attachmentsОт: Антикапс
От темы с ID: 10
0 Wariner 4 163 22.3.2009, 21:28 Посл. сообщение: Wariner
No New Posts От: Антикапс
От темы с ID: 10
1 степашка 5 655 19.3.2009, 15:19 Посл. сообщение: Ears

 



RSS Сейчас: 23.11.2024, 14:42