Как я могу получить последний заголовок из RSS? - PullRequest
2 голосов
/ 20 марта 2011

Я использую lua-feeds (http://code.matthewwild.co.uk/lua-feeds/)

require "lua-feeds/feeds"

local feed = feeds.open("http://php.net/feed.atom");
for _, entry in ipairs(feed) do
bot.rooms["php@conference.aqq.eu"]:send_message(entry:get_child("title"):get_text().."\n"..entry:get_child("link").attr.href);
end

Это мой код, который получает полный RSS. Я хочу получить только последний заголовок и ссылку, как я могу это сделать?

Ответы [ 2 ]

5 голосов
/ 30 октября 2013

Я не понимаю, как ответ @ DeadMG был принят. Это выглядит ужасно неправильно для меня.

ipairs берет последовательность и возвращает итератор над ней, поэтому ipairs(feed) является итератором над фидом. ipairs - это , вызываемый один раз в примере, предоставленном OP. Полученный итератор вызывается несколько раз.

@ Идея DeadMG заключалась в том, чтобы вызывать итератор только один раз. Вот как это будет выглядеть:

local f, v, i = ipairs(feed)
local _, entry = f(v, i)

из, если вам нравятся трюки:

local _, _, entry = pcall(ipairs(feed))

Но ... Зачем ты это сделал? У вас есть канал в виде таблицы. Вы хотите первую запись этой таблицы:

local entry = feed[1]

Готово.

0 голосов
/ 20 марта 2011

Вы можете просто позвонить результат ipairs(feed) один раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...