Class: SL::YouTubeSearch
- Inherits:
-
Object
- Object
- SL::YouTubeSearch
- Defined in:
- lib/searchlink/searches/youtube.rb
Overview
YouTube Search/Linking
Constant Summary collapse
- YOUTUBE_RX =
%r{(?:youtu\.be/|youtube\.com/watch\?v=)?(?<id>[a-z0-9_\-]+)$}i.freeze
Class Method Summary collapse
- .embed_for_url(url) ⇒ Object
- .search(search_type, search_terms, link_text) ⇒ Object
- .settings ⇒ Object
Class Method Details
.embed_for_url(url) ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/searchlink/searches/youtube.rb', line 33 def (url) return unless url =~ YOUTUBE_RX id = Regexp.last_match("id") title = [ %(<iframe width="560" height="315" src="https://www.youtube.com/embed/#{id}"), %(title="YouTube video player" frameborder="0"), %(allow="accelerometer; autoplay; clipboard-write; encrypted-media;), %(gyroscope; picture-in-picture; web-share"), %(allowfullscreen></iframe>) ].join(" ") ["embed", title] end |
.search(search_type, search_terms, link_text) ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/searchlink/searches/youtube.rb', line 19 def search(search_type, search_terms, link_text) if SL::URL.url?(search_terms) && search_terms =~ YOUTUBE_RX url = search_terms elsif search_terms =~ /^[a-z0-9_\-]+$/i url = "https://youtube.com/watch?v=#{search_terms}" else url, title = SL.ddg("site:youtube.com #{search_terms}", link_text) end url, title = (url) if search_type =~ /e$/ [url, title] end |
.settings ⇒ Object
9 10 11 12 13 14 15 16 17 |
# File 'lib/searchlink/searches/youtube.rb', line 9 def settings { trigger: "yte?", searches: [ ["yt", "YouTube Search"], ["yte", "YouTube Embed"] ] } end |