diff --git a/main.py b/main.py new file mode 100644 index 0000000..8c933bc --- /dev/null +++ b/main.py @@ -0,0 +1,50 @@ +from urllib.request import urlopen +from json import load, dump +from os.path import expanduser +from os import mkdir +from random import choice +from time import time_ns + +posted_path = expanduser("~/.binkbot.sent") +bink = expanduser("~/.bink") + +try: + mkdir(bink) +except FileExistsError: + pass + +try: + with open(posted_path, "r") as f: + posted = load(f) +except FileNotFoundError: + posted = [] + with open(posted_path, "w") as f: + dump(posted, f) + +all_photos = load(urlopen("https://helixnebula.space/photos.json")) + +photos = [ + (placecode, filename) + for placecode, place in all_photos.items() + for filename in place["photos"] +] + +def in_posted(obj): + return obj not in posted + +filtered = [photo for photo in filter(in_posted, photos)] + +if not filtered: + posted = [] +else: + photos = filtered + +random_photo = choice(photos) +posted.append(random_photo) +with open(posted_path, "w") as f: + dump(posted, f) + +with open(f"{bink}/{time_ns()}", "w") as f: + post = f"""daily random photo from ~nebula: +https://helixnebula.space/{random_photo[0]}/{random_photo[1]}""" + f.write(post) \ No newline at end of file