import flask, random, datetime, json from flask import request, jsonify import sqlite3 app = flask.Flask(__name__, static_url_path='', static_folder='static') app.config["DEBUG"] = True availableWords = open('static/files/RNN_EditedText.txt', 'r', encoding='utf8') wordList = availableWords.read() wordList = wordList.split() seedText = "not for self but for all" seedTextList = seedText.split() from removed_words import delWords for word in wordList: for delword in delWords: if word == delword: wordList.remove(word) from refused_words import refWords from refusal_messages import refusal_messages def build_error_one(): refusalOne = 'Your motto request is refused. REFUSAL 400: ' + random.choice(refusal_messages) return(refusalOne) def build_error_two(): refusalTwo = 'Your motto request is refused. REFUSAL 401: ' + random.choice(refusal_messages) return(refusalTwo) def build_error_three(): refusalThree = 'Your motto request is refused. REFUSAL 402: ' + random.choice(refusal_messages) return(refusalThree) # Generating a dict that will be used for the phrases when called upon toChooseFrom = {} def build_word_dict(): for i in range(len(seedTextList)): # Current word in the seed phrase current = seedTextList[i] # Going through the letters in the above word for y in range(len(current)): charNeeded = current[y] for item in wordList: if (len(item)-1) >= y: addKey = str(y) + item[y] if addKey not in toChooseFrom.keys(): toChooseFrom[addKey] = [] toChooseFrom[addKey].append(item) else: toChooseFrom[addKey].append(item) build_word_dict() # Example json file # slogans = { # 'description' : 'Description here...', # 'source' : 'git url?', # 'data' : [ # {'generated_motto': "not no but fore possible particular southerner being all different be outside not find to our art black culture", # 'timestamp': 'date here', # 'organization':'tm', # 'seedtext':'not for self but for all'}, # {'generated_motto': "not non-European not future body her sharing feel all fulfilled bring muse not face force World art black culture", # 'timestamp': 'date here', # 'organization':'tm', # 'seedtext':'not for self but for all'}, # {'generated_motto': "neither contracts hate face coals words seriously become relationship different bourgeois turning attach feminists work participate about flirty fall", # 'timestamp': 'date here', # 'organization': 'tm', # 'seedtext':'not for self but for all'}, # {'refusal_code': "401", # 'refusal_message': "new desires, new modes of gender, and new struggles are breaking open", # 'timestamp': 'date here', # 'organization': 'tm', # 'seedtext':'not for self but for all'} # ] # } with open('static/files/slogans.json', 'r', encoding='utf8') as sloganjson: slogans = json.load(sloganjson) # slogans['data'].append( # {'refusal_code': "401", # 'refusal_message': "new desires, new modes of gender, and new struggles are breaking open", # 'timestamp': 'date here', # 'oganization': 'tm', # 'seedtext':'not for self but for all' # } # ) # with open('static/files/slogans.json', 'w', encoding='utf8') as sloganjson: # json.dump(slogans, sloganjson) @app.route('/', methods=['GET']) def home(): return '''

Queer API

A prototype API.

''' @app.route('/queermottoAPI/r1/refusal', methods=['GET']) def api_args(): buildDictElem = {} buildDictElem['seedtext'] = 'not for self but for all' moment = datetime.datetime.now() buildDictElem['timestamp'] = moment.__str__() org = str(request.args['org']) # buildDictElem['org']= org count = 0 if count < 40: # Check if an ID was provided as part of the URL. # If ID is provided, assign it to a variable. # If no ID is provided, display an error in the browser. if 'rq' in request.args: rqstr = str(request.args['rq']) if rqstr == "generate": api_phrase_str = '' for i in range(len(seedTextList)): # Current word in the seed phrase current = seedTextList[i] # Going through the letters in the above word api_phrase = [] for y in range(len(current)): testKey = str(y) + current[y] # print(current[y],random.choice(toChooseFrom[testKey])) api_phrase.append(random.choice(toChooseFrom[testKey])) api_phrase_str_word = ' '.join(api_phrase) api_phrase_str = api_phrase_str + '\\n' + api_phrase_str_word api_phrase_str_word = '' api_phrase_str = api_phrase_str[2:] print(api_phrase_str) for elem in refWords: if elem in api_phrase: count +=1 return jsonify(build_error_one()) # Check the date moment = datetime.datetime.now() if (moment.month==3 and moment.day==8) or (moment.month==5 and moment.day==1) or (moment.month==7 and moment.day==20): count +=1 return jsonify(build_error_three()) count +=1 return jsonify(api_phrase_str) elif rqstr == "all_log": count +=1 return jsonify(slogans) elif rqstr == "success_log": success_slogans = [] for call in slogans: if "refusal_code" not in call.keys(): success_slogans.append(call) count +=1 return jsonify(success_slogans) else: count +=1 return jsonify(build_error_two()) else: count = 0 buildDictElem['refusal_code'] = 402 buildDictElem['refusal_message'] = build_error_three() slogans['data'].append(buildDictElem) with open('static/files/slogans.json', 'w', encoding='utf8') as sloganjson: json.dump(slogans, sloganjson) return jsonify(buildDictElem['refusal_message']) @app.errorhandler(400) def page_not_found(e): return jsonify(build_error_two()) @app.errorhandler(404) def page_not_found(e): return jsonify(build_error_two()) # app.run()