summaryrefslogtreecommitdiff
path: root/config/vim/plugin/pickachu/processors.py
diff options
context:
space:
mode:
Diffstat (limited to 'config/vim/plugin/pickachu/processors.py')
-rw-r--r--config/vim/plugin/pickachu/processors.py80
1 files changed, 80 insertions, 0 deletions
diff --git a/config/vim/plugin/pickachu/processors.py b/config/vim/plugin/pickachu/processors.py
new file mode 100644
index 0000000..0fe04c1
--- /dev/null
+++ b/config/vim/plugin/pickachu/processors.py
@@ -0,0 +1,80 @@
+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