#!/usr/bin/env ruby # List metadata for given image and video files in JSON format. # # Usage: # # bin/lsmetadata 1.jpg | jq # list file # bin/lsmetadata | jq # list all files in current directory # bin/lsmetadata images/ | jq # list directory # bin/lsmetadata images/**/* | jq # list directory recursively # # # Run from Docker without having to install Danbooru # docker run -rm -it -v $PWD:/mnt ghcr.io/danbooru/danbooru bin/lsmetadata /mnt/images/**/* | jq APP_PATH = File.expand_path('../config/application', __dir__) require_relative "../config/environment" files = ARGV files = [Dir.pwd] if files.empty? files.map! { |file| File.directory?(file) ? Dir[file + "/*"] : file }.flatten! files.reject! { |file| File.directory?(file) } files.each do |filename| puts MediaFile.open(filename).to_json end