class Plex::Autodelete::Cleanup
Public Class Methods
cleanup()
click to toggle source
# File lib/plex/autodelete/cleanup.rb, line 30 def self.cleanup self.required_params! self.plex_server.library.section(@config[:section]).all.each do |show| self.process_show show end self.output_stats end
configure(opts = {})
click to toggle source
# File lib/plex/autodelete/cleanup.rb, line 26 def self.configure(opts = {}) opts.each {|key, value| @config[key.to_sym] = value if @config_keys.include? key.to_sym} end
Private Class Methods
episode_watched?(episode)
click to toggle source
# File lib/plex/autodelete/cleanup.rb, line 101 def self.episode_watched? episode episode.respond_to?(:view_count) and episode.view_count.to_i > 0 end
increment_stat(stat)
click to toggle source
# File lib/plex/autodelete/cleanup.rb, line 122 def self.increment_stat stat @stats[stat] += 1 end
output_episode_skipped_reason(episode, show_skipped)
click to toggle source
# File lib/plex/autodelete/cleanup.rb, line 88 def self.output_episode_skipped_reason episode, show_skipped if episode_watched? episode and not @config[:delete] self.increment_stat :skipped puts 'Skipped (Test mode enabled, disable to perform delete)'.blue elsif episode_watched? episode and show_skipped self.increment_stat :skipped puts 'Skipped (Show in skip list)'.blue else self.increment_stat :kept puts 'Not watched yet'.blue end end
output_stats()
click to toggle source
# File lib/plex/autodelete/cleanup.rb, line 126 def self.output_stats puts nil puts '-------------' puts ' Stats ' puts '-------------' puts "Deleted: #{@stats[:deleted].to_i}" puts "Skipped: #{@stats[:skipped].to_i}" puts "Kept: #{@stats[:kept].to_i}" puts "Failed: #{@stats[:failed].to_i}" puts nil end
plex_server()
click to toggle source
# File lib/plex/autodelete/cleanup.rb, line 49 def self.plex_server Plex.configure do |config| config.auth_token = @config[:token] end Plex::Server.new(@config[:host], @config[:port]) end
process_episode(episode, show_skipped)
click to toggle source
# File lib/plex/autodelete/cleanup.rb, line 73 def self.process_episode episode, show_skipped print " - #{episode.title} - " if self.should_delete_episode? episode, show_skipped episode.medias.each do |media| self.process_media media, show_skipped end else self.output_episode_skipped_reason episode, show_skipped end end
process_media(media, show_skipped)
click to toggle source
# File lib/plex/autodelete/cleanup.rb, line 105 def self.process_media media, show_skipped media.parts.each do |part| self.process_part part, show_skipped end end
process_part(part, show_skipped)
click to toggle source
# File lib/plex/autodelete/cleanup.rb, line 111 def self.process_part part, show_skipped if File.exist?(part.file) self.increment_stat :deleted File.delete(part.file) puts "Deleted".yellow else self.increment_stat :failed puts "File does not exist".red end end
process_season(season, show_skipped)
click to toggle source
# File lib/plex/autodelete/cleanup.rb, line 66 def self.process_season season, show_skipped puts " - #{season.title}" season.episodes.each do |episode| self.process_episode episode, show_skipped end end
process_show(show)
click to toggle source
# File lib/plex/autodelete/cleanup.rb, line 57 def self.process_show show puts nil puts "#{show.title}".bold show_skipped = @config[:skip].include? show.title show.seasons.each do |season| self.process_season season, show_skipped end end
required_params!()
click to toggle source
# File lib/plex/autodelete/cleanup.rb, line 41 def self.required_params! [:host, :port, :token, :section].each do |param| if @config[param].nil? raise Exception end end end
should_delete_episode?(episode, show_skipped)
click to toggle source
# File lib/plex/autodelete/cleanup.rb, line 84 def self.should_delete_episode? episode, show_skipped @config[:delete] and not show_skipped and episode_watched? episode end