mirror of
https://github.com/discourse/discourse.git
synced 2024-12-14 16:53:44 +08:00
a0474a0774
`.posts.first` may be the first post and may not, depending on luck Also add protection for corrupt topics
46 lines
2.4 KiB
Plaintext
46 lines
2.4 KiB
Plaintext
<?xml version="1.0" encoding="UTF-8" ?>
|
|
<rss version="2.0" xmlns:discourse="http://www.discourse.org/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
|
|
<channel>
|
|
<% lang = SiteSetting.find_by_name('default_locale').try(:value) %>
|
|
<% site_email = SiteSetting.find_by_name('contact_email').try(:value) %>
|
|
<title><%= @title %></title>
|
|
<link><%= @link %></link>
|
|
<description><%= @description %></description>
|
|
<% if lang %><language><%= lang.sub('_', '-')%></language><% end %>
|
|
<% if @topic_list.topics && @topic_list.topics.length > 0 %>
|
|
<lastBuildDate><%= @topic_list.topics.first.created_at.rfc2822 %></lastBuildDate>
|
|
<atom:link href="<%= @atom_link %>" rel="self" type="application/rss+xml" />
|
|
<% @topic_list.topics.each do |topic| %>
|
|
<% topic_url = topic.url -%>
|
|
<% username = topic.user ? topic.user.username : "" %>
|
|
<% name = topic.user ? topic.user.name : "" %>
|
|
<item>
|
|
<title><%= topic.title %></title>
|
|
<dc:creator><![CDATA[<%= "@#{username}#{" #{name}" if (name.present? && SiteSetting.enable_names?)}" -%>]]></dc:creator>
|
|
<category><%= topic.category.name %></category>
|
|
<description><![CDATA[
|
|
<% if username.present? %>
|
|
<p><%= t('author_wrote', author: link_to("@#{username}", "#{Discourse.base_url}/u/#{topic.user.username_lower}")).html_safe %></p>
|
|
<% end %>
|
|
<blockquote>
|
|
<%- if first_post = topic.ordered_posts.first %>
|
|
<%= first_post.cooked.html_safe %>
|
|
<%- end %>
|
|
</blockquote>
|
|
<p><%= t 'num_posts' %> <%= topic.posts_count %></p>
|
|
<p><%= t 'num_participants' %> <%= topic.participant_count %></p>
|
|
<p><%= link_to t('read_full_topic'), topic_url %></p>
|
|
]]></description>
|
|
<link><%= topic_url %></link>
|
|
<pubDate><%= topic.created_at.rfc2822 %></pubDate>
|
|
<discourse:topicPinned><%= topic.pinned_at ? 'Yes' : 'No' %></discourse:topicPinned>
|
|
<discourse:topicClosed><%= topic.closed ? 'Yes' : 'No' %></discourse:topicClosed>
|
|
<discourse:topicArchived><%= topic.archived ? 'Yes' : 'No' %></discourse:topicArchived>
|
|
<guid isPermaLink="false"><%= Discourse.current_hostname %>-topic-<%= topic.id %></guid>
|
|
<source url="<%= topic_url %>.rss"><%= topic.title %></source>
|
|
</item>
|
|
<% end %>
|
|
<% end %>
|
|
</channel>
|
|
</rss>
|