RSS

Нам повезло жить в уникальное время интенсивного развития интернет-технологий. Мы видели триумфальный взлет и падение доткомов, а теперь на наших глазах рождается WEB 2.0. Если вам это интересно, если вы проводите за компьютером значительную часть жизни и вам это нравится, оставайтесь с нами на форуме для миллионеров-техноманьяков, практиков интернет-бизнеса и других умных людей. Вливайтесь :)

  • Вы не зашли.

Операция «Обрезание»...

09.09.2007 22:53
BrokenBrake
беда
Рег. 01.08.2007
Сообщений: 529
Профиль  Сайт

Многие интересуются, как же обрезать сообщения из RSS? Рассказываю.

Нам потребуется один единственный модуль - regex.
Вытаскиваем его на монтажный стол, вытаскиваем Fetch Feed, вставляем в него ссылку на источник, подсоединяем к regex а от него труба уже идет к Pipe Output.
В regex нам нужно создать всего одно правило:
в item.description меняем ((\S*\s){30})(\S*).* на $1<a href='${link}'>$3...</a>. Попробую перевести язык регулярных выражений на человеческий.

(\S*\s){30} - Любое количество непробельных символов с пробелом, встречающееся 30 раз. Это значит, примерно 30 слов (сюда же относятся и предлоги и прочая мелочь).
(\S*) - Любое количество непробельных символов (одно слово).
.* - Любое количество любых символов.

Теперь перевожу то, что мы подставляем вместо найденного.

$1 - Первая переменная из маски поиска, то есть ((\S*\s){30}), или 30 первых слов.
<a href='${link}'> - Открываем тэг ссылки и подставляем URL сообщения (переменная и наименование элемента RSS).
... - Три точки :) Неправильно, кстати, потому что это три точки, а есть именно троеточие, но мне всегда лень его подставлять.
</a> - Закрываем тэг ссылки.

Вот и все. Готовую трубу можете клонировать и препарировать. В качестве подопытного источника был использован фид блога Артёма Майнаса, как самого плодовитого блоггера :) Надеюсь, он не в обиде за это. А вот ниже картинка этой трубы, но вы и сами все увидите, когда клонируете её в свой аккаунт.

http://turan4oks.googlepages.com/trunkate_items.png

Важно! Этот метод быстро сляпан на скорую руку, у него есть недостатки. п главный недостаток - отсутствие проверки на наличие тэгов. То есть может случится так, что разрыв будет как раз в середине какого-то тэга, например, ссылки. Естественно, это будет очень некрасиво, мне даже трудно предсказать последствия. Поэтому было бы здорово, если кто-то найдет лучшее решение. Например, неплохо бы научиться удалять все тэги из поста. Как это делать? Дело в том, что пайпсовский regex заменяет лишь первое вхождение. Думайте.

Еще один недостаток - троеточие может поставится не только после слова, но и после дефиса, предлога и т. д. Конечно же, это неправильно. Предлагайте варианты, я буду рад увидеть более интересную схему.

 
Сегодня
Рекламный чёртик
любит гостей
Rambler's Top100

Прошла зима, настало лето -
Спасибо PunBB за это...

В банке на данный момент $80.017.