mirror of
https://git.davidovski.xyz/dot.git
synced 2024-08-15 00:43:28 +00:00
80 lines
2.3 KiB
Python
80 lines
2.3 KiB
Python
import vim
|
|
from datetime import datetime
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# name: processors.py
|
|
# description: this file contains functions that process data
|
|
# from the runapp function (in app.py).
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
|
|
DEFAULT_DATE_FORMAT = vim.eval("g:pickachu_default_date_format")
|
|
DEFAULT_COLOR_FORMAT = vim.eval("g:pickachu_default_color_format")
|
|
|
|
def dateProcessor(input, format=DEFAULT_DATE_FORMAT):
|
|
try:
|
|
dateObj = datetime.strptime(input, '%m/%d/%Y')
|
|
except(ValueError):
|
|
dateObj = datetime.strptime(input, '%m/%d/%y')
|
|
return dateObj.strftime(format)
|
|
|
|
def colorProcessor(input, format=DEFAULT_COLOR_FORMAT):
|
|
# The system color picker returned an rgba value
|
|
if 'rgba' in input:
|
|
strip = input.strip('rgba)(')
|
|
array = strip.split(',')
|
|
# Round the alpha value to two decimal placed
|
|
array[3] = round(float(array[3]), 2)
|
|
rgba_string = "rgba("
|
|
values = ",".join(str(x) for x in array)
|
|
rgba_string += values + ")"
|
|
return rgba_string
|
|
# The system color picker returned an rgb value
|
|
elif 'rgb' in input:
|
|
# RGB as input
|
|
if format == 'rgb':
|
|
return input
|
|
else:
|
|
# Strip 'rgb' and parenthesis
|
|
strip = input.strip('rgb)(')
|
|
array = strip.split(',')
|
|
|
|
if format == 'hex':
|
|
hex = '#%02x%02x%02x' % (int(array[0]), int(array[1]), int(array[2]))
|
|
return hex.upper()
|
|
elif format == 'rgba':
|
|
rgba_string = "rgba("
|
|
array.append(1)
|
|
values = ",".join(str(x) for x in array)
|
|
rgba_string += values + ")"
|
|
return rgba_string
|
|
return array
|
|
# The system olor picker returned a hex
|
|
elif '#' in input:
|
|
# If there is a '#' in input,
|
|
# they are most likely using Qarma instead of Zenity
|
|
# or any other program that outputs hex
|
|
if format == 'hex':
|
|
return input
|
|
else:
|
|
hex = input.lstrip('#')
|
|
rgb_array = tuple(int(hex[i:i+2], 16) for i in (0, 2 ,4))
|
|
|
|
if format == 'rgb':
|
|
rgb_string = "rgb("
|
|
for i in range(0, len(rgb_array)):
|
|
rgb_string += str(rgb_array[i])
|
|
if i < len(rgb_array) - 1:
|
|
rgb_string += ", "
|
|
else:
|
|
rgb_string += ")"
|
|
return rgb_string
|
|
elif format == 'rgba':
|
|
rgba_string = "rgba("
|
|
for i in range(0, len(rgb_array)):
|
|
rgba_string += str(rgb_array[i])
|
|
if i < len(rgb_array) - 1:
|
|
rgba_string += ", "
|
|
else:
|
|
rgba_string += ", 1)"
|
|
return rgba_string
|
|
return None
|