1
0
Fork 0
mirror of https://github.com/Eggbertx/gochan.git synced 2025-08-05 21:06:24 -07:00

fixed database handling, fixed http handles, fixed configuration handling, added preliminary templating, etc

This commit is contained in:
Joshua Merrell 2013-04-20 01:21:40 -07:00
parent e6f6124a1f
commit 68b8c03980
45 changed files with 2742 additions and 632 deletions

BIN
html/135683008384s.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
html/135693079632s.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View file

@ -124,7 +124,8 @@ body {
font-family:sans-serif;
font-size:75%;
margin:8px;
width:90%;
width:100%;
height: 100%;
}
body,html {

View file

@ -22,6 +22,10 @@
font-size:50px;
}
#site-slogan {
font-size:25px;
}
#top-pane {
height:75px;
left:0;

View file

@ -4,7 +4,7 @@ body {
background: #EEF2FF;
color: #000;
margin: 0;
width: 90%;
/*width: 90%;*/
}
#topmenu li {
display: block;
@ -38,6 +38,8 @@ div#loginbox {
top:50%;
margin-left: -100px;
margin-top: -35px;
padding-top:5px;
padding-bottom:5px;
text-align: center;
border: solid 1px;
}

127
html/css/global/front.css Normal file
View file

@ -0,0 +1,127 @@
#footer {
clear:both;
position:absolute;
width: 100%;
left: 0px;
bottom: 0%;
text-align: center;
}
#main {
position:absolute;
top:124px;
left:16%;
height: 100%;
right:21%;
width:auto;
}
#menu {
position:absolute;
}
#side-pane {
position:absolute;
top: 106px;
width:15%;
margin-right: 16px;
}
#site-title {
font-size:50px;
text-align: center;
}
#tab-bar {
margin-left: 16px;
clear:both;
}
#topmenu {
position:absolute;
top: 0px;
left: 0px;
width: 100%;
display: block;
z-index:10;}
.topmenu-item {
display: block;
float: left;
text-align: center;
}
.plus {
width: 12px;
text-align: center;
float:right;
padding: 0px 4px 0px 4px;
}
.tab {
padding-right: 5px;
padding-left: 5px;
display: block;
float: left;
}
.section-body {
overflow: hidden;
margin-right: 0px;
margin-bottom:8px;
right:0px;
min-height: 48px;
}
.section-block {
padding-bottom: 8px;
}
#top-pane {
left:0;
position:absolute;
text-align:center;
top:32px;
width:100%;
z-index: 1;
}
#content {
clear:left;
margin-left:0!important;
padding-left:0!important;
text-align:justify;
}
#recent-posts {
float:right;
margin-top: 98px;
overflow: hidden;
right: 8px;
width:20%;
}
#recent-posts img {
float: left;
padding-right: 8px;
}
#recent-posts .section-body {
padding-top: 8px;
}
.section-title-block {
display:block;
}
a.permalink {
float: right;
}
ul.boardmenu {
list-style:none;
margin:0;
padding-left:0;
}

0
html/css/global/img.css Normal file
View file

View file

@ -0,0 +1,27 @@
.loginbox {
width:300px;
height: 120px;
position: absolute;
left:50%;
top:50%;
margin-left: -150px;
margin-top: -60px;
padding-top:5px;
padding-bottom:5px;
text-align: center;
border: solid 1px;
}
.loginbox input {
width:175px;
height: 30%;
}
#footer {
clear:both;
position:absolute;
width: 100%;
left: 0px;
bottom: 0%;
text-align: center;
}

0
html/css/global/txt.css Normal file
View file

BIN
html/css/int-sprites.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

View file

@ -1,76 +1,52 @@
#main {
border-bottom:10px!important;
height:85%;
left:16%;
position:absolute;
top:96px;
width:auto;
}
#menu {
border:0;
height:100%;
left:0;
margin-left:5px;
padding:0;
position:absolute;
top:75px;
width:15%;
#footer {
font-size:12px;
}
#site-title {
background: inherit;
clear: both;
color: #e1b400;
font-family: sans-serif;
font-size:50px;
text-align: center;
width: 100%;
}
#top-pane {
height:75px;
left:0;
position:absolute;
#current-tab {
background-color: #404040;
}
.tab {
background-color: #202020;
border: 1px solid #424242;
text-align:center;
top:0;
width:100%;
}
.section-body {
background-color:#606060;
padding-left:8px;
padding-right: 8px;
padding-bottom: 8px;
}
.section-title-block {
height:19px;
background-color:#202020;
border-radius: 4px 4px 0px 0px;
padding-left:8px;
padding-right: 8px;
}
#topmenu {
left:20%;
padding-bottom:5;
position:absolute;
top:78px;
z-index: 2;
box-shadow: 0 2px 2px 3px #101010;
background-color: #202020;
height: 26px;
}
#topmenu li {
background-color:#404040;
border:1px solid #9295a4;
border-left:none;
border-bottom: none;
display:block;
float:left;
margin-top:-7px;
padding:3px 10px 2px;
.topmenu-item {
padding: 4px;
}
#topmenu li.current {
background-color:#202020;
border-bottom:none;
margin-top:-8px;
padding-top:2px;
.topmenu-item:hover {
background-color: #404040;
}
#topmenu li.first {
border-left:1px solid #9295a4;
}
#topmenu a {
.content {
margin-left:0!important;
padding-left:0!important;
text-align:justify;
}
.menu {
@ -78,44 +54,26 @@
text-align:center;
}
.newssub {
position:absolute;
background-color: #202020;
}
.permalink {
display:block;
text-align:right;
}
.permalink a {
a.permalink {
background: inherit;
color: #f90;
font-family: sans-serif;
text-decoration: none;
}
.permalink a:hover {
a.permalink:hover {
background: inherit;
color: #ffd43f;
font-family: sans-serif;
}
.plus {
background:#404040;
border-radius: 15px;
color:#000;
cursor:pointer;
float:right;
font-size:12px;
height:inherit;
font-weight:400;
margin:0;
padding:1px 4px 2px;
}
.plus:hover {
background:#c5c9e0;
border:1px solid #c97;
cursor:pointer;
}
a {
@ -132,79 +90,24 @@ a:hover {
}
body {
background:#EEF2FF;
color:#000;
font-family:sans-serif;
font-size:75%;
margin:8px;
width:90%;
}
body,html {
margin:0;
padding:0;
background: #32353d;
background: #EEF2FF;
background-attachment: fixed;
background-image: url(images/pipes_bg.png);
color: #d8d0b9;
font-family:sans-serif;
font-size: 12pt;
}
h1 {
color:#000;
font-size:150%;
margin:0;
text-align:center;
}
h1,h2 {
h2 {
background-color: #202020;
-moz-box-shadow: 2px 2px 3px 4px #101010;
-webkit-box-shadow: 2px 2px 3px 4px #101010;
box-shadow: 0 2px 2px 3px #101010;
border-radius: 8px;
text-align:left;
padding-left: 4px;
padding-right: 4px;
}
h1,h3,.menu {
font-family:Verdana,Tahoma,sans-serif;
}
h2 {
border-radius: 8px;
font-size:100%;
margin:1em 0 0;
}
h2 a {
color:#550;
text-decoration:none;
}
h3 {
color:#800;
font-size:medium;
font-weight:400;
margin:0;
text-align:center;
}
li {
margin:0;
}
li a {
display:block;
width:100%;
}
ul.boardmenu li:hover,ul.modmenulink li:hover {
ul.boardmenu li:hover {
background:#404040;
}
ul.boardmenu,ul.modmenulink,div#topmenu ul {
list-style:none;
margin:0;
padding-left:0;
}

106
html/css/pipes/manage.css Normal file
View file

@ -0,0 +1,106 @@
#footer {
font-size:12px;
}
#current-tab {
background-color: #404040;
}
.tab {
background-color: #202020;
border: 1px solid #424242;
text-align:center;
}
.section-body {
background-color:#606060;
padding-left:8px;
padding-right: 8px;
padding-bottom: 8px;
}
.section-title-block {
height:19px;
background-color:#202020;
border-radius: 4px 4px 0px 0px;
padding-left:8px;
padding-right: 8px;
}
#topmenu {
box-shadow: 0 2px 2px 3px #101010;
background-color: #202020;
height: 26px;
}
.topmenu-item {
padding: 4px;
}
.topmenu-item:hover {
background-color: #404040;
}
#topmenu a {
}
.loginbox {
}
.loginbox input {
height:20%;
}
.menu {
margin-top:1em;
text-align:center;
}
.plus {
background:#404040;
color:#000;
height:inherit;
font-weight:400;
}
.plus:hover {
background:#c5c9e0;
cursor:pointer;
}
a {
background: inherit;
color: #f90;
font-family: sans-serif;
text-decoration: none;
}
a:hover {
background: inherit;
color: #ffd43f;
font-family: sans-serif;
}
body {
background: #EEF2FF;
background-attachment: fixed;
background-image: url(images/pipes_bg.png);
color: #d8d0b9;
font-family:sans-serif;
font-size: 12pt;
}
h2 {
background-color: #202020;
-moz-box-shadow: 2px 2px 3px 4px #101010;
-webkit-box-shadow: 2px 2px 3px 4px #101010;
box-shadow: 0 2px 2px 3px #101010;
border-radius: 8px;
padding-left: 4px;
padding-right: 4px;
}
ul.boardmenu li:hover {
background:#404040;
}

13
html/error/404.html Normal file
View file

@ -0,0 +1,13 @@
<!DOCTYPE html>
<html>
<head>
<title>Error 404: File not Found</title>
</head>
<body>
<h1>404: File not found</h1>
<!--<img src="/error.png" border="0" alt=""> -->
<p>The requested file could not be found on this server. Are you just typing random stuff in the address bar? If you followed a link from this site here, then post <a href="/site">here</a></p>
<audio src="http://dl.dropbox.com/u/10266670/forever.wav" autoplay="autoplay"></audio>
<hr><address>http://lunachan.net powered by Gochan v0.1</address>
</body>
</html>

12
html/error/500.html Normal file
View file

@ -0,0 +1,12 @@
<!DOCTYPE html>
<html>
<head>
<title>Error 500: Internal Server error</title>
</head>
<body>
<h1>500: Internal Server error</h1>
<marquee><img src="/error/derpy server.gif" border="0" alt=""></marquee>
<p>Someone let Derpy into the server room again...sorry about that. Please try reloading the page. If that doesn't fix the problem, you can email me <a href="mailto:admin@lunachan.net">here</a>, noting the time and the page you tried to access.
<hr><address>http://lunachan.net powered by Gochan v0.2</address>
</body>
</html>

View file

@ -0,0 +1,11 @@
<!DOCTYPE html>
<html>
<head>
<title>Error 500: Internal Server error</title>
</head>
<body>
<h1>500: Internal Server error</h1>
<p>The server encountered an error while trying to serve the page. We apologize for the inconvenience.</p>
<hr><address>http://lunachan.net powered by Gochan v0.2</address>
</body>
</html>

BIN
html/error/derpy server.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 144 KiB

View file

@ -1,34 +1,166 @@
<!DOCTYPE html>
<html>
<head>
<title>It worked!</title>
<script type="text/javascript" src="javascript/jquery/jquery-1.7.2.min.js"></script>
<script type="text/javascript">
$jq = jQuery.noConflict();
$jq(document).ready(function() {
var killserver_btn = $jq("button#killserver");
$jq("button#killserver").click(function() {
$jq.ajax({
method:'GET',
url:"/manage",
data: {
action: 'killserver'
},
success: function() {
},
error:function() {
}
});
});
});
</script>
</head>
<body>
It works!<br />
<button id="killserver">Kill server</button>
</body>
</html
<!DOCTYPE html>
<html>
<head>
<title>Lunachan</title>
<script type="text/javascript" src="/javascript/jquery/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="/javascript/gochan.js"></script>
<link rel="stylesheet" href="/css/global/front.css" />
<link rel="stylesheet" href="/css/pipes/front.css" />
<link rel="alternate stylesheet" href="/css/burichan/front.css" />
<link rel="alternate stylesheet" href="/css/futaba/front.css" />
<link rel="alternate stylesheet" href="/css/braeburn/front.css" />
<link rel="alternate stylesheet" href="/css/leetchan/front.css" />
</head>
<body>
<div id="topmenu">
<div class="topmenu-section">
<div class="topmenu-item">
<a href="/test1/">/test1/</a>
</div>
<div class="topmenu-item">
<a href="/test2/">/test2/</a>
</div>
</div>
</div>
<div id="top-pane">
<span id="site-title">Lunachan</span><br />
<span id="site-slogan">Do you like mmmmmmbananas?</span>
</div>
<div id="side-pane">
<h2>Boards</h2>
<div class="section-block">
<div class="section-title-block">
<b>Section 1</b><span class="plus">-</span>
</div>
<div class="section-body">
<ul class="boardmenu">
<a href="/test/"><li id="test" class="boardmenu-item">Test</li></a>
<a href="/test2/"><li id="test" class="boardmenu-item">Test2</li></a>
</ul>
</div>
</div>
<div class="section-block">
<div class="section-title-block">
<b>Section 2</b><span class="plus">-</span>
</div>
<div class="section-body">
<ul class="boardmenu">
<a href="/test/"><li id="test" class="boardmenu-item">Test</li></a>
<a href="/test2/"><li id="test" class="boardmenu-item">Test2</li></a>
</ul>
</div>
</div>
</div>
<div id="main">
<div id="tab-bar">
<div id="current-tab" class="tab">
<a href="#">Home</a>
</div>
<div class="tab">
<a href="#rules">Rules</a>
</div>
<div class="tab">
<a href="#faq">FAQ</a>
</div>
</div>
<div id="content">
<div id="first-page" class="page">
<div class="section-block">
<div class="section-title-block" id="first-page0">
<b>A news message thingy</b> by <a href="mailto:admin@lunachan.net" >Luna</a><a href="/#first-page0" class="permalink">#</a>
</div>
<div class="section-body">
Some funky news stuff would go here
</div>
</div>
<div class="section-block">
<div class="section-title-block">
<b>A news message thingy</b> by <a href="mailto:admin@lunachan.net" class="section-poster">Luna</a>
</div>
<div class="section-body">
Some funky news stuff would go here
</div>
</div>
</div>
<div id="rules-page" class="page">
<div class="section-block">
<div class="section-title-block">
<b>Rules</b> by <a href="mailto:admin@lunachan.net" class="section-poster">Luna</a>
</div>
<div class="section-body">
Don't talk about Gochan.<br />
Do NOT talk about Gochan.<br />
Purple pone is best pone, no exceptions.<br />
No Comic Sans, breakers of this rule will be permabanned without warning<br />
</div>
</div>
</div>
<div id="faq-page" class="page">
<div class="section-block">
<div class="section-title-block">
<b>A FAQ message thingy</b> by <a href="mailto:admin@lunachan.net" class="section-poster">Luna</a>
</div>
<div class="section-body">
Some funky FAQ stuff would go here
</div>
</div>
<div class="section-block">
<div class="section-title-block">
<b>A FAQ message thingy</b> by <a href="mailto:admin@lunachan.net" class="section-poster">Luna</a>
</div>
<div class="section-body">
Some funky FAQ stuff would go here
</div>
</div>
</div>
</div>
<div id="footer">
<a href="/">Home</a> | <a href="http://127.0.0.1:8080/#boards">Boards</a> | <a href="http://127.0.0.1:8080/#rules">Rules</a> | <a href="http://127.0.0.1:8080/#faq">FAQ</a><br />
Powered by Gochan v0.2<br />
Generated in over 9000 hours
</div>
</div>
<div id="recent-posts">
<h2>Recent Posts</h2>
<div class="section-block">
<div class="section-title-block">
<span class="section-title"><a href="/test/">/test/</a></span> - <b>Poster Mc</b>!Tripcode
</div>
<div class="section-body">
<img src="135693079632s.png" />
TOOT TOOT TOOT TOOT TOOT TOOT TOOT TOOT TOOT TOOT TOOT TOOT TOOT TOOT TOOT TOOT TOOT TOOT TOOT TOOT TOOT TOOT TOOT TOOT TOOT TOOT TOOT TOOT TOOT TOOT TOOT TOOT...<br /><i>(Comment truncated, click <a href="/test/">here</a> to continue reading)</i>
</div>
</div>
<div class="section-block">
<div class="section-title-block">
<span class="section-title"><a href="/test/">/test/</a></span> - <b>Anonymous</b>
</div>
<div class="section-body">
OP is a pony.
</div>
</div>
<div class="section-block">
<div class="section-title-block">
<span class="section-title"><a href="/test/">/test/</a></span> - <b>Poster Mc</b>!Tripcode
</div>
<div class="section-body">
<img src="135683008384s.png" />
<a href="#">&gt;&gt;22222</a><br />
HERP DERP FROSTED BUTTS
</div>
</div>
</div>
</body>
</html>

View file

@ -0,0 +1,118 @@
var $jq = jQuery.noConflict();
function changeFrontPage(page_name) {
var tabs = $jq(".tab");
var pages = $jq(".page");
var current_page = getHashVal();
pages.hide();
if(current_page=="") {
$jq(pages[0]).show();
} else {
for(var p = 0; p < pages.length; p++) {
var page = $jq(pages[p]);
if(page.attr("id").replace("-page","").replace("page","") == current_page) {
page.show()
}
}
}
for(var i = 0; i < tabs.length; i++) {
var child = $jq(tabs[i]).children(0)
var tabname = child.text();
if(tabname.toLowerCase() == current_page) {
$jq("#current-tab").attr({"id":""});
child.parent().attr({"id":"current-tab"});
}
}
tabs.find("a").click(function(event) {
current_page = getHashVal($jq(this).attr("href"));
if(current_page == "") {
$jq("#current-tab").attr({"id":""});
$jq(tabs[0]).attr({"id":"current-tab"});
} else {
for(var i = 0; i < tabs.length; i++) {
var child = $jq(tabs[i]).children(0)
var tabname = child.text();
if(tabname.toLowerCase() == current_page) {
$jq("#current-tab").attr({"id":""});
$jq(tabs[i]).attr({"id":"current-tab"});
}
}
}
pages.hide()
if(current_page=="") {
$jq(pages[0]).show();
} else {
for(var p = 0; p < pages.length; p++) {
var page = $jq(pages[p]);
if(page.attr("id").replace("-page","").replace("page","") == current_page) {
page.show()
}
}
}
});
}
function getArg(name) {
var href = window.location.href;
var args = href.substr(href.indexOf("?")+1, href.length);
args = args.split("&");
for(var i = 0; i < args.length; i++) {
temp_args = args[i];
temp_args = temp_args.split("=");
temp_name = temp_args[0];
temp_value = temp_args[1];
args[temp_name] = temp_value;
args[i] = temp_args;
}
return args[name];
}
function getHashVal() {
var href = window.location.href;
if(arguments.length == 1) {
href = arguments[0];
}
if(href.indexOf("#") == -1) {
return "";
} else {
var hash = href.substring(href.indexOf("#"),href.length);
if(hash == "#") return ""
else return hash.substring(1,hash.length);
}
}
function isFrontPage() {
var page = window.location.pathname;
return page == "/" || page == "/index.html";
}
function isBoardPage() {
}
function isThreadPage() {
}
$jq(document).ready(function() {
if(isFrontPage()) {
changeFrontPage(getHashVal());
}
$jq(".plus").click(function() {
var block = $jq(this).parent().next();
if(block.css("display") == "none") {
block.show();
$jq(this).html("-");
} else {
block.hide();
$jq(this).html("+");
}
});
});

View file

@ -0,0 +1,37 @@
// Drop down link menu
var down_arrow_symbol = "&#9660;";
var up_arrow_symbol = "&#9650;";
var $jq = jQuery.noConflict();
var LinkMenu = function(title) {
this.linkURLs = [];
this.linkTitles = [];
this.buttonTitle = title;
$jq("div#verytopbar").append("<a href=\"#\" style=\"float:right;\" class=\"dropdown-button\" id=\""+title.toLowerCase()+"\">"+title+"</a>");
this.button_jq = $jq("a#"+title.);
this.button_jq.click(function(){
$jq(document.body).append("<div id="+title.toLowerCase())
})
}
LinkMenu.prototype.open = function() {
}
LinkMenu.prototype.close = function() {
}
LinkMenu.prototype.isOpen = function() {
}
LinkMenu.prototype.addLink = function() {
}
LinkMenu.prototype.buildHTML = function() {
}

25
html/linkmenu.html Normal file
View file

@ -0,0 +1,25 @@
<!DOCTYPE html>
<html>
<head>
<title>Link menu test</title>
<script type="text/javascript" src="javascript/jquery/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="javascript/linkmenu.js"></script>
<link rel="stylesheet" type="text/css" href="css/burichan/img.css"></link>
<script type="text/javascript">
var $jq = jQuery.noConflict();
var mod_menu;
$jq(document).ready(function(){
mod_menu = new LinkMenu("Manage")
})
</script>
</head>
<body>
<div id="verytopbar"><a href="#">/test/</a> | <a href="#">/test/</a></div>
<br />
<div id="main">
bleh
</div>
</body>
</html>

View file

@ -0,0 +1 @@
Board page

View file

@ -6,8 +6,8 @@
<body>
<h1>Upload file</h1>
<form action="/upload" method="POST" id="uploadform" enctype="multipart/form-data">
<input type="file" id="fileinput" multiple="true" name="file">
<form action="/post" method="POST" id="uploadform" enctype="multipart/form-data">
<input type="file" id="file" multiple="false" name="file">
<input type="submit" id="filesubmit" value="Upload">
</form>