Шляхом Альбірео

НовиниЗаписиPHPRSS рідер окремого каналу

2022.07.21
Парсінг RSS каналу електронної бібліотеки "Чтиво"
Новини бібліотеки

RSS книжкових новин і старих часописів, які були оцифровані і оформлені нещодавно. Переходячи за посиланням, Ви попадете на сторінку іншого ресурсу.

Е-бібліотека «Чтиво»Cайт бібліотеки зараз доступний.

  • 2025.04.1807:27 PM

    Молния (рос.) (Василь Козаченко).

    Увага!!! Ця книга може містити московську комуністичну пропаганду!


    В книгу вошли четыре повести: «Молния», «Горячие руки», «Белое пятно», «Яринка Калиновская».

    Украинский советский писатель Василь Козаченко создал цикл повестей о «Молнии» – подпольной партизанской организации, действовавшей в тылу гитлеровских войск в Украине в годы Великой Отечественной войны. Фашистской военной машине автор противопоставляет моральную силу советских людей.

    За повести о «Молнии» В.Козаченко удостоен Государственной премии им. Т.Г.Шевченко и республиканской комсомольской премии им. Н.Островского

  • 2025.04.1807:20 PM

    Мафтей. Книга, написана сухим пером (Мирослав Дочинець).

    В основу роману лауреата Шевченківської премії
    Мирослава Дочинця лягли неймовірні події в Мукачеві, про які писали європейські газети середини XIX століття. Для чого переповідаються історії? Може, з волі блукаючого відлуння, а може, тому, що діла проминулі срібними нитками вплітаються в мережу сьогочасної доби...
    Всі дивляться в дзеркало і майже ніхто не заглядає за скло, за срібний покрив. А головна ж- тайна там. Мафтей зазирнув і ...

  • 2025.04.1807:10 PM

    Реестра всего Войска Запорожскаго послѣ Зборовскаго договора (рос.) (Йосип (Осип) Бодянський).

    Реестра всего Войска Запорожскаго послѣ Зборовскаго договора съ королемъ польскимъ Яномъ Казимиромъ, составленные 1649 года, октября 16 дня, и изданные по подлиннику О. М. Бодянскимъ. - М., 1875

  • 2025.04.1804:06 PM

    Шоумен (Саймон Шустер).

    Ті, хто підтримують Володимира Зеленського, вважатимуть цю книгу занадто критичною, а ті хто проти нього – компліментарною. Саме тому ця книга варта уваги.

    «Шоумен» – це фактично перша – відсторонена, наскільки це взагалі можливо – спроба описати саме особистість Зеленського, яка, без сумніву, зіграла ключову роль у подіях 2022 року і продовжує її грати зараз.

    Багато з тих, хто пам’ятає, як він танцював на сцені КВК у шкіряних штанях, грав попсових героїв у новорічному кіно та будував багатомільйонний бізнес на політичній сатирі, ніколи не питали себе, а що ж він за людина. Але відповідь саме на це питання має значення, коли починається велика війна.

    «Шоумен» – це не просто біографія Володимира Зеленського. Це книга про дитинство у Кривому Розі, КВК, російський шоубізнес, антисемітизм та ментальну прірву, що розділяє Україну та Росію. Ця книга дає певне розуміння того, як Зеленський співіснував із російськими наративом про Україну та про нього самого.

    Мабуть, того Зеленського, про якого пише Саймон Шустер у першій половині книги, вже не існує. Скоріш за все, він давно переродився у того, хто веде переговори із президентами США, свариться із європейськими міністрами та віддає накази генералам та полковникам і несе відповідальність за тисячі життів.

    Змінились й українці – ті, хто голосував за нього 2019 року і ті, хто виступав проти.

    Ті, хто залишились у Києві 24 лютого 2022 року, відчуватимуть те, що називається «спільним досвідом», читаючи главу про столицю тієї весни. Ті, хто опинились у оточеному Маріуполі – відчуватимуть, скоріш за все, злість. Ті, хто втікав за кордон, рятуючи дітей, також проваляться у свої спогади, тодішні надії та сподівання. Сприйняття тих самих слів та речень буде сильно відрізнятись в залежності від того, що трапилось з вами та вашими близькими за час великої війни.

    Так завжди, коли читаєш книгу про своє життя, яку написав хтось інший. Хтось, хто наче і розуміє твою мову, але, записавши кілька інтерв’ю, повертається до свого безпечного дому, де завжди є електрика.

    Книга про такого президента і про такі часи має викликати дискусії.

    Саме тому ми переклали її українською.

Парсінг стрічки новин
Note

Бібліотека хороша, але генерація RSS-каналів не піддається стилізації на нашому сайті завдяки тому, що CSS прописані в тілі скрипта, а це не є добре.

Ми написали парсер на РНР, який виправляє вивід сторінки і позбавляє деяких вад при публікації, а саме:

  • Скасована дія float після виводу інформації, через додавання <p style="clear:both"></p> наприкінці генерації.
  • Частково скасовано стилізацію, шляхом відміни <div style="margin:20px 5px; color:#312d2d;"> в оригіналі. Це тепер не заважає показати шрифт будь-якого коліру і на будь-якому фоні.
  • Скореговані відступи блоків для кращого сприйняття.
  • Для зображень встановлений однаковий розмір.
  • Можна вказати кількість новин для розміщення на сторінці.
  • Додана перевірка доступності сайту в даний момент.

Код в процесі тестування і з цієї причини, можливі зміни. Не причесаний. Працює з усіма чотирма каналами джерела, однак, виявилася ще одна проблема - на сайті інколи дають посилання на локальне розташування зображень, тому вони не відображаються. Це помилка генерації фіду.

<!-- RSS читалка для новин сайта "Chtyvo" -->

[PHP]

<?php // URL фіду (джерело) $feeds = array( "https://chtyvo.org.ua/feed/bookshq.rss" ); // Резервуємо змінні для скрипта $entries = array(); $search = '<div style="margin:20px 5px; color:#312d2d;">'; $replace = '<div>'; foreach ($feeds as $feed) { $xml = simplexml_load_file($feed); $entries = array_merge($entries, $xml->xpath("//item")); } // Сортуємо фіди по даті (на всяк випадок) usort($entries, function ($feed1, $feed2) { return strtotime($feed2->pubDate) - strtotime($feed1->pubDate); }); ?> <div class="bg-transparent pad40-tb"> <!-- Класи від нашого зовнішнього фреймворка (але, можуть бути які завгодно) --> <ul class="list-unstyled"> <?php $NUMITEMS = 5; // Вказуємо кількість новин для показу $count = 0; // Виводимо на сторінку в кількості, яка вказана в $NUMITEMS foreach ($entries as $entry) { ?> <li> <p class="t100 t-orange250 pad20-t"> <?= strftime('%m/%d/%Y %I:%M %p', strtotime($entry->pubDate)) ?> </p> <p> <?=$entry = str_ireplace($search, $replace, (str_ireplace('<div style="float:left; padding: 10px;">', '<div style="float:left; padding-right: 40px; padding-top: 7px;">', (str_ireplace('Додано твір ', '', (str_ireplace('border="0" />', 'border="0" width="200">', $entry->description))))))); ?> </p> <p style="clear:both"></p> </li> <?php if (++$count >= $NUMITEMS) break; } ?> </ul> </div>

Appdate

Автори бібліотечного сайту відгукнулися листом і обіцяли переглянути формування новин своїх каналів, так що, вищенаписане може й не знадобиться, хоча, як окрема вправа з парсингу, вона була для нас дуже і дуже корисною.

Бібліотека використовує rss більше як засіб трансляції новин до свого твітеру, отже, якщо наші пропозиції їй в цьому не заважатимуть, то скрипт втратить свою актуальність.

Інколи сервер сайту буває зайнятий і тоді не може бистро віддати новини, тому варто перевірити, чи взагалі він не закритий на технічне обслуговування. Для цього ми дописали кілька рядків:

<!-- Перевірка доступності сайта -->

[PHP]

<?php $URL = 'http://chtyvo.org.ua/'; if (isSiteAvailible($URL)) { echo '<p>Cайт бібліотеки зараз доступний.</p>'; // Тут ми додаємо скрипт для виводу // .... } else { echo '<p>Сайт бібліотеки поки недоступний. Завітайте пізніше, будь ласка.</p>'; } ?>