Skip to content

Commit

Permalink
Add new UUID convertor.
Browse files Browse the repository at this point in the history
  • Loading branch information
Dozer committed May 16, 2017
1 parent a2a17d8 commit e2c25a6
Show file tree
Hide file tree
Showing 6 changed files with 114 additions and 29 deletions.
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,11 +36,12 @@ Thanks to [Alfred-Workflow](https://github.com/deanishe/alfred-workflow)
* MD5
* Base64
* ASCII
* DateTime: Timestamp to DateTime, DateTime to Timestamp
* DateTime: Now, Timestamp to DateTime, DateTime to Timestamp
* Html: Encode, Decode
* JavaScript: JavaScript encodeURI, encodeURIComponent, decode
* SHA: SHA1, SHA223, SHA256, SHA384, SHA512
* Number: Dec, Bin, Oct, Hex
* UUID: New UUID, Remove dash in UUID, Format UUID with dash

 

Expand Down
25 changes: 14 additions & 11 deletions hasher.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,10 @@
from model.md5 import MD5
from model.number import Number
from model.sha import SHA
from model.the_uuid import TheUUID
from workflow import Workflow, ICON_INFO

__version__ = "1.2.5"
__version__ = "1.2.6"


class Hasher:
Expand All @@ -32,7 +33,8 @@ def __init__(self, wf):
Javascript(),
SHA(),
Number(),
ASCII()
ASCII(),
TheUUID()
]
self.modelDict = dict()
self.max_age = 60 * 60 * 24 * 365
Expand Down Expand Up @@ -61,15 +63,16 @@ def convert_all(self, query):

def convert_by_type(self, query):
query = str(query).strip()
if query.find(' ') == -1:
return []

group = query.split(' ', 1)
type_value = group[0]
input_value = group[1]

if type_value in self.modelDict:
return self.modelDict[type_value].convert(input_value)
if " " not in query:
if query in self.modelDict:
return self.modelDict[query].convert("")
else:
group = query.split(' ', 1)
type_value = group[0]
input_value = group[1]

if type_value in self.modelDict:
return self.modelDict[type_value].convert(input_value)

def autocomplete(self, query):
result = []
Expand Down
Binary file added icons/uuid.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,7 @@
</dict>
</dict>
<key>version</key>
<string>1.2.5</string>
<string>1.2.6</string>
<key>webaddress</key>
<string>https://github.com/dozer47528/alfred2-hasher</string>
</dict>
Expand Down
62 changes: 46 additions & 16 deletions model/date_time.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import re
import time
from datetime import datetime

from dateutil.parser import parse
Expand All @@ -18,41 +19,70 @@ def totimestamp(self, dt, epoch=datetime(1970, 1, 1)):
def convert(self, query):
result = []

if re.search('^\d+(\.\d?)?$', query):
timestamp = float(query)
local_datetime = datetime.fromtimestamp(timestamp)
utc_datetime = datetime.utcfromtimestamp(timestamp)
if not query:
now = int(time.time())
local_datetime = datetime.fromtimestamp(now)
utc_datetime = datetime.utcfromtimestamp(now)

result += [
Item(
title=u'TimeStamp to DateTime(Local)' + ': ' + query,
title=u'Timestamp',
subtitle=str(now),
arg=self.name + u'-now-timestamp:' + str(now),
valid=True,
icon=self.icon_path()
),
Item(
title=u'Local Datetime',
subtitle=str(local_datetime),
arg=self.name + u'-timestamp-to-datetime-local:' + str(local_datetime),
arg=self.name + u'-now-datetime-local:' + str(local_datetime),
valid=True,
icon=self.icon_path()
),
Item(
title=u'TimeStamp to DateTime(UTC)' + ': ' + query,
title=u'UTC Datetime',
subtitle=str(utc_datetime),
arg=self.name + u'-timestamp-to-datetime-utc:' + str(utc_datetime),
arg=self.name + u'-now-datetime--utc:' + str(utc_datetime),
valid=True,
icon=self.icon_path()
)
]
else:
try:
time = parse(query)
convert_result = str(self.totimestamp(time))
if re.search('^\d+(\.\d?)?$', query):
timestamp = float(query)
local_datetime = datetime.fromtimestamp(timestamp)
utc_datetime = datetime.utcfromtimestamp(timestamp)

result += [
Item(
title=u'TimeStamp to DateTime to TimeStamp' + ': ' + query,
subtitle=convert_result,
arg=self.name + u'-datetime-to-timestamp:' + convert_result,
title=u'TimeStamp to DateTime(Local)' + ': ' + query,
subtitle=str(local_datetime),
arg=self.name + u'-timestamp-to-datetime-local:' + str(local_datetime),
valid=True,
icon=self.icon_path()
),
Item(
title=u'TimeStamp to DateTime(UTC)' + ': ' + query,
subtitle=str(utc_datetime),
arg=self.name + u'-timestamp-to-datetime-utc:' + str(utc_datetime),
valid=True,
icon=self.icon_path()
)
]
except:
pass
else:
try:
parsed_datetime = parse(query)
convert_result = str(self.totimestamp(parsed_datetime))
result += [
Item(
title=u'TimeStamp to DateTime to TimeStamp' + ': ' + query,
subtitle=convert_result,
arg=self.name + u'-datetime-to-timestamp:' + convert_result,
valid=True,
icon=self.icon_path()
)
]
except:
pass

return result
51 changes: 51 additions & 0 deletions model/the_uuid.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
import uuid

from model.base_model import BaseModel
from workflow.workflow import Item


class TheUUID(BaseModel):
def __init__(self):
self.name = u'uuid'
self.desc = u'UUID Converter'

def convert(self, query):
result = []

if not query:
new_uuid = str(uuid.uuid4())
result += [
Item(
title=u'New UUID',
subtitle=new_uuid,
arg=self.name + u'-uuid4:' + new_uuid,
valid=True,
icon=self.icon_path()
)
]
else:
if "-" in query:
no_dash_uuid = query.replace('-', '')
result += [
Item(
title=u'UUID without dash',
subtitle=no_dash_uuid,
arg=self.name + u'-uuid-without-dash:' + no_dash_uuid,
valid=True,
icon=self.icon_path()
)
]

if "-" not in query and len(query) == 32:
formatted_uuid = "%s-%s-%s-%s-%s" % (query[0:8], query[8:12], query[12:16], query[16:20], query[20:])
result += [
Item(
title=u'Formatted UUID',
subtitle=formatted_uuid,
arg=self.name + u'-formatted-uuid:' + formatted_uuid,
valid=True,
icon=self.icon_path()
)
]

return result

0 comments on commit e2c25a6

Please sign in to comment.