From e8fbdfdc39d1242fa43b62790031195b0abb3561 Mon Sep 17 00:00:00 2001 From: Dean Jackson Date: Thu, 30 Apr 2015 11:04:41 +0200 Subject: [PATCH] Initial commit --- .gitignore | 70 +++++ Google Similar Images-1.0.alfredworkflow | Bin 0 -> 46148 bytes LICENCE.txt | 21 ++ README.md | 26 ++ src/call_with_finder_selection.applescript | 39 +++ src/icon.png | Bin 0 -> 33126 bytes src/info.plist | 331 +++++++++++++++++++++ src/url_for_image.py | 85 ++++++ src/version | 1 + 9 files changed, 573 insertions(+) create mode 100644 .gitignore create mode 100644 Google Similar Images-1.0.alfredworkflow create mode 100644 LICENCE.txt create mode 100644 README.md create mode 100644 src/call_with_finder_selection.applescript create mode 100644 src/icon.png create mode 100644 src/info.plist create mode 100755 src/url_for_image.py create mode 100644 src/version diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..55d2750 --- /dev/null +++ b/.gitignore @@ -0,0 +1,70 @@ +# Created by https://www.gitignore.io + +### Vim ### +[._]*.s[a-w][a-z] +[._]s[a-w][a-z] +*.un~ +Session.vim +.netrwhist +*~ + + +### Python ### +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] + +# C extensions +*.so + +# Distribution / packaging +.Python +env/ +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +*.egg-info/ +.installed.cfg +*.egg + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*,cover + +# Translations +*.mo +*.pot + +# Django stuff: +*.log + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + diff --git a/Google Similar Images-1.0.alfredworkflow b/Google Similar Images-1.0.alfredworkflow new file mode 100644 index 0000000000000000000000000000000000000000..7c4feaed7f8ad4dadaa57ce743268d3f87fd3f29 GIT binary patch literal 46148 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 L06?z!^XvZrcbvsq literal 0 HcmV?d00001 diff --git a/LICENCE.txt b/LICENCE.txt new file mode 100644 index 0000000..58a4a9d --- /dev/null +++ b/LICENCE.txt @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2015 deanishe@deanishe.net + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..12a818a --- /dev/null +++ b/README.md @@ -0,0 +1,26 @@ + +# Find Similar Images with Google Images Search # + +An [Alfred 2][alfred] workflow. + +Perform a Google Image search based on a file on your computer. + +**Insert demo here!** + +## Usage ## + +Google search supports PNG, JPG, GIF and BMP images only. This workflow +is available as a File Action for any of these filetypes in Alfred. + +There is also a Hotkey to search based on the current Finder selection. If more +than one image file is selected, on the first will be used. + + +## Licence ## + +This workflow is released under the [MIT License][mit]. + + +[alfred]: http://www.alfredapp.com/ +[mit]: ./LICENCE.txt + diff --git a/src/call_with_finder_selection.applescript b/src/call_with_finder_selection.applescript new file mode 100644 index 0000000..5e43fb0 --- /dev/null +++ b/src/call_with_finder_selection.applescript @@ -0,0 +1,39 @@ +(* + Get images in Finder selection, then call the workflow again with + the first selected image. + + If no images are selected, return an error message, which + can be passed to a Post Notification action. +*) + +-- The filetypes understood by Google Image Search +set imageExtensions to {"jpg", "jpeg", "bmp", "gif", "png"} + +-- Return list of files selected in Finder whose extensions are +-- in imageExtensions +on selectedImages() + set theImages to {} + tell application "Finder" + set theSelection to the selection + if (the count of theSelection) is greater than 0 then + repeat with theFile in theSelection + if the name extension of theFile is in my imageExtensions then + set the end of theImages to (theFile as alias) + end if + end repeat + end if + log ((the count of theImages) as text) & " image(s) selected" + end tell + return theImages +end selectedImages + +set theImages to my selectedImages() +if (count of theImages) is greater than 0 then + set theImage to item 1 of theImages + set thePath to POSIX path of theImage + + -- Use the workflow's own external trigger + tell application "Alfred 2" to run trigger "Find Similar Images" in workflow "net.deanishe.alfred-google-similar-images" with argument thePath +else + return "No images selected" +end if diff --git a/src/icon.png b/src/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..a81342533bfd9b5a34f2c3ebffa8a39c9af3dc6f GIT binary patch literal 33126 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 + + + + bundleid + net.deanishe.alfred-google-similar-images + connections + + 0FD01297-DF3A-4A79-B6D6-2C50392FA271 + + + destinationuid + 4DFF26EA-DB50-4772-A08B-0EF0773B121B + modifiers + 0 + modifiersubtext + + + + 1A6E0862-93B1-451C-9DC7-720B9060770D + + + destinationuid + AD4AC215-986C-4AD6-BF5A-AA98DB037978 + modifiers + 0 + modifiersubtext + + + + 29EB396D-C1FC-4A98-B43B-12A53499C69B + + + destinationuid + 1A6E0862-93B1-451C-9DC7-720B9060770D + modifiers + 0 + modifiersubtext + + + + destinationuid + EF252AF4-696C-4D87-B45E-6B7907B1A96E + modifiers + 0 + modifiersubtext + + + + 2ADCEE3B-932D-4E61-858E-EB48A0F0D498 + + + destinationuid + 0FD01297-DF3A-4A79-B6D6-2C50392FA271 + modifiers + 0 + modifiersubtext + + + + E5AE4A80-263D-4EB4-80AD-142B154CAEC1 + + + destinationuid + 1A6E0862-93B1-451C-9DC7-720B9060770D + modifiers + 0 + modifiersubtext + + + + destinationuid + EF252AF4-696C-4D87-B45E-6B7907B1A96E + modifiers + 0 + modifiersubtext + + + + + createdby + Dean Jackson + description + Search for images similar to the one selected in Finder + disabled + + name + Google Similar Images + objects + + + config + + acceptsmulti + + filetypes + + public.jpeg + public.png + com.compuserve.gif + com.microsoft.bmp + + name + Search for Similar Images… + + type + alfred.workflow.trigger.action + uid + E5AE4A80-263D-4EB4-80AD-142B154CAEC1 + version + 0 + + + config + + concurrently + + escaping + 102 + script + # Open the passed URL in default browser +open "{query}" + + type + 0 + + type + alfred.workflow.output.script + uid + AD4AC215-986C-4AD6-BF5A-AA98DB037978 + version + 0 + + + config + + concurrently + + escaping + 102 + script + # Pass a filepath to this script and it will print the URL +# of the corresponding page of search results +/usr/bin/python url_for_image.py "{query}" + type + 0 + + type + alfred.workflow.action.script + uid + 1A6E0862-93B1-451C-9DC7-720B9060770D + version + 0 + + + config + + triggerid + Find Similar Images + + type + alfred.workflow.trigger.external + uid + 29EB396D-C1FC-4A98-B43B-12A53499C69B + version + 0 + + + config + + lastpathcomponent + + onlyshowifquerypopulated + + output + 0 + removeextension + + sticky + + text + {query} + title + Searching for Similar Images … + + type + alfred.workflow.output.notification + uid + EF252AF4-696C-4D87-B45E-6B7907B1A96E + version + 0 + + + config + + concurrently + + escaping + 102 + script + /usr/bin/osascript ./call_with_finder_selection.applescript + + type + 0 + + type + alfred.workflow.action.script + uid + 0FD01297-DF3A-4A79-B6D6-2C50392FA271 + version + 0 + + + config + + action + 0 + argument + 0 + hotkey + 34 + hotmod + 1835008 + hotstring + I + leftcursor + + modsmode + 0 + relatedApps + + com.apple.finder + + relatedAppsMode + 1 + + type + alfred.workflow.trigger.hotkey + uid + 2ADCEE3B-932D-4E61-858E-EB48A0F0D498 + version + 1 + + + config + + lastpathcomponent + + onlyshowifquerypopulated + + output + 0 + removeextension + + sticky + + text + Google Images supports PNG, JPG, GIF and BMP files + title + No Images Selected + + type + alfred.workflow.output.notification + uid + 4DFF26EA-DB50-4772-A08B-0EF0773B121B + version + 0 + + + readme + Perform a Google Image search based on a file on your computer. + +## Usage ## + +Google search supports PNG, JPG, GIF and BMP images only. This workflow +is available as a File Action for any of these filetypes in Alfred. + +There is also a Hotkey to search based on the current Finder selection. If more +than one image file is selected, on the first will be used. + + +## Licence ## + +This workflow is released under the MIT License. + uidata + + 0FD01297-DF3A-4A79-B6D6-2C50392FA271 + + ypos + 250 + + 1A6E0862-93B1-451C-9DC7-720B9060770D + + ypos + 70 + + 29EB396D-C1FC-4A98-B43B-12A53499C69B + + ypos + 130 + + 2ADCEE3B-932D-4E61-858E-EB48A0F0D498 + + ypos + 250 + + 4DFF26EA-DB50-4772-A08B-0EF0773B121B + + ypos + 250 + + AD4AC215-986C-4AD6-BF5A-AA98DB037978 + + ypos + 10 + + E5AE4A80-263D-4EB4-80AD-142B154CAEC1 + + ypos + 10 + + EF252AF4-696C-4D87-B45E-6B7907B1A96E + + ypos + 130 + + + webaddress + + + diff --git a/src/url_for_image.py b/src/url_for_image.py new file mode 100755 index 0000000..62b674e --- /dev/null +++ b/src/url_for_image.py @@ -0,0 +1,85 @@ +#!/usr/bin/env python +# encoding: utf-8 +# +# Copyright © 2015 deanishe@deanishe.net +# +# MIT Licence. See http://opensource.org/licenses/MIT +# +# Created on 2015-04-30 +# + +""" +url_for_image.py + +Upload file to Google Image Search and return URL for results page. + +Google Image Search supports PNG, GIF, JPG and BMP files. + +The URL of the results page is printed to STDOUT. + +""" +from __future__ import print_function, unicode_literals, absolute_import + +import os +import subprocess +import sys + + +SEARCH_URL = 'https://www.google.com/searchbyimage/upload' +USER_AGENT = 'alfred-similiar-image-search 0.1 ()' +CURL = '/usr/bin/curl' + + +def similar_images_url(image_path): + """Return URL for results page for similar images. + + The request is built based on the information in this SO thread: + https://stackoverflow.com/questions/7584808/ + + """ + + redir_url = None + + cmd = [ + CURL, + '--include', # Show HTTP headers + '--silent', # Don't show progress + '--user-agent', USER_AGENT, + '--form', 'image_url=', + '--form', 'filename=', + '--form', 'h1=en', + '--form', 'bih=179', + '--form', 'biw=1600', + '--form', 'encoded_image=@{0}'.format(image_path), + SEARCH_URL, + ] + + # Encode and run command + cmd = [s.encode('utf-8') for s in cmd] + output = subprocess.check_output(cmd) + + # Extract the `Location:` header + for line in output.split('\n'): + if line.startswith('Location: '): + redir_url = line[10:] + break + + return redir_url + + +def main(args=None): + """Print URL of Google Similar Images search for image file""" + # Collect and validate script arguments + args = args or sys.argv[1:] + assert len(args) == 1, 'Usage: url_for_image.py ' + filepath = args[0].decode('utf-8') + assert os.path.exists(filepath), 'File does not exist: {}'.format(filepath) + + url = similar_images_url(filepath) + if url is None: + raise ValueError("Couldn't understand server response") + print(url, end='') + + +if __name__ == '__main__': + sys.exit(main()) diff --git a/src/version b/src/version new file mode 100644 index 0000000..d3827e7 --- /dev/null +++ b/src/version @@ -0,0 +1 @@ +1.0