import argparse import json import sys import requests import config def list_projects(api_key, project_name): """Lists all projects to find if project exists""" data = { "api_token": api_key, } response = requests.post(url=config.POEDITOR_API_URL + "projects/list", data=data) response = json.loads(response.text) projects = response["result"]["projects"] for project in projects: if project_name in project["name"]: project_id = project["id"] return project_id def add_project(api_key, project_name): """Create POEditor Project""" data = {"api_token": api_key, "name": project_name} print("Creating project...") response = requests.post(url=config.POEDITOR_API_URL + "projects/add", data=data) response = json.loads(response.text) project_id = response["result"]["project"]["id"] print( response["response"]["message"] + " The ID for this project is " + str(project_id) ) return project_id def add_languages(api_key, project_id): """Add default languages for a POEditor Project""" languages = config.LANGUAGES print("Adding languages to project...") for language in languages: data = {"api_token": api_key, "id": project_id, "language": language} response = requests.post( url=config.POEDITOR_API_URL + "languages/add", data=data ) response = json.loads(response.text) print(response["response"]["message"]) print("All languages have been added to the project") def add_term(api_key, project_id): """Adds dummy term (requirement for frontend deployment step)""" data = {"api_token": api_key, "id": project_id, "data": '[{"term":"foo"}]'} requests.post(url=config.POEDITOR_API_URL + "terms/add", data=data) def main(): """Main entrypoint""" parser = argparse.ArgumentParser() parser.add_argument( "-a", "--api-key", required=True, help="Specify poeditor api key to create projects", ) parser.add_argument( "-p", "--project-name", required=True, help="Name of poeditor project" ) args = parser.parse_args() try: project_id = list_projects(args.api_key, args.project_name) if project_id: raise NameError except NameError: print( "Error: Project already exists. The project id for " + args.project_name + " is " + str(project_id) + "." ) sys.exit(1) project_id = add_project(args.api_key, args.project_name) add_term(args.api_key, project_id) add_languages(args.api_key, project_id) if __name__ == "__main__": main()