Sha256: c01ac89b17d2b77677181174e35a7aa1da28e5f4525871136f44a4f3f97ab945

Contents?: true

Size: 1.61 KB

Versions: 14

Compression:

Stored size: 1.61 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] + '/commits'))
        lols.map { |lol| lol["sha"] }
      rescue => error
        @logger.info "Existing commits 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] + '/upload',
        :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

14 entries across 14 versions & 1 rubygems

Version Path
acmcommits-1.1.0 lib/lolcommits/plugins/lolsrv.rb
acmcommits-1.0.12 lib/lolcommits/plugins/lolsrv.rb
acmcommits-1.0.10 lib/lolcommits/plugins/lolsrv.rb
acmcommits-1.0.9 lib/lolcommits/plugins/lolsrv.rb
acmcommits-1.0.8 lib/lolcommits/plugins/lolsrv.rb
acmcommits-1.0.7 lib/lolcommits/plugins/lolsrv.rb
acmcommits-1.0.6 lib/lolcommits/plugins/lolsrv.rb
acmcommits-1.0.4 lib/lolcommits/plugins/lolsrv.rb
acmcommits-1.0.3 lib/lolcommits/plugins/lolsrv.rb
acmcommits-1.0.2 lib/lolcommits/plugins/lolsrv.rb
acmcommits-1.0.1 lib/lolcommits/plugins/lolsrv.rb
acmcommits-1.0.0 lib/lolcommits/plugins/lolsrv.rb
acmcommits-0.0.1 lib/lolcommits/plugins/lolsrv.rb
acmcommits-0.4.3 lib/lolcommits/plugins/lolsrv.rb