1 package net.javacoding.jspider.core.task.work; 2 3 import net.javacoding.jspider.api.event.resource.ResourceIgnoredForParsingEvent; 4 import net.javacoding.jspider.api.model.Decision; 5 import net.javacoding.jspider.core.SpiderContext; 6 import net.javacoding.jspider.core.util.URLUtil; 7 import net.javacoding.jspider.core.storage.Storage; 8 import net.javacoding.jspider.core.task.WorkerTask; 9 10 import java.net.URL ; 11 12 public class DecideOnParsingTask extends BaseWorkerTaskImpl { 13 14 protected URL url; 15 16 public DecideOnParsingTask(SpiderContext context, URL url ) { 17 super(context, WorkerTask.WORKERTASK_THINKERTASK); 18 this.url = url; 19 } 20 21 public void prepare() { 22 } 23 24 public void execute() { 25 Storage storage = context.getStorage(); 26 27 Decision parseDecision = context.getSiteParserRules(storage.getSiteDAO().find(URLUtil.getSiteURL(url))).applyRules(context, null, url); 28 storage.getDecisionDAO().saveParseDecision(storage.getResourceDAO().getResource(url), parseDecision); 29 30 if (parseDecision.getDecision() == Decision.RULE_ACCEPT || parseDecision.getDecision() == Decision.RULE_DONTCARE) { 31 context.getAgent().scheduleForParsing(url); 32 } else { 33 storage.getResourceDAO().setIgnoredForParsing(url); 34 context.getEventDispatcher().dispatch(new ResourceIgnoredForParsingEvent(storage.getResourceDAO().getResource(url))); 35 } 36 } 37 38 } 39 | Popular Tags |