Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import { Selector } from 'testcafe';
- var fs = require('fs'),
- http = require('http'),
- https = require('https'),
- Stream = require('stream').Transform;
- let baseUrl = 'https://mangallama.com/manga.php?manga=Isekai-Tensei-Soudouki';
- var download = (url, filename, callback) => {
- var client = http;
- if (url.toString().indexOf("https") === 0){
- client = https;
- }
- var request = client.get(url, function(res){
- console.log(`Preparing... ${filename}`);
- var imagedata = ''
- res.setEncoding('binary')
- res.on('data', function(chunk){
- imagedata += chunk
- })
- res.on('end', function(){
- fs.writeFile(filename, imagedata, 'binary', function(err){
- if (err) throw err
- console.log(`${filename} Saved`)
- callback()
- })
- })
- })
- };
- fixture('Manga download').page(baseUrl);
- test('Parse data', async t => {
- await t.maximizeWindow();
- let iElements = await(Selector('.table-striped tbody tr').count);
- let i = 1;
- let chunk = '';
- let prev = Selector('#chapscontainer > table > tbody > tr:nth-child(1) > td:nth-child(1) > a');
- let prevLink = await prev.getAttribute('href');
- const BATCH_SIZE = 1000;
- console.log(`Accessing Chapter's Page`);
- do {
- await t.click(prev);
- let chapters = await(Selector('.imgholder').count);
- let j = 1;
- console.log(`Fetching Chapter's parts //`);
- console.log(`Downloading... Chapter ${i}`);
- do {
- let chap = Selector(".imgholder").nth(j);
- let src = await chap.getAttribute('src')
- let I = iElements - i ;
- let dir = `./Chapter-${I}`;
- if (!fs.existsSync(dir)){
- fs.mkdirSync(dir);
- }
- await download(src, `${dir}/${j}.jpg`, function() {
- console.log(`Chapter ${I} - ${j} Downloaded!`);
- });
- j++;
- } while (j < chapters);
- prev = Selector('#wrapper > div > div.col-md-12.hotlist > div:nth-child(3) > div > h3:nth-child(2) > a');
- prevLink = await prev.getAttribute('href');
- await t.wait(10000);
- await t.click(prev);
- i++;
- } while (i < iElements);
- }
- )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement