diff --git a/gui/gui.py b/gui/gui.py index 7776808..9f5fb6c 100644 --- a/gui/gui.py +++ b/gui/gui.py @@ -41,9 +41,10 @@ class Gui: def gui_handler(self, window: sg.Window): # handler for the gui - + file_path = None font_filepath = None output_name = None + output_path = None exists_choice = OB.SKIP types = None comments = None diff --git a/interpreter/NassiShneidermann.py b/interpreter/NassiShneidermann.py index fe91cca..09a5835 100644 --- a/interpreter/NassiShneidermann.py +++ b/interpreter/NassiShneidermann.py @@ -1,7 +1,7 @@ from os import stat from interpreter.interpret_source import Function_scope from typing import Dict, List, Optional -# from PySimpleGUI import one_line_progress_meter +from PySimpleGUI import one_line_progress_meter import logging from enum import IntEnum import os.path @@ -62,9 +62,9 @@ class NassiShneidermanDiagram: number_of_item = 1 for scope in self.function_scopes: number_of_item += 1 - # cancel = one_line_progress_meter('Progress', number_of_item, len(self.function_scopes), '-PROGRESSBAR-') - # if not cancel: - # return False + cancel = one_line_progress_meter('Progress', number_of_item, len(self.function_scopes), '-PROGRESSBAR-') + if not cancel: + return False filepath = f"{output_path}/{scope.name}" filepath = self.check_conflicts(filepath, on_conflict) diff --git a/run_web.py b/run_web.py deleted file mode 100644 index 06761d8..0000000 --- a/run_web.py +++ /dev/null @@ -1,7 +0,0 @@ -from web_app import create_app - - -app = create_app() - -if __name__ == '__main__': - app.run(port=7467 ,debug=False) \ No newline at end of file diff --git a/tmp/output.zip b/tmp/output.zip deleted file mode 100644 index c669cca..0000000 Binary files a/tmp/output.zip and /dev/null differ diff --git a/tmp/output/56.zip b/tmp/output/56.zip deleted file mode 100644 index c1b4f1e..0000000 Binary files a/tmp/output/56.zip and /dev/null differ diff --git a/web_app/__init__.py b/web_app/__init__.py deleted file mode 100644 index fe7fbaf..0000000 --- a/web_app/__init__.py +++ /dev/null @@ -1,15 +0,0 @@ -from flask import Flask -from web_app.config import Config - -app = Flask(__name__) - -def create_app(config_class=Config): - app.config.from_object(config_class) - - from web_app.main.routes import main - from web_app.errors.handlers import errors - - app.register_blueprint(main) - app.register_blueprint(errors) - - return app \ No newline at end of file diff --git a/web_app/config.py b/web_app/config.py deleted file mode 100644 index 095d79d..0000000 --- a/web_app/config.py +++ /dev/null @@ -1,2 +0,0 @@ -class Config(): - SECRET_KEY = '4542bae72a9fefada779b8c3fc68a826' diff --git a/web_app/errors/__init__.py b/web_app/errors/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/web_app/errors/handlers.py b/web_app/errors/handlers.py deleted file mode 100644 index 9a3b10c..0000000 --- a/web_app/errors/handlers.py +++ /dev/null @@ -1,23 +0,0 @@ -from flask import Blueprint, render_template - -errors = Blueprint('errors', __name__) - -@errors.app_errorhandler(404) -def error_404(error): - return render_template('errors/404.html'), 404 - -@errors.app_errorhandler(403) -def error_403(error): - return render_template('errors/403.html'), 403 - -@errors.app_errorhandler(500) -def error_500(error): - return render_template('errors/500.html'), 500 - -@errors.app_errorhandler(418) -def error_600(error): - return render_template('errors/418.html'), 418 - -@errors.app_errorhandler(501) -def error_600(error): - return render_template('errors/501.html'), 501 \ No newline at end of file diff --git a/web_app/main/__init__.py b/web_app/main/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/web_app/main/forms.py b/web_app/main/forms.py deleted file mode 100644 index fb4db9b..0000000 --- a/web_app/main/forms.py +++ /dev/null @@ -1,12 +0,0 @@ -from flask_wtf import FlaskForm -from wtforms import FileField, SubmitField -from wtforms.validators import Optional -from flask_wtf.file import FileAllowed -from wtforms.fields.core import StringField - -class UploadJavaForm(FlaskForm): - comments = StringField('Enter customn comments (//, #, ...): ', validators=([Optional(),])) - types = StringField('custom types (//, #, ...)', validators=([Optional(),])) - remove_tags = StringField('Enter customn modifier (public, private, ...): ', validators=([Optional(),])) - java = FileField('.java hochladen', validators=[FileAllowed(['java', 'txt'])]) - submit = SubmitField('Bestätigen') \ No newline at end of file diff --git a/web_app/main/routes.py b/web_app/main/routes.py deleted file mode 100644 index f7327b0..0000000 --- a/web_app/main/routes.py +++ /dev/null @@ -1,99 +0,0 @@ -from flask.helpers import send_file -from flask import render_template, abort, flash, Blueprint -from web_app.main.forms import UploadJavaForm -from errors.custom import JavaSyntaxError, ScopeNotFoundException, InterpreterException, NoPathError -from random import randint -import shutil -import secrets -import os -import logging - -from gui.utils import nassi -from interpreter.NassiShneidermann import NassiShneidermanDiagram, OB - -main = Blueprint('main', __name__) - -def deleteFilesInFolder(path): - file_list = os.listdir(path) - for f in file_list: - try: - os.remove(path + '/' +f) - # print("remove " + f) - except: - try: - shutil.rmtree(path + '/' + f) - # print("remove " + f) - except: - logging.error("fail to remove " + f) - - -def javaDatei(form_file): - try: - random_hex = secrets.token_hex(8) - _, f_ext = os.path.splitext(form_file.filename) - file_fname = random_hex + f_ext - dirctory_path = os.path.abspath(os.path.join('Web', os.pardir)) - file_path = os.path.join(dirctory_path, './tmp/input', file_fname) - form_file.save(file_path) - return file_path - except: - flash('Hier ist was falsch gelaufen!') - - -@main.route('/', methods=['POST', 'GET']) -@main.route('/generator', methods=['POST','GET']) -def generator(): - form = UploadJavaForm() - - if form.validate_on_submit(): - if form.java.data: - input_path = javaDatei(form.java.data) - output_path = os.path.join(os.path.abspath(os.path.join('Web', os.pardir)), './tmp/input') - outputname = str(randint(0, 100) ) - output_path_zip = os.path.join(os.path.abspath(os.path.join('Web', os.pardir)), f'./tmp/output/{outputname}') - - behaviour = OB.RANDOM_NAME - - - - deleteFilesInFolder(str(os.path.join(os.path.abspath(os.path.join('Web', os.pardir)), './tmp/output/'))) - try: - NSD = NassiShneidermanDiagram(True) - output_directory = output_path + '/' + outputname - - - try: - if not os.path.exists(output_directory): - os.makedirs(output_directory) - except OSError: - logging.error('Error: Creating directory. ' + output_directory) - - - custom_tags = {"comments" : form.comments.data, "ignore" : form.remove_tags.data, "types" : form.types.data} - - NSD.load_from_file(input_path, custom_tags) - NSD.convert_to_image(output_directory, on_conflict=behaviour) - - shutil.make_archive(output_path_zip, 'zip', output_directory) - except JavaSyntaxError as JsE: - flash((str(JsE))) - except ScopeNotFoundException as SnFe: - flash((str(SnFe))) - except FileNotFoundError as FnFe: - flash(str(FnFe)) - except InterpreterException as iE: - flash(str(iE)) - except Exception as e: - flash(('Failed to create an image of one funktion correctly. ' + str(e)) + 'There may be some images created. ') - except: - raise - deleteFilesInFolder(output_path) - return send_file(output_path_zip + '.zip', as_attachment=True) - - - - return render_template('upload.html', title='Upload', legend='Upload', form=form ) - -@main.route('/working', methods=['POST', 'GET']) -def working(): - abort(501) \ No newline at end of file diff --git a/web_app/static/main.css b/web_app/static/main.css deleted file mode 100644 index deb1063..0000000 --- a/web_app/static/main.css +++ /dev/null @@ -1,90 +0,0 @@ - -body { -color: #ffffff; -margin-top: 5rem; -} - -h1, h2, h3, h4, h5, h6 { -color: #ffffff; -} - -.black-text { - color: #000000; -} - -.bg-steel { -background-color: #49484d; -} - -.site-header .navbar-nav .nav-link { -color: #cbd5db; -} - -.site-header .navbar-nav .nav-link:hover { -color: #ffffff; -} - -.site-header .navbar-nav .nav-link.active { -font-weight: 500; -} - -.content-section { -background: #444444; -padding: 10px 20px; -border: 10px solid #444455; -border-style: groove; -border-radius: 30px 1px 30px 1px; -margin-bottom: 20px; -} - -.article-title { -color: #ffffff; -} - -a.article-title:hover { -color: #428bca; -text-decoration: none; -} - -.article-content { -white-space: pre-line; -color: aliceblue; -} - -.article-img { -height: 65px; -width: 65px; -margin-right: 16px; -} - -.article-metadata { -padding-bottom: 1px; -margin-bottom: 4px; -border-bottom: 1px solid #ffffff -} - -.article-metadata a:hover { -color: #ffffff; -text-decoration: none; -} - -.article-svg { -width: 25px; -height: 25px; -vertical-align: middle; -} - -.account-img { -height: 125px; -width: 125px; -margin-right: 20px; -margin-bottom: 16px; -} - -.account-heading { -font-size: 2.5rem; -} - -.label-filter { - color: #291852; -} diff --git a/web_app/templates/datenschutz.html b/web_app/templates/datenschutz.html deleted file mode 100644 index 90e7fb4..0000000 --- a/web_app/templates/datenschutz.html +++ /dev/null @@ -1,7 +0,0 @@ -{% extends 'layout.html' %} -{% block content %} -
-Falls dies nicht der Fall ist, hier die Zieladresse https://ole-siepmann.de/startseite/datenschutzerklaerung/ an die Sie weitergeleitet werden.
-{% endblock content %} \ No newline at end of file diff --git a/web_app/templates/errors/403.html b/web_app/templates/errors/403.html deleted file mode 100644 index b87049e..0000000 --- a/web_app/templates/errors/403.html +++ /dev/null @@ -1,7 +0,0 @@ -{% extends 'layout.html' %} -{% block content %} -Hier gibt es nichts zusehen, suchen Sie an einem anderen Ort!
-Versuch es in Zukunft nochmal oder frag Ole, wie lange er für diese Funktion noch brauch. Wenn du einen Verbesserungsvorschlag hast, melde dich bei Ole.
-Versuch es in naher Zukunft nochmal.
-Hier gibt es nichts zusehen!
-WARNING Because the Interpreter is still WIP, some Java language features are not supported. These include: - *foreach loops (will throw JavaSyntaxError) - *constructors (will be ignored) - *switch statements - Please remove these features from the source code as they will result in incorrect behaviour
-