From c629a6480237d8547e198d96e95707e16dabd738 Mon Sep 17 00:00:00 2001 From: Johannes Löthberg Date: Thu, 23 Oct 2014 15:56:17 +0100 Subject: Split out classes, config file --- application.cfg | 4 ++++ classes.py | 22 ++++++++++++++++++++++ run.py | 55 ++++++++++++++----------------------------------------- 3 files changed, 40 insertions(+), 41 deletions(-) create mode 100644 application.cfg create mode 100644 classes.py diff --git a/application.cfg b/application.cfg new file mode 100644 index 0000000..29e8233 --- /dev/null +++ b/application.cfg @@ -0,0 +1,4 @@ +PORT = 7000 +DEBUG = True +URL = 'https://zlv.localhost' +ZNC_LOG_DIR = '/path/to/znc/logdir' diff --git a/classes.py b/classes.py new file mode 100644 index 0000000..c100cea --- /dev/null +++ b/classes.py @@ -0,0 +1,22 @@ +class Network(): + name = '' + url = '' + channels = [] + def __init__(self, name, url, channels): + self.name = name + self.url = url + self.channels = channels +class Channel(): + name = '' + url = '' + logs = [] + def __init__(self, name, url, logs): + self.name = name + self.url = url + self.logs = logs +class Log(): + name = '' + url = '' + def __init__(self, name, url): + self.name = name + self.url = url diff --git a/run.py b/run.py index f3b6017..4bcac3a 100755 --- a/run.py +++ b/run.py @@ -1,31 +1,12 @@ #!/usr/bin/env python from flask import Flask, send_from_directory, render_template, url_for +from classes import Network, Channel, Log from urllib.parse import quote_plus import sys, os -class Network(): - name = '' - url = '' - channels = [] - def __init__(self, name, url, channels): - self.name = name - self.url = url - self.channels = channels -class Channel(): - name = '' - url = '' - logs = [] - def __init__(self, name, url, logs): - self.name = name - self.url = url - self.logs = logs -class Log(): - name = '' - url = '' - def __init__(self, name, url): - self.name = name - self.url = url app = Flask(__name__) +app.config.from_pyfile('application.cfg', silent=True) + app.jinja_env.add_extension('jinja2_highlight.HighlightExtension') app.jinja_env.extend(jinja2_highlight_cssclass = 'codehilite') @@ -36,47 +17,40 @@ def get_files(directory): @app.route('/') def index(): - url = 'https://theos.kyriasis.com:5000' - log_dir = '/home/kyrias/znc_logs' - networks = [] - for network_name in get_files(log_dir): - network_url = '{}/{}'.format(url, network_name) + for network_name in get_files(app.config['ZNC_LOG_DIR']): + network_url = '{}/{}'.format(app.config['URL'], network_name) channels = [] - for channel_name in get_files(os.path.join(log_dir, network_name)): + for channel_name in get_files(os.path.join(app.config['ZNC_LOG_DIR'], network_name)): channel_url = '{}/{}'.format(network_url, quote_plus(channel_name)) channel = Channel(channel_name, channel_url, '') channels += [channel] networks += [Network(network_name, network_url, channels)] - return(render_template('list_networks.html', networks=networks, url=url)) + return(render_template('list_networks.html', networks=networks, url=app.config['URL'])) @app.route('/') def get_network(network_name): - url = 'https://theos.kyriasis.com:5000' - network_url = '{}/{}'.format(url, network_name) - log_dir = '/home/kyrias/znc_logs' + network_url = '{}/{}'.format(app.config['URL'], network_name) channels = [] - for channel_name in get_files(os.path.join(log_dir, network_name)): + for channel_name in get_files(os.path.join(app.config['ZNC_LOG_DIR'], network_name)): channel_url = '{}/{}'.format(network_url, quote_plus(channel_name)) channel = Channel(channel_name, channel_url, '') channels += [channel] network = Network(network_name, network_url, channels) - return(render_template('show_network.html', network=network, url=url)) + return(render_template('show_network.html', network=network, url=app.config['URL'])) @app.route('//') def channel_logs(network_name, channel_name): - url = 'https://theos.kyriasis.com:5000' - network_url = '{}/{}'.format(url, network_name) + network_url = '{}/{}'.format(app.config['URL'], network_name) channel_url = '{}/{}'.format(network_url, quote_plus(channel_name)) - log_dir = '/home/kyrias/znc_logs' logs = [] - for log_file in get_files(os.path.join(log_dir, network_name, channel_name)): + for log_file in get_files(os.path.join(app.config['ZNC_LOG_DIR'], network_name, channel_name)): log_url = '{}/{}'.format(channel_url, log_file) log = Log(log_file, log_url) @@ -84,12 +58,11 @@ def channel_logs(network_name, channel_name): channel = Channel(channel_name, channel_url, logs) network = Network(network_name, network_url, [channel]) - return(render_template('show_channel.html', network=network, channel=channel, url=url)) + return(render_template('show_channel.html', network=network, channel=channel, url=app.config['URL'])) @app.route('///') def get_log(network_name, channel_name, log_file): - log_dir = '/home/kyrias/znc_logs' - with open(os.path.join(log_dir, network_name, channel_name, log_file), 'rb') as file: + with open(os.path.join(app.config['ZNC_LOG_DIR'], network_name, channel_name, log_file), 'rb') as file: log = file.read().decode('utf-8', 'ignore') return(render_template('log.html', log=log)) -- cgit v1.2.3-70-g09d2