Всем привет. Прошу помочь мне с двумя скриптами, т. к. сам я не силён в этом деле.
В общем имеется на хабе 2 скрипта, первый показывает время в чате по запросу пользователя, второй блокирует рекламу с хабами. Сделать нужно следующее:
[offtop]
Делаем ставки, господа, через сколько постов Дамакс кинет ссылку на свой скрипт? ))
[/offtop]
Fe(one)X
В исключениях нужно экранировать символы ( ) . % + - * ? [ ] ^ $
Для этого перед ними нужно поставить символ % (например dchub://vlz%.e%-telecom%.ru)
Вставляешь в конце скрипта:
Damaks, спасибо конечно, но это немного нето. Дело в том, что у меня на хабе стоит скрипт Автотопик, который автоматически меняет топик каждые 20 секунд. Так вот можно сделать так, чтобы время отображалось рядом с топиком? Или сделать так чтобы время отображалось в автотопике? Заранее спасибо.
И ещё:
Fe(one)X, в скрипте отправки топика измени одну строку так:
Ksan, спасибо огромное. Работает на ура.
А в скрипте антирекламы можешь подсказать где я допустил ошибку?
Fe(one)X, функцию function checkForSafe(msg) ты написал, но нет обращения к ней, то есть, у тебя нет проверки вхождения выражения из таблицы исключений в сообщение юзера.
Короче, надо вместо строки
Ksan, всё работает, спасибо тебе огромнейшее.
Собственно это всё что мне требовалось, тему можно закрывать, ещё раз всем спасибо.
Вот не знаю, как у вас, а у меня есть вопросы к автотопику:
-скрипт работает сам при запуске, время отображается, топик меняется, но
1. из меню команда на просмотр списка не работает у меня почему-то, хотя в осн чат и поступает
2. удаление номера топика также не происходит, хотя команда в чат проходит
3. тоже самое и с добавлением нового номера топика
двигать в разные места пробовал...
Подскажите, может, что не так делаю!
ps. Просьба к Fe(one)X прикрепить сюда готовый скрипт тогда для АPI 2
Как самый простой вариант - в ip-to-country.csv прописать провадеров как отдельные страны. Нормальный вариант - сделать самому проверку на принадлежности IP нужным диапазон. Такой код есть во мнгоих скриптах. Можно оттуда выдрать и изменить под себя.
вот Этот скрипт добавит в описание юзера, его сеть
1. Забыть про страны, использовать только провайдеры. Что-то мне так кажется, что если людям важен провайдер, то им не важна страна и наоборот.
2. Есть инфа, что встроенные проверки диапазонов содержат от силы 10 диапазонов, а не over 9000, как для стран всего мира, так что различия в скорости не существенны.
1. Провайдер важен, но не для всех пользователей известен и для этих пользователей нужно знать хотя-бы страну.
2.
1. Дерибаним страну на несколько диапазонов, добавляя фиксированные страны. т. е. От России откусываем Корбину и создаем новую "страну" Корбина с "откушенными" диапазонами.
2. Инфы нет, но можно взять конкретный скрипт и замерить его производительность. Тут еще нужно смотреть какая реализация.
Но это экономия на спичках по большому счету. К слову, в базе мира порядка 160 тысяч диапазонов. Поиск быстрый, потому что они по порядку расположены.
UPD: Для первого пункта даже можно скрипт сделать, который будет автоматом патчить новые базы.
Fe(one)X, http://mydc.ru/topic5001.html этот скрипт видел? Там при входе показывает Сеть...
1. Проблема в том, что в птоку, на уровне исходников, вшит список всех возможных кодов стран и использовать свои собственные коды выдуманных стран без правки этого вшитого списка не удастся. Придётся вырезать адреса какой-нибудь африканской страны и вписывать под её идентификатором диапазоны провайдера. Провайдеров у меня, конечно, значительно меньше, чем стран мира, но есть провайдеры с чётким закреплением диапазонов IP-адресов за микрорайонами города и вот там список определяемых стран будет особо куцым.
Ну дык. Баланс, туды его в качель. Или по скорости работы, или по объему или по времени работы. Можно в птоку добавить страны и пересобрать. Я бы сделал скриптом и не морочился. Lua конечно не C, но не думаю что существенное будет различие в скорости.
UPD: Чтобы не тупило, можно сделать следующий вариант: берем Зимбабве и загоняем на него все диапазоны для провайдерства. Потом пишем скрипт, если страна - Зимбабве, то начинаем определять какой именно провайдер. На лицо выигрышь в том, что фильтрация первого уровня идет на Си. Т. е. только сортировка по провайдерам уже на уровне LUA.
Мне кажется, суета не стоит сожжённых свеч.
Кому нужны провайдеры - уже есть такие скрипты, как уже выше показали.
Как по мне, это вопрос не решения, а возможных подходов. Хотя я бы остановился бы на скриптах.
Ничего себе вы тут понаписали...
Артём, спасибо, но мне нужно это реализовать именно в том скрипте, который я кинул, т. к. он занимает мало места в чате. А почему нужно чтобы отображал именно название сети, потому что на хабе сидят в основном локальные пользователи и пользователи с одного города.
Ну так что поможет кто-нибудь?
Править ip-to-country.csv. Вариант?
Второй вариант состоит в том, чтобы сделать таблицу диапазонови проверять наличие ip в диапазоне.
http://mydc.ru/topic5036.html?hl=ip+to+country
Fe(one)X, а взять твой и тот что я выложил и самому скрестить в то что тебе нужно не судьба?
dell...
проверил, работает...
Fe(one)X, ищи лучше, этот файл там должен оказаться при установке Птоки обязательно.
Если всё же нет, значит, ты или кто-то другой удалил принудительно.
Тогда выход - поставить в отдельную папку Птоку и там найти этот файл и скопировать туда, где не его хватает.
Скачал я этот файл, спасибо Enyby, но из всего содержимого понял только названия стран =) Что значат цифры и как написать в нём диапазон провайдера?
Спасибо.
Fe(one)X, я так понял то, что выше я дал готовое тебе не нужно... удалил если нужно, сделаешь сам
Артём, ну в твоём же надо своими руками провайдеров набивать, а он, похоже, ждёт, что кто-нибудь ему предложит уже готовое решение - скачал/запустил и радуйся жизни.
Ksan, ничего руками не нужно вбивать, можно поставить Flylink 5хх там автообновление стоит, указать путь к файлу и ждать пока автоматом будут разрабы флая пихать базу с провайдерами
Цифры это ип. Начальный и конечный для диапазона. Тебе нужно сделать следующее: устанавливаешь ипы на нужные, а потом меняешь название страны, не трогая ее аббревиатуру. Именем страны будет служить имя провайдера.
Ип рассчитывается как: ((A*256 + B)*256 + C)*256 + D где A.B.C.D - это IP адрес.
Например: 192.168.0.1 => ((192*256 + 168)*256 + 0)*256 + 1 = 3232235521
Enyby, спасибо за вразумительный ответ. Попробую как будет время.
Проверил с ip-to-country.csv. Работать не будет. Причина проста - соответствие аббревиатур и их расшифровок жестко зашиты в PtokaX.
Тогда только второй вариант. Например так:
Дело в том, что оно не будет работать, даже если использовать существующие страны. Т. е. "IS" - это Island вне зависимости от того, что нарисовано в CSV файле. Можно извратится и сделать массив трансляций вида "Island" => "Провайдер", но тогда уже лучше вышепоказаный скрипт.
А я выше давал скрипт уже готовый, который при входе показывает
Fe(one)X, да причём здесь клиент, файл/базу провайдеров можно хоть в папку с скриптами положить, это уже без разницы где он будет лежать и без клиента работать будет, у меня стоял такой путь, из-за того что флай 5хх автообновляемый и база обновляется...
ну да ладно, дело хозяйское, сиди в ожидание чуда...
Артём, он бесподобен!