summaryrefslogtreecommitdiff
path: root/lib/booru/live_feed.rb
blob: 5e3dd91c71f67b3b28aa82746bef70bfd49717a8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# frozen_string_literal: true
module Booru
  class LiveFeed
    # Push a new upload to the live feed.
    def self.push_upload(post)
      self.push_mod_feed  "[Post] #{post.media_type.to_s.capitalize} ##{post.id} by #{post.author(true)} (#{post.tag_list})"
      # self.push_live_feed "[Post] #{post.media_type.to_s.capitalize} ##{post.id} by #{post.author(false)} (#{post.tag_list})"
    end

    def self.push_tag_change(post, culprit, tags_added, tags_removed)
      self.push_mod_feed "[Tags] ##{post.id} by #{culprit&.name || 'Anonymous'} ADDED: #{tags_added.map(&:name).join(',')}; REMOVED: #{tags_removed.map(&:name).join(',')}"
    end

    def self.push_source_change(post, culprit, old_source, new_source)
      self.push_mod_feed "[Source] #{post.id} by #{culprit&.name || 'Anonymous'} OLD: #{old_source} NEW: #{new_source}"
    end

    private

    def self.push_mod_feed(payload)
      $redis.publish('modfeed', payload)
    end

    def self.push_live_feed(payload)
      $redis.publish('livefeed', payload)
    end
  end
end