| | |
| | | |
| | | |
| | | import cn.hutool.core.collection.CollUtil; |
| | | import cn.hutool.core.date.DatePattern; |
| | | import cn.hutool.core.date.DateTime; |
| | | import cn.hutool.core.date.DateUtil; |
| | | import cn.hutool.core.util.StrUtil; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.xcong.farmer.cms.core.handler.DataParserHandler; |
| | | import com.xcong.farmer.cms.core.tag.TagsEnum; |
| | | import com.xcong.farmer.cms.core.tag.model.TimeTag; |
| | | import com.xcong.farmer.cms.core.template.Configuration; |
| | | import com.xcong.farmer.cms.core.template.TemplateConfiguration; |
| | | import com.xcong.farmer.cms.utils.GroovySingleton; |
| | |
| | | import org.jsoup.nodes.Element; |
| | | import org.jsoup.select.Elements; |
| | | |
| | | import java.time.format.DateTimeFormatter; |
| | | import java.util.Date; |
| | | import java.util.HashMap; |
| | | import java.util.Map; |
| | | import java.util.regex.Matcher; |
| | |
| | | return false; |
| | | } |
| | | |
| | | public void staticPath() { |
| | | // 设置img的链接访问 |
| | | if ("img".equals(this.element.tagName())) { |
| | | String src = this.element.attr("src"); |
| | | if (StrUtil.isNotBlank(STATIC_URL)) { |
| | | this.element.attr("src", STATIC_URL + src); |
| | | } |
| | | } |
| | | |
| | | if ("link".equals(this.element.tagName())) { |
| | | String src = this.element.attr("href"); |
| | | if (StrUtil.isNotBlank(STATIC_URL)) { |
| | | this.element.attr("href", STATIC_URL + src); |
| | | } |
| | | } |
| | | |
| | | if ("script".equals(this.element.tagName())) { |
| | | String src = this.element.attr("src"); |
| | | if (StrUtil.isNotBlank(STATIC_URL)) { |
| | | this.element.attr("src", STATIC_URL + src); |
| | | } |
| | | } |
| | | } |
| | | |
| | | public void parser() { |
| | | staticPath(); |
| | | // 判断是否为最小节点,如果是且没有特殊标签,则跳过清空 |
| | | if (!isNeedEmpty()) { |
| | | return; |
| | |
| | | this.element.text(result); |
| | | } else if ("html".equals(key)) { |
| | | this.element.html(result); |
| | | } else if ("time".equals(key)) { |
| | | TimeTag time = parserTag(result, TimeTag.class); |
| | | String timeStr = DateUtil.format(DateUtil.parse(time.getDate(), DatePattern.NORM_DATETIME_PATTERN), time.getFormat()); |
| | | this.element.text(timeStr); |
| | | } else { |
| | | this.element.attr(key, result); |
| | | } |
| | |
| | | Script parse = groovyShell.parse(group); |
| | | parse.setBinding(binding); |
| | | Object evaluate = parse.run(); |
| | | if (evaluate instanceof Date) { |
| | | evaluate = DateUtil.format((Date) evaluate, DatePattern.NORM_DATETIME_PATTERN); |
| | | } |
| | | |
| | | if (evaluate == null) { |
| | | targetData.put(group, ""); |
| | | } else { |