mirror of
https://github.com/neocities/neocities.git
synced 2025-04-24 17:22:35 +02:00
Merge branch 'neocities:master' into master
This commit is contained in:
commit
4dadb018ba
5 changed files with 32 additions and 22 deletions
1
Gemfile
1
Gemfile
|
@ -52,7 +52,6 @@ gem 'facter', require: nil
|
|||
gem 'maxmind-db'
|
||||
gem 'json', '>= 2.3.0'
|
||||
gem 'nokogiri'
|
||||
gem 'rss'
|
||||
gem 'webp-ffi'
|
||||
gem 'rszr'
|
||||
gem 'zip_tricks'
|
||||
|
|
|
@ -254,8 +254,6 @@ GEM
|
|||
netrc (~> 0.8)
|
||||
rexml (3.2.6)
|
||||
rinku (2.0.6)
|
||||
rss (0.3.0)
|
||||
rexml
|
||||
rszr (1.3.0)
|
||||
ruby-progressbar (1.13.0)
|
||||
ruby2_keywords (0.0.5)
|
||||
|
@ -403,7 +401,6 @@ DEPENDENCIES
|
|||
redis-namespace
|
||||
rest-client
|
||||
rinku
|
||||
rss
|
||||
rszr
|
||||
rubyzip
|
||||
sanitize
|
||||
|
|
|
@ -2,7 +2,7 @@ get '/site/:username.rss' do |username|
|
|||
site = Site[username: username]
|
||||
halt 404 if site.nil?
|
||||
content_type :xml
|
||||
site.to_rss.to_xml
|
||||
site.to_rss
|
||||
end
|
||||
|
||||
get '/site/:username/?' do |username|
|
||||
|
@ -374,4 +374,4 @@ post '/site/:username/confirm_phone' do
|
|||
|
||||
# Will redirect to / automagically if phone was verified
|
||||
redirect "/site/#{current_site.username}/confirm_phone"
|
||||
end
|
||||
end
|
||||
|
|
9
migrations/123_events_rss_index.rb
Normal file
9
migrations/123_events_rss_index.rb
Normal file
|
@ -0,0 +1,9 @@
|
|||
Sequel.migration do
|
||||
up {
|
||||
DB.add_index :events, [:created_at, :site_id, :site_change_id, :is_deleted], name: :events_rss_index, order: {created_at: :desc}
|
||||
}
|
||||
|
||||
down {
|
||||
DB.drop_index :events, :rss
|
||||
}
|
||||
end
|
|
@ -1,6 +1,5 @@
|
|||
# frozen_string_literal: true
|
||||
require 'tilt'
|
||||
require 'rss'
|
||||
require 'nokogiri'
|
||||
require 'pathname'
|
||||
require 'zlib'
|
||||
|
@ -1526,24 +1525,30 @@ class Site < Sequel::Model
|
|||
end
|
||||
|
||||
def to_rss
|
||||
RSS::Maker.make("2.0") do |m|
|
||||
m.channel.title = title
|
||||
m.channel.link = uri
|
||||
m.channel.description = "Site feed for #{title}"
|
||||
m.image.url = sharing_screenshot_url
|
||||
m.image.title = title
|
||||
site_change_events = events_dataset.exclude(is_deleted: true).exclude(site_change_id: nil).order(:created_at.desc).limit(10).all
|
||||
|
||||
Nokogiri::XML::Builder.new(encoding: 'UTF-8') do |xml|
|
||||
xml.rss('version' => '2.0') {
|
||||
xml.channel {
|
||||
xml.title title
|
||||
xml.link uri
|
||||
xml.description "Site feed for #{title}"
|
||||
xml.image {
|
||||
xml.url sharing_screenshot_url
|
||||
xml.title title
|
||||
}
|
||||
|
||||
latest_events.each do |event|
|
||||
if event.site_change_id
|
||||
m.items.new_item do |i|
|
||||
i.title = "#{title} has been updated."
|
||||
i.link = "https://neocities.org/site/#{username}?event_id=#{event.id.to_s}"
|
||||
i.pubDate = event.created_at
|
||||
site_change_events.each do |event|
|
||||
xml.item {
|
||||
xml.title "#{title} has been updated."
|
||||
xml.link "https://neocities.org/site/#{username}?event_id=#{event.id.to_s}"
|
||||
xml.pubDate event.created_at.rfc822
|
||||
xml.guid event.id.to_s
|
||||
}
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
}
|
||||
}
|
||||
end.to_xml
|
||||
end
|
||||
|
||||
def empty_index?
|
||||
|
|
Loading…
Add table
Reference in a new issue