diff options
Diffstat (limited to 'config/vim/plugin/pickachu/processors.py')
-rw-r--r-- | config/vim/plugin/pickachu/processors.py | 80 |
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 |