Advertisement
Guest User

Untitled

a guest
Oct 31st, 2014
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var g = require('idle-gc');
  2. var qs = require('querystring');
  3. var faker = require('faker');
  4. var node_uuid = require('node-uuid');
  5. var redis = require('redis');
  6. var redisClient = redis.createClient();
  7.  
  8. var fs = require('fs');
  9. var http = require('http');
  10. var https = require('https');
  11.  
  12. var options = {
  13.   key: fs.readFileSync('/home/mif/aflamna/nginx_cert/aflamna.key'),
  14.   cert: fs.readFileSync('/home/mif/aflamna/nginx_cert/aflamna.crt')
  15. };
  16.  
  17. g.start();
  18.  
  19. var server = http.createServer(function(req, res){
  20.     var movie = qs.parse(req.url);
  21.     var path = "/home/mif/movies/Lucy.2014.TRUEFRENCH.R6.MD.XviD-SHiFT/Lucy.2014.TRUEFRENCH.R6.MD.XviD-SHiFT.avi";
  22.     server.on('connection', function(){
  23.         console.log("yes its a new connection");
  24.     });
  25.        
  26.     console.log(movie);
  27.     if(req.url==="/stream"){
  28.         var redis_key = "com.mifadir.aflamna.ma:movies:name:Lucy.2014.TRUEFRENCH.R6.MD.XviD-SHiFT.avi:views:number";
  29.         res.setHeader('Content-Type', "video/mp4");
  30.         var view_info = {uuid:node_uuid.v1(), time:new Date(), name:faker.name.firstName()};
  31.         var live_key = "com.mifadir.aflamna.ma:movies:name:Lucy.2014.TRUEFRENCH.R6.MD.XviD-SHiFT.avi:live:number";
  32.         console.log(movie.name);
  33.        
  34.         var stat = fs.statSync(path);
  35.         var total = stat.size;
  36.         if (req.headers['range']) {
  37.             var range = req.headers.range;
  38.             var parts = range.replace(/bytes=/, "").split("-");
  39.             var partialstart = parts[0];
  40.             var partialend = parts[1];
  41.          
  42.             var start = parseInt(partialstart, 10);
  43.             var end = partialend ? parseInt(partialend, 10) : total-1;
  44.             var chunksize = (end-start)+1;
  45.             console.log('RANGE: ' + start + ' - ' + end + ' = ' + chunksize);
  46.          
  47.             var file = fs.createReadStream(path, {start: start, end: end});
  48.             res.writeHead(206, { 'Content-Range': 'bytes ' + start + '-' + end + '/' + total, 'Accept-Ranges': 'bytes', 'Content-Length': chunksize, 'Content-Type': 'video/mp4' });
  49.             file.pipe(res);
  50.  
  51.         } else {
  52.             console.log('ALL: ' + total);
  53.             res.writeHead(200, { 'Content-Length': total, 'Content-Type': 'video/mp4' });
  54.             fs.createReadStream(path).pipe(res);
  55.         }
  56.     }else if(req.url==="/list"){
  57.             fs.readdir(movies_path, function(err, results){
  58.             if(err){
  59.                 res.send(JSON.stringify({"status":"ERR", "msg":"ERROR FINDING MOVIES"}));
  60.             }else {
  61.                 res.send(JSON.stringify({"status":"OK", "msg":results}));
  62.             }
  63.         });
  64.     }else {
  65.         res.end(JSON.stringify({"status":"OK", "msg":"no api in that path"}));
  66.     }
  67.  
  68.     res.on('close', function(){
  69.  
  70.         /*redisClient.incr(live_key, function(err, res1){
  71.             if(err){
  72.                 console.log(err);
  73.             }else {
  74.                 console.log('live done');
  75.             }
  76.         });*/
  77.  
  78.         //console.log(req);
  79.         var redis_key = "com.mifadir.aflamna.ma:movies:name:Lucy.2014.TRUEFRENCH.R6.MD.XviD-SHiFT.avi:views:number";
  80.         redisClient.incr(redis_key, function(err, res1){
  81.             if(err){
  82.                 console.log(err);
  83.             }else {
  84.                 var list_key = "com.mifadir.aflamna.ma:movies:name:Lucy.2014.TRUEFRENCH.R6.MD.XviD-SHiFT.avi:views:list";
  85.                 redisClient.lpush(list_key, JSON.stringify(view_info), function(err, res2){
  86.                     if(err){
  87.                         console.log(err);
  88.                     }else {
  89.                         console.log("lpush view_info");
  90.                         var key_list= "com.mifadir.aflamna.ma:movies:name:Lucy.2014.TRUEFRENCH.R6.MD.XviD-SHiFT.avi:live:list";
  91.                         redisClient.lpush(key_list, JSON.stringify(view_info), function(err, res2){
  92.                             if(err){
  93.                                 console.log(err);
  94.                             }else {
  95.                                 console.log("lpush done");
  96.                             }
  97.                         });
  98.                     }
  99.                 });
  100.                 console.log("INCR done another user see that movie");
  101.             }
  102.         });
  103.  
  104.         redisClient.decr(live_key, function(err, res1){
  105.             if(err){
  106.                 console.log(err);
  107.             }else {
  108.                 console.log('live done');
  109.                 var key_list= "com.mifadir.aflamna.ma:movies:name:Lucy.2014.TRUEFRENCH.R6.MD.XviD-SHiFT.avi:live:list";
  110.                 redisClient.lrem(key_list, 1,  JSON.stringify(view_info), function(err, res2){
  111.                     if(err){
  112.                         console.log(err);
  113.                     }else {
  114.                         console.log("lrem done");
  115.                     }
  116.                 });
  117.             }
  118.         });
  119.     });
  120.  
  121. });
  122.  
  123. server.listen(8080);
  124. console.log("http://0.0.0.0:8080");
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement