lib/download_tv/myepisodes.rb in download_tv-2.2.1 vs lib/download_tv/myepisodes.rb in download_tv-2.2.2

- old
+ new

@@ -1,87 +1,79 @@ module DownloadTV + ## + # API wrapper for MyEpisodes + class MyEpisodes + def initialize(user, save_cookie) + @agent = Mechanize.new + @user = user + @save_cookie = save_cookie + @cookie_path = File.join(ENV['HOME'], '.config', 'download_tv', 'cookie') + end - class MyEpisodes + def login + if !@user || @user == '' + print 'Enter your MyEpisodes username: ' + @user = STDIN.gets.chomp + end - def initialize(user=nil, save_cookie) - @agent = Mechanize.new - @user = user - @save_cookie = save_cookie - @cookie_path = File.join(ENV["HOME"], ".config", "download_tv", "cookie") - end + print 'Enter your MyEpisodes password: ' + pass = STDIN.noecho(&:gets).chomp + puts - def login - if !@user || @user=="" - print "Enter your MyEpisodes username: " - @user = STDIN.gets.chomp - end + page = @agent.get 'https://www.myepisodes.com/login.php' - print "Enter your MyEpisodes password: " - pass = STDIN.noecho(&:gets).chomp - puts + login_form = page.forms[1] + login_form.username = @user + login_form.password = pass - page = @agent.get "https://www.myepisodes.com/login.php" + page = @agent.submit(login_form, login_form.buttons.first) - login_form = page.forms[1] - login_form.username = @user - login_form.password = pass + raise InvalidLoginError if page.filename == 'login.php' - page = @agent.submit(login_form, login_form.buttons.first) + save_cookie if @save_cookie - raise InvalidLoginError if page.filename == "login.php" + @agent + end - save_cookie() if @save_cookie + def load_cookie + if File.exist? @cookie_path + @agent.cookie_jar.load @cookie_path + page = @agent.get 'https://www.myepisodes.com/login.php' + if page.links[1].text == 'Register' + puts 'The cookie is invalid/has expired.' + login + end + @agent + else + puts 'Cookie file not found' + login + end + end - @agent - - end + def save_cookie + @agent.cookie_jar.save(@cookie_path, session: true) + @agent + end - def load_cookie - if File.exist? @cookie_path - @agent.cookie_jar.load @cookie_path - page = @agent.get "https://www.myepisodes.com/login.php" - if page.links[1].text == "Register" - puts "The cookie is invalid/has expired." - login - end - @agent - else - puts "Cookie file not found" - login - end - - end + def get_shows(last) + page = @agent.get 'https://www.myepisodes.com/ajax/service.php?mode=view_privatelist' + shows = page.parser.css('tr.past') - def save_cookie - @agent.cookie_jar.save(@cookie_path, session: true) - @agent - - end - - def get_shows(last) - page = @agent.get "https://www.myepisodes.com/ajax/service.php?mode=view_privatelist" - shows = page.parser.css('tr.past') + s = shows.select do |i| + airdate = i.css('td.date')[0].text + Date.parse(airdate) >= last + end - s = shows.select do |i| - airdate = i.css('td.date')[0].text - Date.parse(airdate) >= last - end + s.map do |i| + name = i.css('td.showname').text + ep = i.css('td.longnumber').text - s.map do |i| - name = i.css('td.showname').text - ep = i.css('td.longnumber').text + ep.insert(0, 'S') + ep.sub!('x', 'E') - ep.insert(0, "S") - ep.sub!("x", "E") + "#{name} #{ep}" + end + end + end - "#{name} #{ep}" - end - - end - - end - - class InvalidLoginError < StandardError - - end - -end \ No newline at end of file + class InvalidLoginError < StandardError; end +end