diff --git a/app/controllers/forum_topics_controller.rb b/app/controllers/forum_topics_controller.rb index ce434e9fe..b91ac50fe 100644 --- a/app/controllers/forum_topics_controller.rb +++ b/app/controllers/forum_topics_controller.rb @@ -4,8 +4,8 @@ class ForumTopicsController < ApplicationController before_action :member_only, :except => [:index, :show] before_action :moderator_only, :only => [:new_merge, :create_merge] before_action :normalize_search, :only => :index - before_action :load_topic, :only => [:edit, :show, :update, :destroy, :undelete, :new_merge, :create_merge, :subscribe, :unsubscribe] - before_action :check_min_level, :only => [:show, :edit, :update, :new_merge, :create_merge, :destroy, :undelete, :subscribe, :unsubscribe] + before_action :load_topic, :only => [:edit, :show, :update, :destroy, :undelete, :new_merge, :create_merge] + before_action :check_min_level, :only => [:show, :edit, :update, :new_merge, :create_merge, :destroy, :undelete] skip_before_action :api_check def new @@ -88,20 +88,6 @@ class ForumTopicsController < ApplicationController redirect_to forum_topic_path(@merged_topic) end - def subscribe - subscription = ForumSubscription.where(:forum_topic_id => @forum_topic.id, :user_id => CurrentUser.user.id).first - unless subscription - ForumSubscription.create(:forum_topic_id => @forum_topic.id, :user_id => CurrentUser.user.id, :last_read_at => @forum_topic.updated_at) - end - respond_with(@forum_topic) - end - - def unsubscribe - subscription = ForumSubscription.where(:forum_topic_id => @forum_topic.id, :user_id => CurrentUser.user.id).first - subscription&.destroy - respond_with(@forum_topic) - end - private def normalize_search diff --git a/app/logical/danbooru_maintenance.rb b/app/logical/danbooru_maintenance.rb index c0e349a1b..2fbe595b5 100644 --- a/app/logical/danbooru_maintenance.rb +++ b/app/logical/danbooru_maintenance.rb @@ -9,7 +9,6 @@ module DanbooruMaintenance safely { Upload.prune! } safely { Delayed::Job.where('created_at < ?', 45.days.ago).delete_all } safely { PostDisapproval.prune! } - safely { ForumSubscription.process_all! } safely { PostDisapproval.dmail_messages! } safely { regenerate_post_counts! } safely { SuperVoter.init! } diff --git a/app/mailers/user_mailer.rb b/app/mailers/user_mailer.rb index 00bdab9dc..ddbe65632 100644 --- a/app/mailers/user_mailer.rb +++ b/app/mailers/user_mailer.rb @@ -7,11 +7,4 @@ class UserMailer < ActionMailer::Base @dmail = dmail mail(:to => "#{dmail.to.name} <#{dmail.to.email}>", :subject => "#{Danbooru.config.app_name} - Message received from #{dmail.from.name}") end - - def forum_notice(user, forum_topic, forum_posts) - @user = user - @forum_topic = forum_topic - @forum_posts = forum_posts - mail(:to => "#{user.name} <#{user.email}>", :subject => "#{Danbooru.config.app_name} forum topic #{forum_topic.title} updated") - end end diff --git a/app/models/forum_subscription.rb b/app/models/forum_subscription.rb deleted file mode 100644 index 07fd1d17f..000000000 --- a/app/models/forum_subscription.rb +++ /dev/null @@ -1,24 +0,0 @@ -class ForumSubscription < ApplicationRecord - belongs_to :user - belongs_to :forum_topic - - def self.prune! - where("last_read_at < ?", 3.months.ago).delete_all - end - - def self.process_all! - ForumSubscription.find_each do |subscription| - forum_topic = subscription.forum_topic - if forum_topic.updated_at > subscription.last_read_at - CurrentUser.scoped(subscription.user, "127.0.0.1") do - forum_posts = forum_topic.posts.where("created_at > ?", subscription.last_read_at).order("id desc") - begin - UserMailer.forum_notice(subscription.user, forum_topic, forum_posts).deliver_now - rescue Net::SMTPSyntaxError - end - subscription.update_attribute(:last_read_at, forum_topic.updated_at) - end - end - end - end -end diff --git a/app/models/forum_topic.rb b/app/models/forum_topic.rb index 680001305..c2666fe7e 100644 --- a/app/models/forum_topic.rb +++ b/app/models/forum_topic.rb @@ -16,7 +16,6 @@ class ForumTopic < ApplicationRecord has_many :posts, -> {order("forum_posts.id asc")}, :class_name => "ForumPost", :foreign_key => "topic_id", :dependent => :destroy has_many :moderation_reports, through: :posts has_one :original_post, -> {order("forum_posts.id asc")}, class_name: "ForumPost", foreign_key: "topic_id", inverse_of: :topic - has_many :subscriptions, :class_name => "ForumSubscription" before_validation :initialize_is_deleted, :on => :create validates_presence_of :title validates_associated :original_post @@ -126,16 +125,9 @@ class ForumTopic < ApplicationRecord end end - module SubscriptionMethods - def user_subscription(user) - subscriptions.where(:user_id => user.id).first - end - end - extend SearchMethods include CategoryMethods include VisitMethods - include SubscriptionMethods def editable_by?(user) (creator_id == user.id || user.is_moderator?) && visible?(user) diff --git a/app/views/forum_topics/_secondary_links.html.erb b/app/views/forum_topics/_secondary_links.html.erb index d2aacbd89..715f0b694 100644 --- a/app/views/forum_topics/_secondary_links.html.erb +++ b/app/views/forum_topics/_secondary_links.html.erb @@ -18,11 +18,6 @@ <% if CurrentUser.is_member? && @forum_topic && !@forum_topic.new_record? %>
"<%= @forum_topic.title %>" was updated:
- -<% @forum_posts.each do |forum_post| %> -- <%= forum_post.creator.name %> said: -
- <%= format_text(forum_post.body, base_url: root_url) %> -<%= link_to "View topic", forum_topic_url(@forum_topic, :page => @forum_topic.last_page, :host => Danbooru.config.hostname, :only_path => false) %> | <%= link_to "Unsubscribe", maintenance_user_email_notification_url(:user_id => @user.id, :sig => email_sig(@user), :host => Danbooru.config.hostname, :only_path => false) %>
diff --git a/config/routes.rb b/config/routes.rb index 7bb4ae82b..84b1af4dd 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -142,8 +142,6 @@ Rails.application.routes.draw do post :undelete get :new_merge post :create_merge - post :subscribe - post :unsubscribe end collection do post :mark_all_as_read diff --git a/db/migrate/20200119193110_drop_forum_subscriptions.rb b/db/migrate/20200119193110_drop_forum_subscriptions.rb new file mode 100644 index 000000000..961929525 --- /dev/null +++ b/db/migrate/20200119193110_drop_forum_subscriptions.rb @@ -0,0 +1,7 @@ +require_relative "20140725003232_create_forum_subscriptions" + +class DropForumSubscriptions < ActiveRecord::Migration[6.0] + def change + revert CreateForumSubscriptions + end +end diff --git a/db/structure.sql b/db/structure.sql index 3f524b6e9..31bec31a9 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -2014,38 +2014,6 @@ CREATE SEQUENCE public.forum_posts_id_seq ALTER SEQUENCE public.forum_posts_id_seq OWNED BY public.forum_posts.id; --- --- Name: forum_subscriptions; Type: TABLE; Schema: public; Owner: - --- - -CREATE TABLE public.forum_subscriptions ( - id integer NOT NULL, - user_id integer, - forum_topic_id integer, - last_read_at timestamp without time zone, - delete_key character varying -); - - --- --- Name: forum_subscriptions_id_seq; Type: SEQUENCE; Schema: public; Owner: - --- - -CREATE SEQUENCE public.forum_subscriptions_id_seq - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - --- --- Name: forum_subscriptions_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - --- - -ALTER SEQUENCE public.forum_subscriptions_id_seq OWNED BY public.forum_subscriptions.id; - - -- -- Name: forum_topic_visits; Type: TABLE; Schema: public; Owner: - -- @@ -4040,13 +4008,6 @@ ALTER TABLE ONLY public.forum_post_votes ALTER COLUMN id SET DEFAULT nextval('pu ALTER TABLE ONLY public.forum_posts ALTER COLUMN id SET DEFAULT nextval('public.forum_posts_id_seq'::regclass); --- --- Name: forum_subscriptions id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.forum_subscriptions ALTER COLUMN id SET DEFAULT nextval('public.forum_subscriptions_id_seq'::regclass); - - -- -- Name: forum_topic_visits id; Type: DEFAULT; Schema: public; Owner: - -- @@ -4394,14 +4355,6 @@ ALTER TABLE ONLY public.forum_posts ADD CONSTRAINT forum_posts_pkey PRIMARY KEY (id); --- --- Name: forum_subscriptions forum_subscriptions_pkey; Type: CONSTRAINT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.forum_subscriptions - ADD CONSTRAINT forum_subscriptions_pkey PRIMARY KEY (id); - - -- -- Name: forum_topic_visits forum_topic_visits_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- @@ -6425,20 +6378,6 @@ CREATE INDEX index_forum_posts_on_topic_id ON public.forum_posts USING btree (to CREATE INDEX index_forum_posts_on_updated_at ON public.forum_posts USING btree (updated_at); --- --- Name: index_forum_subscriptions_on_forum_topic_id; Type: INDEX; Schema: public; Owner: - --- - -CREATE INDEX index_forum_subscriptions_on_forum_topic_id ON public.forum_subscriptions USING btree (forum_topic_id); - - --- --- Name: index_forum_subscriptions_on_user_id; Type: INDEX; Schema: public; Owner: - --- - -CREATE INDEX index_forum_subscriptions_on_user_id ON public.forum_subscriptions USING btree (user_id); - - -- -- Name: index_forum_topic_visits_on_forum_topic_id; Type: INDEX; Schema: public; Owner: - -- @@ -7426,6 +7365,7 @@ INSERT INTO "schema_migrations" (version) VALUES ('20200115010442'), ('20200117220602'), ('20200118015014'), -('20200119184442'); +('20200119184442'), +('20200119193110'); diff --git a/test/factories/forum_subscription.rb b/test/factories/forum_subscription.rb deleted file mode 100644 index 62fa7203b..000000000 --- a/test/factories/forum_subscription.rb +++ /dev/null @@ -1,3 +0,0 @@ -FactoryBot.define do - factory(:forum_subscription) -end diff --git a/test/mailers/previews/user_mailer_preview.rb b/test/mailers/previews/user_mailer_preview.rb index 326b665a5..ec87e1e02 100644 --- a/test/mailers/previews/user_mailer_preview.rb +++ b/test/mailers/previews/user_mailer_preview.rb @@ -3,12 +3,4 @@ class UserMailerPreview < ActionMailer::Preview dmail = User.admins.first.dmails.first UserMailer.dmail_notice(dmail) end - - def forum_notice - topic = ForumTopic.first - posts = topic.posts - user = topic.creator - - UserMailer.forum_notice(user, topic, posts) - end end