mirror of
https://github.com/neocities/neocities.git
synced 2025-04-25 01:32:36 +02:00
refactor news feed default dataset, fix event delete
This commit is contained in:
parent
ebc3254724
commit
54ea98be1c
4 changed files with 18 additions and 11 deletions
|
@ -36,12 +36,13 @@ end
|
|||
post '/event/:event_id/delete' do |event_id|
|
||||
require_login
|
||||
content_type :json
|
||||
|
||||
event = Event[id: event_id]
|
||||
|
||||
if event.site_id == current_site.id || event.created_by?(current_site)
|
||||
if event.site_id == current_site.id || event.actioning_site_id == current_site.id
|
||||
event.delete
|
||||
return {result: 'success'}.to_json
|
||||
end
|
||||
|
||||
return {result: 'error'}.to_json
|
||||
end
|
||||
end
|
||||
|
|
|
@ -12,6 +12,7 @@ get '/?' do
|
|||
elsif params[:event_id]
|
||||
event = Event.select(:id).where(id: params[:event_id]).first
|
||||
not_found if event.nil?
|
||||
not_found if event.is_deleted
|
||||
events_dataset = Event.where(id: params[:event_id]).paginate(1, 1)
|
||||
elsif params[:activity] == 'global'
|
||||
events_dataset = Event.global_dataset @current_page
|
||||
|
|
|
@ -15,17 +15,22 @@ class Event < Sequel::Model
|
|||
DEFAULT_GLOBAL_LIMIT = 300
|
||||
GLOBAL_VIEWS_MINIMUM = 5
|
||||
|
||||
def self.global_dataset(current_page=1, limit=DEFAULT_GLOBAL_LIMIT)
|
||||
def self.news_feed_default_dataset
|
||||
select_all(:events).
|
||||
order(:created_at.desc).
|
||||
paginate(current_page, 100).
|
||||
join_table(:inner, :sites, id: :site_id).
|
||||
exclude(Sequel.qualify(:sites, :is_deleted) => false).
|
||||
exclude(is_nsfw: false).
|
||||
exclude(is_banned: false).
|
||||
exclude(is_crashing: false).
|
||||
exclude(Sequel.qualify(:sites, :is_deleted) => true).
|
||||
exclude(Sequel.qualify(:events, :is_deleted) => true).
|
||||
exclude(is_banned: true)
|
||||
end
|
||||
|
||||
def self.global_dataset(current_page=1, limit=DEFAULT_GLOBAL_LIMIT)
|
||||
news_feed_default_dataset.
|
||||
paginate(current_page, 100).
|
||||
exclude(is_nsfw: true).
|
||||
exclude(is_crashing: true).
|
||||
where{views > GLOBAL_VIEWS_MINIMUM}.
|
||||
or(site_change_id: nil)
|
||||
where(site_change_id: nil)
|
||||
end
|
||||
|
||||
def created_by?(site)
|
||||
|
|
|
@ -975,7 +975,7 @@ class Site < Sequel::Model
|
|||
|
||||
def latest_events(current_page=1, limit=10)
|
||||
site_id = self.id
|
||||
Event.where{Sequel.|({site_id: site_id}, {actioning_site_id: site_id})}.
|
||||
Event.news_feed_default_dataset.where{Sequel.|({site_id: site_id}, {actioning_site_id: site_id})}.
|
||||
order(:created_at.desc).
|
||||
paginate(current_page, limit)
|
||||
end
|
||||
|
@ -984,7 +984,7 @@ class Site < Sequel::Model
|
|||
following_ids = self.followings_dataset.select(:site_id).all.collect {|f| f.site_id}
|
||||
search_ids = following_ids+[self.id]
|
||||
|
||||
Event.where{Sequel.|({site_id: search_ids}, {actioning_site_id: search_ids})}.
|
||||
Event.news_feed_default_dataset.where{Sequel.|({site_id: search_ids}, {actioning_site_id: search_ids})}.
|
||||
order(:created_at.desc).
|
||||
paginate(current_page, limit)
|
||||
end
|
||||
|
|
Loading…
Add table
Reference in a new issue