summaryrefslogtreecommitdiffstats
path: root/games/fortune/tools
diff options
context:
space:
mode:
authorru <ru@FreeBSD.org>2005-02-07 21:15:16 +0000
committerru <ru@FreeBSD.org>2005-02-07 21:15:16 +0000
commit6b61b765738e93ee76fe4d653dd345982776dbb9 (patch)
treec4fc2ea794866ff0a2309c5e705202b5aad82a6c /games/fortune/tools
parenta75ee2a221d0243e5ba12b8643ad73c4b98b032b (diff)
downloadFreeBSD-src-6b61b765738e93ee76fe4d653dd345982776dbb9.zip
FreeBSD-src-6b61b765738e93ee76fe4d653dd345982776dbb9.tar.gz
An aggressive little script I used to trim out duplicate fortunes.
Diffstat (limited to 'games/fortune/tools')
-rw-r--r--games/fortune/tools/do_uniq.py63
1 files changed, 63 insertions, 0 deletions
diff --git a/games/fortune/tools/do_uniq.py b/games/fortune/tools/do_uniq.py
new file mode 100644
index 0000000..bea9644
--- /dev/null
+++ b/games/fortune/tools/do_uniq.py
@@ -0,0 +1,63 @@
+#!/usr/local/bin/python
+#
+# $FreeBSD$
+#
+# an aggressive little script for trimming duplicate cookies
+
+import re, sys
+
+wordlist = [
+ 'hadnot',
+ 'donot', 'hadnt',
+ 'dont', 'have', 'more', 'will', 'your',
+ 'and', 'are', 'had', 'the', 'you',
+ 'am', 'an', 'is', 'll', 've', 'we',
+ 'a', 'd', 'i', 'm', 's',
+]
+
+def hash(fortune):
+ f = fortune
+ f = f.lower()
+ f = re.sub('[\W_]', '', f)
+ for word in wordlist:
+ f = re.sub(word, '', f)
+# f = re.sub('[aeiouy]', '', f)
+# f = re.sub('[^aeiouy]', '', f)
+ f = f[:30]
+# f = f[-30:]
+ return f
+
+def edit(datfile):
+ dups = {}
+ fortunes = []
+ fortune = ""
+ for line in file(datfile):
+ if line == "%\n":
+ key = hash(fortune)
+ if not dups.has_key(key):
+ dups[key] = []
+ dups[key].append(fortune)
+ fortunes.append(fortune)
+ fortune = ""
+ else:
+ fortune += line
+ for key in dups.keys():
+ if len(dups[key]) == 1:
+ del dups[key]
+ o = file(datfile + '~', "w")
+ for fortune in fortunes:
+ key = hash(fortune)
+ if key in dups:
+ print '\n' * 50
+ for f in dups[key]:
+ if f != fortune:
+ print f, '%'
+ print fortune, '%'
+ if raw_input("Remove last fortune? ") == 'y':
+ del dups[key]
+ continue
+ o.write(fortune + "%\n")
+ o.close()
+
+assert len(sys.argv) == 2
+edit(sys.argv[1])
OpenPOWER on IntegriCloud