wikipediagame: add "more" command showing a random image or paragraph - annna - Annna the nice friendly bot. HTML git clone git://bitreich.org/annna/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/annna/ DIR Log DIR Files DIR Refs DIR Tags DIR README --- DIR commit 87f7c24dce07d352911c3671b5f3a91d60b78d4e DIR parent 035181bd0f74004cb59a29f7b24fd57584a998aa HTML Author: Anders Damsgaard <anders@adamsgaard.dk> Date: Sat, 15 Apr 2023 10:02:55 +0200 wikipediagame: add "more" command showing a random image or paragraph Signed-off-by: Annna Robert-Houdin <annna@bitreich.org> Diffstat: M wikipediagame | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) --- DIR diff --git a/wikipediagame b/wikipediagame @@ -2,7 +2,7 @@ # coding=utf-8 # # Idea from: https://github.com/izabera/izabot/blob/master/cus_lib.py#L89 -# +# import os import sys @@ -17,6 +17,12 @@ def usage(app): print("usage: %s [-h] cmd" % (app), file=sys.stderr) sys.exit(1) +def concealtitle(s, title): + splittitle = title.replace(",", " ").replace("-", " ") + for titlepart in splittitle.split(): + s = s.replace(titlepart, "*" * len(titlepart)) + return s + def main(args): try: opts, largs = getopt.getopt(args[1:], "h") @@ -83,13 +89,8 @@ def main(args): printsummary = 1 if printsummary == 1: - summary = w.summary(title).\ - replace("\n", " ") - splittitle = title.replace(",", " ").\ - replace("-", " ") - for titlepart in splittitle.split(): - summary = summary.replace(titlepart, "*" * len(titlepart)) - print(summary) + summary = w.summary(title).replace("\n", " ") + print(concealtitle(summary, title)) if os.path.exists(hintpath): hintfd = open(hintpath, "r") @@ -110,7 +111,17 @@ def main(args): hintfd = open(hintpath, "w+") json.dump(hintsize, hintfd) hintfd.close() - + + if cmd == "more": + wpage = w.page(title) + images = [item for item in wpage.images if item.find('/commons/')] + if len(images) > 0 and random.random() < 0.5: + print(random.choice(images)) + else: + paragraphs = wpage.content.split('\n') + paragraph = random.choice([item for item in paragraphs if len(item) > 5 and item[0] != '=']) + print(concealtitle(paragraph, title)) + if cmd == "guess": if len(largs) < 2: usage(args[0])