wikipediagame: add "more" command showing a random image or paragraph - annna - Annna the nice friendly bot.
 (HTM) 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
 (HTM) 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])