diff --git a/generator.py b/generator.py new file mode 100644 index 0000000..2158111 --- /dev/null +++ b/generator.py @@ -0,0 +1,37 @@ +import json +import urllib.request +import os +import shutil + + +projects = { + 'queues': 'tasks.proto' +} + + +try: + shutil.rmtree('schemas') +except: + pass + +try: + os.mkdir('schemas') +except: + pass + +for project in projects: + response = urllib.request.urlopen(f'https://platform.sprinthub.ru/schemas/get?project={project}').read() + data = json.loads(response) + os.mkdir(f'schemas/{project}') +for key, value in data.items(): + with open(f'schemas/{project}/{key}', 'w+') as fp: + fp.write(value) + + +for key, value in projects.items(): + os.system(f'python -m grpc_tools.protoc --proto_path schemas --python_out=. --pyi_out=. --grpc_python_out=. ./schemas/{key}/{value}') + +try: + shutil.rmtree('schemas') +except: + pass diff --git a/web/urls.py b/web/urls.py index 65b1c08..bb7b81d 100644 --- a/web/urls.py +++ b/web/urls.py @@ -15,4 +15,5 @@ urlpatterns = [ path(*YandexAuthView.as_path()), path('is_staff', is_staff), path('fetch', fetch), + path('generator', generator), ] diff --git a/web/views/__init__.py b/web/views/__init__.py index 24e639d..7b3a81f 100644 --- a/web/views/__init__.py +++ b/web/views/__init__.py @@ -9,3 +9,4 @@ from .vk_auth import VKAuthView from .yandex_auth import YandexAuthView from .is_staff import is_staff from .fetch import fetch +from .generator import generator diff --git a/web/views/generator.py b/web/views/generator.py new file mode 100644 index 0000000..982f881 --- /dev/null +++ b/web/views/generator.py @@ -0,0 +1,5 @@ +from django.http import HttpResponse + + +def generator(request): + return HttpResponse(open('generator.py', 'rb').read())