From c39e63e2c3e67b0a8199ecb03c3e644004a41bc9 Mon Sep 17 00:00:00 2001
From: Robert Goldmann <deadlocker@gmx.de>
Date: Sun, 5 Jul 2020 18:33:33 +0200
Subject: [PATCH] initial flask setup

---
 .gitignore                                 |  2 ++
 Pipfile                                    | 21 ++++++++++++++++++
 settings-example.json                      | 10 +++++++++
 src/Pipfile                                | 10 ---------
 src/ProjectLeaf.py                         | 25 ++++++++++++++++++++++
 src/blueprints/Routes.py                   | 11 ++++++++++
 src/{services => blueprints}/__init__.py   |  0
 src/logic/Constants.py                     |  4 ++++
 src/{ => logic}/Image.py                   |  0
 src/{ => logic}/Main.py                    |  2 +-
 src/logic/__init__.py                      |  0
 src/{ => logic}/services/JenkinsService.py |  0
 src/logic/services/__init__.py             |  0
 src/static/css/main.css                    |  6 ++++++
 src/static/js/main.js                      |  6 ++++++
 src/templates/index.html                   | 17 +++++++++++++++
 src/templates/macros.html                  | 10 +++++++++
 src/version.json                           |  7 ++++++
 18 files changed, 120 insertions(+), 11 deletions(-)
 create mode 100644 .gitignore
 create mode 100644 Pipfile
 create mode 100644 settings-example.json
 delete mode 100644 src/Pipfile
 create mode 100644 src/ProjectLeaf.py
 create mode 100644 src/blueprints/Routes.py
 rename src/{services => blueprints}/__init__.py (100%)
 create mode 100644 src/logic/Constants.py
 rename src/{ => logic}/Image.py (100%)
 rename src/{ => logic}/Main.py (97%)
 create mode 100644 src/logic/__init__.py
 rename src/{ => logic}/services/JenkinsService.py (100%)
 create mode 100644 src/logic/services/__init__.py
 create mode 100644 src/static/css/main.css
 create mode 100644 src/static/js/main.js
 create mode 100644 src/templates/index.html
 create mode 100644 src/templates/macros.html
 create mode 100644 src/version.json

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..2a71b46
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+/Pipfile.lock
+/settings.json
diff --git a/Pipfile b/Pipfile
new file mode 100644
index 0000000..2b1258f
--- /dev/null
+++ b/Pipfile
@@ -0,0 +1,21 @@
+[[source]]
+url = "https://pypi.python.org/simple"
+verify_ssl = true
+name = "pypi"
+
+[[source]]
+url = "https://pypi.thecodelabs.de"
+verify_ssl = true
+name = "TheCodeLabs"
+
+[requires]
+python_version = "3"
+
+[packages]
+flask = "==1.1.2"
+gevent = "==20.6.1"
+TheCodeLabs-BaseUtils = "*"
+TheCodeLabs-FlaskUtils = "*"
+python-jenkins = "==1.5.0"
+
+[dev-packages]
diff --git a/settings-example.json b/settings-example.json
new file mode 100644
index 0000000..f32efc7
--- /dev/null
+++ b/settings-example.json
@@ -0,0 +1,10 @@
+{
+    "server": {
+        "listen": "0.0.0.0",
+        "port": 10002,
+        "secret": "",
+        "useSSL": false,
+        "keyfile": "",
+        "certfile": ""
+    }
+}
\ No newline at end of file
diff --git a/src/Pipfile b/src/Pipfile
deleted file mode 100644
index 8be9447..0000000
--- a/src/Pipfile
+++ /dev/null
@@ -1,10 +0,0 @@
-[[source]]
-url = "https://pypi.python.org/simple"
-verify_ssl = true
-name = "pypi"
-
-[requires]
-python_version = "3.7"
-
-[packages]
-python-jenkins = "==1.5.0"
\ No newline at end of file
diff --git a/src/ProjectLeaf.py b/src/ProjectLeaf.py
new file mode 100644
index 0000000..5e88afb
--- /dev/null
+++ b/src/ProjectLeaf.py
@@ -0,0 +1,25 @@
+import os
+
+from TheCodeLabs_BaseUtils.DefaultLogger import DefaultLogger
+from TheCodeLabs_FlaskUtils.FlaskBaseApp import FlaskBaseApp
+
+from blueprints import Routes
+from logic import Constants
+
+LOGGER = DefaultLogger().create_logger_if_not_exists(Constants.APP_NAME)
+
+
+class CarrotCastleWebsite(FlaskBaseApp):
+    SUPPORTED_LANGUAGES = ['en', 'de']
+
+    def __init__(self, appName: str):
+        super().__init__(appName, os.path.dirname(__file__), LOGGER, serveRobotsTxt=True)
+
+    def _register_blueprints(self, app):
+        app.register_blueprint(Routes.construct_blueprint())
+        return app
+
+
+if __name__ == '__main__':
+    website = CarrotCastleWebsite(Constants.APP_NAME)
+    website.start_server()
diff --git a/src/blueprints/Routes.py b/src/blueprints/Routes.py
new file mode 100644
index 0000000..98b46f2
--- /dev/null
+++ b/src/blueprints/Routes.py
@@ -0,0 +1,11 @@
+from flask import Blueprint, render_template
+
+
+def construct_blueprint():
+    routes = Blueprint('routes', __name__)
+
+    @routes.route('/', methods=['GET'])
+    def index():
+        return render_template('index.html')
+
+    return routes
diff --git a/src/services/__init__.py b/src/blueprints/__init__.py
similarity index 100%
rename from src/services/__init__.py
rename to src/blueprints/__init__.py
diff --git a/src/logic/Constants.py b/src/logic/Constants.py
new file mode 100644
index 0000000..5c42f3d
--- /dev/null
+++ b/src/logic/Constants.py
@@ -0,0 +1,4 @@
+import os
+
+APP_NAME = 'ProjectLeaf'
+ROOT_DIR = os.path.dirname(os.path.dirname(os.path.dirname(__file__)))
\ No newline at end of file
diff --git a/src/Image.py b/src/logic/Image.py
similarity index 100%
rename from src/Image.py
rename to src/logic/Image.py
diff --git a/src/Main.py b/src/logic/Main.py
similarity index 97%
rename from src/Main.py
rename to src/logic/Main.py
index fe9b36b..3b90539 100644
--- a/src/Main.py
+++ b/src/logic/Main.py
@@ -7,7 +7,7 @@ import time
 
 from PIL import Image, ImageDraw, ImageFont
 
-from Image import DebugImage, EPDImage, AbstractImage
+from logic.Image import DebugImage, EPDImage, AbstractImage
 from libs.lib.waveshare_epd import epd4in2bc
 
 logging.basicConfig(level=logging.DEBUG)
diff --git a/src/logic/__init__.py b/src/logic/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/src/services/JenkinsService.py b/src/logic/services/JenkinsService.py
similarity index 100%
rename from src/services/JenkinsService.py
rename to src/logic/services/JenkinsService.py
diff --git a/src/logic/services/__init__.py b/src/logic/services/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/src/static/css/main.css b/src/static/css/main.css
new file mode 100644
index 0000000..d8ee3a0
--- /dev/null
+++ b/src/static/css/main.css
@@ -0,0 +1,6 @@
+body {
+    background-color: #212121;
+    margin: 0;
+    padding: 0;
+    font-family: sans-serif;
+}
\ No newline at end of file
diff --git a/src/static/js/main.js b/src/static/js/main.js
new file mode 100644
index 0000000..bf61691
--- /dev/null
+++ b/src/static/js/main.js
@@ -0,0 +1,6 @@
+function init()
+{
+
+}
+
+init();
\ No newline at end of file
diff --git a/src/templates/index.html b/src/templates/index.html
new file mode 100644
index 0000000..add6d57
--- /dev/null
+++ b/src/templates/index.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <title>CarrotCastle</title>
+        {% import 'macros.html' as macros %}
+        {{ macros.header() }}
+    </head>
+
+    <body>
+        <div class="main">
+            <div class="content">
+            </div>
+
+        </div>
+    </body>
+    <script type="text/javascript" src={{ url_for('static', filename='js/main.js') }}></script>
+</html>
diff --git a/src/templates/macros.html b/src/templates/macros.html
new file mode 100644
index 0000000..3126893
--- /dev/null
+++ b/src/templates/macros.html
@@ -0,0 +1,10 @@
+{% macro header() -%}
+    <meta charset="UTF-8"/>
+
+    <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
+    <link href="{{ url_for('static', filename='libraries/fontawesome/css/all.min.css') }}" rel="stylesheet">
+
+    <link type="text/css" rel="stylesheet" href="{{ url_for('static', filename='css/main.css') }}"/>
+
+    <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+{%- endmacro %}
diff --git a/src/version.json b/src/version.json
new file mode 100644
index 0000000..7dfe9f7
--- /dev/null
+++ b/src/version.json
@@ -0,0 +1,7 @@
+{
+    "version": {
+        "name": "v1.0.0",
+        "code": 1,
+        "date": "05.07.20"
+    }
+}
\ No newline at end of file
-- 
GitLab