Skip to content

Commit 7dcd9e8

Browse files
committed
Add Keyword to change the value of the "suffix" environment variable
1 parent a12ee39 commit 7dcd9e8

File tree

10 files changed

+872
-339
lines changed

10 files changed

+872
-339
lines changed

Alfred PDF Tools.alfredworkflow

9.16 KB
Binary file not shown.

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ Optimize, encrypt and manipulate PDF files.
1010

1111
## Download and Installation
1212

13-
Download the workflow file from [GitHub releases][2] and install it by double-clicking on `Alfred PDF Tools.alfredworklow`.
13+
Download the workflow file from [GitHub releases][2] and install it by double-clicking on `Alfred.PDF.Tools.alfredworklow`.
1414

1515
## Usage
1616

@@ -37,7 +37,7 @@ This workflow relies on [PyPDF2][5] library currently maintained by [Phaseit, In
3737

3838
## License
3939

40-
**Alfred PDF Tools** code is released under the [MIT License][11].
40+
**Alfred PDF Tools** is released under the [MIT License][11].
4141

4242
[1]:http://www.alfredapp.com/
4343
[2]:https://github.com/xilopaint/alfred-pdf-tools/releases/latest

src/alfred_pdf_tools.py

Lines changed: 38 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,14 @@
1212
alfred_pdf_tools.py --encrypt <query>
1313
alfred_pdf_tools.py --decrypt <query>
1414
alfred_pdf_tools.py --mrg <query>
15-
alfred_pdf_tools.py --mrgtrash <query>
16-
alfred_pdf_tools.py --splitcount <query>
17-
alfred_pdf_tools.py --splitsize <query>
18-
alfred_pdf_tools.py --slicemulti <query>
19-
alfred_pdf_tools.py --slicesingle <query>
15+
alfred_pdf_tools.py --mrg-trash <query>
16+
alfred_pdf_tools.py --split-count <query>
17+
alfred_pdf_tools.py --split-size <query>
18+
alfred_pdf_tools.py --slice-multi <query>
19+
alfred_pdf_tools.py --slice-single <query>
2020
alfred_pdf_tools.py --crop <query>
2121
alfred_pdf_tools.py --scale <query>
22+
alfred_pdf_tools.py --suffix <query>
2223
2324
Optimize, encrypt and manipulate PDF files.
2425
@@ -28,20 +29,21 @@
2829
--encrypt <query> Encrypt PDF files.
2930
--decrypt <query> Decrypt PDF files.
3031
--mrg <query> Merge PDF files.
31-
--mrgtrash <query> Merge PDF files and move them to trash.
32-
--splitcount <query> Split PDF file by page count.
33-
--splitsize <query> Split PDF file by file size.
34-
--slicemulti <query> Multi-slice PDF files.
35-
--slicesingle <query> Single-slice PDF files.
32+
--mrg-trash <query> Merge PDF files and move them to trash.
33+
--split-count <query> Split PDF file by page count.
34+
--split-size <query> Split PDF file by file size.
35+
--slice-multi <query> Multi-slice PDF files.
36+
--slice-single <query> Single-slice PDF files.
3637
--crop Crop two-column pages.
3738
--scale <query> Scale PDF files to a given page size.
39+
--suffix <query> Set new value to the "suffix" environment variable.
3840
"""
3941

4042
from __future__ import division
4143
import sys
4244
import os
4345
from docopt import docopt
44-
from workflow import Workflow3, notify, ICON_WARNING
46+
from workflow import Workflow3, notify, util, ICON_WARNING
4547
from subprocess import Popen, PIPE
4648
from PyPDF2 import PdfFileMerger, PdfFileReader, PdfFileWriter, PdfReadError
4749
from PyPDF2.pdf import PageObject
@@ -104,6 +106,10 @@ class StartValueReverseError(AlfredPdfToolsError):
104106
pass
105107

106108

109+
class SuffixNotSetError(AlfredPdfToolsError):
110+
"""Raised when the PDF files suffix cannot be set."""
111+
112+
107113
def optimize(query, pdfs):
108114
"""Optimize PDF files."""
109115
try:
@@ -712,7 +718,7 @@ def crop(pdfs):
712718

713719

714720
def scale(query, pdfs):
715-
"""Scale PDF files to the given page size."""
721+
"""Scale PDF files to a given page size."""
716722
try:
717723
for pdf in pdfs:
718724
reader = PdfFileReader(pdf, strict=False)
@@ -754,6 +760,18 @@ def scale(query, pdfs):
754760
'Cannot scale a malformed PDF file.')
755761

756762

763+
def set_suffix(query):
764+
"""Set new value to the suffix environment variable."""
765+
try:
766+
util.set_config('suffix', query, exportable=True)
767+
notify.notify('Alfred PDF Tools',
768+
'Suffix set to "{}".'.format(query))
769+
770+
except SuffixNotSetError:
771+
notify.notify('Alfred PDF Tools',
772+
'An error occurred while setting the suffix.')
773+
774+
757775
def main(wf):
758776
"""Run workflow."""
759777
args = docopt(__doc__)
@@ -777,19 +795,19 @@ def main(wf):
777795
elif args.get('--mrg'):
778796
merge(query, pdfs, False)
779797

780-
elif args.get('--mrgtrash'):
798+
elif args.get('--mrg-trash'):
781799
merge(query, pdfs, True)
782800

783-
elif args.get('--splitcount'):
801+
elif args.get('--split-count'):
784802
split_count(query, abs_path, suffix)
785803

786-
elif args.get('--splitsize'):
804+
elif args.get('--split-size'):
787805
split_size(query, abs_path, suffix)
788806

789-
elif args.get('--slicemulti'):
807+
elif args.get('--slice-multi'):
790808
slice_(query, abs_path, False, suffix)
791809

792-
elif args.get('--slicesingle'):
810+
elif args.get('--slice-single'):
793811
slice_(query, abs_path, True, suffix)
794812

795813
elif args.get('--crop'):
@@ -798,6 +816,9 @@ def main(wf):
798816
elif args.get('--scale'):
799817
scale(query, pdfs)
800818

819+
elif args.get('--suffix'):
820+
set_suffix(query)
821+
801822
if wf.update_available:
802823
notify.notify('Alfred PDF Tools',
803824
'A newer version of the workflow is available.',

src/info.plist

Lines changed: 86 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -363,6 +363,19 @@
363363
</array>
364364
<key>CF8EFD70-FC46-46DA-85B7-5C40E39C3722</key>
365365
<array/>
366+
<key>D162397F-EFFF-465B-B5BE-6689A3534350</key>
367+
<array>
368+
<dict>
369+
<key>destinationuid</key>
370+
<string>CF91AA6D-E5DC-425C-88A9-183B8E01444B</string>
371+
<key>modifiers</key>
372+
<integer>0</integer>
373+
<key>modifiersubtext</key>
374+
<string></string>
375+
<key>vitoclose</key>
376+
<false/>
377+
</dict>
378+
</array>
366379
<key>D22080C6-09B9-404B-95A0-574ECE1E10F5</key>
367380
<array>
368381
<dict>
@@ -799,7 +812,7 @@ python alfred_pdf_tools.py --progress "{query}"</string>
799812
<key>escaping</key>
800813
<integer>102</integer>
801814
<key>script</key>
802-
<string>python alfred_pdf_tools.py --mrgtrash "{query}"</string>
815+
<string>python alfred_pdf_tools.py --mrg-trash "{query}"</string>
803816
<key>scriptargtype</key>
804817
<integer>0</integer>
805818
<key>scriptfile</key>
@@ -822,7 +835,7 @@ python alfred_pdf_tools.py --progress "{query}"</string>
822835
<key>escaping</key>
823836
<integer>102</integer>
824837
<key>script</key>
825-
<string>python alfred_pdf_tools.py --splitcount "{query}"</string>
838+
<string>python alfred_pdf_tools.py --split-count "{query}"</string>
826839
<key>scriptargtype</key>
827840
<integer>0</integer>
828841
<key>scriptfile</key>
@@ -939,7 +952,7 @@ python alfred_pdf_tools.py --progress "{query}"</string>
939952
<key>escaping</key>
940953
<integer>102</integer>
941954
<key>script</key>
942-
<string>python alfred_pdf_tools.py --splitsize "{query}"</string>
955+
<string>python alfred_pdf_tools.py --split-size "{query}"</string>
943956
<key>scriptargtype</key>
944957
<integer>0</integer>
945958
<key>scriptfile</key>
@@ -980,7 +993,7 @@ python alfred_pdf_tools.py --progress "{query}"</string>
980993
<key>escaping</key>
981994
<integer>102</integer>
982995
<key>script</key>
983-
<string>python alfred_pdf_tools.py --slicemulti "{query}"</string>
996+
<string>python alfred_pdf_tools.py --slice-multi "{query}"</string>
984997
<key>scriptargtype</key>
985998
<integer>0</integer>
986999
<key>scriptfile</key>
@@ -1059,7 +1072,7 @@ python alfred_pdf_tools.py --progress "{query}"</string>
10591072
<key>escaping</key>
10601073
<integer>102</integer>
10611074
<key>script</key>
1062-
<string>python alfred_pdf_tools.py --slicesingle "{query}"</string>
1075+
<string>python alfred_pdf_tools.py --slice-single "{query}"</string>
10631076
<key>scriptargtype</key>
10641077
<integer>0</integer>
10651078
<key>scriptfile</key>
@@ -1275,6 +1288,51 @@ python alfred_pdf_tools.py --progress "{query}"</string>
12751288
<key>version</key>
12761289
<integer>1</integer>
12771290
</dict>
1291+
<dict>
1292+
<key>config</key>
1293+
<dict>
1294+
<key>concurrently</key>
1295+
<false/>
1296+
<key>escaping</key>
1297+
<integer>102</integer>
1298+
<key>script</key>
1299+
<string>export abs_path=""
1300+
python alfred_pdf_tools.py --suffix "{query}"</string>
1301+
<key>scriptargtype</key>
1302+
<integer>0</integer>
1303+
<key>scriptfile</key>
1304+
<string></string>
1305+
<key>type</key>
1306+
<integer>0</integer>
1307+
</dict>
1308+
<key>type</key>
1309+
<string>alfred.workflow.action.script</string>
1310+
<key>uid</key>
1311+
<string>CF91AA6D-E5DC-425C-88A9-183B8E01444B</string>
1312+
<key>version</key>
1313+
<integer>2</integer>
1314+
</dict>
1315+
<dict>
1316+
<key>config</key>
1317+
<dict>
1318+
<key>argumenttype</key>
1319+
<integer>0</integer>
1320+
<key>keyword</key>
1321+
<string>suffix</string>
1322+
<key>subtext</key>
1323+
<string>eg. "part"</string>
1324+
<key>text</key>
1325+
<string>Set a new value to the "suffix" environment variable.</string>
1326+
<key>withspace</key>
1327+
<true/>
1328+
</dict>
1329+
<key>type</key>
1330+
<string>alfred.workflow.input.keyword</string>
1331+
<key>uid</key>
1332+
<string>D162397F-EFFF-465B-B5BE-6689A3534350</string>
1333+
<key>version</key>
1334+
<integer>1</integer>
1335+
</dict>
12781336
</array>
12791337
<key>readme</key>
12801338
<string># Alfred PDF Tools
@@ -1287,7 +1345,7 @@ Optimize, encrypt and manipulate PDF files.
12871345
12881346
## Download and Installation
12891347
1290-
Download the workflow file from [GitHub releases][2] and install it by double-clicking on `Alfred PDF Tools.alfredworklow`.
1348+
Download the workflow file from [GitHub releases][2] and install it by double-clicking on `Alfred.PDF.Tools.alfredworklow`.
12911349
12921350
## Usage
12931351
@@ -1684,6 +1742,26 @@ This workflow relies on [PyPDF2][5] library currently maintained by [Phaseit, In
16841742
<key>ypos</key>
16851743
<integer>540</integer>
16861744
</dict>
1745+
<key>CF91AA6D-E5DC-425C-88A9-183B8E01444B</key>
1746+
<dict>
1747+
<key>colorindex</key>
1748+
<integer>9</integer>
1749+
<key>note</key>
1750+
<string>Set Suffix</string>
1751+
<key>xpos</key>
1752+
<integer>480</integer>
1753+
<key>ypos</key>
1754+
<integer>1670</integer>
1755+
</dict>
1756+
<key>D162397F-EFFF-465B-B5BE-6689A3534350</key>
1757+
<dict>
1758+
<key>colorindex</key>
1759+
<integer>9</integer>
1760+
<key>xpos</key>
1761+
<integer>40</integer>
1762+
<key>ypos</key>
1763+
<integer>1670</integer>
1764+
</dict>
16871765
<key>D22080C6-09B9-404B-95A0-574ECE1E10F5</key>
16881766
<dict>
16891767
<key>colorindex</key>
@@ -1724,10 +1802,10 @@ This workflow relies on [PyPDF2][5] library currently maintained by [Phaseit, In
17241802
<key>variables</key>
17251803
<dict>
17261804
<key>suffix</key>
1727-
<string>part</string>
1805+
<string>parte</string>
17281806
</dict>
17291807
<key>version</key>
1730-
<string>2.14</string>
1808+
<string>2.15</string>
17311809
<key>webaddress</key>
17321810
<string>https://github.com/xilopaint/alfred-pdf-tools</string>
17331811
</dict>

0 commit comments

Comments
 (0)