Macos OSX:自动将截图上传到imageBin并将URL放入剪贴板

Macos OSX:自动将截图上传到imageBin并将URL放入剪贴板,macos,bash,file-upload,automation,screenshot,Macos,Bash,File Upload,Automation,Screenshot,我想通过IRC发送我的OSX屏幕的一部分,以最少的干扰 很多应用已经做到了这一点:CloudApp、Dropr、DropBox、Jing等等 问题是它们都没有返回到实际图像的链接。他们返回一个包含图像的页面链接,主要是为了获得广告。这对IRC没有好处;大多数IRC客户机在看到图像的URL时都足够聪明,可以显示图像,但他们不太聪明,无法从这样的框架页面中拉出图像 我想写一些这样的东西 Shift+Cmd+F3允许我用鼠标选择一个矩形,并将图像存放在桌面上。可以将其更改为其他文件夹: 我想让这个图像

我想通过IRC发送我的OSX屏幕的一部分,以最少的干扰

很多应用已经做到了这一点:CloudApp、Dropr、DropBox、Jing等等

问题是它们都没有返回到实际图像的链接。他们返回一个包含图像的页面链接,主要是为了获得广告。这对IRC没有好处;大多数IRC客户机在看到图像的URL时都足够聪明,可以显示图像,但他们不太聪明,无法从这样的框架页面中拉出图像

我想写一些这样的东西

Shift+Cmd+F3允许我用鼠标选择一个矩形,并将图像存放在桌面上。可以将其更改为其他文件夹:

我想让这个图像自动上传到互联网上,并在我的剪贴板上放置一个URL链接

我解决了一半的问题:下面的bash脚本将上载一个图像并将链接放入剪贴板:

#! /bin/bash

# Imagebin Loader 
# π 27.1.2014
#
# Upload image to imagebin.org, put url to image in clipboard, make noise

filename="$1"

# http://stackoverflow.com/questions/4651437/how-to-set-a-bash-variable-equal-to-the-output-from-a-command
url_out=$(
    curl  -s \
        --form "nickname=$(hostname)" \
        --form "image=@$filename;type=$(file --brief -L --mime-type "$filename")" \
        --form "disclaimer_agree=Y" \
        --form "mode=add" \
        --form "Submit=Submit" \
    http://imagebin.org/index.php \
    -w '%{redirect_url}\n'\
    )

# e.g. http://imagebin.org/288917
echo "$url_out"

# http://mywiki.wooledge.org/BashFAQ/073
number=${url_out##*/} 

printf -v new_url "http://imagebin.org/index.php?mode=image&id=%s" $number

# e.g. http://imagebin.org/index.php?mode=image&id=288917
echo "$new_url"

#http://osxdaily.com/2007/03/05/manipulating-the-clipboard-from-the-command-line/
printf "$new_url" | pbcopy

say -v Trinoids "Fooo"
现在,我如何完成谜题的另一部分:每当一个新的屏幕截图出现在桌面上,用它自动执行这个脚本


链接:

在文件夹中添加新项目时,使用Automator文件夹操作启动脚本。您可能希望将屏幕截图重定向到桌面以外的其他位置,否则将上载添加到桌面的所有项目。

例如,将此plist另存为
~/Library/LaunchAgents/example.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>example</string>
  <key>Program</key>
  <string>/path/to/script</string>
  <key>WatchPaths</key>
  <array>
    <string>~/Desktop/</string>
  </array>
</dict>
</plist>

(您还需要找出如何避免对相同的图像多次运行脚本。)

这正是最终要做的:更改屏幕截图位置以及如何将参数传递给程序?因为我有
Program~/./imageBinUploader.sh
,我的
imageBinUploader.sh
等待文件名作为参数。
for f; do
  [[ $f = Screenshot\ *.jpg ]] || continue
  echo "$f"
done