Advertisement
Guest User

flipflop

a guest
Jun 20th, 2014
560
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.39 KB | None | 0 0
  1. var url = require("url");
  2.  
  3. var grooveshark = function(bs) { /* */ }
  4.  
  5. grooveshark.request = function(bs) {
  6.  
  7. var m = bs.request.urlParseCacheStore.host.match(/.*\.gs-cdn\.net$/);
  8. if(m) {
  9. var p = bs.request.urlParseCacheStore;
  10. p.hostname =
  11. p.host = 'gs-cdn.net';
  12. delete p.search;
  13. return(true);
  14. }
  15.  
  16. var m = bs.request.urlParseCacheStore.host.match(/.*\.grooveshark\.com$/);
  17. if(m) {
  18.  
  19. var p = bs.request.urlParseCacheStore;
  20. p.hostname =
  21. p.host = 'data.grooveshark.com';
  22.  
  23. if(bs.request.urlParseCacheStore.path == '/stream.php') {
  24. bs.request.forceCache = true;
  25.  
  26. var data = '';
  27.  
  28. bs.pause();
  29.  
  30. bs.request.on('data', function(d) {
  31. data += d;
  32. });
  33. bs.request.on('end', function() {
  34. var u = url.parse('/?'+data, true);
  35. if(u.query.streamKey) {
  36. var streamKey = u.query.streamKey.split('_');
  37. streamKey = streamKey[2]+'_'+streamKey[3];
  38. p.query.streamKey = streamKey;
  39. delete p.search;
  40. }
  41.  
  42. bs.response.on('bsProxyPassConnection', function(bs, req) {
  43. req.write(data);
  44. });
  45.  
  46. bs.response.on('bsProxyPassRequest', function(pipe, req, res) {
  47. res.headers['cache-control'] = 'max-age=240000';
  48. delete res.headers.expires;
  49. });
  50.  
  51. bs.resume();
  52. bs.execute();
  53.  
  54. });
  55. return(true);
  56.  
  57. }
  58.  
  59. }
  60.  
  61.  
  62. return(false);
  63. }
  64.  
  65. module.exports = grooveshark;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement