Skip to content

rome3ro/filmaffinity-gem

 
 

Repository files navigation

FilmAffinity Scraper Gem

Build Status Gem Version

Description

The filmaffinity gem allows you to easily access publicly available data from Filmaffinity.com in english and spanish.

It is also available as RESTful API at heroku.

Features

  • Search movies by title
  • Retrieve complete movie info
  • Retrieve the Top N of filmaffinity.com
  • Retrieve the Top N with the given options

Installation

Add this line to your application's Gemfile:

gem 'filmaffinity'

And then execute:

$ bundle install

Or install it yourself as:

$ gem install filmaffinity

Documentation

FilmAffinity configuration

FilmAffinity offers some configuration options, which you can configure globally before your requests. You could include an imgur_id to upload the posters on Imgur and avoid forbidden hotlinking from filmaffinity. You can also change the language,which is english by default.

FilmAffinity.configure do |config|
  config.imgur_id = 'Your-imgur-client-id'
  config.language = 'ES'
end
FilmAffinity::Search

Returns an array of FilmAffinity::Movie, containing preload ID and title.

FilmAffinity::Movie

Includes some methods to retrieve the complete movie info.

FilmAffinity::Top options

The options hash accepts several parameters:

{
  :genre => 'AC',
  :country => 'DE',
  :from_year => 2014,
  :to_year => 2016,
  :no_doc => true,
  :no_tv => true
}
:genre
  • 'AC' Action
  • 'AV' Adventure
  • 'AN' Animation
  • 'CO' Comedy
  • 'DO' Documentary
  • 'DR' Drama
  • 'FAN' Fantasy
  • 'F-N' Film-Noir
  • 'TE' Horror
  • 'INF' Kids
  • 'MU' Musical
  • 'INT' Mystery
  • 'RO' Romance
  • 'C-F' Sci-Fi
  • 'TH' Thriller
  • 'TV_SE' TV Series
  • 'DESC' Unknown
  • 'BE' War
  • 'WE' Western
:country

2-letter code supplied by the ISO

:no_doc

true to avoid documentaries

:no_tv

true to avoid TV series

Examples

Top:

#Top FilmAffinity ever
top = FilmAffinity::Top.new

top.movies
#=> [<FilmAffinity::Movie>
     <FilmAffinity::Movie>
     <FilmAffinity::Movie>
     ...]

top.movies.first
#=> #<FilmAffinity::Movie>

#Top FilmAffinity with options and number of results
options = {
  :genre => 'AN',
  :no_tv => true
}
top = FilmAffinity::Top.new options, 20

top.movies
#=> [<FilmAffinity::Movie>
     <FilmAffinity::Movie>
     <FilmAffinity::Movie>
     ...]

top.movies.first
#=> #<FilmAffinity::Movie>

Search:

search = FilmAffinity::Search.new('Padrino')

search.movies
#=> [<FilmAffinity::Movie>
     <FilmAffinity::Movie>
     <FilmAffinity::Movie>
     ...]

search.movies.first
#=> #<FilmAffinity::Movie>

Movie:

movie = FilmAffinity::Movie.new(809297, 'El Padrino')

movie.director
#=> 'Francis Ford Coppola'

movie.year
#=> 1972

movie.rating
#=> 9.1

movie.cast
#=> ['Marlon Brando',
     'Al Pacino',
     'James Caan',
     'Robert Duvall',
     'Diane Keaton',
     ...]

Contributors

This gem is created and maintained by Oriol Bellido and David Santos

About

Easy automated access to Filmaffinity

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Ruby 100.0%