51

Re: Плейлисты от Wild'zzz

ramzes4 пишет:

wildzzz,
proxy от valdikss https://github.com/ValdikSS/aceproxy в принципе позволяет смотреть материалы с torrent трекеров. Как пример он приводит.
Torrent и Acelive
Синтаксис запуска:
/torrent/URLENCODED_URL/FILE_INDEXES/DEVELOPER_ID/AFFILIATE_ID/ZONE_ID/STREAM_ID/video_file_name.extension
Все параметры, кроме URLENCODED_URL, являются опциональными. FILE_INDEXES начинается с 0.
Пример:
http://127.0.0.1:8000/torrent/http%3A%2 … ideo_5.mp4
Запустит 6 файл в торренте http://www.nyaa.se/?page=download&tid=477288
https://github.com/ValdikSS/aceproxy/wi … 0%B8%D0%B5
Нельзя ли написать что то подобное на любой открытый фильмовой трекер? А то  http://www.nyaa.se/ кроме аниме ничего не предлагает :(

Честно я далёк от этого. Задумка хорошая смотреть с торрента напрямую...нознаний на реализацию не имею...

52

Re: Плейлисты от Wild'zzz

wildzzz пишет:

Честно я далёк от этого. Задумка хорошая смотреть с торрента напрямую...нознаний на реализацию не имею...

Жаль. Если в этом примере менять tid то загружается почти любой аниме с этого треккера, но все мои попытки что-то загрузить с другого треккера, ничем не увенчались. :(  Все эти 0%B8%D0%B5 для меня - темный лес :(

UE40D5500

53

Re: Плейлисты от Wild'zzz

wildzzz пишет:

Быстрописание парсера

header('Content-Type: text/xml; charset=utf-8'); - посылаем заголовок нашего плейлиста будто он xml файл
print "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\r\n"; - собственно функция print впишет первой строкой в наш передаваемый файл сообщение что он имеет структуру xml и что он в кодировке UTF-8. – есть предположение что и без этой строки парсеры будут работать.

достаточно header('Content-Type: text/xml; charset=utf-8');
отдает браузеру HTTP заголовок (говорит браузеру что это xml код), собственно браузер самостоятельно допишет <?xml version="1.0" encoding="UTF-8" ?>

F6400, F4500, H6400, H5600

54

Re: Плейлисты от Wild'zzz

3. Таинственный обряд обрезания.
Предупрежу, существует другой способ, но мне проще пользоваться этим…

Попытаемся получить список тэгов сайта  www.moviki.ru – для этого вырежем все значения блока ТЭГИ

<?php
header('Content-Type: text/xml; charset=utf-8');
print "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\r\n";
?>
<items>
<playlist_name>Это самый лучший плейлист!!! </playlist_name>
<?php
$content=file_get_contents("http://www.moviki.ru/"); 

$tag_in="<div class=\"tags_cloud\">";
$position=strpos($content,$tag_in);
$content =substr($content,$position);  

$tag_out="<div id=\"footer\">";
$position=strpos($content,$tag_out);
$content =substr($content,0,$position);

echo $content;

?>
</items>

И так приступим к разбору полётов:
$tag_in="<div class=\"tags_cloud\">"; - выбираем место первого отреза (выше которого будет отрезан и удалён весь код) – ПОЧЕМУ именно это??? Так как тэг <div class=\"tags_cloud\"> в полученном документе  встречается один раз скрипт не ошибётся и отрежет ровно столько сколько нужно нам.
$position=strpos($content,$tag_in); - устанавливаем курсор на то место которое выбрали строкой выше.
$content =substr($content,$position);  - обряд обрезания – всё что находится выше тэга <div class=\"tags_cloud\"> благополучно вырезано и удалено.

$tag_out="<div id=\"footer\">"; - выбираем место второго отреза (ниже которого ) будет отрезан и удалён весь код) – причина почему выбран тэг  <div id=\"footer\"> - он также встречается в коде страницы один раз.
$position=strpos($content,$tag_out); - идентичная вышеописанной
$content =substr($content,0,$position); - обряд обрезания – всё что находится ниже <div id=\"footer\"> благополучно вырезано и удалено.

И в остатке мы получаем ссылки на страницы где по тэгам будут отобраны видео и немного мусора.

Спасибо сказали: gronik, Николай2

55

Re: Плейлисты от Wild'zzz

ramzes4 пишет:

Нельзя ли написать что то подобное на любой открытый фильмовой трекер?

Написать можно, хоть и не так просто.
Нужно будет парсить .torrent файл на содержимое раздачи, наличие видео в нем и их последовательный порядок (в отдельных случаях).
Также (что является огромным камнем преткновения) держать пользователю виджета свой локальный запущенный aceproxy на компе.
а это уже целая инструкция по запуску с огрооомным гемором (по опыта).
Так что, скорее всего, шкура вычинки ...

Спасибо сказали: ramzes41

56

Re: Плейлисты от Wild'zzz

kumuki,
см ЛС

UE40D5500

57

Re: Плейлисты от Wild'zzz

wildzzz Спасибо за уроки php!!! Тема - то что доктор прописал. Можно было бы создать для этого отдельную тему, хотя и так хорошо.
Для развития темы пару вопросов:
В последнем примере парсер парсит только одну страницу сайта или один блок с тегами "<div class="?
Как распарсить ссылку на картинку и ссылку видео?
Хотя бы пока так пока спрошу.

UE46ES6800 - Smarttvfree
Спасибо сказали: Николай1

58 (16.01.2015 10:18:19 отредактировано wildzzz)

Re: Плейлисты от Wild'zzz

Это будет в следующих уроках...Сегодня вылажу урок в продолжение третьего, там опишу как получить ссылки на страницы...тем же способом можно будет получить и ссылки на картинки...

А вообще дальше не мешало бы на видео сделать... А то много интересных вещей упускается при написании...

http://www.nncron.ru/help/RU/add_info/regexp.htm- в четвёртом уроке будет рассмотрена одна из самых непростых тем (по себе сужу)

Спасибо сказали: Николай, gronik2

59

Re: Плейлисты от Wild'zzz

wildzzz пишет:

Это будет в следующих уроках...Сегодня вылажу урок в продолжение третьего, там опишу как получить ссылки на страницы...тем же способом можно будет получить и ссылки на картинки...

А вообще дальше не мешало бы на видео сделать... А то много интересных вещей упускается при написании...

http://www.nncron.ru/help/RU/add_info/regexp.htm- в четвёртом уроке будет рассмотрена одна из самых непростых тем (по себе сужу)

регулярки самое сложное будет для людей) хотя на деле..

F6400, F4500, H6400, H5600

60

Re: Плейлисты от Wild'zzz

malkypunky пишет:

регулярки самое сложное будет для людей) хотя на деле..

Тем способом которым пользуюсь я можно научить многих...

Спасибо сказали: First1

61 (16.01.2015 18:19:04 отредактировано wildzzz)

Re: Плейлисты от Wild'zzz

4. Клинопись или …

Регулярные выражения с которыми придётся столкнуться в этом опусе смог изучить очень поверхностно … посему всем настоятельно рекомендую как можно внимательно изучить эту тему.
Здесь вдаваться в подробности я не буду объясню только то что я применяю при написание парсеров.

Итак мы имеем код:

<?php
header('Content-Type: text/xml; charset=utf-8');
print "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\r\n";
?>
<items>
<playlist_name>Это самый лучший плейлист!!! </playlist_name>
<?php
$content=file_get_contents("http://www.moviki.ru/"); 

$tag_in="<div class=\"tags_cloud\">";
$position=strpos($content,$tag_in);
$content =substr($content,$position);  

$tag_out="<div id=\"footer\">";
$position=strpos($content,$tag_out);
$content =substr($content,0,$position);

echo $content;

?>
</items>

который уже умеет загружать html-код страницы, и отрезать ненужные её части.

С его помощью мы получили вот это:

<?xml version="1.0" encoding="UTF-8" ?>
<items>
<playlist_name>Это самый лучший плейлист!!! </playlist_name>
<div class="tags_cloud">
    <h1 class="block_header">Тэги</h1>
    <div class="block_content">
                    <a href="http://www.moviki.ru/tags/serialov/" title="сериалов" style="font-weight: bold; font-size: 13px;">сериалов</a>&nbsp;&nbsp;
                    <a href="http://www.moviki.ru/tags/v/" title="в" style="font-weight: bold; font-size: 14px;">в</a>&nbsp;&nbsp;
                    <a href="http://www.moviki.ru/tags/71176782d048b53ab78e4bba0f960ee3/" title="/" style="font-weight: bold; font-size: 14px;">/</a>&nbsp;&nbsp;
                    <a href="http://www.moviki.ru/tags/treyler/" title="трейлер" style="font-weight: bold; font-size: 15px;">трейлер</a>&nbsp;&nbsp;
                    <a href="http://www.moviki.ru/tags/2/" title="2" style="font-weight: bold; font-size: 16px;">2</a>&nbsp;&nbsp;
                    <a href="http://www.moviki.ru/tags/drama/" title="драма" style="font-weight: bold; font-size: 16px;">драма</a>&nbsp;&nbsp;
                    <a href="http://www.moviki.ru/tags/melodrama/" title="мелодрама" style="font-weight: bold; font-size: 15px;">мелодрама</a>&nbsp;&nbsp;
                    <a href="http://www.moviki.ru/tags/4/" title="4" style="font-weight: bold; font-size: 15px;">4</a>&nbsp;&nbsp;
                    <a href="http://www.moviki.ru/tags/hdrip/" title="hdrip" style="font-weight: bold; font-size: 12px;">hdrip</a>&nbsp;&nbsp;
                    <a href="http://www.moviki.ru/tags/20122/" title="(2012)" style="font-weight: bold; font-size: 13px;">(2012)</a>&nbsp;&nbsp;
                    <a href="http://www.moviki.ru/tags/multfilm/" title="мультфильм" style="font-weight: bold; font-size: 16px;">мультфильм</a>&nbsp;&nbsp;
                    <a href="http://www.moviki.ru/tags/filmy/" title="Фильмы" style="font-weight: bold; font-size: 12px;">Фильмы</a>&nbsp;&nbsp;
                    <a href="http://www.moviki.ru/tags/10/" title="10" style="font-weight: bold; font-size: 12px;">10</a>&nbsp;&nbsp;
                    <a href="http://www.moviki.ru/tags/seriya/" title="серия" style="font-weight: bold; font-size: 16px;">серия</a>&nbsp;&nbsp;
                    <a href="http://www.moviki.ru/tags/smotret/" title="смотреть" style="font-weight: bold; font-size: 14px;">смотреть</a>&nbsp;&nbsp;
                    <a href="http://www.moviki.ru/tags/fantastika/" title="фантастика" style="font-weight: bold; font-size: 13px;">фантастика</a>&nbsp;&nbsp;
                    <a href="http://www.moviki.ru/tags/2014/" title="(2014)" style="font-weight: bold; font-size: 12px;">(2014)</a>&nbsp;&nbsp;
                    <a href="http://www.moviki.ru/tags/multiki/" title="мультики" style="font-weight: bold; font-size: 15px;">мультики</a>&nbsp;&nbsp;
                    <a href="http://www.moviki.ru/tags/20132/" title="(2013)" style="font-weight: bold; font-size: 15px;">(2013)</a>&nbsp;&nbsp;
                    <a href="http://www.moviki.ru/tags/novinki/" title="новинки" style="font-weight: bold; font-size: 13px;">новинки</a>&nbsp;&nbsp;
                    <a href="http://www.moviki.ru/tags/triller/" title="Триллер" style="font-weight: bold; font-size: 15px;">Триллер</a>&nbsp;&nbsp;
                    <a href="http://www.moviki.ru/tags/subtitry/" title="субтитры" style="font-weight: bold; font-size: 12px;">субтитры</a>&nbsp;&nbsp;
                    <a href="http://www.moviki.ru/tags/65ba658e7696e5e69f01cc583786ffd0/" title="-" style="font-weight: bold; font-size: 14px;">-</a>&nbsp;&nbsp;
                    <a href="http://www.moviki.ru/tags/i/" title="и" style="font-weight: bold; font-size: 15px;">и</a>&nbsp;&nbsp;
                    <a href="http://www.moviki.ru/tags/5/" title="5" style="font-weight: bold; font-size: 14px;">5</a>&nbsp;&nbsp;
                    <a href="http://www.moviki.ru/tags/indiyskie/" title="Индийские" style="font-weight: bold; font-size: 14px;">Индийские</a>&nbsp;&nbsp;
                    <a href="http://www.moviki.ru/tags/univer/" title="Универ" style="font-weight: bold; font-size: 13px;">Универ</a>&nbsp;&nbsp;
                    <a href="http://www.moviki.ru/tags/tayny-smolvilya/" title="Тайны Смолвиля" style="font-weight: bold; font-size: 13px;">Тайны Смолвиля</a>&nbsp;&nbsp;
                    <a href="http://www.moviki.ru/tags/indiyskoe/" title="Индийское" style="font-weight: bold; font-size: 13px;">Индийское</a>&nbsp;&nbsp;
                    <a href="http://www.moviki.ru/tags/ssha/" title="США" style="font-weight: bold; font-size: 13px;">США</a>&nbsp;&nbsp;
                    <a href="http://www.moviki.ru/tags/boevik/" title="Боевик" style="font-weight: bold; font-size: 15px;">Боевик</a>&nbsp;&nbsp;
                    <a href="http://www.moviki.ru/tags/priklyucheniya/" title="Приключения" style="font-weight: bold; font-size: 14px;">Приключения</a>&nbsp;&nbsp;
                    <a href="http://www.moviki.ru/tags/9/" title="9" style="font-weight: bold; font-size: 12px;">9</a>&nbsp;&nbsp;
                    <a href="http://www.moviki.ru/tags/kriminal/" title="Криминал" style="font-weight: bold; font-size: 13px;">Криминал</a>&nbsp;&nbsp;
                    <a href="http://www.moviki.ru/tags/1/" title="1" style="font-weight: bold; font-size: 16px;">1</a>&nbsp;&nbsp;
                    <a href="http://www.moviki.ru/tags/sezon/" title="Сезон" style="font-weight: bold; font-size: 16px;">Сезон</a>&nbsp;&nbsp;
                    <a href="http://www.moviki.ru/tags/8/" title="8" style="font-weight: bold; font-size: 12px;">8</a>&nbsp;&nbsp;
                    <a href="http://www.moviki.ru/tags/dom-2/" title="Дом 2" style="font-weight: bold; font-size: 12px;">Дом 2</a>&nbsp;&nbsp;
                    <a href="http://www.moviki.ru/tags/kino/" title="кино" style="font-weight: bold; font-size: 14px;">кино</a>&nbsp;&nbsp;
                    <a href="http://www.moviki.ru/tags/3/" title="3" style="font-weight: bold; font-size: 15px;">3</a>&nbsp;&nbsp;
                    <a href="http://www.moviki.ru/tags/ujasy/" title="Ужасы" style="font-weight: bold; font-size: 14px;">Ужасы</a>&nbsp;&nbsp;
                    <a href="http://www.moviki.ru/tags/video3/" title="Video" style="font-weight: bold; font-size: 14px;">Video</a>&nbsp;&nbsp;
                    <a href="http://www.moviki.ru/tags/film/" title="фильм" style="font-weight: bold; font-size: 12px;">фильм</a>&nbsp;&nbsp;
                    <a href="http://www.moviki.ru/tags/komediya/" title="комедия" style="font-weight: bold; font-size: 16px;">комедия</a>&nbsp;&nbsp;
                    <a href="http://www.moviki.ru/tags/serial/" title="сериал" style="font-weight: bold; font-size: 16px;">сериал</a>&nbsp;&nbsp;
                    <a href="http://www.moviki.ru/tags/the/" title="The" style="font-weight: bold; font-size: 15px;">The</a>&nbsp;&nbsp;
                    <a href="http://www.moviki.ru/tags/7/" title="7" style="font-weight: bold; font-size: 12px;">7</a>&nbsp;&nbsp;
                    <a href="http://www.moviki.ru/tags/2013/" title="2013" style="font-weight: bold; font-size: 16px;">2013</a>&nbsp;&nbsp;
                    <a href="http://www.moviki.ru/tags/20142/" title="2014" style="font-weight: bold; font-size: 16px;">2014</a>&nbsp;&nbsp;
                    <a href="http://www.moviki.ru/tags/6/" title="6" style="font-weight: bold; font-size: 13px;">6</a>&nbsp;&nbsp;
            </div>
</div>
        <!--<div>
    <h1 class="block_header">Kernel Video Sharing Concepts</h1>
    <div class="text_content">
        <p class="topmost">+ Best-performed tube script on the market.</p>
        <p>+ The most powerful video content manager.</p>
        <p>+ Dozens of customization options in video player.</p>
        <p>+ Full-featured community.</p>
        <p>+ Easy and powerful website customization.</p>
        <p>+ Different ways to manage your content.</p>
        <p>+ Build-in support for multiple conversion and storage servers.</p>
        <p>+ Easy-to-use and comfortable Admin Panel.</p>
        <p>+ Limited administrator accounts.</p>
        <p>+ Powerful video import and export tools.</p>
        <p>+ Open source code.</p>
        <p>+ Constant development and updates.</p>
    </div>
</div>-->    </div>
    <div class="g_clear"></div>
</div>

        </items>

Теперь нам нужно извлечь из этого всего ссылки такого вида: http://www.moviki.ru/tags/komediya/
И к ним описание: комедия

Для того что бы составить регулярное выражение берём строку:
<a href="http://www.moviki.ru/tags/komediya/" title="комедия" style="font-weight: bold; font-size: 16px;">комедия</a>&nbsp;&nbsp;

Я делаю просто те части строки которые имеют тенденцию изменятся заменяю на (.*) – это означает что здесь может быть любое количество любых символов.

Получаем следующее:
<a href="(.*)" title="(.*)" style="(.*)">(.*)</a>&nbsp;&nbsp;

Вот такое «регулярное выражение» - получилось у меня.

Собственно код:

<?php
header('Content-Type: text/xml; charset=utf-8');
print "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\r\n";
?>
<items>
<playlist_name>Это самый лучший плейлист!!! </playlist_name>
<?php
$content=file_get_contents("http://www.moviki.ru/"); 

$tag_in="<div class=\"tags_cloud\">";
$position=strpos($content,$tag_in);
$content =substr($content,$position);  

$tag_out="<div id=\"footer\">";
$position=strpos($content,$tag_out);
$content =substr($content,0,$position);

$template = '[<a href="(.*)" title="(.*)" style="(.*)">(.*)</a>&nbsp;&nbsp;]';
$result = preg_match_all($template, $content, $maches);

$klv=count($maches[2])-1;
for ($i = 0; $i <= $klv; $i++)
  {
  ?>
<channel>
<title><![CDATA[<?php echo $maches[2][$i] ?>]]></title>
<playlist_url>192.168.1.2/obr.php?adres=<?php echo $maches[1][$i] ?></playlist_url>
<description><![CDATA[<center><?php echo $maches[2][$i] ?></center>]]></description>
<logo_30x30></logo_30x30>
</channel>
<?php
  } 
?>
</items>

$template = '[<a href="(.*)" title="(.*)" style="(.*)">(.*)</a>&nbsp;&nbsp;]'; - здесь переменной присваивается наше регулярное выражение
$result = preg_match_all($template, $content, $maches); - функцией preg_match_all в переменную $maches создаётся массив данных.

Продолжение будет...

Спасибо сказали: bdfz08, gronik2

62

Re: Плейлисты от Wild'zzz

После некоторых раздумий решил всё таки записать видео урок по парсингу сайта - выбрал этот http://1kino.by...

Спасибо сказали: bdfz08, gronik2

63

Re: Плейлисты от Wild'zzz

добрый вечер.
wildzzz, скажите еще такой вопрос: На чем запускаете (проверяете работу) php, я не имею ввиду внешний сервер, а домашний комп (Denwer или что другое)?
Спасибо за уроки.

UE46ES6800 - Smarttvfree

64 (17.01.2015 15:59:01 отредактировано wildzzz)

Re: Плейлисты от Wild'zzz

gronik пишет:

добрый вечер.
wildzzz, скажите еще такой вопрос: На чем запускаете (проверяете работу) php, я не имею ввиду внешний сервер, а домашний комп (Denwer или что другое)?
Спасибо за уроки.

Тестирую дома, стоит denwer, ибо зарекомендовал себя только с положительных сторон. Со всеми разработками проблем не было.

http://sitear.ru/material/php-regexp-primery

Спасибо сказали: gronik1

65

Re: Плейлисты от Wild'zzz

Мой первый парсер LINECINEMA :)  добавил в кинотеатры.

Спасибо сказали: karabin70, monox, Николай, gronik, wilhelm2005, bar6

66 (17.01.2015 11:08:20 отредактировано wildzzz)

Re: Плейлисты от Wild'zzz

4254 пишет:

Мой первый парсер LINECINEMA :)  добавил в кинотеатры.

Молодца... Посмотрел норм работает нужно твои остальные до ума довести и портал нормальный начнёт вырисовываться...

67 (17.01.2015 15:52:19 отредактировано wildzzz)

Re: Плейлисты от Wild'zzz

В продолжении 4 урока...
Как понять в какой части массива находятся нужные данные?
Всё очень просто:
<a href="(1)" title="(2)" style="(3)">(4)</a>&nbsp;&nbsp;

$maches[2][$i]-соотвественно содержит информацию с тега title="(.*)"

Что такое $i – номер строки, а по сути к примеру у нас парсится 10 фильмов, соотвественно формируется массив из 10 строк, каждая строка разложится на части типа как ссылка, фото, название, описание.

$klv=count($maches[2])-1;
for ($i = 0; $i <= $klv; $i++)
  {
  ?>
<channel>
<title><![CDATA[<?php echo $maches[2][$i] ?>]]></title>
<playlist_url><?php echo $hosterloc ?>obr.php?adres=<?php echo $maches[1][$i] ?></playlist_url>
<description><![CDATA[<center><?php echo $maches[2][$i] ?></center>]]></description>
<logo_30x30></logo_30x30>
</channel>
<?php
  } 
?>

Этот кусок кода прост как валенок в переменную $klv – записывается количество строк.
Цикл for ($i = 0; $i <= $klv; $i++)проходит весь массив от 0 до переменной $klv.

Спасибо сказали: gronik1

68

Re: Плейлисты от Wild'zzz

4254 пишет:

Мой первый парсер LINECINEMA :)  добавил в кинотеатры.

Вопрос конечно не совсем в тему, но все же, на LG_FolkPlayer ваши листы можно как то запускать? Работают только 3-4 и все.

69

Re: Плейлисты от Wild'zzz

Лично у меня нет LG и сказать что там работает трудно :) , но если 3-4 работают это уже хорошо :) с мира по нитке , плейлистов много , с каждого по чуть чуть , вот и сборка для счастья :) , да и у ALEXKDPU прекрасный плейлист неужели вам мало ?

70

Re: Плейлисты от Wild'zzz

NoName пишет:
4254 пишет:

Мой первый парсер LINECINEMA :)  добавил в кинотеатры.

Вопрос конечно не совсем в тему, но все же, на LG_FolkPlayer ваши листы можно как то запускать? Работают только 3-4 и все.

Я свои плейлисты тестирую на samsung forklmod у меня всё ок.

71

Re: Плейлисты от Wild'zzz

wildzzz пишет:

Я свои плейлисты тестирую на samsung forklmod у меня всё ок.

У мекня на LG идут только несколько, конкретно из ваших - кинотут, труба и тут бай. А так списки открываются, а видео не идет.

72

Re: Плейлисты от Wild'zzz

NoName пишет:
wildzzz пишет:

Я свои плейлисты тестирую на samsung forklmod у меня всё ок.

У мекня на LG идут только несколько, конкретно из ваших - кинотут, труба и тут бай. А так списки открываются, а видео не идет.

Есть предположение md5hash не работает в виджете. Посмотрите NOWFILMS работает???

73

Re: Плейлисты от Wild'zzz

wildzzz пишет:

Есть предположение md5hash не работает в виджете.

Вот это я тоже заметил.

74 (18.01.2015 10:23:49 отредактировано NoName)

Re: Плейлисты от Wild'zzz

wildzzz пишет:

NOWFILMS

обнаружено видео - ошибка обработки.
На других плеер запускается и до бесконечности висит.
Кинотут - все отлично.
Жаль, листы отличные.

4254 пишет:

неужели вам мало ?

Просто спортивный интерес.  :)

75

Re: Плейлисты от Wild'zzz

NoName пишет:
wildzzz пишет:

NOWFILMS

обнаружено видео - ошибка обработки.
На других плеер запускается и до бесконечности висит.
Кинотут - все отлично.
Жаль, листы отличные.

4254 пишет:

неужели вам мало ?

Просто спортивный интерес.  :)

Ну что же тогда все вопросы к автору виджета...