class DownloadTV::MyEpisodes
API wrapper for MyEpisodes
Public Class Methods
new(user, save_cookie)
click to toggle source
# File lib/download_tv/myepisodes.rb, line 7 def initialize(user, save_cookie) @agent = Mechanize.new @agent.user_agent = DownloadTV::USER_AGENT @user = user @save_cookie = save_cookie @cookie_path = File.join(ENV['HOME'], '.config', 'download_tv', 'cookie') end
Public Instance Methods
build_show_strings(shows)
click to toggle source
# File lib/download_tv/myepisodes.rb, line 88 def build_show_strings(shows) shows.map do |i| sname = i.css('td.showname').text ep = i.css('td.longnumber').text ep.insert(0, 'S') ep.sub!('x', 'E') "#{sname} #{ep}" end end
filter_newer_shows(shows, date)
click to toggle source
Only keep the shows that have aired since the given date
# File lib/download_tv/myepisodes.rb, line 81 def filter_newer_shows(shows, date) shows.select do |i| airdate = i.css('td.date')[0].text Date.parse(airdate) >= date end end
get_shows_since(last)
click to toggle source
# File lib/download_tv/myepisodes.rb, line 67 def get_shows_since(last) page = @agent.get 'https://www.myepisodes.com/ajax/service.php?mode=view_privatelist' shows = page.parser.css('tr.past') shows = filter_newer_shows(shows, last) build_show_strings(shows) end
logged_in?()
click to toggle source
# File lib/download_tv/myepisodes.rb, line 57 def logged_in? page = @agent.get 'https://www.myepisodes.com/login.php' page.links[1].text != 'Register' end
login()
click to toggle source
# File lib/download_tv/myepisodes.rb, line 15 def login pass = prompt_user_data page = @agent.get 'https://www.myepisodes.com/login.php' login_form = page.forms[1] login_form.username = @user login_form.password = pass page = @agent.submit(login_form, login_form.buttons.first) raise InvalidLoginError if page.filename == 'login.php' save_cookie if @save_cookie @agent end
prompt_user_data()
click to toggle source
# File lib/download_tv/myepisodes.rb, line 32 def prompt_user_data if !@user || @user == '' print 'Enter your MyEpisodes username: ' @user = $stdin.gets.chomp end print 'Enter your MyEpisodes password: ' pass = $stdin.noecho(&:gets).chomp puts pass end
today_shows()
click to toggle source
# File lib/download_tv/myepisodes.rb, line 74 def today_shows page = @agent.get 'https://www.myepisodes.com/ajax/service.php?mode=view_privatelist' shows = page.parser.css('tr.today') build_show_strings(shows) end