Further changes for the Use cases on the live site.
[yaffs-website] / node_modules / phantomjs-prebuilt / lib / phantom / examples / render_multi_url.js
1 // Render Multiple URLs to file
2
3 "use strict";
4 var RenderUrlsToFile, arrayOfUrls, system;
5
6 system = require("system");
7
8 /*
9 Render given urls
10 @param array of URLs to render
11 @param callbackPerUrl Function called after finishing each URL, including the last URL
12 @param callbackFinal Function called after finishing everything
13 */
14 RenderUrlsToFile = function(urls, callbackPerUrl, callbackFinal) {
15     var getFilename, next, page, retrieve, urlIndex, webpage;
16     urlIndex = 0;
17     webpage = require("webpage");
18     page = null;
19     getFilename = function() {
20         return "rendermulti-" + urlIndex + ".png";
21     };
22     next = function(status, url, file) {
23         page.close();
24         callbackPerUrl(status, url, file);
25         return retrieve();
26     };
27     retrieve = function() {
28         var url;
29         if (urls.length > 0) {
30             url = urls.shift();
31             urlIndex++;
32             page = webpage.create();
33             page.viewportSize = {
34                 width: 800,
35                 height: 600
36             };
37             page.settings.userAgent = "Phantom.js bot";
38             return page.open("http://" + url, function(status) {
39                 var file;
40                 file = getFilename();
41                 if (status === "success") {
42                     return window.setTimeout((function() {
43                         page.render(file);
44                         return next(status, url, file);
45                     }), 200);
46                 } else {
47                     return next(status, url, file);
48                 }
49             });
50         } else {
51             return callbackFinal();
52         }
53     };
54     return retrieve();
55 };
56
57 arrayOfUrls = null;
58
59 if (system.args.length > 1) {
60     arrayOfUrls = Array.prototype.slice.call(system.args, 1);
61 } else {
62     console.log("Usage: phantomjs render_multi_url.js [domain.name1, domain.name2, ...]");
63     arrayOfUrls = ["www.google.com", "www.bbc.co.uk", "phantomjs.org"];
64 }
65
66 RenderUrlsToFile(arrayOfUrls, (function(status, url, file) {
67     if (status !== "success") {
68         return console.log("Unable to render '" + url + "'");
69     } else {
70         return console.log("Rendered '" + url + "' at '" + file + "'");
71     }
72 }), function() {
73     return phantom.exit();
74 });