forked from asonix/mastodon
* Add conversations API * Add web UI for conversations * Add test for conversations API * Add tests for ConversationAccount * Improve web UI * Rename ConversationAccount to AccountConversation * Remove conversations on block and mute * Change last_status_id to be a denormalization of status_ids * Add optimistic locking
15 lines
539 B
Ruby
15 lines
539 B
Ruby
# frozen_string_literal: true
|
|
|
|
class PushConversationWorker
|
|
include Sidekiq::Worker
|
|
|
|
def perform(conversation_account_id)
|
|
conversation = AccountConversation.find(conversation_account_id)
|
|
message = InlineRenderer.render(conversation, conversation.account, :conversation)
|
|
timeline_id = "timeline:direct:#{conversation.account_id}"
|
|
|
|
Redis.current.publish(timeline_id, Oj.dump(event: :conversation, payload: message, queued_at: (Time.now.to_f * 1000.0).to_i))
|
|
rescue ActiveRecord::RecordNotFound
|
|
true
|
|
end
|
|
end
|