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