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|
|
post '/event/:event_id/delete' do |event_id|
|
||||||
require_login
|
require_login
|
||||||
content_type :json
|
content_type :json
|
||||||
|
|
||||||
event = Event[id: event_id]
|
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
|
event.delete
|
||||||
return {result: 'success'}.to_json
|
return {result: 'success'}.to_json
|
||||||
end
|
end
|
||||||
|
|
||||||
return {result: 'error'}.to_json
|
return {result: 'error'}.to_json
|
||||||
end
|
end
|
||||||
|
|
|
@ -12,6 +12,7 @@ get '/?' do
|
||||||
elsif params[:event_id]
|
elsif params[:event_id]
|
||||||
event = Event.select(:id).where(id: params[:event_id]).first
|
event = Event.select(:id).where(id: params[:event_id]).first
|
||||||
not_found if event.nil?
|
not_found if event.nil?
|
||||||
|
not_found if event.is_deleted
|
||||||
events_dataset = Event.where(id: params[:event_id]).paginate(1, 1)
|
events_dataset = Event.where(id: params[:event_id]).paginate(1, 1)
|
||||||
elsif params[:activity] == 'global'
|
elsif params[:activity] == 'global'
|
||||||
events_dataset = Event.global_dataset @current_page
|
events_dataset = Event.global_dataset @current_page
|
||||||
|
|
|
@ -15,17 +15,22 @@ class Event < Sequel::Model
|
||||||
DEFAULT_GLOBAL_LIMIT = 300
|
DEFAULT_GLOBAL_LIMIT = 300
|
||||||
GLOBAL_VIEWS_MINIMUM = 5
|
GLOBAL_VIEWS_MINIMUM = 5
|
||||||
|
|
||||||
def self.global_dataset(current_page=1, limit=DEFAULT_GLOBAL_LIMIT)
|
def self.news_feed_default_dataset
|
||||||
select_all(:events).
|
select_all(:events).
|
||||||
order(:created_at.desc).
|
order(:created_at.desc).
|
||||||
paginate(current_page, 100).
|
|
||||||
join_table(:inner, :sites, id: :site_id).
|
join_table(:inner, :sites, id: :site_id).
|
||||||
exclude(Sequel.qualify(:sites, :is_deleted) => false).
|
exclude(Sequel.qualify(:sites, :is_deleted) => true).
|
||||||
exclude(is_nsfw: false).
|
exclude(Sequel.qualify(:events, :is_deleted) => true).
|
||||||
exclude(is_banned: false).
|
exclude(is_banned: true)
|
||||||
exclude(is_crashing: false).
|
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}.
|
where{views > GLOBAL_VIEWS_MINIMUM}.
|
||||||
or(site_change_id: nil)
|
where(site_change_id: nil)
|
||||||
end
|
end
|
||||||
|
|
||||||
def created_by?(site)
|
def created_by?(site)
|
||||||
|
|
|
@ -975,7 +975,7 @@ class Site < Sequel::Model
|
||||||
|
|
||||||
def latest_events(current_page=1, limit=10)
|
def latest_events(current_page=1, limit=10)
|
||||||
site_id = self.id
|
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).
|
order(:created_at.desc).
|
||||||
paginate(current_page, limit)
|
paginate(current_page, limit)
|
||||||
end
|
end
|
||||||
|
@ -984,7 +984,7 @@ class Site < Sequel::Model
|
||||||
following_ids = self.followings_dataset.select(:site_id).all.collect {|f| f.site_id}
|
following_ids = self.followings_dataset.select(:site_id).all.collect {|f| f.site_id}
|
||||||
search_ids = following_ids+[self.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).
|
order(:created_at.desc).
|
||||||
paginate(current_page, limit)
|
paginate(current_page, limit)
|
||||||
end
|
end
|
||||||
|
|
Loading…
Add table
Reference in a new issue