Sha256: 0bd32ca4b57197f5ad68d25d1cb6fddb59aef008d8762c28e82e9c6f71650a74

Contents?: true

Size: 1.62 KB

Versions: 16

Compression:

Stored size: 1.62 KB

Contents

require "rest_client"
require "pp"
require "json"
require "logger"

module Lolcommits

  class Lolsrv < Plugin

    SERVER = 'server'

    def initialize(runner)
      super
      self.name    = 'lolsrv'
      self.default = false  
      self.options << SERVER

    end

    def run
      
      log_file = File.new(self.runner.config.loldir + "/lolsrv.log", "a+")
      @logger = Logger.new(log_file)
      
      if configuration[SERVER].nil?
        puts "Missing server configuration. Use lolcommits --config -p lolsrv"
        return
      end

      fork do
        sync()
      end
    end

    def sync
      existing = get_existing_lols
      unless existing.nil?
        Dir.glob(self.runner.config.loldir + "/*.jpg") do |item|
          next if item == '.' or item == '..'
          # do work on real items
          sha = File.basename(item, '.*')
          unless existing.include?(sha) || sha == 'tmp_snapshot' 
            upload(item, sha)
          end
        end
      end
    end

    def get_existing_lols
      begin
        lols = JSON.parse(
        RestClient.get(configuration[SERVER] + '/lols'))
        lols.map { |lol| lol["sha"] }
      rescue => error
        @logger.info "Existing lols could not be retrieved with Error " + error.message
        @logger.info error.backtrace
        return nil
      end
    end

    def upload(file, sha)
      begin
        RestClient.post(
        configuration[SERVER] + '/uplol', 
        :lol => File.new(file),
        :sha => sha) 
      rescue => error
        @logger.info "Upload of LOL "+ sha + " failed with Error " + error.message
        return
      end
    end
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
lolcommits-0.5.1 lib/lolcommits/plugins/lolsrv.rb
lolcommits-0.5.1.pre2 lib/lolcommits/plugins/lolsrv.rb
lolcommits-0.5.0 lib/lolcommits/plugins/lolsrv.rb
lolcommits-0.5.0.pre3 lib/lolcommits/plugins/lolsrv.rb
lolcommits-0.5.0.pre2 lib/lolcommits/plugins/lolsrv.rb
lolcommits-0.5.0.pre1 lib/lolcommits/plugins/lolsrv.rb
lolcommits-0.4.6 lib/lolcommits/plugins/lolsrv.rb
lolcommits-0.4.6.pre1 lib/lolcommits/plugins/lolsrv.rb
lolcommits-0.4.5 lib/lolcommits/plugins/lolsrv.rb
lolcommits-0.4.4 lib/lolcommits/plugins/lolsrv.rb
lolcommits-0.4.4pre1 lib/lolcommits/plugins/lolsrv.rb
lolcommits-0.4.3 lib/lolcommits/plugins/lolsrv.rb
lolcommits-0.4.2 lib/lolcommits/plugins/lolsrv.rb
lolcommits-0.4.1 lib/lolcommits/plugins/lolsrv.rb
lolcommits-0.4.1pre2 lib/lolcommits/plugins/lolsrv.rb
lolcommits-0.4.1pre1 lib/lolcommits/plugins/lolsrv.rb