Module: Id3Taginator::Frames::UrlFrames

Includes:
Frameable
Included in:
Id3v2Tag
Defined in:
lib/id3taginator/frames/url_frames.rb

Instance Method Summary collapse

Methods included from Frameable

#find_frame, #find_frames, #set_frame_fields, #set_frame_fields_by_selector, #unsupported_frame

Instance Method Details

#commercial_information_urlString?

extracts the commercial information url (WCOM/WCM)

Returns:

  • (String, nil)

    returns the URL



11
12
13
# File 'lib/id3taginator/frames/url_frames.rb', line 11

def commercial_information_url
  find_frame(Url::CommercialUrlFrame.frame_id(@major_version, @options))&.url
end

#commercial_information_url=(url) ⇒ Object

sets the commercial information url (WCOM/WCM)

Parameters:

  • url (String)

    the url



18
19
20
# File 'lib/id3taginator/frames/url_frames.rb', line 18

def commercial_information_url=(url)
  set_frame_fields(Url::CommercialUrlFrame, [:@url], url)
end

extracts the copyright information url (WCOP/WCP)

Returns:

  • (String, nil)

    returns the URL



30
31
32
# File 'lib/id3taginator/frames/url_frames.rb', line 30

def copyright_information_url
  find_frame(Url::CopyrightUrlFrame.frame_id(@major_version, @options))&.url
end

sets the copyright information url (WCOP/WCP)

Parameters:

  • url (String)

    the url



37
38
39
# File 'lib/id3taginator/frames/url_frames.rb', line 37

def copyright_information_url=(url)
  set_frame_fields(Url::CopyrightUrlFrame, [:@url], url)
end

#official_artist_urlString?

extracts the official artist url (WOAR/WAR)

Returns:

  • (String, nil)

    returns the URL



68
69
70
# File 'lib/id3taginator/frames/url_frames.rb', line 68

def official_artist_url
  find_frame(Url::OfficialArtistWebpageFrame.frame_id(@major_version, @options))&.url
end

#official_artist_url=(url) ⇒ Object

sets the official artist url (WOAR/WAR)

Parameters:

  • url (String)

    the url



75
76
77
# File 'lib/id3taginator/frames/url_frames.rb', line 75

def official_artist_url=(url)
  set_frame_fields(Url::OfficialArtistWebpageFrame, [:@url], url)
end

#official_audio_file_urlString?

extracts the official audio file url (WOAF/WAF)

Returns:

  • (String, nil)

    returns the URL



49
50
51
# File 'lib/id3taginator/frames/url_frames.rb', line 49

def official_audio_file_url
  find_frame(Url::OfficialFileWebpageFrame.frame_id(@major_version, @options))&.url
end

#official_audio_file_url=(url) ⇒ Object

sets the official audio file url (WOAF/WAF)

Parameters:

  • url (String)

    the url



56
57
58
# File 'lib/id3taginator/frames/url_frames.rb', line 56

def official_audio_file_url=(url)
  set_frame_fields(Url::OfficialFileWebpageFrame, [:@url], url)
end

#official_publisher_webpageString?

extracts the official publisher url (WPUB/WPB)

Returns:

  • (String, nil)

    returns the URL



146
147
148
# File 'lib/id3taginator/frames/url_frames.rb', line 146

def official_publisher_webpage
  find_frame(Url::OfficialPublisherWebpageFrame.frame_id(@major_version, @options))&.url
end

#official_publisher_webpage=(url) ⇒ Object

sets the official publisher url (WPUB/WPB)

Parameters:

  • url (String)

    the url



153
154
155
# File 'lib/id3taginator/frames/url_frames.rb', line 153

def official_publisher_webpage=(url)
  set_frame_fields(Url::OfficialPublisherWebpageFrame, [:@url], url)
end

#official_radio_station_homepageString?

extracts the official radio station url (WORS)

Returns:

  • (String, nil)

    returns the URL



106
107
108
# File 'lib/id3taginator/frames/url_frames.rb', line 106

def official_radio_station_homepage
  find_frame(Url::OfficialAudioRadioStationHomepageFrame.frame_id(@major_version, @options))&.url
end

#official_radio_station_homepage=(url) ⇒ Object

sets the official radio station url (WORS)

Parameters:

  • url (String)

    the url



113
114
115
# File 'lib/id3taginator/frames/url_frames.rb', line 113

def official_radio_station_homepage=(url)
  set_frame_fields(Url::OfficialAudioRadioStationHomepageFrame, [:@url], url)
end

#official_source_urlString?

extracts the official source url (WOAS/WAS)

Returns:

  • (String, nil)

    returns the URL



87
88
89
# File 'lib/id3taginator/frames/url_frames.rb', line 87

def official_source_url
  find_frame(Url::OfficialSourceWebpageFrame.frame_id(@major_version, @options))&.url
end

#official_source_url=(url) ⇒ Object

sets the official source url (WOAS/WAS)

Parameters:

  • url (String)

    the url



94
95
96
# File 'lib/id3taginator/frames/url_frames.rb', line 94

def official_source_url=(url)
  set_frame_fields(Url::OfficialSourceWebpageFrame, [:@url], url)
end

#payment_urlString?

extracts the official radio station url (WPAY)

Returns:

  • (String, nil)

    returns the URL



127
128
129
# File 'lib/id3taginator/frames/url_frames.rb', line 127

def payment_url
  find_frame(Url::PaymentUrlFrame.frame_id(@major_version, @options))&.url
end

#payment_url=(url) ⇒ Object

sets the payment url (WPAY)

Parameters:

  • url (String)

    the url



134
135
136
# File 'lib/id3taginator/frames/url_frames.rb', line 134

def payment_url=(url)
  set_frame_fields(Url::PaymentUrlFrame, [:@url], url)
end

#remove_commercial_information_urlObject

removes the commercial information url frame



23
24
25
# File 'lib/id3taginator/frames/url_frames.rb', line 23

def remove_commercial_information_url
  @frames.delete_if { |f| f.frame_id == Url::CommercialUrlFrame.frame_id(@major_version, @options) }
end

removes the copyright information url frame



42
43
44
# File 'lib/id3taginator/frames/url_frames.rb', line 42

def remove_copyright_information_url
  @frames.delete_if { |f| f.frame_id == Url::CopyrightUrlFrame.frame_id(@major_version, @options) }
end

#remove_official_artist_urlObject

removes the official artist url frame



80
81
82
# File 'lib/id3taginator/frames/url_frames.rb', line 80

def remove_official_artist_url
  @frames.delete_if { |f| f.frame_id == Url::OfficialArtistWebpageFrame.frame_id(@major_version, @options) }
end

#remove_official_audio_file_urlObject

removes the official audio file url frame



61
62
63
# File 'lib/id3taginator/frames/url_frames.rb', line 61

def remove_official_audio_file_url
  @frames.delete_if { |f| f.frame_id == Url::OfficialFileWebpageFrame.frame_id(@major_version, @options) }
end

#remove_official_publisher_webpageObject

removes the official publisher webpage frame



158
159
160
# File 'lib/id3taginator/frames/url_frames.rb', line 158

def remove_official_publisher_webpage
  @frames.delete_if { |f| f.frame_id == Url::OfficialPublisherWebpageFrame.frame_id(@major_version, @options) }
end

#remove_official_radio_station_homepageObject

removes the official radio station homepage frame



118
119
120
121
122
# File 'lib/id3taginator/frames/url_frames.rb', line 118

def remove_official_radio_station_homepage
  @frames.delete_if do |f|
    f.frame_id == Url::OfficialAudioRadioStationHomepageFrame.frame_id(@major_version, @options)
  end
end

#remove_official_source_urlObject

removes the official source url frame



99
100
101
# File 'lib/id3taginator/frames/url_frames.rb', line 99

def remove_official_source_url
  @frames.delete_if { |f| f.frame_id == Url::OfficialSourceWebpageFrame.frame_id(@major_version, @options) }
end

#remove_payment_urlObject

removes the payment frame



139
140
141
# File 'lib/id3taginator/frames/url_frames.rb', line 139

def remove_payment_url
  @frames.delete_if { |f| f.frame_id == Url::PaymentUrlFrame.frame_id(@major_version, @options) }
end

removes a user custom url link for the specific description (WXXX/WXX)

Parameters:

  • description (String)

    the description



187
188
189
190
191
192
# File 'lib/id3taginator/frames/url_frames.rb', line 187

def remove_user_custom_url_link(description)
  @frames.delete_if do |f|
    f.frame_id == Url::UserUrlLinkFrame.frame_id(@major_version, @options) &&
      f.description == description
  end
end

#user_custom_url_link=(custom_url) ⇒ Object Also known as: add_user_custom_url_link

adds a user custom url link (WXXX/WXX) Multiple ones can be added, as long as they have different description

Parameters:



176
177
178
179
180
# File 'lib/id3taginator/frames/url_frames.rb', line 176

def user_custom_url_link=(custom_url)
  set_frame_fields_by_selector(Url::UserUrlLinkFrame, i[@description @url],
                               ->(f) { f.description == custom_url.description },
                               custom_url.description, custom_url.url)
end

extracts the user custom url links (WXXX/WXX)

Returns:



165
166
167
168
169
170
# File 'lib/id3taginator/frames/url_frames.rb', line 165

def user_custom_url_links
  frame = find_frames(Url::UserUrlLinkFrame.frame_id(@major_version, @options))
  return [] if frame.nil? || frame.empty?

  frame.map { |f| Url::Entities::UserInfo.new(f.description, f.url) }
end