mirror of
https://github.com/Tooloop/Tooloop-Packages.git
synced 2026-04-27 20:41:37 +02:00
76 lines
2.8 KiB
Python
76 lines
2.8 KiB
Python
|
|
# -*- coding: utf-8 -*-
|
||
|
|
from flask import Flask, jsonify, request, abort
|
||
|
|
from os import chown
|
||
|
|
from pwd import getpwnam
|
||
|
|
from grp import getgrnam
|
||
|
|
|
||
|
|
class InstalledApp(object):
|
||
|
|
|
||
|
|
def __init__(self, flask):
|
||
|
|
super(InstalledApp, self).__init__()
|
||
|
|
|
||
|
|
# default homepage
|
||
|
|
self.homepage = 'file:///assets/data/index.html';
|
||
|
|
|
||
|
|
# connect flask routes to tooloop api calls
|
||
|
|
self.add_routes(flask)
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
def add_routes(self, flask):
|
||
|
|
|
||
|
|
@flask.route('/simple-kiosk/change-homepage', methods=['POST'])
|
||
|
|
def change_homepage():
|
||
|
|
if not request.form or not 'homepage' in request.form:
|
||
|
|
abort(400)
|
||
|
|
|
||
|
|
try:
|
||
|
|
self.homepage = request.form['homepage'];
|
||
|
|
|
||
|
|
file = open('/assets/presentation/reset-kiosk.sh','w')
|
||
|
|
|
||
|
|
file.write('#!/bin/bash\n')
|
||
|
|
file.write('\n')
|
||
|
|
file.write('URL="'+self.homepage+'"\n')
|
||
|
|
file.write('\n')
|
||
|
|
file.write('# List of Chromium Command Line Switches\n')
|
||
|
|
file.write('# https://peter.sh/experiments/chromium-command-line-switches/\n')
|
||
|
|
file.write('COMMAND="chromium-browser \\\n')
|
||
|
|
file.write('--kiosk \\\n')
|
||
|
|
file.write('--bwsi \\\n')
|
||
|
|
file.write('--overscroll-history-navigation=1 \\\n')
|
||
|
|
file.write('--incognito \\\n')
|
||
|
|
file.write('--disable-infobars \\\n')
|
||
|
|
file.write('--disable-translate \\\n')
|
||
|
|
file.write('--no-default-browser-check \\\n')
|
||
|
|
file.write('--no-first-run \\\n')
|
||
|
|
file.write('--disable-translate-new-ux \\\n')
|
||
|
|
file.write('--num-raster-threads=4 \\\n')
|
||
|
|
file.write('--enable-zero-copy \\\n')
|
||
|
|
file.write('--noerrdialogs \\\n')
|
||
|
|
file.write('--class=TooloopKiosk \\\n')
|
||
|
|
file.write('$URL"\n')
|
||
|
|
file.write('\n')
|
||
|
|
file.write('if [ $EUID == 0 ]; then\n')
|
||
|
|
file.write(' pkill chromium\n')
|
||
|
|
file.write(' sleep 0.1\n')
|
||
|
|
file.write(' su tooloop -c "$COMMAND" &\n')
|
||
|
|
file.write('else\n')
|
||
|
|
file.write(' pkill chromium\n')
|
||
|
|
file.write(' sleep 0.1\n')
|
||
|
|
file.write(' $COMMAND &\n')
|
||
|
|
file.write('fi\n')
|
||
|
|
file.write('\n')
|
||
|
|
file.write('exit 0\n')
|
||
|
|
|
||
|
|
file.close()
|
||
|
|
|
||
|
|
uid = getpwnam('tooloop').pw_uid
|
||
|
|
gid = getgrnam('tooloop').gr_gid
|
||
|
|
chown('/assets/presentation/reset-kiosk.sh', uid, gid)
|
||
|
|
|
||
|
|
return jsonify({'message':'homepage changed'})
|
||
|
|
|
||
|
|
except Exception as e:
|
||
|
|
abort(500)
|