From 9f5a6494a00c962232750cd0d9aeb04dce2bdf67 Mon Sep 17 00:00:00 2001 From: "yihua.huang" Date: Wed, 9 Apr 2014 10:44:52 +0800 Subject: [PATCH] add support for JDK6 #93 --- .../webmagic/scripts/ScriptProcessor.java | 55 ++++++++++--------- .../src/main/resources/js/oschina.js | 1 + 2 files changed, 29 insertions(+), 27 deletions(-) diff --git a/webmagic-scripts/src/main/java/us/codecraft/webmagic/scripts/ScriptProcessor.java b/webmagic-scripts/src/main/java/us/codecraft/webmagic/scripts/ScriptProcessor.java index 0214e8a..946d15e 100755 --- a/webmagic-scripts/src/main/java/us/codecraft/webmagic/scripts/ScriptProcessor.java +++ b/webmagic-scripts/src/main/java/us/codecraft/webmagic/scripts/ScriptProcessor.java @@ -55,34 +55,35 @@ public class ScriptProcessor implements PageProcessor { context.setAttribute("page", page, ScriptContext.ENGINE_SCOPE); context.setAttribute("config", site, ScriptContext.ENGINE_SCOPE); try { - switch (language) { - case JavaScript: - engine.eval(defines + "\n" + script, context); - NativeObject o = (NativeObject) engine.get("result"); - if (o != null) { - for (Map.Entry objectObjectEntry : o.entrySet()) { - page.getResultItems().put(objectObjectEntry.getKey().toString(), objectObjectEntry.getValue()); + switch (language) { + case JavaScript: + engine.eval(defines + "\n" + script, context); + NativeObject o = (NativeObject) engine.get("result"); + if (o != null) { + for (Object o1 : o.getIds()) { + String key = String.valueOf(o1); + page.getResultItems().put(key, NativeObject.getProperty(o, key)); + } } - } - break; - case JRuby: - RubyHash oRuby=(RubyHash)engine.eval(defines+"\n"+script,context); - Iterator itruby = oRuby.entrySet().iterator(); - while (itruby.hasNext()) { - Map.Entry pairs = (Map.Entry)itruby.next(); - page.getResultItems().put(pairs.getKey().toString(),pairs.getValue()); - } - break; - case Jython: - engine.eval(defines + "\n" + script, context); - PyDictionary oJython=(PyDictionary)engine.get("result"); - Iterator it = oJython.entrySet().iterator(); - while (it.hasNext()) { - Map.Entry pairs = (Map.Entry)it.next(); - page.getResultItems().put(pairs.getKey().toString(),pairs.getValue()); - } - break; - } + break; + case JRuby: + RubyHash oRuby = (RubyHash) engine.eval(defines + "\n" + script, context); + Iterator itruby = oRuby.entrySet().iterator(); + while (itruby.hasNext()) { + Map.Entry pairs = (Map.Entry) itruby.next(); + page.getResultItems().put(pairs.getKey().toString(), pairs.getValue()); + } + break; + case Jython: + engine.eval(defines + "\n" + script, context); + PyDictionary oJython = (PyDictionary) engine.get("result"); + Iterator it = oJython.entrySet().iterator(); + while (it.hasNext()) { + Map.Entry pairs = (Map.Entry) it.next(); + page.getResultItems().put(pairs.getKey().toString(), pairs.getValue()); + } + break; + } } catch (ScriptException e) { e.printStackTrace(); } diff --git a/webmagic-scripts/src/main/resources/js/oschina.js b/webmagic-scripts/src/main/resources/js/oschina.js index 305682e..02191c3 100755 --- a/webmagic-scripts/src/main/resources/js/oschina.js +++ b/webmagic-scripts/src/main/resources/js/oschina.js @@ -9,3 +9,4 @@ var config = { title = $("div.BlogTitle h1"), content = $("div.BlogContent") urls("http://my\\.oschina\\.net/flashsword/blog/\\d+") +config;