Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var url = require("url");
- var grooveshark = function(bs) { /* */ }
- grooveshark.request = function(bs) {
- var m = bs.request.urlParseCacheStore.host.match(/.*\.gs-cdn\.net$/);
- if(m) {
- var p = bs.request.urlParseCacheStore;
- p.hostname =
- p.host = 'gs-cdn.net';
- delete p.search;
- return(true);
- }
- var m = bs.request.urlParseCacheStore.host.match(/.*\.grooveshark\.com$/);
- if(m) {
- var p = bs.request.urlParseCacheStore;
- p.hostname =
- p.host = 'data.grooveshark.com';
- if(bs.request.urlParseCacheStore.path == '/stream.php') {
- bs.request.forceCache = true;
- var data = '';
- bs.pause();
- bs.request.on('data', function(d) {
- data += d;
- });
- bs.request.on('end', function() {
- var u = url.parse('/?'+data, true);
- if(u.query.streamKey) {
- var streamKey = u.query.streamKey.split('_');
- streamKey = streamKey[2]+'_'+streamKey[3];
- p.query.streamKey = streamKey;
- delete p.search;
- }
- bs.response.on('bsProxyPassConnection', function(bs, req) {
- req.write(data);
- });
- bs.response.on('bsProxyPassRequest', function(pipe, req, res) {
- res.headers['cache-control'] = 'max-age=240000';
- delete res.headers.expires;
- });
- bs.resume();
- bs.execute();
- });
- return(true);
- }
- }
- return(false);
- }
- module.exports = grooveshark;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement