From 1bf16401562b7b45d58f19b79fca1958a04cc317 Mon Sep 17 00:00:00 2001 From: Mike Date: Sun, 3 Nov 2019 08:58:54 -0500 Subject: [PATCH] Began laying out frontend interface --- "lib/\\" | 59 ------------------------------------------- lib/pyShelf.py | 9 +++++-- static/css/main.css | 30 +++++++++++++++++++++- static/img/shelf.png | Bin 0 -> 1124 bytes static/index.html | 20 +++++++++++++-- 5 files changed, 54 insertions(+), 64 deletions(-) delete mode 100644 "lib/\\" create mode 100644 static/img/shelf.png diff --git "a/lib/\\" "b/lib/\\" deleted file mode 100644 index 77dfd98..0000000 --- "a/lib/\\" +++ /dev/null @@ -1,59 +0,0 @@ -#!/usr/bin/python -import os -import zipfile -from http.server import HTTPServer, BaseHTTPRequestHandler -from config import Config -from lib.library import Catalogue -from lib.storage import Storage -config = Config() -Storage = Storage() - - -class InitFiles: - """First run file creation operations""" - def __init__(self, file_array): - print("Begining creation of file structure") - for _pointer in file_array: - if not os.path.isfile(_pointer): - self.CreateFile(_pointer) - - def CreateFile(self, _pointer): - """Create the file""" - if not os.path.isdir(os.path.split(_pointer)[0]): - os.mkdir(os.path.split(_pointer)[0]) - f = open(_pointer, "w+") - f.close() - - -class BookServer: - """HTTP Frontend""" - def __init__(self): - self.server_address = ('', 8000) - self.handler = 'BaseHTTPRequestHandler' - - def close_prompt(self): - close = input("Close Server? y/n") - if close == 'y': - self.close() - return True - else: - self.close_prompt() - - def run(self): - self.httpd = HTTPServer(self.server_address, self.handler) - try: - self.httpd.serve_forever() - self.httpd.handle_request() - if self.close_prompt() == True: - pass - except Exception: - self.close() - return False - - def close(self): - try: - self.httpd.server_close() - return True - except Exception: - return False - diff --git a/lib/pyShelf.py b/lib/pyShelf.py index a147302..ecd7c8f 100755 --- a/lib/pyShelf.py +++ b/lib/pyShelf.py @@ -1,4 +1,5 @@ #!/usr/bin/python +import mimetypes import os import zipfile from http.server import BaseHTTPRequestHandler, HTTPServer @@ -33,13 +34,17 @@ class RequestHandler(BaseHTTPRequestHandler): def do_GET(self): # TODO determine how to include stylesheets self.send_response(200) - self.end_headers() + mimetype = mimetypes.guess_type(self.path) + self.send_header('Content-type', mimetype) if self.path == '/': self.path = '../static/index.html' - serve_file = open(self.path[1:]).read() + elif self.path.split('.', 1)[1] == 'css': + self.path = '../static' + self.path else: self.send_response(404) serve_file = "File Not Found" + serve_file = open(self.path[1:]).read() + self.end_headers() self.wfile.write(bytes(serve_file, 'utf-8')) class BookServer: diff --git a/static/css/main.css b/static/css/main.css index 20e1364..30e8f12 100644 --- a/static/css/main.css +++ b/static/css/main.css @@ -1,3 +1,31 @@ body{ - background-color: #f1f1 + margin: 0px 10px 0px 10px; + padding: 0px; +} +#app{ + display: grid; + grid-template-areas: "app_header" + "app_body" + "app_footer"; +} +.app_header{ + grid-area: app_header; +} +.app_body{ + display: grid; + grid-area: app_body; + grid-template-columns: 10% 80% 10%; + grid-template-areas: "left_col shelf right_col" +} +.app_footer{ + grid-area: app_footer; +} +.left_col{ + grid-area: left_col +} +.shelf{ + grid-area: shelf +} +.right_col{ + grid-area: right_col } diff --git a/static/img/shelf.png b/static/img/shelf.png new file mode 100644 index 0000000000000000000000000000000000000000..fdffe48b9fde009747f7cdf79b6dd1a9c852a5b7 GIT binary patch literal 1124 zcmV-q1e^PbP)EX>4Tx04R}tkv&MmKpe$iQ$?v22Rn#3WT;LSL`4J_twIqhgj%6h2a`*`ph-iL z;^HW{799LotU9+0Yt2!bCVF0M|BE>hzEl0u6Z503ls?%w0>9U#=pOtU)108O{e zR3a{Bva4d(D|!$_7$MBa%rfRADGA^4b&mjF?_xa5|JTxwGo6|zju4B5Hdfl06-|wJk~perI^_!) zk5$fFoV9Y5HSft^7|!V{%Uq{9gaj6`1PLM(R8c}1He$5uq*zGNe%!}D==vpcDdZ}F zkz)ZBXpmh$_#gc4*2+(edr9Fq(D~vxAHzV`F3_ks&iAq7G){ovGjOH1{FOQ|{YiSQ zrA3c`zHQ**x}_<5z~v4w@MOrQ>`FnJLOu_?pV2pEf&N<{wC45J+{ftykfyGZH^9Lm zFjAoGb)R>4xA*q%nPz`KRH<^ClFOG~00006VoOIv0RI600RN!9r;`8x010qNS#tmY z3ljhU3ljkVnw%H_000McNliru;|l`}9V2aUxp@Ep0%1u+K~z}7wOB!R+%O2`OL%6o z&NZ^=WqPvSsJ%okQ~xeHZX_82a#Anmjcp|0!v|#i`2LN62t}ShB7(pFf#%uqJi0Il z9UJrG_0IWnecbANZ{r!KH{L?}J~Ruo7NniEwkF4WOL>_ZJgU%5OBxawNYIdP!_N#t zjpr&3LL)>RjDm>3P}YIO-W(cEbs_r=PNl&_QkfT**07P+hgSLe3u#A2pH-?Sjq|?9 zFdu8?H{z;WU5|+5Jr*PH#<%SneYvSD6{3s?*0$+b#yrVP49u!a-$FPGbZbJk>RH4X zs}e_-KJL{m>9}YRJKvFP93pz#zLxe3Rr)!nFOO{+B8EjjIRGpKSplCN;Qv8wmKIvJ zGOrm?VVtm#ypEBUa=jx=eMW!~`%c^;q|Nw235K1^eT#mL!mJgv&Y;bq zy#){u>-h{1v{omHB8#ThFpm(QNzEgNnu(Eyas>XLXX;GvnvcO+E3!S&oRLljE&_x> zLbss~`4r8Oj7yz)V4281_l8_&nH6TQdCRKfffa!4`!0AYA$dM}L}8{s zZ}Bh~5R#(rzkV*vzUe}g?)F@wz2Q6(QVf#(v?nGki}0Tv3};?5n?m@|r2cGhrZkgG z>rSSKt>?dP?@5CO>yaUv-&`FJR5vf-kjdG&b}k%U6;2L;>veIQZ^Hh^UWvL&jL$k; zMGV0aoP9G>FCneE6S0ie8e}Rv;vs+aLxBNmm^LJzxk|ga`Yj0IFo+8VNq
-

Welcome to pyShelf

-

An Open Source E-book Server!

+
+

Welcome to pyShelf

+

An Open Source E-book Server!

+
+
+
+ left_col +
+
+ shelf +
+
+ right_col +
+
+