From 1268277a8c203bcae515e0ccc8b3432119bafed2 Mon Sep 17 00:00:00 2001 From: multiple creatures Date: Fri, 10 Jan 2020 20:07:15 -0600 Subject: add custom filter master toggle, add media gallery mode, & fix various filter logic + caching bugs --- app/controllers/api/v1/filters_controller.rb | 7 +++++++ app/controllers/api/v1/timelines/home_controller.rb | 9 ++++----- app/controllers/api/v1/timelines/list_controller.rb | 10 +++++----- 3 files changed, 16 insertions(+), 10 deletions(-) (limited to 'app/controllers/api') diff --git a/app/controllers/api/v1/filters_controller.rb b/app/controllers/api/v1/filters_controller.rb index 514f7c8fa..ffef0b920 100644 --- a/app/controllers/api/v1/filters_controller.rb +++ b/app/controllers/api/v1/filters_controller.rb @@ -15,6 +15,7 @@ class Api::V1::FiltersController < Api::BaseController def create @filter = current_account.custom_filters.create!(resource_params) + toggle_filters render json: @filter, serializer: REST::FilterSerializer end @@ -24,16 +25,22 @@ class Api::V1::FiltersController < Api::BaseController def update @filter.update!(resource_params) + toggle_filters render json: @filter, serializer: REST::FilterSerializer end def destroy @filter.destroy! + toggle_filters render_empty end private + def toggle_filters + current_account.user.update!(filters_enabled: !current_account.custom_filters.enabled.blank?) + end + def set_filters @filters = params['all'].to_i == 1 ? current_account.custom_filters : [] end diff --git a/app/controllers/api/v1/timelines/home_controller.rb b/app/controllers/api/v1/timelines/home_controller.rb index bd3bac0fe..589bc3486 100644 --- a/app/controllers/api/v1/timelines/home_controller.rb +++ b/app/controllers/api/v1/timelines/home_controller.rb @@ -23,11 +23,10 @@ class Api::V1::Timelines::HomeController < Api::BaseController end def cached_home_statuses - if current_account&.user&.hide_boosts - cache_collection home_statuses.without_reblogs, Status - else - cache_collection home_statuses, Status - end + statuses = home_statuses + statuses = statuses.without_reblogs if current_account&.user&.hide_boosts + statuses = statuses.with_media if current_account&.user&.media_only + cache_collection statuses, Status end def home_statuses diff --git a/app/controllers/api/v1/timelines/list_controller.rb b/app/controllers/api/v1/timelines/list_controller.rb index 7eb656745..b52f53bf9 100644 --- a/app/controllers/api/v1/timelines/list_controller.rb +++ b/app/controllers/api/v1/timelines/list_controller.rb @@ -25,11 +25,11 @@ class Api::V1::Timelines::ListController < Api::BaseController end def cached_list_statuses - if current_account&.user&.hide_boosts - cache_collection list_statuses.without_reblogs, Status - else - cache_collection list_statuses, Status - end + statuses = list_statuses + statuses = statuses.without_reblogs if current_account&.user&.hide_boosts + statuses = statuses.with_media if current_account&.user&.media_only + + cache_collection statuses, Status end def list_statuses -- cgit