Class: Junkie::Notification::Dumper
- Inherits:
-
Object
- Object
- Junkie::Notification::Dumper
- Defined in:
- lib/junkie/notification/dumper.rb
Overview
This module writes all completed episodes to a log file which could be handled by tools like series to get the right series name for an episode
Constant Summary collapse
- DEFAULT_CONFIG =
{ enabled: false, dump_file: "", }
Instance Method Summary collapse
- #dump_episode(episode) ⇒ Object
-
#initialize(channels) ⇒ Dumper
constructor
A new instance of Dumper.
Methods included from Log
Methods included from Config
collect_default_configs, get_config, included
Constructor Details
#initialize(channels) ⇒ Dumper
Returns a new instance of Dumper.
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/junkie/notification/dumper.rb', line 16 def initialize(channels) @channels = channels @config = Config.get_config(self) if @config[:enabled] and @config[:dump_file] != "" # bind to channel @channels[:notifications].subscribe do |episode| next unless episode.status == :extracted log.info("Got an extracted episode from the channel: #{ episode }") dump_episode(episode) end else log.info("Dumper is disabled or no dump_file has been configured") end end |
Instance Method Details
#dump_episode(episode) ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/junkie/notification/dumper.rb', line 35 def dump_episode(episode) data = [] if File.file? @config[:dump_file] loaded = JSON.load(File.read(@config[:dump_file])) ( data = loaded ) if loaded.is_a? Array end data << { id: episode.id, series: episode.series, extracted_at: DateTime.now } open(@config[:dump_file], "w") do |f| f.write(JSON.dump(data)) end rescue Exception => e log.error(e) end |