Skip to content

Repository files navigation

LinkThumbnailer

Code ClimateBuild StatusGem VersionDependency Status

Ruby gem generating image thumbnails from a given URL. Rank them and give you back an object containing images and website informations. Works like Facebook link previewer.

Demo Application is here ! The source code of the Demo Application is hosted here!

OpenSource and Free API available here !

Features

  • Dead simple.
  • Support OpenGraph protocol.
  • Find and sort images that best represent what the page is about.
  • Find and rate description that best represent what the page is about.
  • Allow for custom class to sort the website descriptions yourself.
  • Support image urls blacklisting (advertisements).
  • Works with and without Rails.
  • Fully customizable.
  • Fully tested.

Installation

Add this line to your application's Gemfile:

gem'link_thumbnailer'

And then execute:

$ bundle

Or install it yourself as:

$ gem install link_thumbnailer

Run:

$ rails g link_thumbnailer:install

This will add link_thumbnailer.rb to config/initializers/.

Usage

Run irb and require the gem:

require'link_thumbnailer'

The gem handle regular website but also website that use the Opengraph protocol.

object=LinkThumbnailer.generate('http://stackoverflow.com')=>#<LinkThumbnailer::Models::Website:...>object.title=>"Stack Overflow"object.favicon=>"//cdn.sstatic.net/stackoverflow/img/favicon.ico?v=038622610830"object.description=>"Q&A for professional and enthusiast programmers"object.images.first.src.to_s=>"http://cdn.sstatic.net/stackoverflow/img/apple-touch-icon@2.png?v=fde65a5a78c6"

LinkThumbnailer generate method return an instance of LinkThumbnailer::Models::Website that respond to to_json and as_json as you would expect:

object.to_json=>"{\"url\":\"http://stackoverflow.com\",\"title\":\"Stack Overflow\",\"description\":\"Q&A for professional and enthusiast programmers\",\"images\":[{\"src\":\"http://cdn.sstatic.net/stackoverflow/img/apple-touch-icon@2.png?v=fde65a5a78c6\",\"size\":[316,316],\"type\":\"png\"}]}"

Configuration

LinkThumbnailer comes with default configuration values. You can change default value by overriding them in a rails initializer:

In config/initializers/link_thumbnailer.rb

LinkThumbnailer.configuredo |config|
# Numbers of redirects before raising an exception when trying to parse given url.## config.redirect_limit = 3# Set user agent## config.user_agent = 'link_thumbnailer'# Enable or disable SSL verification## config.verify_ssl = true# The amount of time in seconds to wait for a connection to be opened.# If the HTTP object cannot open a connection in this many seconds,# it raises a Net::OpenTimeout exception.## See http://www.ruby-doc.org/stdlib-2.1.1/libdoc/net/http/rdoc/Net/HTTP.html#open_timeout## config.http_open_timeout = 5# List of blacklisted urls you want to skip when searching for images.## config.blacklist_urls = [# %r{^http://ad\.doubleclick\.net/},# %r{^http://b\.scorecardresearch\.com/},# %r{^http://pixel\.quantserve\.com/},# %r{^http://s7\.addthis\.com/}# ]# List of attributes you want LinkThumbnailer to fetch on a website.## config.attributes = [:title, :images, :description, :videos, :favicon]# List of procedures used to rate the website description. Add you custom class# here. See wiki for more details on how to build your own graders.## config.graders = [# ->(description) { ::LinkThumbnailer::Graders::Length.new(description) },# ->(description) { ::LinkThumbnailer::Graders::HtmlAttribute.new(description, :class) },# ->(description) { ::LinkThumbnailer::Graders::HtmlAttribute.new(description, :id) },# ->(description) { ::LinkThumbnailer::Graders::Position.new(description, weight: 3) },# ->(description) { ::LinkThumbnailer::Graders::LinkDensity.new(description) }# ]# Minimum description length for a website.## config.description_min_length = 25# Regex of words considered positive to rate website description.## config.positive_regex = /article|body|content|entry|hentry|main|page|pagination|post|text|blog|story/i# Regex of words considered negative to rate website description.## config.negative_regex = /combx|comment|com-|contact|foot|footer|footnote|masthead|media|meta|outbrain|promo|related|scroll|shoutbox|sidebar|sponsor|shopping|tags|tool|widget|modal/i# Numbers of images to fetch. Fetching too many images will be slow.# Note that LinkThumbnailer will only sort fetched images between each other.# Meaning that they could be a "better" image on the page.## config.image_limit = 5# Whether you want LinkThumbnailer to return image size and type or not.# Setting this value to false will increase performance since for each images, LinkThumbnailer# does not have to fetch its size and type.## config.image_stats = true## Whether you want LinkThumbnailer to raise an exception if the Content-Type of the HTTP request# is not an html or xml.## config.raise_on_invalid_format = false## Sets number of concurrent http connections that can be opened to fetch images informations such as size and type.## config.max_concurrency = 20# Sets the default encoding.## config.encoding = 'utf-8'end

Or at runtime:

object=LinkThumbnailer.generate('http://stackoverflow.com',redirect_limit: 5,user_agent: 'foo')

Note that runtime options will override default global configuration.

See Configuration Options Explained for more details on each configuration options.

Exceptions

LinkThumbnailer defines a list of custom exceptions you may want to rescue in your code. All the following exceptions inherit from LinkThumbnailer::Exceptions:

  • RedirectLimit -- raised when redirection threshold defined in config is reached
  • BadUriFormat -- raised when url given is not a valid HTTP url
  • FormatNotSupported -- raised when the Content-Type of the HTTP request is not supported (not html)

You can rescue from any LinkThumbnailer exceptions using the following code:

beginLinkThumbnailer.generate('http://foo.com')rescueLinkThumbnailer::Exceptions=>e# do somethingend

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Run the specs (bundle exec rspec spec)
  4. Commit your changes (git commit -am 'Added some feature')
  5. Push to the branch (git push origin my-new-feature)
  6. Create new Pull Request

About

Ruby gem that generates thumbnail images from a given URL. Much like popular social website with link preview.

Resources

Stars

0 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
GitHub - benefitcloud/link_thumbnailer: Ruby gem that generates thumbnail images from a given URL. Much like popular social website with link preview. · GitHub
Skip to content

Repository files navigation

LinkThumbnailer

Code ClimateBuild StatusGem VersionDependency Status

Ruby gem generating image thumbnails from a given URL. Rank them and give you back an object containing images and website informations. Works like Facebook link previewer.

Demo Application is here ! The source code of the Demo Application is hosted here!

OpenSource and Free API available here !

Features

  • Dead simple.
  • Support OpenGraph protocol.
  • Find and sort images that best represent what the page is about.
  • Find and rate description that best represent what the page is about.
  • Allow for custom class to sort the website descriptions yourself.
  • Support image urls blacklisting (advertisements).
  • Works with and without Rails.
  • Fully customizable.
  • Fully tested.

Installation

Add this line to your application's Gemfile:

gem'link_thumbnailer'

And then execute:

$ bundle

Or install it yourself as:

$ gem install link_thumbnailer

Run:

$ rails g link_thumbnailer:install

This will add link_thumbnailer.rb to config/initializers/.

Usage

Run irb and require the gem:

require'link_thumbnailer'

The gem handle regular website but also website that use the Opengraph protocol.

object=LinkThumbnailer.generate('http://stackoverflow.com')=>#<LinkThumbnailer::Models::Website:...>object.title=>"Stack Overflow"object.favicon=>"//cdn.sstatic.net/stackoverflow/img/favicon.ico?v=038622610830"object.description=>"Q&A for professional and enthusiast programmers"object.images.first.src.to_s=>"http://cdn.sstatic.net/stackoverflow/img/apple-touch-icon@2.png?v=fde65a5a78c6"

LinkThumbnailer generate method return an instance of LinkThumbnailer::Models::Website that respond to to_json and as_json as you would expect:

object.to_json=>"{\"url\":\"http://stackoverflow.com\",\"title\":\"Stack Overflow\",\"description\":\"Q&A for professional and enthusiast programmers\",\"images\":[{\"src\":\"http://cdn.sstatic.net/stackoverflow/img/apple-touch-icon@2.png?v=fde65a5a78c6\",\"size\":[316,316],\"type\":\"png\"}]}"

Configuration

LinkThumbnailer comes with default configuration values. You can change default value by overriding them in a rails initializer:

In config/initializers/link_thumbnailer.rb

LinkThumbnailer.configuredo |config|
# Numbers of redirects before raising an exception when trying to parse given url.## config.redirect_limit = 3# Set user agent## config.user_agent = 'link_thumbnailer'# Enable or disable SSL verification## config.verify_ssl = true# The amount of time in seconds to wait for a connection to be opened.# If the HTTP object cannot open a connection in this many seconds,# it raises a Net::OpenTimeout exception.## See http://www.ruby-doc.org/stdlib-2.1.1/libdoc/net/http/rdoc/Net/HTTP.html#open_timeout## config.http_open_timeout = 5# List of blacklisted urls you want to skip when searching for images.## config.blacklist_urls = [# %r{^http://ad\.doubleclick\.net/},# %r{^http://b\.scorecardresearch\.com/},# %r{^http://pixel\.quantserve\.com/},# %r{^http://s7\.addthis\.com/}# ]# List of attributes you want LinkThumbnailer to fetch on a website.## config.attributes = [:title, :images, :description, :videos, :favicon]# List of procedures used to rate the website description. Add you custom class# here. See wiki for more details on how to build your own graders.## config.graders = [# ->(description) { ::LinkThumbnailer::Graders::Length.new(description) },# ->(description) { ::LinkThumbnailer::Graders::HtmlAttribute.new(description, :class) },# ->(description) { ::LinkThumbnailer::Graders::HtmlAttribute.new(description, :id) },# ->(description) { ::LinkThumbnailer::Graders::Position.new(description, weight: 3) },# ->(description) { ::LinkThumbnailer::Graders::LinkDensity.new(description) }# ]# Minimum description length for a website.## config.description_min_length = 25# Regex of words considered positive to rate website description.## config.positive_regex = /article|body|content|entry|hentry|main|page|pagination|post|text|blog|story/i# Regex of words considered negative to rate website description.## config.negative_regex = /combx|comment|com-|contact|foot|footer|footnote|masthead|media|meta|outbrain|promo|related|scroll|shoutbox|sidebar|sponsor|shopping|tags|tool|widget|modal/i# Numbers of images to fetch. Fetching too many images will be slow.# Note that LinkThumbnailer will only sort fetched images between each other.# Meaning that they could be a "better" image on the page.## config.image_limit = 5# Whether you want LinkThumbnailer to return image size and type or not.# Setting this value to false will increase performance since for each images, LinkThumbnailer# does not have to fetch its size and type.## config.image_stats = true## Whether you want LinkThumbnailer to raise an exception if the Content-Type of the HTTP request# is not an html or xml.## config.raise_on_invalid_format = false## Sets number of concurrent http connections that can be opened to fetch images informations such as size and type.## config.max_concurrency = 20# Sets the default encoding.## config.encoding = 'utf-8'end

Or at runtime:

object=LinkThumbnailer.generate('http://stackoverflow.com',redirect_limit: 5,user_agent: 'foo')

Note that runtime options will override default global configuration.

See Configuration Options Explained for more details on each configuration options.

Exceptions

LinkThumbnailer defines a list of custom exceptions you may want to rescue in your code. All the following exceptions inherit from LinkThumbnailer::Exceptions:

  • RedirectLimit -- raised when redirection threshold defined in config is reached
  • BadUriFormat -- raised when url given is not a valid HTTP url
  • FormatNotSupported -- raised when the Content-Type of the HTTP request is not supported (not html)

You can rescue from any LinkThumbnailer exceptions using the following code:

beginLinkThumbnailer.generate('http://foo.com')rescueLinkThumbnailer::Exceptions=>e# do somethingend

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Run the specs (bundle exec rspec spec)
  4. Commit your changes (git commit -am 'Added some feature')
  5. Push to the branch (git push origin my-new-feature)
  6. Create new Pull Request

About

Ruby gem that generates thumbnail images from a given URL. Much like popular social website with link preview.

Resources

Stars

0 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - benefitcloud/link_thumbnailer: Ruby gem that generates thumbnail images from a given URL. Much like popular social website with link preview. · GitHub
Skip to content

Repository files navigation

LinkThumbnailer

Code ClimateBuild StatusGem VersionDependency Status

Ruby gem generating image thumbnails from a given URL. Rank them and give you back an object containing images and website informations. Works like Facebook link previewer.

Demo Application is here ! The source code of the Demo Application is hosted here!

OpenSource and Free API available here !

Features

  • Dead simple.
  • Support OpenGraph protocol.
  • Find and sort images that best represent what the page is about.
  • Find and rate description that best represent what the page is about.
  • Allow for custom class to sort the website descriptions yourself.
  • Support image urls blacklisting (advertisements).
  • Works with and without Rails.
  • Fully customizable.
  • Fully tested.

Installation

Add this line to your application's Gemfile:

gem'link_thumbnailer'

And then execute:

$ bundle

Or install it yourself as:

$ gem install link_thumbnailer

Run:

$ rails g link_thumbnailer:install

This will add link_thumbnailer.rb to config/initializers/.

Usage

Run irb and require the gem:

require'link_thumbnailer'

The gem handle regular website but also website that use the Opengraph protocol.

object=LinkThumbnailer.generate('http://stackoverflow.com')=>#<LinkThumbnailer::Models::Website:...>object.title=>"Stack Overflow"object.favicon=>"//cdn.sstatic.net/stackoverflow/img/favicon.ico?v=038622610830"object.description=>"Q&A for professional and enthusiast programmers"object.images.first.src.to_s=>"http://cdn.sstatic.net/stackoverflow/img/apple-touch-icon@2.png?v=fde65a5a78c6"

LinkThumbnailer generate method return an instance of LinkThumbnailer::Models::Website that respond to to_json and as_json as you would expect:

object.to_json=>"{\"url\":\"http://stackoverflow.com\",\"title\":\"Stack Overflow\",\"description\":\"Q&A for professional and enthusiast programmers\",\"images\":[{\"src\":\"http://cdn.sstatic.net/stackoverflow/img/apple-touch-icon@2.png?v=fde65a5a78c6\",\"size\":[316,316],\"type\":\"png\"}]}"

Configuration

LinkThumbnailer comes with default configuration values. You can change default value by overriding them in a rails initializer:

In config/initializers/link_thumbnailer.rb

LinkThumbnailer.configuredo |config|
# Numbers of redirects before raising an exception when trying to parse given url.## config.redirect_limit = 3# Set user agent## config.user_agent = 'link_thumbnailer'# Enable or disable SSL verification## config.verify_ssl = true# The amount of time in seconds to wait for a connection to be opened.# If the HTTP object cannot open a connection in this many seconds,# it raises a Net::OpenTimeout exception.## See http://www.ruby-doc.org/stdlib-2.1.1/libdoc/net/http/rdoc/Net/HTTP.html#open_timeout## config.http_open_timeout = 5# List of blacklisted urls you want to skip when searching for images.## config.blacklist_urls = [# %r{^http://ad\.doubleclick\.net/},# %r{^http://b\.scorecardresearch\.com/},# %r{^http://pixel\.quantserve\.com/},# %r{^http://s7\.addthis\.com/}# ]# List of attributes you want LinkThumbnailer to fetch on a website.## config.attributes = [:title, :images, :description, :videos, :favicon]# List of procedures used to rate the website description. Add you custom class# here. See wiki for more details on how to build your own graders.## config.graders = [# ->(description) { ::LinkThumbnailer::Graders::Length.new(description) },# ->(description) { ::LinkThumbnailer::Graders::HtmlAttribute.new(description, :class) },# ->(description) { ::LinkThumbnailer::Graders::HtmlAttribute.new(description, :id) },# ->(description) { ::LinkThumbnailer::Graders::Position.new(description, weight: 3) },# ->(description) { ::LinkThumbnailer::Graders::LinkDensity.new(description) }# ]# Minimum description length for a website.## config.description_min_length = 25# Regex of words considered positive to rate website description.## config.positive_regex = /article|body|content|entry|hentry|main|page|pagination|post|text|blog|story/i# Regex of words considered negative to rate website description.## config.negative_regex = /combx|comment|com-|contact|foot|footer|footnote|masthead|media|meta|outbrain|promo|related|scroll|shoutbox|sidebar|sponsor|shopping|tags|tool|widget|modal/i# Numbers of images to fetch. Fetching too many images will be slow.# Note that LinkThumbnailer will only sort fetched images between each other.# Meaning that they could be a "better" image on the page.## config.image_limit = 5# Whether you want LinkThumbnailer to return image size and type or not.# Setting this value to false will increase performance since for each images, LinkThumbnailer# does not have to fetch its size and type.## config.image_stats = true## Whether you want LinkThumbnailer to raise an exception if the Content-Type of the HTTP request# is not an html or xml.## config.raise_on_invalid_format = false## Sets number of concurrent http connections that can be opened to fetch images informations such as size and type.## config.max_concurrency = 20# Sets the default encoding.## config.encoding = 'utf-8'end

Or at runtime:

object=LinkThumbnailer.generate('http://stackoverflow.com',redirect_limit: 5,user_agent: 'foo')

Note that runtime options will override default global configuration.

See Configuration Options Explained for more details on each configuration options.

Exceptions

LinkThumbnailer defines a list of custom exceptions you may want to rescue in your code. All the following exceptions inherit from LinkThumbnailer::Exceptions:

  • RedirectLimit -- raised when redirection threshold defined in config is reached
  • BadUriFormat -- raised when url given is not a valid HTTP url
  • FormatNotSupported -- raised when the Content-Type of the HTTP request is not supported (not html)

You can rescue from any LinkThumbnailer exceptions using the following code:

beginLinkThumbnailer.generate('http://foo.com')rescueLinkThumbnailer::Exceptions=>e# do somethingend

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Run the specs (bundle exec rspec spec)
  4. Commit your changes (git commit -am 'Added some feature')
  5. Push to the branch (git push origin my-new-feature)
  6. Create new Pull Request

About

Ruby gem that generates thumbnail images from a given URL. Much like popular social website with link preview.

Resources

Stars

0 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - benefitcloud/link_thumbnailer: Ruby gem that generates thumbnail images from a given URL. Much like popular social website with link preview. · GitHub
Skip to content

Repository files navigation

LinkThumbnailer

Code ClimateBuild StatusGem VersionDependency Status

Ruby gem generating image thumbnails from a given URL. Rank them and give you back an object containing images and website informations. Works like Facebook link previewer.

Demo Application is here ! The source code of the Demo Application is hosted here!

OpenSource and Free API available here !

Features

  • Dead simple.
  • Support OpenGraph protocol.
  • Find and sort images that best represent what the page is about.
  • Find and rate description that best represent what the page is about.
  • Allow for custom class to sort the website descriptions yourself.
  • Support image urls blacklisting (advertisements).
  • Works with and without Rails.
  • Fully customizable.
  • Fully tested.

Installation

Add this line to your application's Gemfile:

gem'link_thumbnailer'

And then execute:

$ bundle

Or install it yourself as:

$ gem install link_thumbnailer

Run:

$ rails g link_thumbnailer:install

This will add link_thumbnailer.rb to config/initializers/.

Usage

Run irb and require the gem:

require'link_thumbnailer'

The gem handle regular website but also website that use the Opengraph protocol.

object=LinkThumbnailer.generate('http://stackoverflow.com')=>#<LinkThumbnailer::Models::Website:...>object.title=>"Stack Overflow"object.favicon=>"//cdn.sstatic.net/stackoverflow/img/favicon.ico?v=038622610830"object.description=>"Q&A for professional and enthusiast programmers"object.images.first.src.to_s=>"http://cdn.sstatic.net/stackoverflow/img/apple-touch-icon@2.png?v=fde65a5a78c6"

LinkThumbnailer generate method return an instance of LinkThumbnailer::Models::Website that respond to to_json and as_json as you would expect:

object.to_json=>"{\"url\":\"http://stackoverflow.com\",\"title\":\"Stack Overflow\",\"description\":\"Q&A for professional and enthusiast programmers\",\"images\":[{\"src\":\"http://cdn.sstatic.net/stackoverflow/img/apple-touch-icon@2.png?v=fde65a5a78c6\",\"size\":[316,316],\"type\":\"png\"}]}"

Configuration

LinkThumbnailer comes with default configuration values. You can change default value by overriding them in a rails initializer:

In config/initializers/link_thumbnailer.rb

LinkThumbnailer.configuredo |config|
# Numbers of redirects before raising an exception when trying to parse given url.## config.redirect_limit = 3# Set user agent## config.user_agent = 'link_thumbnailer'# Enable or disable SSL verification## config.verify_ssl = true# The amount of time in seconds to wait for a connection to be opened.# If the HTTP object cannot open a connection in this many seconds,# it raises a Net::OpenTimeout exception.## See http://www.ruby-doc.org/stdlib-2.1.1/libdoc/net/http/rdoc/Net/HTTP.html#open_timeout## config.http_open_timeout = 5# List of blacklisted urls you want to skip when searching for images.## config.blacklist_urls = [# %r{^http://ad\.doubleclick\.net/},# %r{^http://b\.scorecardresearch\.com/},# %r{^http://pixel\.quantserve\.com/},# %r{^http://s7\.addthis\.com/}# ]# List of attributes you want LinkThumbnailer to fetch on a website.## config.attributes = [:title, :images, :description, :videos, :favicon]# List of procedures used to rate the website description. Add you custom class# here. See wiki for more details on how to build your own graders.## config.graders = [# ->(description) { ::LinkThumbnailer::Graders::Length.new(description) },# ->(description) { ::LinkThumbnailer::Graders::HtmlAttribute.new(description, :class) },# ->(description) { ::LinkThumbnailer::Graders::HtmlAttribute.new(description, :id) },# ->(description) { ::LinkThumbnailer::Graders::Position.new(description, weight: 3) },# ->(description) { ::LinkThumbnailer::Graders::LinkDensity.new(description) }# ]# Minimum description length for a website.## config.description_min_length = 25# Regex of words considered positive to rate website description.## config.positive_regex = /article|body|content|entry|hentry|main|page|pagination|post|text|blog|story/i# Regex of words considered negative to rate website description.## config.negative_regex = /combx|comment|com-|contact|foot|footer|footnote|masthead|media|meta|outbrain|promo|related|scroll|shoutbox|sidebar|sponsor|shopping|tags|tool|widget|modal/i# Numbers of images to fetch. Fetching too many images will be slow.# Note that LinkThumbnailer will only sort fetched images between each other.# Meaning that they could be a "better" image on the page.## config.image_limit = 5# Whether you want LinkThumbnailer to return image size and type or not.# Setting this value to false will increase performance since for each images, LinkThumbnailer# does not have to fetch its size and type.## config.image_stats = true## Whether you want LinkThumbnailer to raise an exception if the Content-Type of the HTTP request# is not an html or xml.## config.raise_on_invalid_format = false## Sets number of concurrent http connections that can be opened to fetch images informations such as size and type.## config.max_concurrency = 20# Sets the default encoding.## config.encoding = 'utf-8'end

Or at runtime:

object=LinkThumbnailer.generate('http://stackoverflow.com',redirect_limit: 5,user_agent: 'foo')

Note that runtime options will override default global configuration.

See Configuration Options Explained for more details on each configuration options.

Exceptions

LinkThumbnailer defines a list of custom exceptions you may want to rescue in your code. All the following exceptions inherit from LinkThumbnailer::Exceptions:

  • RedirectLimit -- raised when redirection threshold defined in config is reached
  • BadUriFormat -- raised when url given is not a valid HTTP url
  • FormatNotSupported -- raised when the Content-Type of the HTTP request is not supported (not html)

You can rescue from any LinkThumbnailer exceptions using the following code:

beginLinkThumbnailer.generate('http://foo.com')rescueLinkThumbnailer::Exceptions=>e# do somethingend

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Run the specs (bundle exec rspec spec)
  4. Commit your changes (git commit -am 'Added some feature')
  5. Push to the branch (git push origin my-new-feature)
  6. Create new Pull Request

About

Ruby gem that generates thumbnail images from a given URL. Much like popular social website with link preview.

Resources

Stars

0 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' GitHub - benefitcloud/link_thumbnailer: Ruby gem that generates thumbnail images from a given URL. Much like popular social website with link preview. · GitHub
Skip to content

Repository files navigation

LinkThumbnailer

Code ClimateBuild StatusGem VersionDependency Status

Ruby gem generating image thumbnails from a given URL. Rank them and give you back an object containing images and website informations. Works like Facebook link previewer.

Demo Application is here ! The source code of the Demo Application is hosted here!

OpenSource and Free API available here !

Features

  • Dead simple.
  • Support OpenGraph protocol.
  • Find and sort images that best represent what the page is about.
  • Find and rate description that best represent what the page is about.
  • Allow for custom class to sort the website descriptions yourself.
  • Support image urls blacklisting (advertisements).
  • Works with and without Rails.
  • Fully customizable.
  • Fully tested.

Installation

Add this line to your application's Gemfile:

gem'link_thumbnailer'

And then execute:

$ bundle

Or install it yourself as:

$ gem install link_thumbnailer

Run:

$ rails g link_thumbnailer:install

This will add link_thumbnailer.rb to config/initializers/.

Usage

Run irb and require the gem:

require'link_thumbnailer'

The gem handle regular website but also website that use the Opengraph protocol.

object=LinkThumbnailer.generate('http://stackoverflow.com')=>#<LinkThumbnailer::Models::Website:...>object.title=>"Stack Overflow"object.favicon=>"//cdn.sstatic.net/stackoverflow/img/favicon.ico?v=038622610830"object.description=>"Q&A for professional and enthusiast programmers"object.images.first.src.to_s=>"http://cdn.sstatic.net/stackoverflow/img/apple-touch-icon@2.png?v=fde65a5a78c6"

LinkThumbnailer generate method return an instance of LinkThumbnailer::Models::Website that respond to to_json and as_json as you would expect:

object.to_json=>"{\"url\":\"http://stackoverflow.com\",\"title\":\"Stack Overflow\",\"description\":\"Q&A for professional and enthusiast programmers\",\"images\":[{\"src\":\"http://cdn.sstatic.net/stackoverflow/img/apple-touch-icon@2.png?v=fde65a5a78c6\",\"size\":[316,316],\"type\":\"png\"}]}"

Configuration

LinkThumbnailer comes with default configuration values. You can change default value by overriding them in a rails initializer:

In config/initializers/link_thumbnailer.rb

LinkThumbnailer.configuredo |config|
# Numbers of redirects before raising an exception when trying to parse given url.## config.redirect_limit = 3# Set user agent## config.user_agent = 'link_thumbnailer'# Enable or disable SSL verification## config.verify_ssl = true# The amount of time in seconds to wait for a connection to be opened.# If the HTTP object cannot open a connection in this many seconds,# it raises a Net::OpenTimeout exception.## See http://www.ruby-doc.org/stdlib-2.1.1/libdoc/net/http/rdoc/Net/HTTP.html#open_timeout## config.http_open_timeout = 5# List of blacklisted urls you want to skip when searching for images.## config.blacklist_urls = [# %r{^http://ad\.doubleclick\.net/},# %r{^http://b\.scorecardresearch\.com/},# %r{^http://pixel\.quantserve\.com/},# %r{^http://s7\.addthis\.com/}# ]# List of attributes you want LinkThumbnailer to fetch on a website.## config.attributes = [:title, :images, :description, :videos, :favicon]# List of procedures used to rate the website description. Add you custom class# here. See wiki for more details on how to build your own graders.## config.graders = [# ->(description) { ::LinkThumbnailer::Graders::Length.new(description) },# ->(description) { ::LinkThumbnailer::Graders::HtmlAttribute.new(description, :class) },# ->(description) { ::LinkThumbnailer::Graders::HtmlAttribute.new(description, :id) },# ->(description) { ::LinkThumbnailer::Graders::Position.new(description, weight: 3) },# ->(description) { ::LinkThumbnailer::Graders::LinkDensity.new(description) }# ]# Minimum description length for a website.## config.description_min_length = 25# Regex of words considered positive to rate website description.## config.positive_regex = /article|body|content|entry|hentry|main|page|pagination|post|text|blog|story/i# Regex of words considered negative to rate website description.## config.negative_regex = /combx|comment|com-|contact|foot|footer|footnote|masthead|media|meta|outbrain|promo|related|scroll|shoutbox|sidebar|sponsor|shopping|tags|tool|widget|modal/i# Numbers of images to fetch. Fetching too many images will be slow.# Note that LinkThumbnailer will only sort fetched images between each other.# Meaning that they could be a "better" image on the page.## config.image_limit = 5# Whether you want LinkThumbnailer to return image size and type or not.# Setting this value to false will increase performance since for each images, LinkThumbnailer# does not have to fetch its size and type.## config.image_stats = true## Whether you want LinkThumbnailer to raise an exception if the Content-Type of the HTTP request# is not an html or xml.## config.raise_on_invalid_format = false## Sets number of concurrent http connections that can be opened to fetch images informations such as size and type.## config.max_concurrency = 20# Sets the default encoding.## config.encoding = 'utf-8'end

Or at runtime:

object=LinkThumbnailer.generate('http://stackoverflow.com',redirect_limit: 5,user_agent: 'foo')

Note that runtime options will override default global configuration.

See Configuration Options Explained for more details on each configuration options.

Exceptions

LinkThumbnailer defines a list of custom exceptions you may want to rescue in your code. All the following exceptions inherit from LinkThumbnailer::Exceptions:

  • RedirectLimit -- raised when redirection threshold defined in config is reached
  • BadUriFormat -- raised when url given is not a valid HTTP url
  • FormatNotSupported -- raised when the Content-Type of the HTTP request is not supported (not html)

You can rescue from any LinkThumbnailer exceptions using the following code:

beginLinkThumbnailer.generate('http://foo.com')rescueLinkThumbnailer::Exceptions=>e# do somethingend

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Run the specs (bundle exec rspec spec)
  4. Commit your changes (git commit -am 'Added some feature')
  5. Push to the branch (git push origin my-new-feature)
  6. Create new Pull Request

About

Ruby gem that generates thumbnail images from a given URL. Much like popular social website with link preview.

Resources

Stars

0 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - benefitcloud/link_thumbnailer: Ruby gem that generates thumbnail images from a given URL. Much like popular social website with link preview. · GitHub
Skip to content

Repository files navigation

LinkThumbnailer

Code ClimateBuild StatusGem VersionDependency Status

Ruby gem generating image thumbnails from a given URL. Rank them and give you back an object containing images and website informations. Works like Facebook link previewer.

Demo Application is here ! The source code of the Demo Application is hosted here!

OpenSource and Free API available here !

Features

  • Dead simple.
  • Support OpenGraph protocol.
  • Find and sort images that best represent what the page is about.
  • Find and rate description that best represent what the page is about.
  • Allow for custom class to sort the website descriptions yourself.
  • Support image urls blacklisting (advertisements).
  • Works with and without Rails.
  • Fully customizable.
  • Fully tested.

Installation

Add this line to your application's Gemfile:

gem'link_thumbnailer'

And then execute:

$ bundle

Or install it yourself as:

$ gem install link_thumbnailer

Run:

$ rails g link_thumbnailer:install

This will add link_thumbnailer.rb to config/initializers/.

Usage

Run irb and require the gem:

require'link_thumbnailer'

The gem handle regular website but also website that use the Opengraph protocol.

object=LinkThumbnailer.generate('http://stackoverflow.com')=>#<LinkThumbnailer::Models::Website:...>object.title=>"Stack Overflow"object.favicon=>"//cdn.sstatic.net/stackoverflow/img/favicon.ico?v=038622610830"object.description=>"Q&A for professional and enthusiast programmers"object.images.first.src.to_s=>"http://cdn.sstatic.net/stackoverflow/img/apple-touch-icon@2.png?v=fde65a5a78c6"

LinkThumbnailer generate method return an instance of LinkThumbnailer::Models::Website that respond to to_json and as_json as you would expect:

object.to_json=>"{\"url\":\"http://stackoverflow.com\",\"title\":\"Stack Overflow\",\"description\":\"Q&A for professional and enthusiast programmers\",\"images\":[{\"src\":\"http://cdn.sstatic.net/stackoverflow/img/apple-touch-icon@2.png?v=fde65a5a78c6\",\"size\":[316,316],\"type\":\"png\"}]}"

Configuration

LinkThumbnailer comes with default configuration values. You can change default value by overriding them in a rails initializer:

In config/initializers/link_thumbnailer.rb

LinkThumbnailer.configuredo |config|
# Numbers of redirects before raising an exception when trying to parse given url.## config.redirect_limit = 3# Set user agent## config.user_agent = 'link_thumbnailer'# Enable or disable SSL verification## config.verify_ssl = true# The amount of time in seconds to wait for a connection to be opened.# If the HTTP object cannot open a connection in this many seconds,# it raises a Net::OpenTimeout exception.## See http://www.ruby-doc.org/stdlib-2.1.1/libdoc/net/http/rdoc/Net/HTTP.html#open_timeout## config.http_open_timeout = 5# List of blacklisted urls you want to skip when searching for images.## config.blacklist_urls = [# %r{^http://ad\.doubleclick\.net/},# %r{^http://b\.scorecardresearch\.com/},# %r{^http://pixel\.quantserve\.com/},# %r{^http://s7\.addthis\.com/}# ]# List of attributes you want LinkThumbnailer to fetch on a website.## config.attributes = [:title, :images, :description, :videos, :favicon]# List of procedures used to rate the website description. Add you custom class# here. See wiki for more details on how to build your own graders.## config.graders = [# ->(description) { ::LinkThumbnailer::Graders::Length.new(description) },# ->(description) { ::LinkThumbnailer::Graders::HtmlAttribute.new(description, :class) },# ->(description) { ::LinkThumbnailer::Graders::HtmlAttribute.new(description, :id) },# ->(description) { ::LinkThumbnailer::Graders::Position.new(description, weight: 3) },# ->(description) { ::LinkThumbnailer::Graders::LinkDensity.new(description) }# ]# Minimum description length for a website.## config.description_min_length = 25# Regex of words considered positive to rate website description.## config.positive_regex = /article|body|content|entry|hentry|main|page|pagination|post|text|blog|story/i# Regex of words considered negative to rate website description.## config.negative_regex = /combx|comment|com-|contact|foot|footer|footnote|masthead|media|meta|outbrain|promo|related|scroll|shoutbox|sidebar|sponsor|shopping|tags|tool|widget|modal/i# Numbers of images to fetch. Fetching too many images will be slow.# Note that LinkThumbnailer will only sort fetched images between each other.# Meaning that they could be a "better" image on the page.## config.image_limit = 5# Whether you want LinkThumbnailer to return image size and type or not.# Setting this value to false will increase performance since for each images, LinkThumbnailer# does not have to fetch its size and type.## config.image_stats = true## Whether you want LinkThumbnailer to raise an exception if the Content-Type of the HTTP request# is not an html or xml.## config.raise_on_invalid_format = false## Sets number of concurrent http connections that can be opened to fetch images informations such as size and type.## config.max_concurrency = 20# Sets the default encoding.## config.encoding = 'utf-8'end

Or at runtime:

object=LinkThumbnailer.generate('http://stackoverflow.com',redirect_limit: 5,user_agent: 'foo')

Note that runtime options will override default global configuration.

See Configuration Options Explained for more details on each configuration options.

Exceptions

LinkThumbnailer defines a list of custom exceptions you may want to rescue in your code. All the following exceptions inherit from LinkThumbnailer::Exceptions:

  • RedirectLimit -- raised when redirection threshold defined in config is reached
  • BadUriFormat -- raised when url given is not a valid HTTP url
  • FormatNotSupported -- raised when the Content-Type of the HTTP request is not supported (not html)

You can rescue from any LinkThumbnailer exceptions using the following code:

beginLinkThumbnailer.generate('http://foo.com')rescueLinkThumbnailer::Exceptions=>e# do somethingend

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Run the specs (bundle exec rspec spec)
  4. Commit your changes (git commit -am 'Added some feature')
  5. Push to the branch (git push origin my-new-feature)
  6. Create new Pull Request

About

Ruby gem that generates thumbnail images from a given URL. Much like popular social website with link preview.

Resources

Stars

0 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); })(); GitHub - benefitcloud/link_thumbnailer: Ruby gem that generates thumbnail images from a given URL. Much like popular social website with link preview. · GitHub
Skip to content

Repository files navigation

LinkThumbnailer

Code ClimateBuild StatusGem VersionDependency Status

Ruby gem generating image thumbnails from a given URL. Rank them and give you back an object containing images and website informations. Works like Facebook link previewer.

Demo Application is here ! The source code of the Demo Application is hosted here!

OpenSource and Free API available here !

Features

  • Dead simple.
  • Support OpenGraph protocol.
  • Find and sort images that best represent what the page is about.
  • Find and rate description that best represent what the page is about.
  • Allow for custom class to sort the website descriptions yourself.
  • Support image urls blacklisting (advertisements).
  • Works with and without Rails.
  • Fully customizable.
  • Fully tested.

Installation

Add this line to your application's Gemfile:

gem'link_thumbnailer'

And then execute:

$ bundle

Or install it yourself as:

$ gem install link_thumbnailer

Run:

$ rails g link_thumbnailer:install

This will add link_thumbnailer.rb to config/initializers/.

Usage

Run irb and require the gem:

require'link_thumbnailer'

The gem handle regular website but also website that use the Opengraph protocol.

object=LinkThumbnailer.generate('http://stackoverflow.com')=>#<LinkThumbnailer::Models::Website:...>object.title=>"Stack Overflow"object.favicon=>"//cdn.sstatic.net/stackoverflow/img/favicon.ico?v=038622610830"object.description=>"Q&A for professional and enthusiast programmers"object.images.first.src.to_s=>"http://cdn.sstatic.net/stackoverflow/img/apple-touch-icon@2.png?v=fde65a5a78c6"

LinkThumbnailer generate method return an instance of LinkThumbnailer::Models::Website that respond to to_json and as_json as you would expect:

object.to_json=>"{\"url\":\"http://stackoverflow.com\",\"title\":\"Stack Overflow\",\"description\":\"Q&A for professional and enthusiast programmers\",\"images\":[{\"src\":\"http://cdn.sstatic.net/stackoverflow/img/apple-touch-icon@2.png?v=fde65a5a78c6\",\"size\":[316,316],\"type\":\"png\"}]}"

Configuration

LinkThumbnailer comes with default configuration values. You can change default value by overriding them in a rails initializer:

In config/initializers/link_thumbnailer.rb

LinkThumbnailer.configuredo |config|
# Numbers of redirects before raising an exception when trying to parse given url.## config.redirect_limit = 3# Set user agent## config.user_agent = 'link_thumbnailer'# Enable or disable SSL verification## config.verify_ssl = true# The amount of time in seconds to wait for a connection to be opened.# If the HTTP object cannot open a connection in this many seconds,# it raises a Net::OpenTimeout exception.## See http://www.ruby-doc.org/stdlib-2.1.1/libdoc/net/http/rdoc/Net/HTTP.html#open_timeout## config.http_open_timeout = 5# List of blacklisted urls you want to skip when searching for images.## config.blacklist_urls = [# %r{^http://ad\.doubleclick\.net/},# %r{^http://b\.scorecardresearch\.com/},# %r{^http://pixel\.quantserve\.com/},# %r{^http://s7\.addthis\.com/}# ]# List of attributes you want LinkThumbnailer to fetch on a website.## config.attributes = [:title, :images, :description, :videos, :favicon]# List of procedures used to rate the website description. Add you custom class# here. See wiki for more details on how to build your own graders.## config.graders = [# ->(description) { ::LinkThumbnailer::Graders::Length.new(description) },# ->(description) { ::LinkThumbnailer::Graders::HtmlAttribute.new(description, :class) },# ->(description) { ::LinkThumbnailer::Graders::HtmlAttribute.new(description, :id) },# ->(description) { ::LinkThumbnailer::Graders::Position.new(description, weight: 3) },# ->(description) { ::LinkThumbnailer::Graders::LinkDensity.new(description) }# ]# Minimum description length for a website.## config.description_min_length = 25# Regex of words considered positive to rate website description.## config.positive_regex = /article|body|content|entry|hentry|main|page|pagination|post|text|blog|story/i# Regex of words considered negative to rate website description.## config.negative_regex = /combx|comment|com-|contact|foot|footer|footnote|masthead|media|meta|outbrain|promo|related|scroll|shoutbox|sidebar|sponsor|shopping|tags|tool|widget|modal/i# Numbers of images to fetch. Fetching too many images will be slow.# Note that LinkThumbnailer will only sort fetched images between each other.# Meaning that they could be a "better" image on the page.## config.image_limit = 5# Whether you want LinkThumbnailer to return image size and type or not.# Setting this value to false will increase performance since for each images, LinkThumbnailer# does not have to fetch its size and type.## config.image_stats = true## Whether you want LinkThumbnailer to raise an exception if the Content-Type of the HTTP request# is not an html or xml.## config.raise_on_invalid_format = false## Sets number of concurrent http connections that can be opened to fetch images informations such as size and type.## config.max_concurrency = 20# Sets the default encoding.## config.encoding = 'utf-8'end

Or at runtime:

object=LinkThumbnailer.generate('http://stackoverflow.com',redirect_limit: 5,user_agent: 'foo')

Note that runtime options will override default global configuration.

See Configuration Options Explained for more details on each configuration options.

Exceptions

LinkThumbnailer defines a list of custom exceptions you may want to rescue in your code. All the following exceptions inherit from LinkThumbnailer::Exceptions:

  • RedirectLimit -- raised when redirection threshold defined in config is reached
  • BadUriFormat -- raised when url given is not a valid HTTP url
  • FormatNotSupported -- raised when the Content-Type of the HTTP request is not supported (not html)

You can rescue from any LinkThumbnailer exceptions using the following code:

beginLinkThumbnailer.generate('http://foo.com')rescueLinkThumbnailer::Exceptions=>e# do somethingend

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Run the specs (bundle exec rspec spec)
  4. Commit your changes (git commit -am 'Added some feature')
  5. Push to the branch (git push origin my-new-feature)
  6. Create new Pull Request

About

Ruby gem that generates thumbnail images from a given URL. Much like popular social website with link preview.

Resources

Stars

0 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages