トップ «前の日記(2014-01-05) 最新 次の日記(2014-01-07)» 編集

ヨタの日々

2001|08|09|10|11|12|
2002|01|02|03|04|05|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|12|
2024|01|02|03|

2014-01-06 :-(

_ 午前

0700 起床

0900 年頭挨拶

1100 移動

_ 午後

1300 コードマージしTARI

_

1700 デバッグしTARI

2030 退勤

_ [艦これ]艦これ

神通を改造した。

_ 画像を縮小してアップロードして href タグを作るだけの簡単な

以前書いたんだけど win32/clipboard が死んだりするので結局捨てた。cygwin 環境を前提としてるので cygpath を使ってたりする。

# coding: utf-8

require 'net/scp'
require 'win32ole'
require 'find'
require "Win32API"
require "win32/clipboard"
require 'rubygems'
require 'RMagick'

DST_HOSTNAME = "example.jp"
DST_HOST_USER = "USER"
DST_HOST_PASS = "PASS"

def get_src_dir(dir)
  d = `cygpath -u "#{dir}"`.chomp
  return d
end

def get_original_images(src_dir)
  files ||= []
  Dir.glob("#{src_dir}/*") {|path|
    if File.file?(path)
      path2 = path.downcase
      File.rename(path, path2)
      files << path2
      end
  }
  return files
end

def resize_images(src_dir, src_files)
  ds = File.join(src_dir, "s")
  Dir.mkdir(ds) unless File.directory?(ds)
  
  puts "ds: #{ds}"

  width = 400
  height= 400
  
  src_files.each {|path|

    image = Magick::ImageList.new(path)
    image.resize_to_fit!(width, height)
    
    f2 = File.basename(path)
    path2 = File.join(ds, f2)
    
    puts "f2: #{f2}"
    puts "path2: #{path2}"
    
    image.write(path2)
  }
end

# 転送先ディレクトリを取得
def get_dst_dir
  today = Time.now.strftime("%Y/%m/%d")
  dfl_dst_dir = "/home/rin/public_html/images/#{today}"

  msg = %Q@"コピー先を入力"@
  title = %Q@"image"@
  dfl = %Q@"#{dfl_dst_dir}"@

  sc = WIN32OLE.new("ScriptControl")
  sc.language = "VBScript"
  dst_dir = sc.eval("InputBox(#{msg}, #{title}, #{dfl})")  
  return dst_dir
end


# ファイルとフォルダ以下のファイルをすべて転送
def transfer(src_dir, dst_dir)
  cmd = "mkdir -p #{dst_dir}"
  Net::SSH.start(DST_HOSTNAME, DST_HOST_USER, {:password => DST_HOST_PASS} ) {|ssh|
    ssh.exec!(cmd)
  }

  Net::SCP.start(DST_HOSTNAME, DST_HOST_USER, {:password => DST_HOST_PASS, :compression => true}){|scp|
    scp.upload!(src_dir, dst_dir,
      {:recursive => true}
    )
  }
end


# href タグを生成
# href タグをクリップボードへコピー
def build_href(src_dir, dst_dir, original_images)
  ddir = dst_dir.gsub("/home/#{DST_HOST_USER}/public_html/", '../')
  sdir = File.basename(src_dir)
  
  tags = ""
  original_images.each{|file|
    f = File.basename(file)
    tag = %Q@{{'<a href="#{ddir}/#{sdir}/#{f}"><img src="#{ddir}/#{sdir}/s/#{f}"></a>'}}@
    tags << "#{tag}\n\n"
  }
  
  p tags
  Win32::Clipboard.set_data(tags)
  p Win32::Clipboard.data
end

def main(argv)
  src_dir = get_src_dir(argv[0])
  p src_dir
  return unless File.directory?(src_dir)
  
  images = get_original_images(src_dir)
  p images
  
  
  resize_images(src_dir, images)
  
  dst_dir = get_dst_dir
  p dst_dir
  transfer(src_dir, dst_dir)
  build_href(src_dir, dst_dir, images)
end

main(ARGV)

少し前に C# で書き直した。おかげで艦これ日誌が捗っている。結局 Windows との親和性は .NET が一番高いか... Java? いえ知らない子ですね。

i00.PNG