Macの手書き説明書

macOSのアプリ紹介と基本的な使い方を解説

livedoorクリップのタグをまとめてリネームする方法

SBMにはlivedoor クリップを利用させてもらっているのですが、タグの一括変換ができません。

例えばFlashとflashとかDarwinPortsをMacPortsなど意味は一緒なのに単語が違うタグを登録してしまうと、タグ付けする際にどっちにしようか迷いますし、後から自分のlivedoor クリップを見るさいにも効率が落ちます。

なのでタグの変換をして、タグを整理、統一したかったのです。

でも方法が見つからず、一つずつするしかないのかなと半ば諦めていたところ、むぅもぉ.jpさんがlivedoorクリップのタグをリネームするRubyスクリプトを作られたということを知りまして、とっても便利だと思ったのでこのブログでも紹介させていただきます。

まずはテキストエディタを開いて新規テキスト書類に以下の文をコピペしてください。
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」と名前を付けて保存。

後はターミナルを立ち上げて「ruby ldc_tag_rename.rb ユーザ名 apikey 変換前のタグ 変換後のタグ」を入力するだけ。

例えば「ruby ldc_tag_rename.rb veadar api wordpress WordPress」といった感じでしょうか。

apikeyはlivedoorにログインした状態でhttp://clip.livedoor.com/config/apiにアクセスすると発行されます。

念の為バックアップをとってからお使いください。

ターミナルという単語を聞いただけでも、訳がわからないという人はAutomatorでタグをリネームするワークフローを作ってみましたので、使ってみてください。

AppleScriptでダイアログを表示してrubyスクリプトへ渡すだけの手抜きワークフローアプリ

広告


関連記事

広告

この記事を共有する

広告

関連記事

0 Comments

Add your comment