modified: package.json

new file:   s/index.tpl.html
	new file:   s/item.tpl.html
	new file:   s/mp3.png
	new file:   s/style.css
	modified:   src/main.js
This commit is contained in:
Flummi
2016-08-16 13:29:32 +02:00
parent 7e192acae0
commit 244fa1053f
6 changed files with 136 additions and 37 deletions

View File

@ -9,6 +9,10 @@ var crypto = require('crypto');
var path = require('path');
var exec = require('child_process').exec;
var swig = require('swig');
var templates = {};
var sql;
var haDC = () => {
sql = mysql.createConnection(cfg.mysql);
@ -168,9 +172,7 @@ http.createServer((req, res) => {
var url = req.url.split("/")[1];
if(filePath == './')
filePath = './index.html';
console.log('request ', filePath);
var extname = String(path.extname(filePath)).toLowerCase();
var contentType = 'text/html';
var mimeTypes = {
@ -185,60 +187,61 @@ http.createServer((req, res) => {
'.webm': 'video/webm',
'.css': 'text/css'
};
if(filePath == "./index.html") { // mainpage
var tpl = swig.compile(templates.index);
var data = { items: [] };
sql.query("select * from `f0ck`.`items` order by `id` desc", (err, rows, fields) => {
var tmpres = "<!DOCTYPE blah><html><head><title>f0ck me!</title><link rel=\"stylesheet\" type=\"text/css\" href=\"./s/style.css\"></head><body>";
rows.forEach((e,i,a) => {
tmpres += "<div class='mrhankyisteinneger'><a href='./"+e.id+"'><img src='./t/"+e.id+".png' /></a></div>\n";
data.items.push( e.id );
});
tmpres += "</body></html>";
res.writeHead(200, { 'Content-Type': 'text/html' });
res.end(tmpres, 'utf-8');
res.end(tpl(data), 'utf-8');
});
}
else if(Number.isInteger(parseInt(url))) { // itempage
sql.query("select * from `f0ck`.`items` where `id` = ? limit 1", url, (err, rows, fields) => {
var tmpres = "";
var tpl = swig.compile(templates.item);
var data = {
id: '',
username: '',
item: '',
src: '',
dest: '',
mime: '',
size: '',
userchannel: '',
usernetwork: ''
};
rows.forEach((e,i,a) => {
tmpres = "<!DOCTYPE blah>\n<html>\n<head>\n<title>"+url+" - f0ck.me</title>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"./s/style.css\">\n</head>\n<body>\n<h4><a href='/'>f0ck.me</a></h4>\n";
tmpres += "<div class='id'>[ID: "+e.id+" | by: "+e.username+"]</div>\n";
tmpres += "<div class='medium'>";
switch(e.mime) {
case "image/png":
case "image/jpeg":
case "image/gif":
tmpres += "<img src='"+e.dest+"' style='max-width: 1024px' />";
data.item = 'image';
break;
case "video/webm":
case "video/mp4":
tmpres += "<video src='"+e.dest+"' style='max-width: 1024px' autoplay controls loop></video>";
data.item = 'video';
break;
case "audio/mpeg":
tmpres += "<audio controls src='"+e.dest+"' type='audio/mp3' autoplay></audio>";
data.item = 'audio';
break;
}
tmpres += "</div><br />\n";
tmpres += "<div class='controls'>controls f&uuml;r vor und zur&uuml;ck :^)</div><br />\n";
tmpres += "<div class='info'>";
tmpres += "<span class='src'>src: <a href='"+e.src+"' target='_blank'>"+e.src+"</a></span><br />";
tmpres += "<span class='dest'>dest: "+e.dest+"</span><br />";
tmpres += "<span class='mime'>mime: "+e.mime+"</span>&nbsp;";
tmpres += "<span class='size'>size: "+formatSize(e.size)+"</span><br />";
tmpres += "<span class='channel'>channel: "+e.userchannel+"</span>&nbsp;";
tmpres += "<span class='network'>network: "+e.usernetwork+"</span>";
tmpres += "</div>\n</body>\n</html>";
data.id = e.id;
data.username = e.username;
data.src = e.src;
data.dest = e.dest;
data.mime = e.mime;
data.size = formatSize(e.size);
data.userchannel = e.userchannel;
data.usernetwork = e.usernetwork;
});
res.writeHead(200, { 'Content-Type': 'text/html' });
res.end(tmpres, 'utf-8');
res.end(tpl(data), 'utf-8');
});
}
else if(filePath.match(/^\.\/(b|s|t)\/.*/)) { // file
contentType = mimeTypes[extname] || 'application/octect-stream';
switch(contentType) {
case "video/webm":
case "video/mp4":
@ -258,12 +261,9 @@ http.createServer((req, res) => {
'Content-Type':contentType,
'Content-Length':end - start,
'Content-Range':'bytes '+start+'-'+end+'/'+stat.size,
// 'Accept-Ranges':'bytes',
// 'Server':'CustomStreamer/0.0.1',
'Transfer-Encoding':'chunked'
});
var stream = fs.createReadStream(filePath,
{ flags: 'r', start: start, end: end});
var stream = fs.createReadStream(filePath, { flags: 'r', start: start, end: end});
stream.pipe(res);
break;
default:
@ -286,8 +286,6 @@ http.createServer((req, res) => {
});
break;
}
fs.readFile(filePath, (error, content) => {
if(error) {
if(error.code == 'ENOENT') {
@ -311,6 +309,13 @@ http.createServer((req, res) => {
}
}).listen(cfg.webserver.port);
var getTpls = () => {
templates = {
"index": fs.readFileSync("./s/index.tpl.html", "utf-8"),
"item": fs.readFileSync("./s/item.tpl.html", "utf-8")
};
};
getTpls();
// Thumbnailbackgroundworker