Mercurial > hg > index.fcgi > www > www-1
comparison pics3/pics_flask_app.py @ 130:06f97e38e1b2
pics3: add pin support
author | paulo |
---|---|
date | Thu, 20 Jan 2022 00:40:14 -0800 |
parents | d216dd8e63da |
children | 41a6e2d99f68 |
comparison
equal
deleted
inserted
replaced
1:a19b95cbe1b4 | 2:65b08637cfbc |
---|---|
9 | 9 |
10 app = flask.Flask(__name__) | 10 app = flask.Flask(__name__) |
11 | 11 |
12 GCS_CLIENT = google.cloud.storage.Client() | 12 GCS_CLIENT = google.cloud.storage.Client() |
13 GCS_BUCKET = GCS_CLIENT.get_bucket(os.environ.get("GCS_BUCKET")) | 13 GCS_BUCKET = GCS_CLIENT.get_bucket(os.environ.get("GCS_BUCKET")) |
14 PIN = os.environ.get("PIN") | |
15 | |
16 | |
17 class PinFailError(Exception): | |
18 def __str__(self): | |
19 return "PIN FAIL!" | |
20 | |
21 class PinSetupError(Exception): | |
22 def __str__(self): | |
23 return "PIN SETUP ERROR!" | |
14 | 24 |
15 | 25 |
16 class PicsDialect(csv.Dialect): | 26 class PicsDialect(csv.Dialect): |
17 delimiter = '\t' | 27 delimiter = '\t' |
18 quoting = csv.QUOTE_NONE | 28 quoting = csv.QUOTE_NONE |
102 def index(): | 112 def index(): |
103 n = 5 # number of thumbnails to display per dir | 113 n = 5 # number of thumbnails to display per dir |
104 | 114 |
105 (root, header, body) = _get_standard_html_doc("Pictures") | 115 (root, header, body) = _get_standard_html_doc("Pictures") |
106 header.script('', type="text/javascript", src=flask.url_for("static", filename="lazyload.js")) | 116 header.script('', type="text/javascript", src=flask.url_for("static", filename="lazyload.js")) |
117 | |
118 if not PIN: | |
119 raise PinSetupError | |
120 elif flask.request.cookies.get("lahat") != PIN: | |
121 raise PinFailError | |
107 | 122 |
108 pics_dirs = [] | 123 pics_dirs = [] |
109 pics_dirs_index_blob = GCS_BUCKET.get_blob("pics/index.tsv") | 124 pics_dirs_index_blob = GCS_BUCKET.get_blob("pics/index.tsv") |
110 if pics_dirs_index_blob: | 125 if pics_dirs_index_blob: |
111 pics_dirs_index_strlist = pics_dirs_index_blob.download_as_text().splitlines() | 126 pics_dirs_index_strlist = pics_dirs_index_blob.download_as_text().splitlines() |