Страница 1 из 2

etitle.tcl - Easy title. Скрипт простого показа тайтлов.

СообщениеДобавлено: 29 апр 2010 17:46
tvrsh
###
#
# Название: etitle.tcl
# Версия: 1.2
# Автор: tvrsh
#
###
#
# Описание: Скрипт "простого" показа тайтлов вебстраничек.
#
###


Пример работы:
#egghelp @ IrcNet.ru писал(а): <@tvrsh> http://www.egghelp.org/
<+bionic> Title(Charset: Unknown, Time: 0.972ms): egghelp.org
<@tvrsh> http://www.egghelp.ru
<+bionic> Title(Charset: windows-1251, Time: 317.246мс., TinyURL: http://tinyurl.com/ko63my ): Главная - EGGHELP.RU - TCL скрипты для Eggdrop/Windrop
<@tvrsh> http://cs10369.vkontakte.ru/u3351070/12 ... 83c272.jpg
<+Info> Title(iso8859-1 / 599.899ms. / http://tinyurl.com/4pj74sl )[0]: Image (image/jpeg). Size: 162.729Kb. http://vkontakte.ru/id3351070/

# Радио.
<@tvrsh> http://shoutcast4.hardcoreradio.nl/listen.pls
<+Info> Title(iso8859-1 / 646.111ms.)[0]: HARDCORERADIO.NL - Hardcore radio - Powered by RIGE Entertainment & Art of Dance, Type: audio/mpeg @ 128 kbps, Genre: Hardcore, Current song: Paul Elstak & The Stunned Guys ft. Ruffian - Bombing eardrumz
<+Info> 09:31:00 - Jingle - hardcoreradio.nl
<+Info> 09:30:54 - Commercial - Dominator
<+Info> 09:30:25 - Commercial - Free Festival 16.07.2011

# Автору.
<@tvrsh> http://cars.auto.ru/cars/used/sale/10834096-7186.html
<+Info> Title(UTF-8 / 890.375ms. / http://tinyurl.com/3bb4szb )[0]: Audi 100 (44,44Q) [ 1.8 (44) (90 Hp) / 1986 / Механическая / 18000 см / 100 л.с. / Бензин карбюратор / 320 000 км / Передний / Левый: 35 000 руб. ]

# Знакомства.
<@tvrsh> http://loveplanet.ru/page/200181200330/frl-23/
<+Info> Title(UTF-8 / 620.091ms.)[0]: Светлана [ Россия, Санкт-Петербург / Возраст: 30 / Ориентация: Гетеро / Фото: 8, 1 интим / Знак зодиака: Козерог / Сейчас на сайте! ]


Обновления скрипта:
# 1.1(26.05.2010) + Уточнения времени запроса. (by Vertigo)
# + Удаление нежелательных символов из урл("({[) (by Vertigo)
# 1.2(01.11.2010) + TinyURL сокращение.
# 02.12.2010 + Работа с Suzi патчем и небольшая доработка сокращения урлов.


Скачать: etitle.tcl

Re: etitle.tcl - Easy title. Скрипт простого показа тайтлов.

СообщениеДобавлено: 30 апр 2010 14:32
zolti
Он читает только тайтл из штмл? А если ссылка на файл?

Re: etitle.tcl - Easy title. Скрипт простого показа тайтлов.

СообщениеДобавлено: 20 май 2010 00:11
tvrsh
Только тайтл.

Re: etitle.tcl - Easy title. Скрипт простого показа тайтлов.

СообщениеДобавлено: 25 май 2010 22:46
tvrsh
Для того, чтобы скрипт правильно обрабатывал урлы написанные в виде "http://www.egghelp.ru" или (http://www.egghelp.ru), то-есть, когда в адрес включены кавычки или другие символы, которые не могут в нем находиться то после строки
    set query [lindex $text [lsearch $text "*http://*"]]
добавьте строку
    regsub -all -- {\"|\(|\)|\{|\}|\[|\]} $query "" query

Re: etitle.tcl - Easy title. Скрипт простого показа тайтлов.

СообщениеДобавлено: 26 май 2010 08:31
Vertigo
Вместо regsub лучше заюзать string trim
set query [string trim $query \x20\x5B\x5D\x7B\x7D\x28\x29\x22\x27\x09]

regsub удалит эти символы отовсюду в урле и с 99% вероятностью он (url) станет 404.
*******************
И еще. set start [clock clicks] желательно вставить в самом начале процедуры ::etitle::etitle_parce, после строчки global etitle lastbind. Так время выполнения будет считаться точнее. В данный момент считается только время парсинга, а не всего запроса.

Re: etitle.tcl - Easy title. Скрипт простого показа тайтлов.

СообщениеДобавлено: 26 май 2010 08:39
Vertigo
Ну и
TCL: [ Скачать ] [ Скрыть ]
  set end [clock clicks]

    if {[expr $end - $start] > 1000000} {
        set time "[expr ($end - $start) / 1000 / 1000.]sec"
    } else {
        set time "[expr ($end - $start) / 1000.]ms"
    }
 

вставить после
set title [strip.html $title]

Re: etitle.tcl - Easy title. Скрипт простого показа тайтлов.

СообщениеДобавлено: 26 май 2010 09:33
tvrsh
Vertigo писал(а):regsub удалит эти символы отовсюду в урле и с 99% вероятностью он (url) станет 404.

А разве в урле могут быть такие символы как кавычки или скобочки?
Это я решил сделать чтобы бот корректно реагировал на ответ гсин модуля содержащий
по причине "Quit: KVIrc 4.0.0 Insomnia http://www.kvirc.net/"
сначала была ошибка 404 а после добавления строки все исправилось.
Все равно спасибо за советы, скрипт поправил и выложил в первом сообщении темы.

Re: etitle.tcl - Easy title. Скрипт простого показа тайтлов.

СообщениеДобавлено: 05 сен 2010 01:07
tvrsh
Чтобы скрипт понимал тайтлы ютуба надо сменить юзерагент. Для этого строку
    set etitle_tok [::http::config -urlencoding utf-8 -useragent "Mozilla/4.0 (compatible; MSIE 4.01; Windows CE; PPC; 240x320)"]
замените на
    set etitle_tok [::http::config -urlencoding utf-8 -useragent "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)"]

Re: etitle.tcl - Easy title. Скрипт простого показа тайтлов.

СообщениеДобавлено: 01 ноя 2010 17:41
tvrsh
Добавлена возможность сокращения урлов. Смотрите первый пост темы.

Re: etitle.tcl - Easy title. Скрипт простого показа тайтлов.

СообщениеДобавлено: 25 ноя 2010 02:07
Волк
а чего делать с вопросиками?
<Волк> viewtopic.php?f=3&t=173&p=1269#p1269
<Lupus> Title(Charset: UTF-8, Time: 3.171сек.): EGGHELP.RU • etitle.tcl - Easy title. ???????????? ???????????????? ???????°?·?° ???°?????»????.

Eggdrop, с Suzi, в конфиге прописан encoding system cp1251

Re: etitle.tcl - Easy title. Скрипт простого показа тайтлов.

СообщениеДобавлено: 28 ноя 2010 16:48
tvrsh
Волк писал(а):а чего делать с вопросиками?
<Волк> viewtopic.php?f=3&t=173&p=1269#p1269
<Lupus> Title(Charset: UTF-8, Time: 3.171сек.): EGGHELP.RU • etitle.tcl - Easy title. ???????????? ???????????????? ???????°?·?° ???°?????»????.

Eggdrop, с Suzi, в конфиге прописан encoding system cp1251

Если твой бот с Suzi патчем, то ничего не надо прописывать в конфиге. Стирай оттуда encoding system cp1251 и будет тебе счастье.

Re: etitle.tcl - Easy title. Скрипт простого показа тайтлов.

СообщениеДобавлено: 28 ноя 2010 18:40
Волк
хм.. мне казалось у меня какие то скрипты без этой строчки не так работают. убрал, все работают вроде нормально
кроме этого скрипта) все так же вопросами
<Волк> http://egghelp.ru/
<Lupus> Title(Charset: windows-1251, Time: 362.732мс., TinyURL: http://tinyurl.com/l34fjr ): ??????? - EGGHELP.RU - TCL ??????? ??? Eggdrop/Windrop

Re: etitle.tcl - Easy title. Скрипт простого показа тайтлов.

СообщениеДобавлено: 01 дек 2010 20:37
xopek
Тоже самое. Бота с сузи. Запущен в локали 1251. Версия 1.6.20. Выдает ответ вопросиками на любой урл

Re: etitle.tcl - Easy title. Скрипт простого показа тайтлов.

СообщениеДобавлено: 02 дек 2010 01:34
Волк
Однако как только не пробовал пошаманить с кодировкой, все равно никак не допетрю откуда эти вопросы берутся.

Re: etitle.tcl - Easy title. Скрипт простого показа тайтлов.

СообщениеДобавлено: 02 дек 2010 15:01
tvrsh
Скрипт обновил, смотрите ссылку в первом посте.

Re: etitle.tcl - Easy title. Скрипт простого показа тайтлов.

СообщениеДобавлено: 02 дек 2010 17:42
Волк
работает, премного благодарствуемс)
правда иногда все же не понимает до конца
<Волк> viewtopic.php?f=3&t=173&p=1308#p1308
<Lupus> Title(Charset: UTF-8, Time: 791.014мс.): EGGHELP.RU " etitle.tcl - Easy title. Скрипт простого показа тайтлов.
<Волк> http://lib.ru/PSIHO/OBRAJEN/obrajen.txt
<Lupus> Title(Charset: Unknown, Time: 197.54мс.): ??????? ?'??????. ?????????????? ??????????? ? ??????? ? ???????: ????????? ? ????

Еще опечалила пропажа простого включения/отключения tinyurl, пришлось накрутить число до 1000
но в целом все гут :)
//а возможно как то прописать игнор для ссылок заканчивающихся на *.jpg?

Re: etitle.tcl - Easy title. Скрипт простого показа тайтлов.

СообщениеДобавлено: 05 дек 2010 12:29
tvrsh
Волк писал(а)://а возможно как то прописать игнор для ссылок заканчивающихся на *.jpg?

Замени
    # Проверяем текст на наличие в нем урлов.
    if {![string match "*http://*" $text]} {
        return 0
    }
на
    # Проверяем текст на наличие в нем урлов и картинок.
    if {![string match "*http://*" $text] || [string match "*.jpg" $text]} {
        return 0
    }

Re: etitle.tcl - Easy title. Скрипт простого показа тайтлов.

СообщениеДобавлено: 13 янв 2011 23:50
tvrsh
Немного подправил процедуру TinyUrl сокращения. Добавил работу с редиректами. И еще скрипт должен показывать размеры изображений, видео, аудио и других файлов.

Re: etitle.tcl - Easy title. Скрипт простого показа тайтлов.

СообщениеДобавлено: 28 янв 2011 13:57
oIIa4ku
Делема с вопросами на Сьюзи ботах так и не решена
(20:36:36) <oIIa4ku> tcl-skripti/
(20:36:46) <@mircbot> Title(Charset: UTF-8, Time: 486.39ms): TCL ?????????????? • ?¤???????? ?? ?±?????°?? Eggdrop/Windrop
(20:37:15) <oIIa4ku> http://winegg.net/
(20:37:20) <@mircbot> Title(Charset: Unknown, Time: 569.536ms):
(20:37:41) <oIIa4ku> http://www.winegg.net/
(20:37:58) <@mircbot> Title(Charset: UTF-8, Time: 954.573ms): ?¤???????? ?? ?±?????°?? Windrop, Eggdrop ?? mIRC - ???»?°?????°?? ???????°???????°

А жаль :(

Re: etitle.tcl - Easy title. Скрипт простого показа тайтлов.

СообщениеДобавлено: 28 янв 2011 14:03
Vertigo
Скриптов показа тайтлов существует несколько. Заюзай тот, что написан для патченного бота. Скрипты от tvrsh пишутся под непатченных ботов.