Telegram Inline Query
Allows you to receive and answer an inline query from Telegram.
Last updated
Was this helpful?
Was this helpful?
config.routes.inline_query = :newsclass NewsContext < Conversation
def blocks
keyword "nytimes" do
feed_entries("https://rss.nytimes.com/services/xml/rss/nyt/World.xml")[0..10].each do |article|
@reply.inline_query_result(
:article,
{
title: article.title,
description: article.summary.to_s,
url: article.url,
thumb_url: article.image.to_s,
photo_width: 128,
photo_height: 128,
input_message_content: {
message_text: @reply.render_html_template(:news, :preview, {article: article}),
parse_mode: "HTML"
}
}
)
end
end
keyword "cnn" do
if @msg.type == :inline_query
feed_entries("http://rss.cnn.com/rss/edition_world.rss").each do |article|
@reply.inline_query_result(
:article,
{
title: article.title,
description: article.summary.to_s,
url: article.url,
thumb_url: article.image.to_s,
photo_width: 128,
photo_height: 128,
input_message_content: {
message_text: html_template("news/preview", {article: article}),
parse_mode: "HTML"
}
}
)
end
else
@reply.text "This example only works in Inline Mode for Telegram"
end
end
end
protected
def feed_entries(url)
xml = HTTParty.get(url).body
feed = Feedjira.parse(xml)
return feed.entries
end
end<b><%=article.title%></b>
<i><%=article.summary.to_s.truncate(50)%></i>
<a href="<%=article.url%>"> Read more </a>