Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var g = require('idle-gc');
- var qs = require('querystring');
- var faker = require('faker');
- var node_uuid = require('node-uuid');
- var redis = require('redis');
- var redisClient = redis.createClient();
- var fs = require('fs');
- var http = require('http');
- var https = require('https');
- var options = {
- key: fs.readFileSync('/home/mif/aflamna/nginx_cert/aflamna.key'),
- cert: fs.readFileSync('/home/mif/aflamna/nginx_cert/aflamna.crt')
- };
- g.start();
- var server = http.createServer(function(req, res){
- var movie = qs.parse(req.url);
- var path = "/home/mif/movies/Lucy.2014.TRUEFRENCH.R6.MD.XviD-SHiFT/Lucy.2014.TRUEFRENCH.R6.MD.XviD-SHiFT.avi";
- server.on('connection', function(){
- console.log("yes its a new connection");
- });
- console.log(movie);
- if(req.url==="/stream"){
- var redis_key = "com.mifadir.aflamna.ma:movies:name:Lucy.2014.TRUEFRENCH.R6.MD.XviD-SHiFT.avi:views:number";
- res.setHeader('Content-Type', "video/mp4");
- var view_info = {uuid:node_uuid.v1(), time:new Date(), name:faker.name.firstName()};
- var live_key = "com.mifadir.aflamna.ma:movies:name:Lucy.2014.TRUEFRENCH.R6.MD.XviD-SHiFT.avi:live:number";
- console.log(movie.name);
- var stat = fs.statSync(path);
- var total = stat.size;
- if (req.headers['range']) {
- var range = req.headers.range;
- var parts = range.replace(/bytes=/, "").split("-");
- var partialstart = parts[0];
- var partialend = parts[1];
- var start = parseInt(partialstart, 10);
- var end = partialend ? parseInt(partialend, 10) : total-1;
- var chunksize = (end-start)+1;
- console.log('RANGE: ' + start + ' - ' + end + ' = ' + chunksize);
- var file = fs.createReadStream(path, {start: start, end: end});
- res.writeHead(206, { 'Content-Range': 'bytes ' + start + '-' + end + '/' + total, 'Accept-Ranges': 'bytes', 'Content-Length': chunksize, 'Content-Type': 'video/mp4' });
- file.pipe(res);
- } else {
- console.log('ALL: ' + total);
- res.writeHead(200, { 'Content-Length': total, 'Content-Type': 'video/mp4' });
- fs.createReadStream(path).pipe(res);
- }
- }else if(req.url==="/list"){
- fs.readdir(movies_path, function(err, results){
- if(err){
- res.send(JSON.stringify({"status":"ERR", "msg":"ERROR FINDING MOVIES"}));
- }else {
- res.send(JSON.stringify({"status":"OK", "msg":results}));
- }
- });
- }else {
- res.end(JSON.stringify({"status":"OK", "msg":"no api in that path"}));
- }
- res.on('close', function(){
- /*redisClient.incr(live_key, function(err, res1){
- if(err){
- console.log(err);
- }else {
- console.log('live done');
- }
- });*/
- //console.log(req);
- var redis_key = "com.mifadir.aflamna.ma:movies:name:Lucy.2014.TRUEFRENCH.R6.MD.XviD-SHiFT.avi:views:number";
- redisClient.incr(redis_key, function(err, res1){
- if(err){
- console.log(err);
- }else {
- var list_key = "com.mifadir.aflamna.ma:movies:name:Lucy.2014.TRUEFRENCH.R6.MD.XviD-SHiFT.avi:views:list";
- redisClient.lpush(list_key, JSON.stringify(view_info), function(err, res2){
- if(err){
- console.log(err);
- }else {
- console.log("lpush view_info");
- var key_list= "com.mifadir.aflamna.ma:movies:name:Lucy.2014.TRUEFRENCH.R6.MD.XviD-SHiFT.avi:live:list";
- redisClient.lpush(key_list, JSON.stringify(view_info), function(err, res2){
- if(err){
- console.log(err);
- }else {
- console.log("lpush done");
- }
- });
- }
- });
- console.log("INCR done another user see that movie");
- }
- });
- redisClient.decr(live_key, function(err, res1){
- if(err){
- console.log(err);
- }else {
- console.log('live done');
- var key_list= "com.mifadir.aflamna.ma:movies:name:Lucy.2014.TRUEFRENCH.R6.MD.XviD-SHiFT.avi:live:list";
- redisClient.lrem(key_list, 1, JSON.stringify(view_info), function(err, res2){
- if(err){
- console.log(err);
- }else {
- console.log("lrem done");
- }
- });
- }
- });
- });
- });
- server.listen(8080);
- console.log("http://0.0.0.0:8080");
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement