Fetch today's Girls with Slingshots comic
Created: 2011-09-14 05:17:49
Last updated: 2011-09-14 05:22:52
This workflow uses local java plugins and filtering operations to fetch today's comic strip image from http://www.girlswithslingshots.com/. Girls with Slingshots focuses on the lives of a group of women in their twenties. It is one of the few major webcomics to pass the Bechdel test. Based on the workflow "Fetch today's xkcd comic" by Tom Oinn and Stian Soiland-Reyes.
Preview
Run
Run this Workflow in the Taverna Workbench...
Workflow Components
Authors (1)
Titles (1)
Fetch today's Girls with Slingshots comic |
Descriptions (1)
This workflow uses local java plugins and filtering operations to fetch today's comic strip image from http://www.girlswithslingshots.com/. Girls with Slingshots focuses on the lives of a group of women in their twenties. It has been featured all over the feminist blogosphere because it is one of the few good webcomics to pass the Bechdel test.
Based on the workflow "Fetch today's xkcd comic" by Tom Oinn and Stian Soiland-Reyes. |
Dependencies (0)
Processors (6)
Name |
Type |
Description |
getPage |
localworker |
ScriptURL inputURL = null;
if (base != void) {
inputURL = new URL(new URL(base), url);
}
else {
inputURL = new URL(url);
}
URLConnection con = inputURL.openConnection();
InputStream in = con.getInputStream();
InputStreamReader isr = new InputStreamReader(in);
Reader inReader = new BufferedReader(isr);
StringBuffer buf = new StringBuffer();
int ch;
while ((ch = inReader.read()) > -1) {
buf.append((char)ch);
}
inReader.close();
contents = buf.toString();
//String NEWLINE = System.getProperty("line.separator");
//
//URL inputURL = null;
//if (base != void) {
// inputURL = new URL(new URL(base), url);
//} else {
// inputURL = new URL(url);
//}
//StringBuffer result = new StringBuffer();
//BufferedReader reader = new BufferedReader(new InputStreamReader(inputURL.openStream()));
//String line = null;
//while ((line = reader.readLine()) != null) {
// result.append(line);
// result.append(NEWLINE);
//}
//
//contents = result.toString();
|
GirlsWithSlingshotsURL |
stringconstant |
Valuehttp://www.girlswithslingshots.com/ |
getImageLinks |
localworker |
ScriptString lowerCaseContent = document.toLowerCase();
int index = 0;
List imagelinks = new ArrayList();
while ((index = lowerCaseContent.indexOf("#");
String strLink = st.nextToken();
imagelinks.add(strLink);
}
|
findComicURL |
localworker |
Scriptfilteredlist = new ArrayList();
for (Iterator i = stringlist.iterator(); i.hasNext();) {
String item = (String) i.next();
if (item.matches(regex)) {
filteredlist.add(item);
}
}
|
comicURLRegex |
stringconstant |
Value.*/comics/.* |
getComicStrip |
localworker |
ScriptURL inputURL = null;
if (base != void) {
inputURL = new URL(new URL(base), url);
} else {
inputURL = new URL(url);
}
byte[] contents;
if (inputURL.openConnection().getContentLength() == -1) {
// Content size unknown, must read first...
byte[] buffer = new byte[1024];
int bytesRead = 0;
int totalBytesRead = 0;
InputStream is = inputURL.openStream();
while (bytesRead != -1) {
totalBytesRead += bytesRead;
bytesRead = is.read(buffer, 0, 1024);
}
contents = new byte[totalBytesRead];
} else {
contents = new byte[inputURL.openConnection().getContentLength()];
}
int bytesRead = 0;
int totalBytesRead = 0;
InputStream is = inputURL.openStream();
while (bytesRead != -1) {
bytesRead = is.read(contents, totalBytesRead, contents.length - totalBytesRead);
totalBytesRead += bytesRead;
if (contents.length==totalBytesRead) break;
}
image = contents;
|
Outputs (1)
Name |
Description |
todaysGirlsWithSlingshots |
|
Datalinks (7)
Source |
Sink |
GirlsWithSlingshotsURL:value |
getPage:url |
getPage:contents |
getImageLinks:document |
comicURLRegex:value |
findComicURL:regex |
getImageLinks:imagelinks |
findComicURL:stringlist |
GirlsWithSlingshotsURL:value |
getComicStrip:base |
findComicURL:filteredlist |
getComicStrip:url |
getComicStrip:image |
todaysGirlsWithSlingshots |
Uploader
License
All versions of this Workflow are
licensed under:
Version 1
(of 1)
Credits (1)
(People/Groups)
Attributions (2)
(Workflows/Files)
Shared with Groups (1)
Featured In Packs (0)
None
Log in to add to one of your Packs
Attributed By (0)
(Workflows/Files)
None
Favourited By (0)
No one
Statistics
Other workflows that use similar services
(0)
There are no workflows in myExperiment that use similar services to this Workflow.
Comments (0)
No comments yet
Log in to make a comment