aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.vscode/launch.json2
-rw-r--r--build/server.js30
-rw-r--r--src/server/HttpServer.hx9
3 files changed, 34 insertions, 7 deletions
diff --git a/.vscode/launch.json b/.vscode/launch.json
index 412a615..f91d1ed 100644
--- a/.vscode/launch.json
+++ b/.vscode/launch.json
@@ -1,7 +1,7 @@
{
"configurations": [
{
- "type": "pwa-node",
+ "type": "node",
"request": "launch",
"name": "Node: build and run",
"program": "${workspaceFolder}/build/server.js",
diff --git a/build/server.js b/build/server.js
index 955c5cb..88ae775 100644
--- a/build/server.js
+++ b/build/server.js
@@ -337,7 +337,7 @@ json2object_reader_BaseParser.prototype = {
this.putils = new json2object_PositionUtils(jsonString);
this.errors = [];
try {
- this.loadJson(new hxjsonast_Parser(jsonString,filename).parseRec());
+ this.loadJson(new hxjsonast_Parser(jsonString,filename).doParse());
} catch( _g ) {
var _g1 = haxe_Exception.caught(_g).unwrap();
if(((_g1) instanceof hxjsonast_Error)) {
@@ -2900,7 +2900,24 @@ var hxjsonast_Parser = function(source,filename) {
};
hxjsonast_Parser.__name__ = true;
hxjsonast_Parser.prototype = {
- parseRec: function() {
+ doParse: function() {
+ var result = this.parseRec();
+ var c;
+ while(true) {
+ c = this.source.charCodeAt(this.pos++);
+ if(!(c == c)) {
+ break;
+ }
+ switch(c) {
+ case 9:case 10:case 13:case 32:
+ break;
+ default:
+ this.invalidChar();
+ }
+ }
+ return result;
+ }
+ ,parseRec: function() {
while(true) {
var c = this.source.charCodeAt(this.pos++);
switch(c) {
@@ -2928,7 +2945,7 @@ hxjsonast_Parser.prototype = {
pm = true;
break;
case 46:
- if(minus || point) {
+ if(minus || point || e) {
this.invalidNumber(start);
}
digit = false;
@@ -3033,7 +3050,7 @@ hxjsonast_Parser.prototype = {
case 9:case 10:case 13:case 32:
break;
case 34:
- if(comma1) {
+ if(field != null || comma1) {
this.invalidChar();
}
var fieldStartPos = this.pos - 1;
@@ -3766,7 +3783,10 @@ server_HttpServer.serveMedia = function(req,res,filePath) {
var videoSize = js_node_Fs.statSync(filePath).size;
var range = req.headers["range"];
if(range == null) {
- range = "bytes=0-";
+ res.statusCode = 200;
+ res.setHeader("Content-Length","" + videoSize);
+ js_node_Fs.createReadStream(filePath).pipe(res);
+ return true;
}
var ranges = new EReg("[-=]","g").split(range);
var start = parseFloat(ranges[1]);
diff --git a/src/server/HttpServer.hx b/src/server/HttpServer.hx
index 2805770..8e4cf75 100644
--- a/src/server/HttpServer.hx
+++ b/src/server/HttpServer.hx
@@ -123,7 +123,14 @@ class HttpServer {
if (!Fs.existsSync(filePath)) return false;
final videoSize = Fs.statSync(filePath).size;
var range:String = req.headers["range"];
- if (range == null) range = "bytes=0-";
+ if (range == null) {
+ res.statusCode = 200;
+ res.setHeader("Content-Length", '$videoSize');
+ final videoStream = Fs.createReadStream(filePath);
+ videoStream.pipe(res);
+ return true;
+ }
+ // if (range == null) range = "bytes=0-";
final ranges = ~/[-=]/g.split(range);
var start = Std.parseFloat(ranges[1]);
if (Utils.isOutOfRange(start, 0, videoSize - 1)) start = 0;
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage