Reduced some image 301 round trips

This commit is contained in:
斟酌 鵬兄 2022-04-05 18:13:40 +09:00
parent ec55e174db
commit 16f112485a
23 changed files with 92 additions and 48 deletions

View File

@ -10,16 +10,15 @@ RUN chown www-data:www-data . -R
RUN pip3 install Flask redis compressinja Celery
COPY . /app/
ADD [ "https://github.com/tgckpg/BotanJS/releases/download/compressors/closure.jar" \
, "https://github.com/tgckpg/BotanJS/releases/download/compressors/yuicompressor.jar" \
, "/opt/utils/" ]
RUN chmod 644 /opt/utils/*.jar
COPY . /app/
USER www-data
EXPOSE 5000
ENTRYPOINT ["setup/docker.start"]

View File

@ -1,7 +1,15 @@
#!/usr/bin/env python3
import configparser
import configparser, os
Config = configparser.ConfigParser( interpolation = configparser.ExtendedInterpolation() )
Config.read( "settings.ini" )
DEBUG = Config[ "Env" ][ "Debug" ]
DEBUG = os.getenv( "DEBUG" )
if DEBUG is None:
DEBUG = Config[ "Env" ][ "Debug" ]
else:
Config[ "Env" ][ "Debug" ] = DEBUG
REDIS_CONN = os.getenv( "REDIS_CONN" )
if not REDIS_CONN is None:
Config[ "Redis" ][ "ConnStr" ] = REDIS_CONN

View File

@ -285,7 +285,8 @@ class BotanClassResolver:
if cacheFile != None:
return cacheFile;
outputCss = ""
# The root file
outputCss = self.BotanFile( "_this.css" )
for f in self.cleanList( cList ):
outputCss += self.BotanFile( f )

View File

@ -49,7 +49,7 @@
}
textarea.v_snippet_input {
font-family: monospace;
font-family: site-mono;
font-size: 1em;
}

View File

@ -1,14 +1,14 @@
.site_file[data-type="album"] {
.site-file[data-type="album"] {
column-width: 225px;
column-gap: 0.75em;
}
.site_file[data-type="album"] > div {
.site-file[data-type="album"] > div {
display: inline-block;
margin-bottom: 0.5em;
width: 100%;
}
.site_file[data-type="album"] > div img {
.site-file[data-type="album"] > div img {
width: 100%;
}

View File

@ -64,11 +64,9 @@
Cycle.next( function()
{
new SiteFile( this.id, this.hash );
}.bind({ id: uuid, hash: file.hash }) );
new SiteFile( this.id, this.info.hash, this.info );
}.bind({ id: uuid, info: file }) );
}
console.log( finfo );
};
var loadFailed = function( obj )

View File

@ -4,7 +4,7 @@
}
.inline-code {
font-family: monospace;
font-family: site-mono;
font-size: 1.12em;
color: black;

View File

@ -20,7 +20,7 @@
/** @type {_AstConf_.SiteFile} */
var config = null;
var SiteFile = function ( id, hash )
var SiteFile = function ( id, hash, nObj )
{
if( !config ) throw new Error( "config is not defined" );
// TODO: Make a trigger for downloading from server
@ -38,9 +38,14 @@
if( stage.getAttribute( "noauto" ) != null ) return this;
var applyStructure = function( obj )
{
return _applyStructure( JSON.parse( obj ).file );
};
var _applyStructure = function( obj )
{
/** @type {_AstJson_.SiteFile} */
var finfo = JSON.parse( obj ).file;
var finfo = obj;
switch( finfo.type )
{
@ -50,16 +55,16 @@
switch( IDOMElement(stage).getDAttribute('size') )
{
case "small":
node.src = config.path.image.small + hash + '.jpg';
node.src = finfo.thumbs.small || ( config.path.image.small + hash + '.jpg' );
break;
case "medium":
node.src = config.path.image.medium + hash + '.jpg';
node.src = finfo.thumbs.medium || ( config.path.image.medium + hash + '.jpg' );
break;
case "original":
node.src = config.path.image.original + hash + '.jpg';
break;
default: // large
node.src = config.path.image.large + hash + '.jpg';
node.src = finfo.thumbs.large || ( config.path.image.large + hash + '.jpg' );
}
stage.appendChild(Dand.wrapne(
@ -134,7 +139,14 @@
stage.appendChild( Dand.wrapc( "sf_failed", Dand.textNode( "Error: Failed to get resources info" ) ) );
};
this.loadInfo( applyStructure, loadFailed );
if( nObj )
{
_applyStructure( nObj );
}
else
{
this.loadInfo( applyStructure, loadFailed );
}
};
SiteFile.prototype.loadInfo = function( success, failed )

View File

@ -40,7 +40,7 @@
/*{{{ Global Element Styles */
pre {
font-family: monospace;
font-family: site-mono;
}
textarea, input, div[contentEditable="true"], select {

View File

@ -1,5 +1,5 @@
.build-list > a {
font-family: monospace;
font-family: site-mono;
display: block;

View File

@ -21,7 +21,7 @@
.build-status > * .failed { color: darkred; }
.build-commit-message {
font-family: monospace;
font-family: site-mono;
padding: 0.2em 0;
}

View File

@ -1,9 +1,9 @@
.site-news { font-family: monospace; }
.site-news { font-family: site-mono; }
.site-news > span { display: block; }
.rbuilds > a {
display: block;
font-family: monospace;
font-family: site-mono;
}
.rbuilds > a > span {
padding: 0 0.5em;

View File

@ -7,7 +7,7 @@ body {
font-family: custom-sans,Helvetica,Arial,STHeiti,"Microsoft JhengHei","微軟正黑體";
}
pre { font-family: monospace; }
pre { font-family: site-mono; }
::selection {
color: white;
@ -32,7 +32,7 @@ a {
}
textarea {
font-family: monospace;
font-family: site-mono;
}
sup { vertical-align: super; }

View File

@ -1,5 +1,5 @@
h4 { font-family: custom-sans; }
h5, h6 { font-family: monospace; }
h5, h6 { font-family: site-mono; }
h4 { font-size: 1.5em; }
h5 { font-size: 1.3em; }
h6 { font-size: 1.1em; }

View File

@ -7,7 +7,7 @@ body {
font-family: custom-sans,Helvetica,Arial,STHeiti,"Microsoft JhengHei","微軟正黑體";
}
pre { font-family: monospace; }
pre { font-family: site-mono; }
::selection {
color: white;

View File

@ -8,7 +8,7 @@
.dbg_lastMsg {
float: left;
font-family: monospace;
font-family: site-mono;
color: #AAA;
font-size: 1em;
@ -67,5 +67,5 @@
outline: none;
border: none;
font-family: monospace;
font-family: site-mono;
}

8
botanjs/src/_this.css Normal file
View File

@ -0,0 +1,8 @@
@font-face{
font-family: site-mono;
src: local("Consolas"),
local("Bitstream Vera Sans Mono"),
local("Courier New"),
local("Courier"),
local("monospace");
}

View File

@ -19,3 +19,11 @@ _AstJson_.SiteFile.file;
_AstJson_.SiteFile.file.type;
/** @type {String} */
_AstJson_.SiteFile.file.src_location;
/** @type {Object} */
_AstConf_.SiteFile.thumbes;
/** @type {String} */
_AstConf_.SiteFile.thumbs.small;
/** @type {String} */
_AstConf_.SiteFile.thumbs.medium;
/** @type {String} */
_AstConf_.SiteFile.thumbs.large;

View File

@ -26,7 +26,7 @@ spec:
mountPath: "/app/cache"
containers:
- name: web
image: registry.k8s.astropenguin.net/astrojs:2022.04.05
image: registry.k8s.astropenguin.net/astrojs:2022.04.05.03
securityContext:
runAsGroup: 1001
runAsNonRoot: true
@ -50,7 +50,7 @@ spec:
- name: redis
image: redis:6.0.8-alpine
- name: compiler
image: registry.k8s.astropenguin.net/astrojs:2022.04.05
image: registry.k8s.astropenguin.net/astrojs:2022.04.05.03
securityContext:
runAsGroup: 1001
runAsNonRoot: true

View File

@ -5,6 +5,9 @@ Port = 5000
[Env]
Debug = False
[Redis]
ConnStr = redis://:@localhost:6379/9
[Paths]
Runtime = ${SiteRoot}
Log = ${SiteRoot}/logs
@ -13,7 +16,7 @@ Cache = ${SiteRoot}/cache
[BotanJS]
SrcDir = ${Paths:Runtime}/botanjs/src
CeleryBroker = redis://:@localhost:6379/9
CeleryBroker = ${Redis:ConnStr}
ClosureCompiler = /opt/utils/closure.jar
YuiCompressor = /opt/utils/yuicompressor.jar

View File

@ -2,11 +2,13 @@ FROM astrojs/jre-nanoserver-20h2:latest
RUN pip3 install Flask redis compressinja celery
RUN New-Item -ItemType "Directory" -Path /opt/utils; \
New-Item -ItemType "Directory" -Path /app; \
RUN New-Item -ItemType Directory -Path /opt/utils; \
New-Item -ItemType Directory -Path /app/cache -Force; \
[Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor [Net.SecurityProtocolType]::Tls12; \
Invoke-WebRequest -UseBasicParsing -Uri 'https://github.com/tgckpg/BotanJS/releases/download/compressors/closure.jar' -OutFile '/opt/utils/closure.jar' ; \
Invoke-WebRequest -UseBasicParsing -Uri 'https://github.com/tgckpg/BotanJS/releases/download/compressors/yuicompressor.jar' -OutFile '/opt/utils/yuicompressor.jar' ;
EXPOSE 5000
COPY . /app
WORKDIR /app
EXPOSE 5000

9
windows/base-compose.yml Normal file
View File

@ -0,0 +1,9 @@
version: '3.9'
services:
python:
build: pyrt
image: astrojs/pyrt-nanoserver-20h2
jre:
build: jre
image: astrojs/jre-nanoserver-20h2

View File

@ -1,12 +1,6 @@
version: '3.9'
services:
python:
build: pyrt
image: astrojs/pyrt-nanoserver-20h2
jre:
build: jre
image: astrojs/jre-nanoserver-20h2
redis:
container_name: astrojsdev_redis
build: redis
@ -17,23 +11,25 @@ services:
build:
context: ../
dockerfile: windows/app/Dockerfile
environment:
REDIS_CONN: redis://:@redis:6379/9
command: [ "python", "main.py" ] # [ "ping", "127.0.0.1", "-n", "9999" ]
depends_on:
- redis
ports:
- 5000:5000
volumes:
- ../:C:/app
- cache:C:/app/cache
tasks:
container_name: astrojsdev_compiler
image: astrojs/app
environment:
REDIS_CONN: redis://:@redis:6379/9
command: [ "celery", "-A", "botanjs.service.jwork", "worker", "-l", "info", "--pool=solo" ]
depends_on:
- redis
- web
volumes:
- ../:C:/app
- cache:C:/app/cache
volumes:
cache:
temp: