модифікована rss-подача

Я досить лінива людина, яка при цьому не любить робити рутинну роботу. Активного наповнення rss подачі новинок аніме на нашому сайті в мене вистачило десь на півроку. Після цього бували затримки на тиждень-два, і це не було добре. Треба було якось автоматизовувати цю річ і я мав наступну ідую.

Ідея полягала в тому, що з певною періодичністю рекурсивно робиться обхід каталогу з аніме, і наприклад, за допомогою “find -mtime +..”, потім все це обгортається в item і дописується в кінець файлу. В цьому варіанті було багато маленьких підводних каменів: слідкувати щоб guid були різні; правильно прописувати значення length і type в тегу enclosure. Проте я не програміст, і все залишалось лише ідеєю.

На щастя, graywolf`ові надоїла несинхронізованість появи файлу та запису в rss, і він запропонував допомогу в автоматизації стоворення rss-файлу. Ним було написано скрипт на Perl`і, який робить обхід по певному каталогу і формує xml файл, в якому кожен файл, з цього каталогу, описується окремим item`ом, а в якості guid назначається ім”я файлу. З приємного, в perl`і вже доступні модулі для роботи з xml та rss та отриманні інформації про MIME type, думаю це йому явно полегшело роботу, а мені цікаво було дізнатись, що таке є.

Я поставив цей скрипт в crontab, і кожну годину формуєтся новий xml файл. Так як сайт можна зайти лише з UA-IX, прийшлось додати в crontab upload цього файлу на цей сайт. Тому з сьогодні по тій же самій адресі доступна модифікована rss-подача. Питання та пропозиції в студію. Особлива подяка graywolf`у :)

P.S> може хтось підкаже, коли якийсь rss агрегатор ініціює запит на нові item`ми, він повністю закачує xml файл і вже в себе аналізує по guid новий це item чи ні?

4 Comments

  1. minus-one:

    геніально! — давно треба було зробити, на то ж воно і рсс…

    думаю, що повністю закачують (не уявляю собі, як інакше)… хоча є треті кеш-сайти (типу http://www.rsscache.com) через які можна пустити свою подачу, тоді вона рідер буде отримувати тільки нові статті (трафік витрачатиме кеш-сайт).

  2. graywolf:

    Та нема за що ;) Це робилось в першу чергу, щоб мну якомога швидше дізнавався про появу нових серій “Ookami to Koushinryou”, бо в мене ломка :)))

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

  3. Finve:

    graywolf: не знаю, може я і не відкрию для тебе істини, але в myanimelist.net є можливість виставляти фансаб групу. І якщо виставити там “Notification Settings” у відповідну позицію, то на мейл ти будеш отримувати листи, коли будуть виходи нові серії даного аніме від даної фансаб групи :)

    Це все звісно, якщо не малось на увазі, що ти чекав ці серії саме на цьому сервері.

  4. graywolf:

    Саме другий варіант і мався на увазі :) Вихід нової серії (зі скріншотами) я зазвичай бачу по РСС від Random Curiosity.

Leave a comment