- new panorama special case on image resizing

- new .dist config
This commit is contained in:
Peter Molnar 2018-06-16 16:55:02 +00:00
parent 61db088790
commit ab668674f4
5 changed files with 91 additions and 837 deletions

View file

@ -1,7 +1,7 @@
[common]
base = ~/
domain = domain.com
build = ~/public
build = ~/web
files = files
[dirs]
@ -11,12 +11,13 @@ files = ${common:base}/${common:files}
static = ${common:base}/static
var = ${common:base}/var
archive = ${common:base}/archive
comment = ${common:base}/comment
[archive]
favorite = ${dirs:archive}/favorite
[photo]
regex = your_regex_artist
regex = (author name)
watermark = ${dirs:tmpl}/watermark.png
default = 720
@ -24,7 +25,7 @@ default = 720
;90 = s
;360 = m
720 = z
1920 = b
1280 = b
[crop]
;90 = true
@ -32,51 +33,92 @@ default = 720
[var]
searchdb = ${dirs:var}/s.sqlite
webmentiondb = ${dirs:var}/webmention.sqlite
redirects = ${dirs:var}/redirects.tsv
gone = ${dirs:var}/gone.tsv
redirects = ${dirs:content}/redirects.tsv
gone = ${dirs:content}/gone.tsv
tokendb = ${dirs:var}/tokens.json
cache = ${dirs:var}/cache
[site]
title = Yet another static site
title =
url = https://${common:domain}
lang = en
domains = ${common:domain}
websuburl = https://example.superfeedr.com/
feed = feed
appendwith = author websub
[tip_label]
paypal = PayPal
monzo = Monzo (UK)
[tip_value]
paypal = £3
monzo = £3
[tip_url]
paypal = https://paypal.me/username/3GBP
monzo = https://monzo.me/username/3
[websub]
hub = https://hubname.superfeedr.com/
[display]
pagination = 12
norender = page
[licence]
default = by-nc-nd
[author]
name = Your Name
email = your_email
name = Author Name
email = author@domain.com
url = ${site:url}
avatar = ${site:url}/avatar.jpg
gpg = GPG long key
donateurl = https://paypal.me/yourname/3GBP
appendwith = socials
[socials]
flickr = https://www.flickr.com/people/your_flickr_handle
github = https://github.com/your_github_handle
gpg = pgp.asc
sip = sip.account@domain.com
xmpp = xmpp.account@domain.com
flickr = flickr username
github = github username
icq = ICQ username
telegram = Telegram username
[api_flickr]
api_key = api_key
api_secret = api_secret
username = username
api_key =
api_secret =
username =
[api_500px]
api_key = api_key
api_secret = api_secret
api_key =
api_secret =
[api_tumblr]
api_key = api_key
api_secret = api_secret
api_key =
api_secret =
[api_deviantart]
api_key = api_key
api_secret = api_secret
username = username
api_key =
api_secret =
username =
[listener]
host = 127.0.0.1
port = 8008
[api_telegram]
api_token =
chat_id =
[api_spotify]
api_key =
api_secret =
[api_lastfm]
api_key =
api_secret =
username =
logfile = ${dirs:archive}/lastfm.csv
[api_twitter]
api_key =
api_secret =
username =
userid =

25
nasg.py
View file

@ -1166,17 +1166,20 @@ class WebImage(object):
def _intermediate_dimension(self, size, width, height, crop=False):
""" Calculate intermediate resize dimension and return a tuple of width, height """
size = int(size)
if (width > height*3):
size = int(size * 0.6)
# panorama
if (height <= size):
h = height
else:
h = size
w = int(float(h / height) * width)
elif (width > height and not crop) \
or (width < height and crop):
ratio = max(width, height) / min(width, height)
horizontal = True if (width / height) >= 1 else False
# panorama: reverse "horizontal" because the limit should be on
# the shorter side, not the longer, and make it a bit smaller, than
# the actual limit
# 2.39 is the wide angle cinematic view: anything wider, than that
# is panorama land
if ratio > 2.4 and not crop:
size = int(size*0.6)
horizontal = not horizontal
if (horizontal and not crop) \
or (not horizontal and crop):
w = size
h = int(float(size / width) * height)
else:

View file

@ -71,6 +71,14 @@ if __name__ == '__main__':
async def micropub(request):
return sanic.response.text("Not Implemented", status=501)
@app.route("/micropub-auth", methods=["POST", "GET"])
async def micropub_auth(request):
return sanic.response.text("Not Implemented", status=501)
@app.route("/micropub-token", methods=["POST", "GET"])
async def micropub_token(request):
return sanic.response.text("Not Implemented", status=501)
@app.route("/webmention", methods=["POST"])
async def webmention(request):
source = request.form.get('source')

View file

@ -433,6 +433,7 @@ class SearchDB(BaseDB):
return False
def search_by_query(self, query):
query = query.replace('-', ' + ')
logging.info("query is: %s", query)
ret = {}
cursor = self.db.cursor()

View file

@ -1,800 +0,0 @@
* {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
html, body, div, span,
h1, h2, h3, h4, h5, h6,
a, p, blockquote, pre, cite, code,
del, em, ins, strong, sub, sup, tt, b, u, i,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, details,
figure, figcaption, img,
footer, header, hgroup,
menu, nav, section, summary,
time, audio, video {
margin: 0;
padding: 0;
border: 0;
font: inherit;
vertical-align: baseline;
}
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
display: block;
}
html, body {
min-height: 100%;
font-size:20px;
line-height: 1.3em;
font-family: "Liberation Sans", "Helvetica Neue", "Roboto", "Helvetica", sans-serif;
font-weight: normal;
color: #ccc;
text-shadow: 1px 1px 1px rgba(0,0,0,0.004);
background-color: #222;
}
html {
position: relative;
}
html,
.content-header,
.content-footer {
background-color: #111;
color: #bbb;
}
a {
color: #eee;
text-decoration:none;
}
a:hover {
color: #fff;
}
b, strong {
font-weight:bold;
}
em {
font-style: italic;
}
p {
padding: 0.6em 0;
}
li {
margin-left: 1.3em;
}
ul li {
line-height: 1.6em;
}
li p {
margin:0;
padding: 0;
}
blockquote {
margin: 0.6em;
padding-left: 0.6em;
border-left: 4px solid #999;
color: #999;
}
table {
border-collapse: collapse;
border-spacing: 0;
width: 100%;
}
td, th {
padding: 0.3em;
border: 1px solid #111;
text-align:left;
}
th {
font-weight: bold;
}
th,
tr:nth-child(odd) {
background-color: #333;
}
tr:nth-child(even) {
background-color: #444;
}
.content-header a,
.content-header a:hover,
.content-footer a,
.content-footer a:hover,
.footnoteRef a,
pre code,
.h-review h2,
input,
.reactions h2,
.replies h2,
.syndication h2,
hr {
border: none;
}
hr {
display: block;
height: 1px;
border-top: 1px solid #444;
margin: 1em 0;
clear:both;
}
h1, h2, h3, h4, h5, h6, dt {
font-weight:bold;
clear:both;
}
h1, h2, h3, h4, h5, h6 {
margin: 1.3em 0 0.3em 0;
padding: 0 0 0.3em 0;
}
h1 {
font-size: 1.2em;
margin-top: 0;
}
h2 {
font-size: 1.1em;
border-bottom: 2px solid #999;
}
h3 {
font-size: 1em;
border-bottom: 1px dotted #777;
}
.icon {
transform: rotate(0deg);
width: 16px;
height: 16px;
display: inline-block;
fill: currentColor;
overflow: visible;
vertical-align:middle;
}
code,
pre {
font-family: "Courier New", "Courier", monospace;
font-size: 0.8em;
color: limegreen;
background-color: #222;
border: 1px solid #666;
direction: ltr;
text-align: left;
tab-size: 2;
}
pre {
overflow: auto;
padding: 0.3em;
}
code {
padding: 0.1em;
}
code.sourceCode span.al { color: limegreen; }
code.sourceCode span.at { color: limegreen; }
code.sourceCode span.bn { color: limegreen; }
code.sourceCode span.bu { color: limegreen; }
code.sourceCode span.cf { color: limegreen; }
code.sourceCode span.ch { color: limegreen; }
code.sourceCode span.co { color: gray; }
code.sourceCode span.dt { color: limegreen; }
code.sourceCode span.dv { color: limegreen; }
code.sourceCode span.er { color: limegreen; }
code.sourceCode span.ex { color: orange; }
code.sourceCode span.fl { color: limegreen; }
code.sourceCode span.fu { color: orange; }
code.sourceCode span.im { color: limegreen; }
code.sourceCode span.kw { color: cyan; }
code.sourceCode span.op { color: limegreen; }
code.sourceCode span.ot { color: limegreen; }
code.sourceCode span.pp { color: limegreen; }
code.sourceCode span.sc { color: limegreen; }
code.sourceCode span.ss { color: limegreen; }
code.sourceCode span.st { color: magenta; }
code.sourceCode span.va { color: turquoise; }
.limit,
.content-body {
max-width: 72ch;
margin: 0 auto;
}
.siteinfo {
line-height: 1.4em;
font-size: 0.9em;
padding: 1em;
font-style: italic;
color: #999;
}
.footnotes ol li {
margin-bottom: 0.3em;
}
.footnoteRef,
.footnoteRef:hover {
border: 0;
white-space: nowrap;
}
.footnoteRef sup {
vertical-align: baseline;
position: relative;
top: -0.3em;
font-size: 0.8em;
margin-right: 0.1em;
}
.footnoteRef sup:before,
.footnoteRef sup:after {
color: #33c;
}
.comments ol .u-repost-of,
.footnotes ol li a {
display: inline-block;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
vertical-align: top;
max-width: 80%;
}
.footnotes ol li a[href^="#"] {
margin: 0 0 0 0.6em;
max-width: 20%;
font-size: 0.6em;
}
.footnotes ol li a[href^="#"]:after {
content: "back to text";
margin: 0 0 0 0.2em;
color: #666;
}
.footnotes ol li a[href^="#"]:hover:after {
color: #ccc;
}
.content-header a,
.content-footer a {
color: #cccccc;
}
.content-header a:hover,
.content-footer a:hover {
color: #fefefe;
}
.content-footer {
margin-top: 2em;
padding: 1.6em 0;
text-align: center;
}
.content-footer * {
color: #999;
display: inline-block;
}
.content-footer a {
color: #999;
}
.content-footer a:hover {
color: #eee;
}
.content-footer img {
width: 1em;
margin: 0 0.3em 0em 0;
}
.content-footer dl {
font-size: 0.86em;
}
.content-footer dl dd,
.content-footer dl dt,{
display:inline-block;
}
.content-footer dl dd:after {
content: '\00B7';
margin: 0 0.3em;
}
.content-footer dl dd:last-of-type:after {
content: '';
display: none;
visibility: hidden;
}
input {
vertical-align:middle;
border-bottom: 3px solid #aaa;
background-color: transparent;
color: #ccc;
height: 1.6em;
width: 6em;
font-size: 0.8em;
}
input.search-submit {
width: 3em;
cursor: pointer;
}
input:focus,
input.search-submit:hover {
border-bottom: 3px solid #fff;
color: #fff;
}
.search-form {
display: block;
padding: 0.3em 0.1em;
text-align: center;
}
.content-navigation ul {
list-style-type: none;
margin: 0;
padding: 0;
text-align:center;
}
.content-navigation ul li {
margin:0;
padding: 0.3em 0.3em 0.3em 0;
display: inline-block;
text-align: center;
}
.content-navigation ul li a {
display:block;
padding:0 0.2em;
font-weight: bold;
border-bottom: 3px solid transparent;
text-align: center;
font-size: 0.7em;
}
.content-navigation ul li a svg {
display:block;
margin: auto;
}
.content-navigation ul li a.active {
border-bottom: 3px solid #ccc;
}
.content-navigation ul li a:hover {
border-bottom: 3px solid #fefefe;
}
.h-feed h2 {
margin-bottom: 1em;
}
.h-feed .h-entry {
margin: 0 1em;
}
.h-feed .h-entry h3 {
font-size: 0.9em;
}
.h-feed .h-entry .e-summary,
.h-feed .h-entry .e-content {
font-size: 0.8em;
}
.h-feed .h-entry .e-content {
margin-bottom: 3em;
}
.h-entry.singular {
padding: 0 0.6em;
font-size: 0.9em;
}
.h-entry .e-content a,
.h-entry .e-summary a {
color:#5193D4;
}
.h-entry a:hover {
color:#71B3F4;
}
.h-entry.singular h1 {
margin: 2em 0 1em 0;
}
.h-entry.singular footer {
margin: 2em 0;
font-size: 0.9em;
}
.h-entry.singular footer p {
padding: 0.3em 0;
display: inline-block;
color: #aaa;
}
.h-entry.singular footer a {
color: #ccc;
}
.h-entry.singular footer a:hover {
color: #eee;
}
.h-entry.singular footer dd {
margin: 0 0 1em 0;
}
.h-entry.singular footer img {
width: 1em;
height: auto;
}
.donation ul,
.donation li {
list-style-type: none;
}
.donation li {
margin: 0.6em 0.6em 0.6em 0;
display: inline-block;
}
.donation p {
line-height: 1.2em;
}
.donation li a {
display: inline-block;
border: 1px dashed #933;
padding: 0.6em 1em;
background-color: #111;
width: 16em;
}
.donation .method {
margin-left: 0.6em;
}
.donation li a:hover {
border: 1px solid #933;
color: #fff;
}
figure {
margin: 1em 0;
position:relative;
overflow: hidden;
}
figure figcaption {
padding: 0.3em 0;
text-align: center;
}
.exif {
font-size: 0.8em;
}
figcaption .alt,
figcaption .author,
.h-feed figcaption,
.content-footer h2,
.reactions dl dt,
.reactions dl ul time,
.hide,
.exif dt {
display: none;
visibility: hidden;
}
.exif dd {
display: inline-block;
margin: 0 0.6em 0 0;
}
.exif .icon {
margin: 0 0.2em;
width: 1em;
vertical-align:text-bottom;
}
.adaptimg {
display: block;
max-height: 98vh;
max-width: 100%;
width:auto;
height:auto;
margin: 0 auto;
padding: 0;
border: 1px solid #000;
}
.follow {
cursor:pointer;
display:block;
text-align:right;
margin: 0.6em 0;
font-size: 0.8em;
}
.follow a,
.pagination a {
padding: 0 0 0.3em 0;
border-bottom: 3px solid #999;
}
.follow a:hover,
.pagination a:hover {
border-bottom-color: #fff;
}
.pagination ul {
text-align:center;
list-style-type: none;
}
.pagination li {
display:inline-block;
}
.pagination a,
.pagination span {
padding: 0.3em;
}
.w25,
.w33 {
display: inline-block;
height: auto;
}
.w33 {
width: 32%;
}
.w25 {
width: 24%;
}
.search-section {
margin-bottom: 1em;
}
.search-section summary {
border-bottom: 2px solid #999;
padding: 0.3em 0;
font-weight: bold;
}
.search-section li {
margin: 1em 0.6em;
}
.replies {
font-size: 0.9em;
}
.replies ol {
margin: 0 0 0 1em;
}
.replies li {
margin: 0 0 1em 0;
}
.replies li .source {
display: block;
}
.reactions dl ul,
.reactions dl ul li {
list-style-type: none;
margin: 0;
}
.h-review {
padding: 1em;
border: 2px dotted #999;
margin: 1em 0;
}
.h-review h2 {
margin: 0;
}
.h-review p {
line-height: 1.2em;
margin: 0;
padding: 0.3em 0;
}
.h-review .rating {
font-size: 0.9em;
}
.h-review .rating .best,
.h-review .rating .value {
color: #fff;
font-weight: bold;
}
@media all and (min-width: 56em) {
.content-navigation ul li a {
font-size: 0.9em;
}
.content-navigation ul li a svg {
display:inline-block;
}
.search-form,
.content-navigation {
display:inline-block;
}
.search-form {
float:right;
margin: 0.1em;
}
}
@media print {
* {
background-color: #fff !important;
color: #222;
}
html, body {
font-size: 11pt !important;
text-shadow: unset !important;
font-family: Helvetica, sans-serif !important;
}
@page {
margin: 0.6in 0.5in;
}
.limit,
.content-body {
max-width: 100% !important;
margin: 0 !important;
}
h1, h2, h3, h4, h5, h6 {
page-break-after: avoid;
}
h3,
a,
.footnotes ol li a,
.h-feed .h-entry,
code,
pre {
border: none;
}
p, li, blockquote, figure, .footnotes {
page-break-inside: avoid !important;
}
a {
color: #000;
}
td, th {
border: 1pt solid #666;
}
.content-note,
.content-header,
.content-footer,
video,
audio,
.footnotes ol li a[href^="#"],
.footnotes ol li a[href^="#"]:after,
.exif svg,
.donation,
.noprint {
display:none;
visibility: hidden;
}
.footnotes ol li a {
display: block;
overflow: visible;
white-space: normal;
}
code, pre {
max-width: 96%;
color: #222;
word-break: break-all;
word-wrap: break-word;
white-space: pre-wrap;
overflow:initial;
page-break-inside: enabled;
font-family: "Courier", "Courier New", monospace !important;
}
pre {
border: 1pt dotted #666;
padding: 0.6em;
}
code.sourceCode span { color: black; }
code.sourceCode span.al { color: black; }
code.sourceCode span.at { color: black; }
code.sourceCode span.bn { color: black; }
code.sourceCode span.bu { color: black; }
code.sourceCode span.cf { color: black; }
code.sourceCode span.ch { color: black; }
code.sourceCode span.co { color: darkgray; }
code.sourceCode span.dt { color: black; }
code.sourceCode span.dv { color: black; }
code.sourceCode span.er { color: black; }
code.sourceCode span.ex { color: darkorange; }
code.sourceCode span.fl { color: black; }
code.sourceCode span.fu { color: darkorange; }
code.sourceCode span.im { color: black; }
code.sourceCode span.kw { color: darkcyan; }
code.sourceCode span.op { color: black; }
code.sourceCode span.ot { color: black; }
code.sourceCode span.pp { color: black; }
code.sourceCode span.sc { color: black; }
code.sourceCode span.ss { color: black; }
code.sourceCode span.st { color: magenta; }
code.sourceCode span.va { color: darkturquoise; }
figcaption {
font-size: 0.9em;
}
.adaptimg {
max-height: 35vh;
max-width: 90vw;
outline: none;
border: 1px solid #000;
}
.h-feed .h-entry {
page-break-after:always;
}
}