import chain import sys import requests import json import os import secrets__ import config__ dir_path = os.path.dirname(os.path.realpath(__file__)) # Import previous post log log_path = dir_path + "/posts_log.json" try: with open(log_path, "r") as infile: posts_log = json.loads(infile.read()) except FileNotFoundError: with open(log_path, "w") as outfile: outfile.write('[""]') posts_log = [] # Import Markov model with open(dir_path + "/" + config__.model_file) as model_f: model = chain.Text.from_json(model_f.read()) # Generate sentence generated = False text = None while not generated: text = model.make_short_sentence(config__.character_limit, tries=900, min_words=3) generated = text is not None if generated: if text in posts_log: generated = False # Output posts_log.append(text) with open(log_path, "w") as outfile: outfile.write(json.dumps(posts_log[-config__.log_length:])) text = text.replace('@','@​').replace('#','#​') print(text) # Post to instance apicreate = "https://" + config__.instance_url + "/api/notes/create" if(config__.cw == ""): requests.post(apicreate, json={ 'i': secrets__.TOKEN, 'visibility': 'home', 'noExtractMentions': True, 'noExtractHashtags': True, 'text': text, }) else: requests.post(apicreate, json={ 'i': secrets__.TOKEN, 'visibility': 'home', 'noExtractMentions': True, 'noExtractHashtags': True, 'text': text, 'cw': config__.cw })