MyShows API

Object-oriented wrapper over API of myshows.ru

Installation

gem install myshows

Usage

Simply require

require 'rubygems'
require 'myshows'

And use

# authorization is needed for some features
# requires valid login and md5(password)
profile = MyShows::Profile.new 'demo', 'fe01ce2a7fbac8fafaed7c982a04e229'
profile.shows   # => all user shows

# you can find show by title among user shows (smart search)
profile.show 'big bang theory' # => show "The Big Bang Theory"
profile.show 'TBBT'            # => show "The Big Bang Theory"

search = MyShows::Search.new
tbbt = search.show("The Big Bang Theory").first
tbbt.title      # => "The Big Bang Theory"
tbbt.ru_title   # => "Теория большого взрыва"
# and many other fields provided by API

tbbt.episodes   # => [...] - all episodes

# you can find episode by title (smart search)
pilot = tbbt.episode "the pilot episode"
# or by season and episode number
pilot = tbbt.episode 1, 1
# or by filename
pilot = search.episodes_by_filename('The.Big.Bang.Theory.S01E01.HDTV.XviD-(Kuraj-Bambey).avi')[0]
pilot.title     # => "Pilot"
pilot.show      # => tbbt
pilot.air_date  # => "24.09.2007" (fields parsing would be done later)
# and many other fields provided by API

# note that more than one episode could correspond to one filename
two_episodes = search.episodes_by_filename 'Star.Wars.The.Clone.Wars.s02e01e02.rus.LostFilm.TV.avi'

# if you are authorized:
pilot.uncheck!  # => this episode would be marked as 'unwatched'
pilot.check!    # => this episode would be marked as 'watched'

Look at rubydoc.info/gems/myshows/ for detailed documentation

Tests

rake spec

TODO

  • support all API (other user profiles, all unwatched episodes, …)

  • show and episode fields conversion to Ruby types

Author

Vladimir Parfinenko, write at vladimir[dot]parfinenko[at]gmailcom