add lang and config py
This commit is contained in:
parent
6b18783123
commit
cd3bf1a8c4
1
.gitignore
vendored
1
.gitignore
vendored
@ -6,3 +6,4 @@ out/
|
|||||||
data/uploads/*
|
data/uploads/*
|
||||||
!data/uploads/reclame.jpg
|
!data/uploads/reclame.jpg
|
||||||
data/slideshow.json
|
data/slideshow.json
|
||||||
|
config.py
|
||||||
|
|||||||
6
config.py.dist
Normal file
6
config.py.dist
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
config = {
|
||||||
|
"config": False,
|
||||||
|
"port": 5000,
|
||||||
|
"reverse_proxy_mode": False,
|
||||||
|
"lang": "en"
|
||||||
|
}
|
||||||
52
obscreen.py
Executable file → Normal file
52
obscreen.py
Executable file → Normal file
@ -1,15 +1,46 @@
|
|||||||
#!/usr/bin/python3
|
#!/usr/bin/python3
|
||||||
|
|
||||||
from flask import Flask, render_template, redirect, request, url_for, send_from_directory
|
|
||||||
import json
|
import json
|
||||||
import os
|
import os
|
||||||
import re
|
import re
|
||||||
import shutil
|
import shutil
|
||||||
import subprocess
|
import subprocess
|
||||||
|
import sys
|
||||||
|
|
||||||
|
from enum import Enum
|
||||||
|
from flask import Flask, render_template, redirect, request, url_for, send_from_directory
|
||||||
|
from pysondb import db
|
||||||
|
from config import config
|
||||||
|
|
||||||
|
|
||||||
|
# <classes>
|
||||||
|
class ItemType(Enum):
|
||||||
|
PICTURE = 'picture'
|
||||||
|
VIDEO = 'video'
|
||||||
|
URL = 'url'
|
||||||
|
# </classes>
|
||||||
|
|
||||||
|
# <config>
|
||||||
|
PLAYER_URL = 'http://localhost:{}'.format(config['port'])
|
||||||
|
DB = db.getDb("data/slideshow.json")
|
||||||
|
with open('./lang/{}.json'.format(config['lang']), 'r') as file:
|
||||||
|
LANGDICT = json.load(file)
|
||||||
|
# </config>
|
||||||
|
|
||||||
|
# <reverse-proxy>
|
||||||
|
if config['reverse_proxy_mode']:
|
||||||
|
reverse_proxy_config_file = 'system/nginx-reclame'
|
||||||
|
with open(reverse_proxy_config_file, 'r') as file:
|
||||||
|
content = file.read()
|
||||||
|
with open(reverse_proxy_config_file, 'w') as file:
|
||||||
|
file.write(re.sub(r'proxy_pass .*?;', 'proxy_pass {};'.format(PLAYER_URL), content))
|
||||||
|
PLAYER_URL = 'http://localhost'
|
||||||
|
# </reverse-proxy>
|
||||||
|
|
||||||
# <server>
|
# <server>
|
||||||
app = Flask(__name__, template_folder='views', static_folder='data')
|
app = Flask(__name__, template_folder='views', static_folder='data')
|
||||||
port = 5000
|
|
||||||
|
if config['debug']:
|
||||||
|
app.config['TEMPLATES_AUTO_RELOAD'] = True
|
||||||
# </server>
|
# </server>
|
||||||
|
|
||||||
# <xenv>
|
# <xenv>
|
||||||
@ -25,7 +56,8 @@ xenv_presets = f"""
|
|||||||
@xset s noblank
|
@xset s noblank
|
||||||
@unclutter -display :0 -noevents -grab
|
@unclutter -display :0 -noevents -grab
|
||||||
@sed -i 's/"exited_cleanly": false/"exited_cleanly": true/' ~/.config/chromium/Default/Preferences
|
@sed -i 's/"exited_cleanly": false/"exited_cleanly": true/' ~/.config/chromium/Default/Preferences
|
||||||
@chromium-browser --disable-features=Translate --ignore-certificate-errors --disable-web-security --disable-restore-session-state --autoplay-policy=no-user-gesture-required --start-maximized --allow-running-insecure-content --remember-cert-error-decisions --disable-restore-session-state --noerrdialogs --kiosk --incognito --window-position=0,0 --display=:0 http://localhost:{port}
|
#@sleep 10
|
||||||
|
@chromium-browser --disable-features=Translate --ignore-certificate-errors --disable-web-security --disable-restore-session-state --autoplay-policy=no-user-gesture-required --start-maximized --allow-running-insecure-content --remember-cert-error-decisions --disable-restore-session-state --noerrdialogs --kiosk --incognito --window-position=0,0 --display=:0 {PLAYER_URL}
|
||||||
"""
|
"""
|
||||||
with open(destination_path, 'w') as file:
|
with open(destination_path, 'w') as file:
|
||||||
file.write(xenv_presets)
|
file.write(xenv_presets)
|
||||||
@ -49,19 +81,21 @@ def get_ip_address():
|
|||||||
# <web>
|
# <web>
|
||||||
@app.route('/')
|
@app.route('/')
|
||||||
def index():
|
def index():
|
||||||
with open('./data/slideshow.json', 'r') as file:
|
return render_template('player.jinja.html', items=json.dumps(DB.getAll()))
|
||||||
items = json.load(file)
|
|
||||||
|
|
||||||
return render_template('player.jinja.html', port=port, items=json.dumps(items))
|
|
||||||
|
|
||||||
@app.route('/slide/default')
|
@app.route('/slide/default')
|
||||||
def slide_default():
|
def slide_default():
|
||||||
return render_template('default.jinja.html', ipaddr=get_ip_address())
|
return render_template('default.jinja.html', ipaddr=get_ip_address())
|
||||||
|
|
||||||
|
@app.route('/manage')
|
||||||
|
def manage():
|
||||||
|
return render_template('manage.jinja.html', ipaddr=get_ip_address(), l=LANGDICT)
|
||||||
|
|
||||||
@app.errorhandler(404)
|
@app.errorhandler(404)
|
||||||
def not_found(e):
|
def not_found(e):
|
||||||
return send_from_directory('data', '404.html'), 404
|
return send_from_directory('data', '404.html'), 404
|
||||||
# </web>
|
# </web>
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
app.run(host='0.0.0.0', port=port)
|
app.run(host='0.0.0.0', port=config['port'])
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user