Advertisement
Guest User

Untitled

a guest
Sep 26th, 2017
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.52 KB | None | 0 0
  1. this.router.get("/", (req: Request, res: Response) => {
  2. this.client.add(req.headers.magneturi as string, (torrent) => {
  3. const files = torrent.files;
  4.  
  5. files.forEach((file) => {
  6. const length = file.length;
  7. const range = req.headers.range;
  8.  
  9. if (range) {
  10. const parts = range.replace(/bytes=/, "").split("-");
  11. const start = parseInt(parts[0], 10);
  12. const end = parts[1]
  13. ? parseInt(parts[1], 10)
  14. : length - 1;
  15. const chunksize = (end - start) + 1;
  16. let source = file.createReadStream({ start, end });
  17. const head = {
  18. "Content-Range": `bytes ${start}-${end}/${length}`,
  19. "Accept-Ranges": "bytes",
  20. "Content-Length": chunksize,
  21. "Content-Type": "video/mp4",
  22. }
  23. res.writeHead(206, head);
  24. source.pipe(res);
  25. } else {
  26. const head = {
  27. "Content-Length": length,
  28. "Content-Type": "video/mp4",
  29. };
  30. res.writeHead(200, head);
  31. file.createReadStream().pipe(res);
  32. }
  33. });
  34. });
  35. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement