Exemple #1
0
def out_to_clipboard(sender):
	request = post_multipart("c.docverter.com", "/convert", list(formats.items()) + fields, files)
	buffer = io.StringIO(request)
	output = buffer.getvalue()
	clipboard.set(output)
	buffer.close()
	view.close()
	workflow.stop()
Exemple #2
0
def out_to_editor(sender):
	request = post_multipart("c.docverter.com", "/convert", list(formats.items()) + fields, files)
	buffer = io.StringIO(request)
	output = buffer.getvalue()
	editor.replace_text(0, 0, output)
	buffer.close()
	view.close()
	workflow.stop()
Exemple #3
0
def out_to_clipboard(sender):
	request = post_multipart("c.docverter.com", "/convert", formats.items() + fields, files)
	buffer = StringIO.StringIO(request)
	output = buffer.getvalue()
	clipboard.set(output)
	buffer.close()
	view.close()
	workflow.stop()
Exemple #4
0
def out_to_editor(sender):
	request = post_multipart("c.docverter.com", "/convert", formats.items() + fields, files)
	buffer = StringIO.StringIO(request)
	output = buffer.getvalue()
	editor.replace_text(0, 0, output)
	buffer.close()
	view.close()
	workflow.stop()
# I can't figure out how to grab Custom UI elements from Editorial, so I'm making this simple. I'm putting them in as text in the input to the workflow as a string, splitting them up into separate values, and using those as the variables.

import workflow

values = workflow.get_input() #value order = "find-type,find-text,replace-text,case_switch"
split_values = values.split(',')

replace_cancel = bool(split_values[4])
find_type = split_values[0]
find_text  = split_values[1]
replace_text = split_values[2]
case_switch = int(split_values[3])

if replace_cancel = True:
    workflow.stop()
else:
    
Exemple #6
0
    def request_download(self, sender):
        # Check if valid package name
        pkg = sender.text.lower()

        response = s.get(uri.format(package=pkg))

        if response.status_code == 200:
            pypi_info = response.json()
            if pkg in python2packages.keys():
                latest_release = select_build(pypi_info,
                                              build=python2packages[pkg])
            else:
                latest_release = select_latest(pypi_info, version='2.7')
                # Check package type
                package_type = latest_release.get('packagetype', None)
                # Binary distribution - C-bindings compiled
                if package_type == 'bdist_wheel':
                    console.alert('Wheel - I don\'t know what to do with this')
                # Source distribution - C-bindings not compiled yet
                elif package_type == 'sdist':
                    package_uri = latest_release.get('url', None)
                    filename = os.path.basename(package_uri)
                    extension = os.path.splitext(package_uri)[1]
                    download = s.get(package_uri, allow_redirects=True)
                    download_object = io.BytesIO(download.content)
                    # Decompress archive
                    if '.tar.gz' in filename:
                        with tarfile.open(fileobj=download_object,
                                          mode='r') as archive:
                            package_folder = re.compile(r'[^/]*?/' +
                                                        re.escape(pkg) +
                                                        r'[/$]')
                            selection = [
                                tarinfo for tarinfo in archive.getmembers()
                                if package_folder.match(tarinfo.name)
                            ]
                            base_path = selection[0].name.split('/')[0]
                            for tarinfo in selection:
                                tarinfo.name = tarinfo.name[len(base_path) +
                                                            1:]
                            archive.extractall(
                                members=selection,
                                path=os.path.expanduser(
                                    '~/Documents/site-packages'))
                        console.hud_alert('Package installed!')
                        download_object.close()
                        self.close()
                        workflow.stop()
                    elif extension == '.zip':
                        with zipfile.ZipFile(file=download_object,
                                             mode='r') as archive:
                            package_folder = re.compile(r'.*?/(' +
                                                        re.escape(pkg) +
                                                        r'(?:/.*$|$))')
                            selection = [
                                name for name in archive.namelist()
                                if package_folder.match(name)
                            ]
                            for member in selection:
                                filename = package_folder.match(member).group(
                                    1)
                                path = os.path.join(
                                    os.path.expanduser(
                                        '~/Documents/site-packages'), filename)
                                source = archive.open(member)
                                # Check if path exists
                                if not os.path.exists(os.path.dirname(path)):
                                    os.makedirs(os.path.dirname(path))
                                target = open(path, 'wb')
                                with source, target:
                                    shutil.copyfileobj(source, target)
                        console.hud_alert('Package installed!')
                        download_object.close()
                        self.close()
                        workflow.stop()
        else:
            sender.text_color = '#c7180c'
            console.hud_alert('Package not found')
#coding: utf-8

from PIL import Image, ExifTags
import photos
import workflow
import console
import editor
import os
import io
import time

timestr = time.strftime("%Y-%m-%d")

img = photos.pick_image()
if not img:
	workflow.stop()

try:
	for orientation, value in ExifTags.TAGS.items():
		if value == 'Orientation':
			break
	exif = dict(img._getexif().items())
	rot_degrees = {3: 180, 6: 270, 8: 90}.get(exif[orientation], 0)
	if rot_degrees:
		img = img.rotate(rot_degrees, expand=True)
# cases: image don't have getexif
except (AttributeError, KeyError, IndexError):
	pass

doc_path = editor.get_path()
doc_dir, fn = os.path.split(doc_path)