module SleepRoom

Constants

VERSION

Public Class Methods

config_dir() click to toggle source

@return [String]

# File lib/sleeproom/utils.rb, line 31
def self.config_dir
  File.join(user_path, ".config", "sleeproom")
end
config_path(config) click to toggle source

@param filename [String] @return [String]

# File lib/sleeproom/utils.rb, line 37
def self.config_path(config)
  name = {
    status: "status.yml",
    base: "base.yml",
    record: "record.yml",
    pid: "tmp/pid.yml"
  }
  file = name[config].to_s
  raise Error if file.empty?
  return File.join(config_dir, file) if config == :base

  if load_config(:base)[:config_path] == "USER_CONFIG"
    File.join(config_dir, file)
  else
    File.join(load_config(:base)[:config_path], file)
  end
end
create_config_file(config, settings) click to toggle source
# File lib/sleeproom/utils.rb, line 64
def self.create_config_file(config, settings)
  path = config_path(config)
  return false if File.exist?(path)
  mkdir(File.dirname(path)) unless Dir.exist?(File.dirname(path))
  write_config_file(config, settings)
end
create_pid(pid) click to toggle source
# File lib/sleeproom/utils.rb, line 190
def self.create_pid(pid)
  SleepRoom.create_config_file(:pid, pid)
  SleepRoom.write_config_file(:pid, pid)
end
create_record(record = {default: []}) click to toggle source
# File lib/sleeproom/utils.rb, line 186
def self.create_record(record = {default: []})
  SleepRoom.create_config_file(:record, record)
end
create_status(status = []) click to toggle source
# File lib/sleeproom/utils.rb, line 182
def self.create_status(status = [])
  SleepRoom.create_config_file(:status, status)
end
error(string) click to toggle source

@param string [String] @return [nil]

# File lib/sleeproom/utils.rb, line 209
def self.error(string)
  log(:error, string)
end
file_logger(type, log) click to toggle source
# File lib/sleeproom/utils.rb, line 227
def self.file_logger(type, log)
  path = configatron.logger.file.path
  mkdir(File.dirname(path)) unless Dir.exist?(File.dirname(path))
  logger = Logger.new(path)
  case type
  when :info
    logger.info(log)
  when :warning
    logger.warning(log)
  when :error
    logger.error(log)
  end
end
info(string) click to toggle source

@param string [String] @return [nil]

# File lib/sleeproom/utils.rb, line 197
def self.info(string)
  log(:info, string)
end
init_base() click to toggle source
# File lib/sleeproom/utils.rb, line 84
def self.init_base
  base = {
    web: {
      use: true,
      server: "localhost",
      port: 3000
    },
    proxy: {
      use: false,
      server: "localhost",
      port: 8080,
      type: "socks5"
    },
    record: {
      all: true,
      wanted: [],
      unwanted: []
    },
    config_path: "USER_CONFIG",
    save_path: "#{sleeproom_dir}/archive",
    working_path: "#{sleeproom_dir}/working",
    default_save_name: "%ROOMNAME%-%TIME%.ts",
    minyami: {
      threads: 8,
      retries: 999,
    },
    logger: {
      console: true,
      file: {
        use: false,
        path: "#{sleeproom_dir}/log"
      }
    }
  }
  create_config_file(:base, base)
end
init_config() click to toggle source
# File lib/sleeproom/utils.rb, line 121
def self.init_config
  mkdir(config_dir) unless Dir.exist?(config_dir)

  mkdir("#{config_dir}/tmp") unless Dir.exist?("#{config_dir}/tmp")
  
  init_base
  
  record = {
    "default" => []
  }

  create_config_file(:record, record)
  create_config_file(:status, [])
  write_config_file(:pid, nil)
end
load_config(config) click to toggle source
# File lib/sleeproom/utils.rb, line 71
def self.load_config(config)
  raise Error if config.empty? || !File.exist?(config_path(config))

  YAML.load_file(config_path(config))
rescue Error => e
  init_config
  retry
end
load_pid() click to toggle source
# File lib/sleeproom/utils.rb, line 160
def self.load_pid
  SleepRoom.load_config(:pid)
rescue Error
  create_pid(nil)
  retry
end
load_record() click to toggle source
# File lib/sleeproom/utils.rb, line 175
def self.load_record
  SleepRoom.load_config(:record)
rescue Error
  create_record
  retry
end
load_status() click to toggle source
# File lib/sleeproom/utils.rb, line 153
def self.load_status
  SleepRoom.load_config(:status)
rescue Error
  create_status
  retry
end
log(type, log) click to toggle source
# File lib/sleeproom/utils.rb, line 213
def self.log(type, log)
  if configatron.logger.console == true
    case type
    when :info
      puts("[INFO] #{log}".colorize(:white))
    when :warning
      warn("[WARN] #{log}".colorize(:yellow))
    when :error
      puts("[ERROR] #{log}".colorize(:red))
    end
  end
  file_logger(type, log) if configatron.logger.file.use == true
end
mkdir(path) click to toggle source
# File lib/sleeproom/utils.rb, line 80
def self.mkdir(path)
  FileUtils.mkdir_p(path) unless Dir.exist?(path)
end
reload_config() click to toggle source

@return [Boolean]

# File lib/sleeproom/utils.rb, line 138
def self.reload_config
  configs = %i[base]
  configs.each do |config|
    configatron.configure_from_hash(YAML.load_file(config_path(config)))
  end
  true
rescue Errno::ENOENT => e
  info("Creating configuration...")
  init_base
  false
end
root_path() click to toggle source

@return [String]

# File lib/sleeproom/utils.rb, line 12
def self.root_path
  Dir.pwd
end
running?(pid=nil) click to toggle source
# File lib/sleeproom/utils.rb, line 167
def self.running?(pid=nil)
  pid = SleepRoom.load_config(:pid) if pid.nil?
  Process.kill(0, pid)
  true
rescue
  false
end
settings() click to toggle source
# File lib/sleeproom/utils.rb, line 150
def self.settings
  configatron
end
sleeproom_dir() click to toggle source

@return [String]

# File lib/sleeproom/utils.rb, line 22
def self.sleeproom_dir
  File.join(user_path, "sleeproom")
end
user_path() click to toggle source

@return [String]

# File lib/sleeproom/utils.rb, line 17
def self.user_path
  Dir.home
end
warning(string) click to toggle source

@param string [String] @return [nil]

# File lib/sleeproom/utils.rb, line 203
def self.warning(string)
  log(:warning, string)
end
working_dir() click to toggle source
# File lib/sleeproom/utils.rb, line 26
def self.working_dir
  Dir.pwd
end
write_config_file(config, settings) click to toggle source

@param filename [Symbol] @param settings [Hash] @return [Boolean]

# File lib/sleeproom/utils.rb, line 58
def self.write_config_file(config, settings)
  file = File.new(config_path(config), "w")
  file.puts(YAML.dump(settings))
  file.close
end