Il relay HLS→RTMPS resta sul worker/agent del nodo assegnato, così tre dirette contemporanee restano in onda sul sito e sul canale della società senza schermo nero. Co-authored-by: Cursor <cursoragent@cursor.com>
37 lines
774 B
Ruby
37 lines
774 B
Ruby
class YoutubeCredential < ApplicationRecord
|
|
belongs_to :club
|
|
|
|
attr_encrypted :access_token,
|
|
key: :encryption_key,
|
|
attribute: "access_token_encrypted",
|
|
mode: :single_iv_and_salt,
|
|
algorithm: "aes-256-cbc",
|
|
iv: :encryption_iv
|
|
attr_encrypted :refresh_token,
|
|
key: :encryption_key,
|
|
attribute: "refresh_token_encrypted",
|
|
mode: :single_iv_and_salt,
|
|
algorithm: "aes-256-cbc",
|
|
iv: :encryption_iv
|
|
|
|
def expired?
|
|
expires_at.present? && expires_at < Time.current
|
|
end
|
|
|
|
def usable?
|
|
refresh_token.present?
|
|
rescue ArgumentError, OpenSSL::Cipher::CipherError, NoMethodError
|
|
false
|
|
end
|
|
|
|
private
|
|
|
|
def encryption_key
|
|
Rails.application.secret_key_base[0, 32]
|
|
end
|
|
|
|
def encryption_iv
|
|
encryption_key[0, 16]
|
|
end
|
|
end
|