source: other-projects/FileTransfer-WebSocketPair/Themes/themebuilder/bin/phantomjs-1.9.2-windows/examples/render_multi_url.coffee@ 31525

Last change on this file since 31525 was 31525, checked in by ak19, 7 years ago

Nathan provided more stuff: Themes folder contains Sencha's Themebuilder which generates GXT Themes. It includes the .theme and generated .jar files for the project theme.

File size: 1.6 KB
Line 
1# Render Multiple URLs to file
2
3system = require("system")
4
5# Render given urls
6# @param array of URLs to render
7# @param callbackPerUrl Function called after finishing each URL, including the last URL
8# @param callbackFinal Function called after finishing everything
9RenderUrlsToFile = (urls, callbackPerUrl, callbackFinal) ->
10 urlIndex = 0 # only for easy file naming
11 webpage = require("webpage")
12 page = null
13 getFilename = ->
14 "rendermulti-" + urlIndex + ".png"
15
16 next = (status, url, file) ->
17 page.close()
18 callbackPerUrl status, url, file
19 retrieve()
20
21 retrieve = ->
22 if urls.length > 0
23 url = urls.shift()
24 urlIndex++
25 page = webpage.create()
26 page.viewportSize =
27 width: 800
28 height: 600
29
30 page.settings.userAgent = "Phantom.js bot"
31 page.open "http://" + url, (status) ->
32 file = getFilename()
33 if status is "success"
34 window.setTimeout (->
35 page.render file
36 next status, url, file
37 ), 200
38 else
39 next status, url, file
40
41 else
42 callbackFinal()
43
44 retrieve()
45arrayOfUrls = null
46if system.args.length > 1
47 arrayOfUrls = Array::slice.call(system.args, 1)
48else
49 # Default (no args passed)
50 console.log "Usage: phantomjs render_multi_url.js [domain.name1, domain.name2, ...]"
51 arrayOfUrls = ["www.google.com", "www.bbc.co.uk", "www.phantomjs.org"]
52
53RenderUrlsToFile arrayOfUrls, ((status, url, file) ->
54 if status isnt "success"
55 console.log "Unable to render '" + url + "'"
56 else
57 console.log "Rendered '" + url + "' at '" + file + "'"
58), ->
59 phantom.exit()
60
Note: See TracBrowser for help on using the repository browser.