Gyazoのアップロード先をTwitterにした

一部のWeb系エンジニア大好きオレオレGyazoの話題です。今回は画像のアップロード先をTwitterにしました。

ご多分にもれず我が家もオレオレGyazoサーバーを運用しておりまして、 pic.kksg.net にアップロードされる方式をとっていました。しかしTwitterに画像を貼っても公式クライアントで展開されない & Webの画像一覧に出てこない問題があったため、Gyazoのアップロード先をTwitterにした。Twitterをストレージとして使うとサーバー管理が楽だし無料でいい。

現在のTwitterの仕様だと、pic.twitter.com ドメインなら他人のアカウントの画像でも展開されるみたいなのでストレージ用のアカウントを取得した。以下のスクリプトを使うと pic.twitter.com の URL がクリップボードに貼り付く。今までの Gyazo と同じように使える。 以下は Mac 用のやつ

システムの Ruby に Twitter Gem 追加

```sh sudo /usr/bin/gem install twitter ```

/Applications/Gyazo.app/Contents/Resources/script

```ruby #!/usr/bin/env ruby require 'net/http' require 'twitter' client = Twitter::REST::Client.new do |config| config.consumer_key = "YOUR_CONSUMER_KEY" config.consumer_secret = "YOUR_CONSUMER_SECRET" config.access_token = "YOUR_ACCESS_TOKEN" config.access_token_secret = "YOUR_ACCESS_SECRET" end # get id user = IO.popen("whoami", "r+").gets.chomp program = ARGV[0].to_s idfile = "/Users/#{user}/Library/Gyazo/id" old_idfile = File.dirname(program) + "/gyazo.app/Contents/Resources/id" id = '' if File.exist?(idfile) then id = File.read(idfile).chomp elsif File.exist?(old_idfile) then id = File.read(old_idfile).chomp end # capture png file tmpfile = "/tmp/image_upload#{$$}.png" imagefile = ARGV[1] sound_file = File.dirname(program) + "/shutter.aiff" if imagefile && File.exist?(imagefile) then system "sips -s format png \"#{imagefile}\" --out \"#{tmpfile}\"" else system "screencapture -x -i \"#{tmpfile}\"" if File.exist?(tmpfile) then system "afplay #{sound_file}" system "sips -d profile --deleteColorManagementProperties \"#{tmpfile}\"" dpiWidth = `sips -g dpiWidth "#{tmpfile}" | awk '/:/ {print $2}'` dpiHeight = `sips -g dpiHeight "#{tmpfile}" | awk '/:/ {print $2}'` pixelWidth = `sips -g pixelWidth "#{tmpfile}" | awk '/:/ {print $2}'` pixelHeight = `sips -g pixelHeight "#{tmpfile}" | awk '/:/ {print $2}'` if (dpiWidth.to_f > 72.0 and dpiHeight.to_f > 72.0) then width = pixelWidth.to_f * 72.0 / dpiWidth.to_f height = pixelHeight.to_f* 72.0 / dpiHeight.to_f system "sips -s dpiWidth 72 -s dpiHeight 72 -z #{height} #{width} \"#{tmpfile}\"" end end end if !File.exist?(tmpfile) then exit end res = client.update_with_media('', File.open(tmpfile)) display_url = res.attrs[:entities][:media][0][:display_url] url = "http://#{display_url}" File.delete(tmpfile) IO.popen("pbcopy","r+") do |io| io.write url io.close end system "open #{url}" ``` 無課金 & Twitterでの瞬間共有用途ならかなりソリューションだと思う

2014年05月11日

Alfredでツイセーブ内検索

[Alfred]Alfred で Twilog 内検索 | blog mg ☃ frozen 3 年も前の記事ですが、今は Twilog ではなくツイセーブを使っているため、設定を追加しました。 見ての通り URL はシンプルなので、こちらを Alfred の Custom…

2014年04月23日

GMOの共通ヘッダーを消すChrome拡張つくった

GMOインターネットグループのサイトに表示されるようになってしまった醜悪な共通ヘッダーを消すChrome拡張を作りました。Chromeウェブストアでインストールできます。 Chrome ウェブストア - GMO…

2014年02月22日

誕生日に頂いたもの

今年度は誕生日が多かったため、たくさん物が届きました。 ありがとうございます!!!!!!! 以下届いたもの 髪乾かし放題! どう考えてもスカイスポーツやるしかない。 パラグライダー体験!!!こちらもプレゼントです!!! 謝辞 @akazunoma @DNPP…

2013年12月10日

闇をコントロールする

闇 Advent Calendar 2013 10日目の記事です。 実装について まずこの記事の実装について。あの黒いやつは three.js を使って WebGL を操作した。 あの黒いやつとは? WebGL に対応した PC…

2013年11月01日

小笠原諸島に行ってきた

10月17日〜22日の船で父島に行ってきました。 おがさわら丸 本州から小笠原諸島へ行くためには船に乗らないといけない。2…