このエントリーに関連する記事
loading...
OSXのフリーソフト紹介、基本的な使い方を解説。
require 'nkf'
require 'uri'
require 'open-uri'
require 'rexml/document'
class String
def enc; URI.encode(self).gsub(/&/, '%26'); end
def b64; [self].pack('m'); end
def utf8; NKF.nkf("--utf8", self); end
end
user = ARGV[0]
key = ARGV[1]
tag_a = ARGV[2].utf8
tag_b = ARGV[3].utf8
head = { 'Authorization' => 'Basic ' + "#{user}:#{key}".b64 }
res = open("http://api.clip.livedoor.com/v1/posts/get?tag=#{tag_a.enc}", head)
doc = REXML::Document.new(res.read)
doc.elements['/posts'].each_element do |e|
tags = e.attributes['tag'].split(/ /)
pos = tags.index(tag_a)
if !!pos
tags[pos] = tag_b
url = e.attributes['href']
description = e.attributes['description']
extended = e.attributes['extended']
open('http://api.clip.livedoor.com/v1/posts/add?' + [
"url=#{url.enc}",
"description=#{description.enc}",
"extended=#{extended.enc}",
'tags=' + tags.join(' ').enc
].join('&'), head)
puts url
sleep 1
end
endそうしたら「ldc_tag_rename.rb」と名前を付けて保存。