Sha256: 7e605bb73c2df6c17ea3b352a051f2af6b426b4fffe01c41e570f426b4f70ee9
Contents?: true
Size: 1.36 KB
Versions: 5
Compression:
Stored size: 1.36 KB
Contents
require 'json' module Junkie module Notification # 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 class Dumper include Log, Config DEFAULT_CONFIG = { enabled: false, dump_file: "", } 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 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 end end end
Version data entries
5 entries across 5 versions & 1 rubygems