diff --git a/Gemfile b/Gemfile index d9b88036..e0a68d96 100644 --- a/Gemfile +++ b/Gemfile @@ -62,6 +62,7 @@ gem 'dnsbl-client' gem 'minfraud' gem 'image_optimizer' # apt install optipng jpegoptim pngquant gem 'rubyzip', require: 'zip' +gem 'airbrake' group :development, :test do gem 'pry' diff --git a/Gemfile.lock b/Gemfile.lock index 2828c3ac..37843b5d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -31,6 +31,10 @@ GEM adequate_crypto_address (0.1.9) base58 (~> 0.2) keccak (~> 1.3) + airbrake (13.0.4) + airbrake-ruby (~> 6.0) + airbrake-ruby (6.2.2) + rbtree3 (~> 0.6) ansi (1.5.0) base58 (0.2.3) base64 (0.2.0) @@ -240,6 +244,7 @@ GEM rb-fsevent (0.11.2) rb-inotify (0.10.1) ffi (~> 1.0) + rbtree3 (0.7.1) redis (5.0.8) redis-client (>= 0.17.0) redis-client (0.19.1) @@ -351,6 +356,7 @@ DEPENDENCIES activesupport addressable (>= 2.8.0) adequate_crypto_address + airbrake bcrypt capybara certified diff --git a/app/browse.rb b/app/browse.rb index d24d686c..1df90e85 100644 --- a/app/browse.rb +++ b/app/browse.rb @@ -62,7 +62,7 @@ def browse_sites_dataset when 'followers' ds = ds.order :follow_count.desc, :updated_at.desc when 'supporters' - ds = ds.where id: Site.supporter_ids + ds = ds.where sites__id: Site.supporter_ids ds = ds.order :follow_count.desc, :views.desc, :site_updated_at.desc when 'featured' ds = ds.exclude featured_at: nil diff --git a/config.ru b/config.ru index f07d875b..12906064 100644 --- a/config.ru +++ b/config.ru @@ -1,6 +1,9 @@ require 'rubygems' require './app.rb' require 'sidekiq/web' +require 'airbrake/sidekiq' + +use Airbrake::Rack::Middleware map('/') do use(Rack::Cache, diff --git a/environment.rb b/environment.rb index 2d1db38c..e29acd95 100644 --- a/environment.rb +++ b/environment.rb @@ -187,3 +187,18 @@ Minfraud.configure do |c| c.license_key = $config['minfraud_license_key'] c.enable_validation = true end + + +Airbrake.configure do |c| + c.project_id = $config['airbrake_project_id'] + c.project_key = $config['airbrake_project_key'] +end + +Airbrake.add_filter do |notice| + if notice[:params][:password] + # Filter out password. + notice[:params][:password] = '[Filtered]' + end + + notice.ignore! if notice.stash[:exception].is_a?(Sinatra::NotFound) +end diff --git a/models/site.rb b/models/site.rb index 7b2a2179..e0505e3f 100644 --- a/models/site.rb +++ b/models/site.rb @@ -1538,14 +1538,16 @@ class Site < Sequel::Model xml.image { xml.url sharing_screenshot_url xml.title title + xml.link uri } site_change_events.each do |event| + event_link = "https://neocities.org/site/#{username}?event_id=#{event.id.to_s}" xml.item { xml.title "#{title} has been updated." - xml.link "https://neocities.org/site/#{username}?event_id=#{event.id.to_s}" + xml.link event_link xml.pubDate event.created_at.rfc822 - xml.guid event.id.to_s + xml.guid event_link } end } diff --git a/models/site_file.rb b/models/site_file.rb index eae5f37f..27ae8b51 100644 --- a/models/site_file.rb +++ b/models/site_file.rb @@ -5,7 +5,7 @@ require 'sanitize' class SiteFile < Sequel::Model CLASSIFIER_LIMIT = 1_000_000 CLASSIFIER_WORD_LIMIT = 25 - FILE_PATH_CHARACTER_LIMIT = 600 + FILE_PATH_CHARACTER_LIMIT = 1200 FILE_NAME_CHARACTER_LIMIT = 100 unrestrict_primary_key plugin :update_primary_key diff --git a/views/contact.erb b/views/contact.erb index 79ea393a..182ee01a 100644 --- a/views/contact.erb +++ b/views/contact.erb @@ -209,7 +209,7 @@
- Site downloading issues are almost always related to the internet connectivity issues. If your download is continuing to get cancelled or interrupted, check your WiFi router, or try plugging in directly to the router to see if that resolves it. You could also try downloading from a local library or coffee shop and see if you have the same issue. + Site downloading issues are almost always related to the internet connectivity issues. If your download is continuing to get cancelled or interrupted, check your WiFi router, or try plugging in directly to the router to see if that resolves it. You could also try downloading from a local library or coffee shop and see if you have the same issue. If you're having trouble with the download link, you can also try SAve MY nEOCiTy!, which is a third party downloading tool for Neocities sites.