From 5e03181459ac8f951b4cc94e25c153549f4f7cef Mon Sep 17 00:00:00 2001 From: Anton Bobov Date: Fri, 30 Oct 2020 20:58:19 +0500 Subject: Add slugify, fix remind scripts. --- genmon-remind.sh | 6 ++--- rem2ics | 2 +- slugify | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 71 insertions(+), 4 deletions(-) create mode 100755 slugify diff --git a/genmon-remind.sh b/genmon-remind.sh index fd726dd..f606309 100755 --- a/genmon-remind.sh +++ b/genmon-remind.sh @@ -2,17 +2,17 @@ set -e -TODAY_REMINDERS=$(rem -r -k'echo 1' | wc -l) +TODAY_REMINDERS=$(rem -r -f -q | grep -v '^>' | wc -l) CAL_IMG="/usr/share/icons/Adwaita/scalable/mimetypes/x-office-calendar-symbolic.svg" if [ -f "$CAL_IMG" ] ; then echo "$CAL_IMG" fi -[ $TODAY_REMINDERS -gt 0 ] && echo " $TODAY_REMINDERS" +[ $TODAY_REMINDERS -gt 1 ] && echo " $TODAY_REMINDERS" echo "tkremind -m -b1 " echo "" echo "" -rem +rem -r -f -q echo task rc.color=off genmon echo "" diff --git a/rem2ics b/rem2ics index f2f5abc..8952771 100755 --- a/rem2ics +++ b/rem2ics @@ -21,7 +21,7 @@ class Event: e = self.event_json summary = e.get('body', '').replace(r'%"', '') if 'time' in e: - summary = summary[6:] + summary = summary.split(' ', 1)[1] if 'passthru' in e and 'COLOR' in e['passthru']: summary = ' '.join(summary.split(' ')[3:]) return summary diff --git a/slugify b/slugify new file mode 100755 index 0000000..26b58e0 --- /dev/null +++ b/slugify @@ -0,0 +1,67 @@ +#!/usr/bin/env python3 +import argparse +import re +import sys + +# https://en.wikipedia.org/wiki/Romanization_of_Russian +# System: Passport (2013), ICAO +TRANSLIT_RU_EN = str.maketrans({ + 'а': 'a', + 'б': 'b', + 'в': 'v', + 'г': 'g', + 'д': 'd', + 'е': 'e', + 'ё': 'e', + 'ж': 'zh', + 'з': 'z', + 'и': 'i', + 'й': 'i', + 'к': 'k', + 'л': 'l', + 'м': 'm', + 'н': 'n', + 'о': 'o', + 'п': 'p', + 'р': 'r', + 'с': 's', + 'т': 't', + 'у': 'u', + 'ф': 'f', + 'х': 'kh', + 'ц': 'ts', + 'ч': 'ch', + 'ш': 'sh', + 'щ': 'shch', + 'ъ': 'ie', + 'ы': 'y', + 'ь': None, + 'ю': 'iu', + 'я': 'ua', +}) + + +def get_names(args): + if args.words: + return args.words + return [line.rstrip() for line in sys.stdin] + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument("-t", "--translit", action='store_true', help="Transliterate Russian") + parser.add_argument("words", nargs="*", help="Words to slugify") + args = parser.parse_args() + pattern = r"[^\w\d]+" + for name in get_names(args): + slug = re.sub(pattern, "-", name) + slug = re.sub(pattern + "$", "", slug) + slug = re.sub("^" + pattern, "", slug) + slug = slug.lower() + if args.translit: + slug = slug.translate(TRANSLIT_RU_EN) + print(slug) + + +if __name__ == "__main__": + main() -- cgit v1.2.3