fsxto
01.10.2016, 17:36
Hallo Jungs,
ich habe versucht mit node.js ein Gateway zu bauen, an das ich eine Zippyshare Adresse schicke und ich die Datei zurück bekomme.
URL: http://localhost:3000/dl/http%3A%2F%2Fwww80.zippyshare.com%2Fv%2FLemLOZNF%2 Ffile.html
var express = require('express')
var app = express()
var request = require('request');
var cheerio = require('cheerio');
app.get('/', function(req, res) {
res.send('test');
});
app.get('/dl/:zippyUrl', function (req, res) {
var matches = req.params.zippyUrl.match(/www\d+\.zippyshare\.com\/v\/\S+\/file\.html/);
if(matches != null) {
downloadFile(req, res, req.params.zippyUrl);
} else {
res.send('Link is not Zippyshare :)')
}
})
function downloadFile(req, res, url) {
request.get({url: url, headers: { 'User-Agent': 'Leviathan' }, jar: true}, function(err, response, body) {
var $ = cheerio.load(body);
var i = 1;
$('script').each(function() {
if(i == 8) {
var matches = $(this).html().match(/getElementById\('lang-one'\).a.=.(\d+)/);
var key = ((matches[1]+3)*3)%1234567 + 3;
var url_parts = $(this).html().match(/\.href = \"\/d\/(.*)\/\"\+e\(\)\+\"\/(\S+)\";/);
var originalUrl_parts = url.match(/www(\d+)\.zippyshare\.com/);
var directLink = "http://www" + originalUrl_parts[1] + ".zippyshare.com/d/" + url_parts[1] + "/" + key + "/" + url_parts[2];
console.log(directLink);
console.log($(this).html());
request.get({url: directLink, headers: { 'User-Agent': 'Leviathan' }, jar: true}).pipe(res);
};
i++;
});
});
}
app.listen(3000)
Problem dabei ist leider, dass ich zwar den Link korrekt zusammen baue, aber als response vom 2ten Stream bekomme ich nur erneut die Seite der Datei.
Jemand eine Idee was das sein könnte? Cookies sind erlaubt und User-Agent ist gesetzt. Das sollte eigentlich alle Probleme beheben.
Dependencies:
request, cheerio, express
Ich verwende Node.js v5.10.1
Danke schonmal :)
ich habe versucht mit node.js ein Gateway zu bauen, an das ich eine Zippyshare Adresse schicke und ich die Datei zurück bekomme.
URL: http://localhost:3000/dl/http%3A%2F%2Fwww80.zippyshare.com%2Fv%2FLemLOZNF%2 Ffile.html
var express = require('express')
var app = express()
var request = require('request');
var cheerio = require('cheerio');
app.get('/', function(req, res) {
res.send('test');
});
app.get('/dl/:zippyUrl', function (req, res) {
var matches = req.params.zippyUrl.match(/www\d+\.zippyshare\.com\/v\/\S+\/file\.html/);
if(matches != null) {
downloadFile(req, res, req.params.zippyUrl);
} else {
res.send('Link is not Zippyshare :)')
}
})
function downloadFile(req, res, url) {
request.get({url: url, headers: { 'User-Agent': 'Leviathan' }, jar: true}, function(err, response, body) {
var $ = cheerio.load(body);
var i = 1;
$('script').each(function() {
if(i == 8) {
var matches = $(this).html().match(/getElementById\('lang-one'\).a.=.(\d+)/);
var key = ((matches[1]+3)*3)%1234567 + 3;
var url_parts = $(this).html().match(/\.href = \"\/d\/(.*)\/\"\+e\(\)\+\"\/(\S+)\";/);
var originalUrl_parts = url.match(/www(\d+)\.zippyshare\.com/);
var directLink = "http://www" + originalUrl_parts[1] + ".zippyshare.com/d/" + url_parts[1] + "/" + key + "/" + url_parts[2];
console.log(directLink);
console.log($(this).html());
request.get({url: directLink, headers: { 'User-Agent': 'Leviathan' }, jar: true}).pipe(res);
};
i++;
});
});
}
app.listen(3000)
Problem dabei ist leider, dass ich zwar den Link korrekt zusammen baue, aber als response vom 2ten Stream bekomme ich nur erneut die Seite der Datei.
Jemand eine Idee was das sein könnte? Cookies sind erlaubt und User-Agent ist gesetzt. Das sollte eigentlich alle Probleme beheben.
Dependencies:
request, cheerio, express
Ich verwende Node.js v5.10.1
Danke schonmal :)