Sha256: 6fac88b9ca4cf643128550c33746812323aa8fcaedb7a9cf2f992f180015e3fa
Contents?: true
Size: 1.48 KB
Versions: 2
Compression:
Stored size: 1.48 KB
Contents
# -*- encoding : utf-8 -*- require 'rest_client' require 'pp' require 'json' module Lolcommits class Lolsrv < Plugin def initialize(runner) super self.options << 'server' end def run_postcapture return unless valid_configuration? fork { sync } end def configured? !configuration['enabled'].nil? && configuration['server'] end def sync existing = existing_lols unless existing.nil? Dir[self.runner.config.loldir + '/*.{jpg,gif}'].each do |item| sha = File.basename(item, '.*') unless existing.include?(sha) || sha == 'tmp_snapshot' upload(item, sha) end end end end def existing_lols lols = JSON.parse( RestClient.get(configuration['server'] + '/lols')) lols.map { |lol| lol['sha'] } rescue => e log_error(e, "ERROR: existing lols could not be retrieved #{e.class} - #{e.message}") return nil end def upload(file, sha) RestClient.post(configuration['server'] + '/uplol', :lol => File.new(file), :url => self.runner.url + sha, :repo => self.runner.repo, :date => File.ctime(file), :sha => sha) rescue => e log_error(e, "ERROR: Upload of lol #{sha} FAILED #{e.class} - #{e.message}") end def self.name 'lolsrv' end def self.runner_order :postcapture end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
lolcommits-0.5.6 | lib/lolcommits/plugins/lolsrv.rb |
lolcommits-0.5.5 | lib/lolcommits/plugins/lolsrv.rb |