summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Bobov <abobov@gmail.com>2020-10-30 20:58:19 +0500
committerAnton Bobov <abobov@gmail.com>2020-10-30 20:58:19 +0500
commit5e03181459ac8f951b4cc94e25c153549f4f7cef (patch)
tree9f64e483f547bb9a041fc1aba39cd5b0fc8a7ae6
parent98fea5f02034cb1f3b83b6c4c7dae757ac4b1c1d (diff)
Add slugify, fix remind scripts.
-rwxr-xr-xgenmon-remind.sh6
-rwxr-xr-xrem2ics2
-rwxr-xr-xslugify67
3 files changed, 71 insertions, 4 deletions
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 "<img>$CAL_IMG</img>"
fi
-[ $TODAY_REMINDERS -gt 0 ] && echo "<txt> $TODAY_REMINDERS</txt>"
+[ $TODAY_REMINDERS -gt 1 ] && echo "<txt> $TODAY_REMINDERS</txt>"
echo "<click>tkremind -m -b1 </click>"
echo "<tool>"
echo "<span font_family='monospace' size='small'>"
-rem
+rem -r -f -q
echo
task rc.color=off genmon
echo "</span>"
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()