[nanny: 1/3] Add static and local block webpage
- From: Roberto Majadas <telemaco src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [nanny: 1/3] Add static and local block webpage
- Date: Thu, 7 Apr 2011 14:00:49 +0000 (UTC)
commit ec0d912942f90e8b6c82fb4f9ebc31021487b0cc
Author: Roberto Majadas <roberto majadas openshine com>
Date: Sun Mar 6 23:21:11 2011 +0100
Add static and local block webpage
daemon/data/bwww/block.png | Bin 0 -> 17015 bytes
daemon/data/bwww/block.svg | 98 ++++++++++++++++++++++++++++++++
daemon/data/bwww/header_background.png | Bin 0 -> 157 bytes
daemon/data/bwww/header_logo.png | Bin 0 -> 18058 bytes
daemon/data/bwww/index.html | 88 ++++++++++++++++++++++++++++
daemon/src/proxy/BadWebTemplate.py | 90 +++++++++++++++++++++++++++++
daemon/src/proxy/Makefile.am | 1 +
daemon/src/proxy/TwistedProxy.py | 24 +--------
8 files changed, 278 insertions(+), 23 deletions(-)
---
diff --git a/daemon/data/bwww/block.png b/daemon/data/bwww/block.png
new file mode 100644
index 0000000..0280651
Binary files /dev/null and b/daemon/data/bwww/block.png differ
diff --git a/daemon/data/bwww/block.svg b/daemon/data/bwww/block.svg
new file mode 100644
index 0000000..74cefcb
--- /dev/null
+++ b/daemon/data/bwww/block.svg
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="960"
+ height="480"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.0 r9654"
+ sodipodi:docname="block.png"
+ enable-background="new">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#000000"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.7"
+ inkscape:cx="476.13411"
+ inkscape:cy="190.53706"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1366"
+ inkscape:window-height="691"
+ inkscape:window-x="0"
+ inkscape:window-y="24"
+ inkscape:window-maximized="1">
+ <sodipodi:guide
+ orientation="1,0"
+ position="960,-1.4285714"
+ id="guide3800" />
+ <sodipodi:guide
+ orientation="0,1"
+ position="960,-1.4285714"
+ id="guide3802" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="Background"
+ style="display:inline;opacity:1">
+ <rect
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ff0000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect3798"
+ width="960"
+ height="481.42856"
+ x="0"
+ y="-2.5326534e-07"
+ ry="0" />
+ </g>
+ <g
+ inkscape:label="Block"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-572.36218)"
+ style="display:inline">
+ <path
+ sodipodi:type="arc"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ff0000;stroke-width:40;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path2993"
+ sodipodi:cx="258.57144"
+ sodipodi:cy="240"
+ sodipodi:rx="221.42857"
+ sodipodi:ry="220"
+ d="m 480.00002,240 a 221.42857,220 0 1 1 -442.857152,0 221.42857,220 0 1 1 442.857152,0 z"
+ transform="translate(222,572.36218)" />
+ <path
+ style="fill:#000000;fill-opacity:0;stroke:#ff0000;stroke-width:60;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 635.5635,656.79869 -311.127,311.127"
+ id="path3765"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/daemon/data/bwww/header_background.png b/daemon/data/bwww/header_background.png
new file mode 100644
index 0000000..2667492
Binary files /dev/null and b/daemon/data/bwww/header_background.png differ
diff --git a/daemon/data/bwww/header_logo.png b/daemon/data/bwww/header_logo.png
new file mode 100644
index 0000000..f98de70
Binary files /dev/null and b/daemon/data/bwww/header_logo.png differ
diff --git a/daemon/data/bwww/index.html b/daemon/data/bwww/index.html
new file mode 100644
index 0000000..4d314a8
--- /dev/null
+++ b/daemon/data/bwww/index.html
@@ -0,0 +1,88 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>Nanny</title>
+ <style type="text/css">
+ * {
+ margin:0;
+ padding:0;
+ }
+
+ html, body {
+ margin:0;
+ padding:0;
+ width: 100%;
+ height: 100%;
+ }
+
+ body {
+ font-family: "arial", sans-serif;
+ font-size: 11px;
+ background-color: #000;
+ color: #404040;
+ }
+
+ .hidden {
+ display: none;
+ }
+
+ #wrapper {
+ position: absolute;
+ width: 100%;
+ height: auto !important;
+ height: 100%;
+ min-height: 100%;
+ }
+
+ #header {
+ height:112px;
+ background-color: #fff;
+ width:100%;
+ background: url("header_background.png");
+ }
+
+ #header_content {
+
+ height: 112px;
+ margin: 0 auto;
+ }
+
+ #logo {
+ position: relative;
+ top: 16px;
+ height: 87px;
+ width: 359px;
+ float:left;
+ background-image: url("header_logo.png");
+ }
+
+ #headtools {
+ position: relative;
+ top: 30px;
+ height: 54px;
+ width: 500px;
+ float: right;
+ }
+
+ #main {
+ width: 960px;
+ height: 480px;
+ margin: 10px auto 80px;
+ padding: 0px;
+ background-image: url("block.png");
+ }
+ </style>
+</head>
+
+<body>
+ <div id="home_wrapper">
+ <div id="header">
+ <div id="header_content">
+ <div id="logo"></div>
+ </div>
+ </div>
+ <div id="main">
+ </div>
+ </div>
+</body>
+</html>
diff --git a/daemon/src/proxy/BadWebTemplate.py b/daemon/src/proxy/BadWebTemplate.py
new file mode 100644
index 0000000..47f12fe
--- /dev/null
+++ b/daemon/src/proxy/BadWebTemplate.py
@@ -0,0 +1,90 @@
+BAD_WEB_TEMPLATE='''
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>Nanny</title>
+ <style type="text/css">
+ * {
+ margin:0;
+ padding:0;
+ }
+
+ html, body {
+ margin:0;
+ padding:0;
+ width: 100%%;
+ height: 100%%;
+ }
+
+ body {
+ font-family: "arial", sans-serif;
+ font-size: 11px;
+ background-color: #000;
+ color: #404040;
+ }
+
+ .hidden {
+ display: none;
+ }
+
+ #wrapper {
+ position: absolute;
+ width: 100%%;
+ height: auto !important;
+ height: 100%%;
+ min-height: 100%%;
+ }
+
+ #header {
+ height:112px;
+ background-color: #fff;
+ width:100%%;
+ background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAABwCAYAAADBoipeAAAAAXNSR0IArs4c6QAAAFdJREFUWMPt2cEJACEMRFFdPKT/nlJXbEHMQRbe3D/8SQgIzqqqcZlvNAIGg8FgMBgM/iG8Gq9HA9NZZ9q0aRsYbdquijZt2jrrfJDZ+btZmfloVRFxDW/AQkcuz4cv/gAAAABJRU5ErkJggg==);
+ }
+
+ #header_content {
+
+ height: 112px;
+ margin: 0 auto;
+ }
+
+ #logo {
+ position: relative;
+ top: 16px;
+ height: 87px;
+ width: 359px;
+ float:left;
+ background-image: url(data:image/png;base64,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);
+ }
+
+ #headtools {
+ position: relative;
+ top: 30px;
+ height: 54px;
+ width: 500px;
+ float: right;
+ }
+
+ #main {
+ width: 960px;
+ height: 480px;
+ margin: 10px auto 80px;
+ padding: 0px;
+ background-image: url(data:image/png;base64,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);
+ }
+ </style>
+</head>
+
+<body>
+ <div id="home_wrapper">
+ <div id="header">
+ <div id="header_content">
+ <div id="logo"></div>
+ </div>
+ </div>
+ <div id="main">
+ </div>
+ </div>
+</body>
+</html>
+'''
diff --git a/daemon/src/proxy/Makefile.am b/daemon/src/proxy/Makefile.am
index 1904bb2..d7f5968 100644
--- a/daemon/src/proxy/Makefile.am
+++ b/daemon/src/proxy/Makefile.am
@@ -3,4 +3,5 @@ proxylib_PYTHON = __init__.py \
Controllers.py \
Proxy.py \
TwistedProxy.py \
+ BadWebTemplate.py \
Importer.py
diff --git a/daemon/src/proxy/TwistedProxy.py b/daemon/src/proxy/TwistedProxy.py
index db23f37..d656443 100644
--- a/daemon/src/proxy/TwistedProxy.py
+++ b/daemon/src/proxy/TwistedProxy.py
@@ -39,29 +39,7 @@ import Image, ImageDraw, ImageFilter
from Controllers import BlockingDeferred
-BAD_WEB_TEMPLATE='''
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-<html>
-<head>
- <link href="http://www.gnome.org/css/layout.css" rel="stylesheet" type="text/css" media="screen">
- <link href="http://www.gnome.org/css/style.css" rel="stylesheet" type="text/css" media="all">
- <link rel="icon" type="image/png" href="http://www.gnome.org/img/logo/foot-16.png">
- <link rel="SHORTCUT ICON" type="image/png" href="http://www.gnome.org/img/logo/foot-16.png">
-
- <title>Nanny Parental Control</title>
- <link rel="stylesheet" type="text/css" href="http://www.gnome.org/frontpage.css">
-
-</head>
-
-<body>
-<div id="page">
- <div id="header">
- <h1>Nanny Parental Control</h1>
- </div>
-</div>
-</body>
-'''
-
+from BadWebTemplate import BAD_WEB_TEMPLATE
if os.name == "posix" :
BAD_CONTENT_TMP_DIR = "/var/tmp/nanny/"
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]