commit
0a7ebc9c0d
267 changed files with 43361 additions and 0 deletions
-
BINcl_stream_datasave/cl_stream_datasave-2.0-SNAPSHOT.jar
-
179cl_stream_datasave/cl_stream_datasave.iml
-
125cl_stream_datasave/es.txt
-
542cl_stream_datasave/es_mapping
-
547cl_stream_datasave/foreground
-
187cl_stream_datasave/pom.xml
-
69cl_stream_datasave/src/main/java/com/bfd/mf/datasave/download/DownLoadFile.java
-
38cl_stream_datasave/src/main/java/com/bfd/mf/datasave/download/MyCookieJar.java
-
190cl_stream_datasave/src/main/java/com/bfd/mf/datasave/download/OkHttpUtils.java
-
33cl_stream_datasave/src/main/java/com/bfd/mf/datasave/download/ProxyIp.java
-
11cl_stream_datasave/src/main/java/com/bfd/mf/datasave/kafka/IKafka.java
-
117cl_stream_datasave/src/main/java/com/bfd/mf/datasave/kafka/ReadKafka.java
-
671cl_stream_datasave/src/main/java/com/bfd/mf/datasave/listen/DataSaveManager.java
-
424cl_stream_datasave/src/main/java/com/bfd/mf/datasave/listen/DataSaveManager_kongtianyuan.java
-
77cl_stream_datasave/src/main/java/com/bfd/mf/datasave/listen/ListenKafkaManager.java
-
30cl_stream_datasave/src/main/java/com/bfd/mf/datasave/listen/ListenTaskManager.java
-
226cl_stream_datasave/src/main/java/com/bfd/mf/datasave/tools/DBConnectionManager.java
-
317cl_stream_datasave/src/main/java/com/bfd/mf/datasave/tools/DBUtil.java
-
861cl_stream_datasave/src/main/java/com/bfd/mf/datasave/tools/DateUtil.java
-
33cl_stream_datasave/src/main/java/com/bfd/mf/datasave/tools/PropertiesUtil.java
-
37cl_stream_datasave/src/main/java/com/bfd/mf/datasave/tools/ReadLine.java
-
21cl_stream_datasave/src/main/java/com/bfd/mf/datasave/tools/WriteMethod.java
-
147cl_stream_datasave/src/main/java/com/bfd/mf/entity/AllKeys.java
-
21cl_stream_datasave/src/main/java/com/bfd/mf/entity/DataSaveManager.java
-
39cl_stream_datasave/src/main/java/com/bfd/mf/entity/FieldInfo.java
-
207cl_stream_datasave/src/main/java/com/bfd/mf/entity/FieldNormaliz.java
-
1397cl_stream_datasave/src/main/java/com/bfd/mf/entity/ReaultInfo.java
-
74cl_stream_datasave/src/main/java/com/bfd/mf/entity/impl/DataSaveManagerImpl.java
-
26cl_stream_datasave/src/main/java/com/bfd/mf/entity/mysql/FiledTableInfo.java
-
70cl_stream_datasave/src/main/java/com/bfd/mf/entity/mysql/SubjectTask.java
-
11cl_stream_datasave/src/main/java/com/bfd/mf/runstart/GeterExit.java
-
73cl_stream_datasave/src/main/java/com/bfd/mf/runstart/RunStartDataSave.java
-
37cl_stream_datasave/src/main/java/com/bfd/mf/runstart/TaskFileUtils.java
-
13cl_stream_datasave/src/test/java/AboutMysql.java
-
19cl_stream_datasave/src/test/java/CreatIndex.java
-
32cl_stream_datasave/src/test/java/Test1.java
-
205cl_stream_mybatis/cl_stream_mybatis.iml
-
180cl_stream_mybatis/pom.xml
-
18cl_stream_mybatis/src/main/java/com/bfd/mf/TestmybatisApplication.java
-
58cl_stream_mybatis/src/main/java/com/bfd/mf/common/ExternalConnCache.java
-
38cl_stream_mybatis/src/main/java/com/bfd/mf/common/PageBean.java
-
11cl_stream_mybatis/src/main/java/com/bfd/mf/config/XmlConfiguration.java
-
256cl_stream_mybatis/src/main/java/com/bfd/mf/controller/CompanyController.java
-
39cl_stream_mybatis/src/main/java/com/bfd/mf/entity/FieldInfo.java
-
258cl_stream_mybatis/src/main/java/com/bfd/mf/entity/FieldNormaliz.java
-
22cl_stream_mybatis/src/main/java/com/bfd/mf/entity/Record.java
-
84cl_stream_mybatis/src/main/java/com/bfd/mf/entity/StatInfo.java
-
86cl_stream_mybatis/src/main/java/com/bfd/mf/es/ESHandler.java
-
23cl_stream_mybatis/src/main/java/com/bfd/mf/mapper/FieldNormalizMapper.java
-
20cl_stream_mybatis/src/main/java/com/bfd/mf/mapper/StatMapper.java
-
12cl_stream_mybatis/src/main/java/com/bfd/mf/sendTask/SendTask.java
-
23cl_stream_mybatis/src/main/java/com/bfd/mf/sendTask/impl/SendTaskImpl.java
-
22cl_stream_mybatis/src/main/java/com/bfd/mf/service/FieldNormalizService.java
-
8cl_stream_mybatis/src/main/java/com/bfd/mf/service/MetaSearchService.java
-
17cl_stream_mybatis/src/main/java/com/bfd/mf/service/StatService.java
-
46cl_stream_mybatis/src/main/java/com/bfd/mf/service/impl/FieldNormalizServiceImpl.java
-
35cl_stream_mybatis/src/main/java/com/bfd/mf/service/impl/MetaSearchServiceImpl.java
-
42cl_stream_mybatis/src/main/java/com/bfd/mf/service/impl/StatServiceImpl.java
-
53cl_stream_mybatis/src/main/java/com/bfd/mf/tools/ConnectionRmi.java
-
18cl_stream_mybatis/src/main/resources/application.properties
-
63cl_stream_mybatis/src/main/resources/com/bfd/mf/mapper/fieldNormaliz.xml
-
50cl_stream_mybatis/src/main/resources/com/bfd/mf/mapper/statInfo.xml
-
31cl_stream_mybatis/src/main/resources/com/bfd/mf/spring/applicationContext.xml
-
4cl_stream_mybatis/src/main/resources/datasources.properties
-
18cl_stream_mybatis/src/main/resources/log4j.properties
-
124cl_stream_mybatis/src/main/resources/static/scripts/AjaxObject.js
-
203cl_stream_mybatis/src/main/resources/static/scripts/jquery.TableExcel.js
-
19cl_stream_mybatis/src/main/resources/static/scripts/jquery/jquery-1.3.2.min.js
-
209cl_stream_mybatis/src/main/resources/static/scripts/jquery/plugins/ajaxfileupload.js
-
49cl_stream_mybatis/src/main/resources/static/scripts/jquery/ui/effects.blind.js
-
78cl_stream_mybatis/src/main/resources/static/scripts/jquery/ui/effects.bounce.js
-
54cl_stream_mybatis/src/main/resources/static/scripts/jquery/ui/effects.clip.js
-
543cl_stream_mybatis/src/main/resources/static/scripts/jquery/ui/effects.core.js
-
50cl_stream_mybatis/src/main/resources/static/scripts/jquery/ui/effects.drop.js
-
79cl_stream_mybatis/src/main/resources/static/scripts/jquery/ui/effects.explode.js
-
56cl_stream_mybatis/src/main/resources/static/scripts/jquery/ui/effects.fold.js
-
48cl_stream_mybatis/src/main/resources/static/scripts/jquery/ui/effects.highlight.js
-
56cl_stream_mybatis/src/main/resources/static/scripts/jquery/ui/effects.pulsate.js
-
180cl_stream_mybatis/src/main/resources/static/scripts/jquery/ui/effects.scale.js
-
57cl_stream_mybatis/src/main/resources/static/scripts/jquery/ui/effects.shake.js
-
50cl_stream_mybatis/src/main/resources/static/scripts/jquery/ui/effects.slide.js
-
45cl_stream_mybatis/src/main/resources/static/scripts/jquery/ui/effects.transfer.js
-
762cl_stream_mybatis/src/main/resources/static/scripts/jquery/ui/i18n/jquery-ui-i18n.js
-
20cl_stream_mybatis/src/main/resources/static/scripts/jquery/ui/i18n/ui.datepicker-ar.js
-
20cl_stream_mybatis/src/main/resources/static/scripts/jquery/ui/i18n/ui.datepicker-bg.js
-
19cl_stream_mybatis/src/main/resources/static/scripts/jquery/ui/i18n/ui.datepicker-ca.js
-
19cl_stream_mybatis/src/main/resources/static/scripts/jquery/ui/i18n/ui.datepicker-cs.js
-
19cl_stream_mybatis/src/main/resources/static/scripts/jquery/ui/i18n/ui.datepicker-da.js
-
19cl_stream_mybatis/src/main/resources/static/scripts/jquery/ui/i18n/ui.datepicker-de.js
-
19cl_stream_mybatis/src/main/resources/static/scripts/jquery/ui/i18n/ui.datepicker-el.js
-
19cl_stream_mybatis/src/main/resources/static/scripts/jquery/ui/i18n/ui.datepicker-eo.js
-
19cl_stream_mybatis/src/main/resources/static/scripts/jquery/ui/i18n/ui.datepicker-es.js
-
19cl_stream_mybatis/src/main/resources/static/scripts/jquery/ui/i18n/ui.datepicker-fa.js
-
19cl_stream_mybatis/src/main/resources/static/scripts/jquery/ui/i18n/ui.datepicker-fi.js
-
19cl_stream_mybatis/src/main/resources/static/scripts/jquery/ui/i18n/ui.datepicker-fr.js
-
19cl_stream_mybatis/src/main/resources/static/scripts/jquery/ui/i18n/ui.datepicker-he.js
-
19cl_stream_mybatis/src/main/resources/static/scripts/jquery/ui/i18n/ui.datepicker-hr.js
-
19cl_stream_mybatis/src/main/resources/static/scripts/jquery/ui/i18n/ui.datepicker-hu.js
-
19cl_stream_mybatis/src/main/resources/static/scripts/jquery/ui/i18n/ui.datepicker-hy.js
-
19cl_stream_mybatis/src/main/resources/static/scripts/jquery/ui/i18n/ui.datepicker-id.js
@ -0,0 +1,179 @@ |
|||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||
|
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4"> |
||||
|
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8"> |
||||
|
<output url="file://$MODULE_DIR$/target/classes" /> |
||||
|
<output-test url="file://$MODULE_DIR$/target/test-classes" /> |
||||
|
<content url="file://$MODULE_DIR$"> |
||||
|
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" /> |
||||
|
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" /> |
||||
|
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" /> |
||||
|
<excludeFolder url="file://$MODULE_DIR$/target" /> |
||||
|
</content> |
||||
|
<orderEntry type="jdk" jdkName="1.8" jdkType="JavaSDK" /> |
||||
|
<orderEntry type="sourceFolder" forTests="false" /> |
||||
|
<orderEntry type="module-library"> |
||||
|
<library> |
||||
|
<CLASSES> |
||||
|
<root url="jar://$MODULE_DIR$/../../jarlib/kafka-0.10.jar!/" /> |
||||
|
</CLASSES> |
||||
|
<JAVADOC /> |
||||
|
<SOURCES> |
||||
|
<root url="jar://$MAVEN_REPOSITORY$/kafka-utils/kafka/0.10/kafka-0.10.jar!/" /> |
||||
|
</SOURCES> |
||||
|
</library> |
||||
|
</orderEntry> |
||||
|
<orderEntry type="module-library"> |
||||
|
<library> |
||||
|
<CLASSES> |
||||
|
<root url="jar://$MODULE_DIR$/../../../jarlib/slf4j-api-1.7.2.jar!/" /> |
||||
|
</CLASSES> |
||||
|
<JAVADOC /> |
||||
|
<SOURCES /> |
||||
|
</library> |
||||
|
</orderEntry> |
||||
|
<orderEntry type="module-library"> |
||||
|
<library> |
||||
|
<CLASSES> |
||||
|
<root url="jar://$MODULE_DIR$/../../jarlib/bfd_harpc_service-0.0.1.jar!/" /> |
||||
|
</CLASSES> |
||||
|
<JAVADOC /> |
||||
|
<SOURCES /> |
||||
|
</library> |
||||
|
</orderEntry> |
||||
|
<orderEntry type="module-library"> |
||||
|
<library> |
||||
|
<CLASSES> |
||||
|
<root url="jar://$MODULE_DIR$/../../jarlib/BfdRedisTools-2.0.jar!/" /> |
||||
|
</CLASSES> |
||||
|
<JAVADOC /> |
||||
|
<SOURCES /> |
||||
|
</library> |
||||
|
</orderEntry> |
||||
|
<orderEntry type="module-library"> |
||||
|
<library> |
||||
|
<CLASSES> |
||||
|
<root url="jar://$MODULE_DIR$/../../jarlib/dataManager-0.0.1-SNAPSHOT.jar!/" /> |
||||
|
</CLASSES> |
||||
|
<JAVADOC /> |
||||
|
<SOURCES /> |
||||
|
</library> |
||||
|
</orderEntry> |
||||
|
<orderEntry type="module-library"> |
||||
|
<library> |
||||
|
<CLASSES> |
||||
|
<root url="jar://$MODULE_DIR$/../../jarlib/hanlp-portable-1.6.8.jar!/" /> |
||||
|
</CLASSES> |
||||
|
<JAVADOC /> |
||||
|
<SOURCES /> |
||||
|
</library> |
||||
|
</orderEntry> |
||||
|
<orderEntry type="module-library"> |
||||
|
<library> |
||||
|
<CLASSES> |
||||
|
<root url="jar://$MODULE_DIR$/../../jarlib/nlp_common_util-1.1.jar!/" /> |
||||
|
</CLASSES> |
||||
|
<JAVADOC /> |
||||
|
<SOURCES /> |
||||
|
</library> |
||||
|
</orderEntry> |
||||
|
<orderEntry type="module-library"> |
||||
|
<library> |
||||
|
<CLASSES> |
||||
|
<root url="jar://$MODULE_DIR$/../../jarlib/taskManager-0.0.1-SNAPSHOT.jar!/" /> |
||||
|
</CLASSES> |
||||
|
<JAVADOC /> |
||||
|
<SOURCES /> |
||||
|
</library> |
||||
|
</orderEntry> |
||||
|
<orderEntry type="module-library"> |
||||
|
<library> |
||||
|
<CLASSES> |
||||
|
<root url="jar://$MODULE_DIR$/../../jarlib/utils-0.0.1-SNAPSHOT.jar!/" /> |
||||
|
</CLASSES> |
||||
|
<JAVADOC /> |
||||
|
<SOURCES /> |
||||
|
</library> |
||||
|
</orderEntry> |
||||
|
<orderEntry type="library" name="Maven: bfd:utils:3.0.0" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.22" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: com.bfd:elastiUtils:0.0.1-SNAPSHOT" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: kafka-utils:kafka:0.10" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.apache.kafka:kafka_2.10:0.10.2.0" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.apache.kafka:kafka-clients:0.10.2.0" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: net.jpountz.lz4:lz4:1.3.0" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.xerial.snappy:snappy-java:1.1.2.6" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: net.sf.jopt-simple:jopt-simple:5.0.3" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: com.yammer.metrics:metrics-core:2.2.0" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.scala-lang:scala-library:2.10.6" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.slf4j:slf4j-log4j12:1.7.21" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: com.101tec:zkclient:0.10" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.apache.zookeeper:zookeeper:3.4.9" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: com.alibaba:fastjson:1.1.22" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: mysql:mysql-connector-java:5.1.29" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.elasticsearch:elasticsearch:6.2.3" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.elasticsearch:elasticsearch-core:6.2.3" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.apache.lucene:lucene-core:7.2.1" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.apache.lucene:lucene-analyzers-common:7.2.1" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.apache.lucene:lucene-backward-codecs:7.2.1" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.apache.lucene:lucene-grouping:7.2.1" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.apache.lucene:lucene-highlighter:7.2.1" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.apache.lucene:lucene-join:7.2.1" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.apache.lucene:lucene-memory:7.2.1" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.apache.lucene:lucene-misc:7.2.1" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.apache.lucene:lucene-queries:7.2.1" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.apache.lucene:lucene-queryparser:7.2.1" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.apache.lucene:lucene-sandbox:7.2.1" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.apache.lucene:lucene-spatial:7.2.1" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.apache.lucene:lucene-spatial-extras:7.2.1" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.apache.lucene:lucene-spatial3d:7.2.1" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.apache.lucene:lucene-suggest:7.2.1" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.elasticsearch:securesm:1.2" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.elasticsearch:elasticsearch-cli:6.2.3" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: com.carrotsearch:hppc:0.7.1" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: joda-time:joda-time:2.9.9" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.yaml:snakeyaml:1.17" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: com.fasterxml.jackson.dataformat:jackson-dataformat-smile:2.8.10" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.8.10" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:2.8.10" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: com.tdunning:t-digest:3.0" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.hdrhistogram:HdrHistogram:2.1.9" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.9.1" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.elasticsearch:jna:4.5.1" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.elasticsearch.client:transport:6.2.3" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.elasticsearch.plugin:reindex-client:6.2.3" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.elasticsearch.plugin:lang-mustache-client:6.2.3" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: com.github.spullara.mustache.java:compiler:0.9.3" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.elasticsearch.plugin:percolator-client:6.2.3" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.elasticsearch.plugin:parent-join-client:6.2.3" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.elasticsearch.plugin:rank-eval-client:6.2.3" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.elasticsearch.client:elasticsearch-rest-high-level-client:6.2.3" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.elasticsearch.client:elasticsearch-rest-client:6.2.3" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.2" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.5" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpasyncclient:4.1.2" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore-nio:4.4.5" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: commons-codec:commons-codec:1.10" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: commons-logging:commons-logging:1.1.3" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.elasticsearch.plugin:aggs-matrix-stats-client:6.2.3" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.elasticsearch.plugin:transport-netty4-client:6.2.3" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: io.netty:netty-buffer:4.1.16.Final" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: io.netty:netty-codec:4.1.16.Final" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: io.netty:netty-codec-http:4.1.16.Final" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: io.netty:netty-common:4.1.16.Final" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: io.netty:netty-handler:4.1.16.Final" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: io.netty:netty-resolver:4.1.16.Final" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: io.netty:netty-transport:4.1.16.Final" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.locationtech.spatial4j:spatial4j:0.6" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: com.vividsolutions:jts:1.13" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-core:2.9.1" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.8.1" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.8.1" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.8.1" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.1" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: com.squareup.okhttp3:okhttp:3.6.0" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: com.squareup.okio:okio:1.11.0" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: junit:junit:4.13-beta-1" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: log4j:log4j:1.2.17" level="project" /> |
||||
|
</component> |
||||
|
</module> |
||||
@ -0,0 +1,125 @@ |
|||||
|
enSource |
||||
|
source |
||||
|
language |
||||
|
crawlTimeStr |
||||
|
primary |
||||
|
listBrand |
||||
|
projectName |
||||
|
createTimeStr |
||||
|
lastModifiedTime |
||||
|
cate |
||||
|
title |
||||
|
content |
||||
|
pictureList |
||||
|
videoUrl |
||||
|
pubTimeStr |
||||
|
postId |
||||
|
commentId |
||||
|
url |
||||
|
commentsCount |
||||
|
attitudesCount |
||||
|
collectCount |
||||
|
favorCnt |
||||
|
quoteCount |
||||
|
readCount |
||||
|
viewCnt |
||||
|
downCnt |
||||
|
postSource |
||||
|
commentUrl |
||||
|
commentScore |
||||
|
sign |
||||
|
impression |
||||
|
skuProperties |
||||
|
price |
||||
|
nomorprice |
||||
|
brand |
||||
|
productParameter |
||||
|
promotionInfo |
||||
|
smallImgs |
||||
|
forwardAttitudesCount |
||||
|
forwardAuthor |
||||
|
forwardAvatar |
||||
|
forwardCommentsCount |
||||
|
forwardContent |
||||
|
forwardImgs |
||||
|
forwardPostSource |
||||
|
forwardPubTime |
||||
|
forwardQuoteCount |
||||
|
forwardUrl |
||||
|
forwardUserId |
||||
|
forwardUserType |
||||
|
forwardUserUrl |
||||
|
age |
||||
|
sex |
||||
|
author |
||||
|
authorId |
||||
|
authorLevel |
||||
|
authornickname |
||||
|
avatar |
||||
|
userUrl |
||||
|
userType |
||||
|
area |
||||
|
city |
||||
|
country |
||||
|
location |
||||
|
province |
||||
|
isVip |
||||
|
forumScore |
||||
|
fansCount |
||||
|
friendsCount |
||||
|
postCount |
||||
|
translateTitle |
||||
|
translateContent |
||||
|
filePath |
||||
|
resolution |
||||
|
extension |
||||
|
thumbnails |
||||
|
videoTime |
||||
|
isDownload |
||||
|
crawlDataFlag |
||||
|
attr |
||||
|
pageType |
||||
|
siteId |
||||
|
otherSourceJson |
||||
|
availability |
||||
|
channel |
||||
|
contentTag |
||||
|
dataCount |
||||
|
docId |
||||
|
docType |
||||
|
getSource |
||||
|
finalPhrase |
||||
|
originalPhrase |
||||
|
urlHash |
||||
|
titleLength |
||||
|
titleSimHash |
||||
|
contentLength |
||||
|
contentSimHash |
||||
|
expression |
||||
|
hashTag |
||||
|
hlKeywords |
||||
|
opinions |
||||
|
places |
||||
|
sysAbstract |
||||
|
sysKeywords |
||||
|
sysSentiment |
||||
|
pageCommentCount |
||||
|
pageTranspondCount |
||||
|
egc |
||||
|
pgc |
||||
|
ugc |
||||
|
brandId |
||||
|
firstListBrand |
||||
|
secondListBrand |
||||
|
threeListBrand |
||||
|
fourListBrand |
||||
|
fiveListBrand |
||||
|
crawlDate |
||||
|
crawlDay |
||||
|
crawlTime |
||||
|
pubDate |
||||
|
pubDay |
||||
|
pubTime |
||||
|
createDate |
||||
|
createDay |
||||
|
createTime |
||||
@ -0,0 +1,542 @@ |
|||||
|
{ |
||||
|
"commentUrl":{ |
||||
|
"type":"text", |
||||
|
"fields":{ |
||||
|
"keyword":{ |
||||
|
"ignore_above":256, |
||||
|
"type":"keyword" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"channel":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"readCount":{ |
||||
|
"type":"long" |
||||
|
}, |
||||
|
"quoteCount":{ |
||||
|
"type":"long" |
||||
|
}, |
||||
|
"brand":{ |
||||
|
"analyzer":"ik_smart", |
||||
|
"term_vector":"yes", |
||||
|
"type":"text", |
||||
|
"fields":{ |
||||
|
"shingles":{ |
||||
|
"analyzer":"shingle_analyzer", |
||||
|
"type":"text" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"brandId":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"createTimeStr":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"authornickname":{ |
||||
|
"type":"text", |
||||
|
"fields":{ |
||||
|
"keyword":{ |
||||
|
"ignore_above":256, |
||||
|
"type":"keyword" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"contentSimHash":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"crawlDay":{ |
||||
|
"type":"long" |
||||
|
}, |
||||
|
"titleSimHash":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"commentId":{ |
||||
|
"type":"text", |
||||
|
"fields":{ |
||||
|
"keyword":{ |
||||
|
"ignore_above":256, |
||||
|
"type":"keyword" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"originalPhrase":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"forwardContent":{ |
||||
|
"analyzer":"ik_smart", |
||||
|
"type":"text", |
||||
|
"fields":{ |
||||
|
"shingles":{ |
||||
|
"analyzer":"shingle_analyzer", |
||||
|
"type":"text" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"finalPhrase":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"availability":{ |
||||
|
"type":"integer" |
||||
|
}, |
||||
|
"forwardUserId":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"forwardUserType":{ |
||||
|
"type":"integer" |
||||
|
}, |
||||
|
"forwardUserUrl":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"forwardAvatar":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"forwardImgs":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"forwardPostSource":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"forwardAttitudesCount":{ |
||||
|
"type":"long" |
||||
|
}, |
||||
|
"forwardCommentsCount":{ |
||||
|
"type":"long" |
||||
|
}, |
||||
|
"forwardQuoteCount":{ |
||||
|
"type":"long" |
||||
|
}, |
||||
|
"forwardPubTime":{ |
||||
|
"type":"long" |
||||
|
}, |
||||
|
"titleLength":{ |
||||
|
"type":"long" |
||||
|
}, |
||||
|
"forwardAuthor":{ |
||||
|
"type":"text", |
||||
|
"fields":{ |
||||
|
"keyword":{ |
||||
|
"ignore_above":256, |
||||
|
"type":"keyword" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"sysAbstract":{ |
||||
|
"analyzer":"ik_smart", |
||||
|
"type":"text" |
||||
|
}, |
||||
|
"forwardUrl":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"createDate":{ |
||||
|
"type":"date" |
||||
|
}, |
||||
|
"docType":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"getSource":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"dataCount":{ |
||||
|
"type":"integer" |
||||
|
}, |
||||
|
"primary":{ |
||||
|
"type":"integer" |
||||
|
}, |
||||
|
"cate":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"sex":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"collectCount":{ |
||||
|
"type":"long" |
||||
|
}, |
||||
|
"crawlDate":{ |
||||
|
"type":"date" |
||||
|
}, |
||||
|
"avatar":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"url":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"skuProperties":{ |
||||
|
"type":"text", |
||||
|
"fields":{ |
||||
|
"keyword":{ |
||||
|
"ignore_above":256, |
||||
|
"type":"keyword" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"expression":{ |
||||
|
"type":"text", |
||||
|
"fields":{ |
||||
|
"keyword":{ |
||||
|
"ignore_above":256, |
||||
|
"type":"keyword" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"hashTag":{ |
||||
|
"type":"text", |
||||
|
"fields":{ |
||||
|
"keyword":{ |
||||
|
"ignore_above":256, |
||||
|
"type":"keyword" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"places":{ |
||||
|
"type":"text", |
||||
|
"fields":{ |
||||
|
"keyword":{ |
||||
|
"ignore_above":256, |
||||
|
"type":"keyword" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"opinions":{ |
||||
|
"type":"text", |
||||
|
"fields":{ |
||||
|
"keyword":{ |
||||
|
"ignore_above":256, |
||||
|
"type":"keyword" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"hlKeywords":{ |
||||
|
"type":"text", |
||||
|
"fields":{ |
||||
|
"keyword":{ |
||||
|
"ignore_above":256, |
||||
|
"type":"keyword" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"createTime":{ |
||||
|
"type":"long" |
||||
|
}, |
||||
|
"contentLength":{ |
||||
|
"type":"integer" |
||||
|
}, |
||||
|
"pubTime":{ |
||||
|
"type":"long" |
||||
|
}, |
||||
|
"fansCount":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"language":{ |
||||
|
"type":"text", |
||||
|
"fields":{ |
||||
|
"keyword":{ |
||||
|
"ignore_above":256, |
||||
|
"type":"keyword" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"source":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"enSource":{ |
||||
|
"type":"text", |
||||
|
"fields":{ |
||||
|
"keyword":{ |
||||
|
"ignore_above":256, |
||||
|
"type":"keyword" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"pictureList":{ |
||||
|
"type":"text", |
||||
|
"fields":{ |
||||
|
"keyword":{ |
||||
|
"ignore_above":256, |
||||
|
"type":"keyword" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"userUrl":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"videoUrl":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"contentTag":{ |
||||
|
"type":"text", |
||||
|
"fields":{ |
||||
|
"keyword":{ |
||||
|
"ignore_above":256, |
||||
|
"type":"keyword" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"author":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"authorId":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"authorLevel":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"sysSentiment":{ |
||||
|
"type":"double" |
||||
|
}, |
||||
|
"price":{ |
||||
|
"type":"double" |
||||
|
}, |
||||
|
"nomorprice":{ |
||||
|
"type":"double" |
||||
|
}, |
||||
|
"attitudesCount":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"createDay":{ |
||||
|
"type":"long" |
||||
|
}, |
||||
|
"postId":{ |
||||
|
"type":"text", |
||||
|
"fields":{ |
||||
|
"keyword":{ |
||||
|
"ignore_above":256, |
||||
|
"type":"keyword" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"pubDate":{ |
||||
|
"type":"date" |
||||
|
}, |
||||
|
"sysKeywords":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"crawlTime":{ |
||||
|
"type":"long" |
||||
|
}, |
||||
|
"userType":{ |
||||
|
"type":"text", |
||||
|
"fields":{ |
||||
|
"keyword":{ |
||||
|
"ignore_above":256, |
||||
|
"type":"keyword" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"projectName":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"lastModifiedTime":{ |
||||
|
"type":"long" |
||||
|
}, |
||||
|
"productParameter":{ |
||||
|
"analyzer":"ik_smart", |
||||
|
"term_vector":"yes", |
||||
|
"type":"text", |
||||
|
"fields":{ |
||||
|
"shingles":{ |
||||
|
"analyzer":"shingle_analyzer", |
||||
|
"type":"text" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"docId":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"commentScore":{ |
||||
|
"type":"long" |
||||
|
}, |
||||
|
"urlHash":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"_id_":{ |
||||
|
"type":"text", |
||||
|
"fields":{ |
||||
|
"keyword":{ |
||||
|
"ignore_above":256, |
||||
|
"type":"keyword" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"title":{ |
||||
|
"analyzer":"ik_smart", |
||||
|
"term_vector":"yes", |
||||
|
"type":"text", |
||||
|
"fields":{ |
||||
|
"shingles":{ |
||||
|
"analyzer":"shingle_analyzer", |
||||
|
"type":"text" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"pageTranspondCount":{ |
||||
|
"type":"text", |
||||
|
"fields":{ |
||||
|
"keyword":{ |
||||
|
"ignore_above":256, |
||||
|
"type":"keyword" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"pageCommentCount":{ |
||||
|
"type":"text", |
||||
|
"fields":{ |
||||
|
"keyword":{ |
||||
|
"ignore_above":256, |
||||
|
"type":"keyword" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"content":{ |
||||
|
"analyzer":"ik_smart", |
||||
|
"term_vector":"yes", |
||||
|
"type":"text", |
||||
|
"fields":{ |
||||
|
"shingles":{ |
||||
|
"analyzer":"shingle_analyzer", |
||||
|
"type":"text" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"pubDay":{ |
||||
|
"type":"long" |
||||
|
}, |
||||
|
"pubTimeStr":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"postSource":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"crawlTimeStr":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"postCount":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"friendsCount":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"commentsCount":{ |
||||
|
"type":"long" |
||||
|
}, |
||||
|
"favorCnt":{ |
||||
|
"type":"long" |
||||
|
}, |
||||
|
"viewCnt":{ |
||||
|
"type":"long" |
||||
|
}, |
||||
|
"downCnt":{ |
||||
|
"type":"long" |
||||
|
}, |
||||
|
"sign":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"isVip":{ |
||||
|
"type":"integer" |
||||
|
}, |
||||
|
"forumScore":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"impression":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"promotionInfo":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"smallImgs":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"listBrand":{ |
||||
|
"analyzer":"ik_smart", |
||||
|
"term_vector":"yes", |
||||
|
"type":"text", |
||||
|
"fields":{ |
||||
|
"shingles":{ |
||||
|
"analyzer":"shingle_analyzer", |
||||
|
"type":"text" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"firstListBrand":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"secondListBrand":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"threeListBrand":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"fourListBrand":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"fiveListBrand":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"area":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"location":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"country":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"province":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"city":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"age":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"egc":{ |
||||
|
"type":"integer" |
||||
|
}, |
||||
|
"pgc":{ |
||||
|
"type":"integer" |
||||
|
}, |
||||
|
"ugc":{ |
||||
|
"type":"integer" |
||||
|
}, |
||||
|
"translateTitle":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"translateContent":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"filePath":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"resolution":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"extension":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"thumbnails":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"videoTime":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"isDownload":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"crawlDataFlag":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"attr":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"pageType":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"siteId":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"otherSourceJson":{ |
||||
|
"type":"keyword" |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,547 @@ |
|||||
|
{ |
||||
|
"commentUrl":{ |
||||
|
"type":"text", |
||||
|
"fields":{ |
||||
|
"keyword":{ |
||||
|
"ignore_above":256, |
||||
|
"type":"keyword" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"channel":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"readCount":{ |
||||
|
"type":"long" |
||||
|
}, |
||||
|
"quoteCount":{ |
||||
|
"type":"long" |
||||
|
}, |
||||
|
"brand":{ |
||||
|
"term_vector":"yes", |
||||
|
"type":"text", |
||||
|
"analyzer":"ik_smart", |
||||
|
"search_analyzer":"ik_smart", |
||||
|
"fields":{ |
||||
|
"shingles":{ |
||||
|
"type":"text", |
||||
|
"analyzer":"shingle_analyzer" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"brandId":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"createTimeStr":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"authornickname":{ |
||||
|
"type":"text", |
||||
|
"fields":{ |
||||
|
"keyword":{ |
||||
|
"ignore_above":256, |
||||
|
"type":"keyword" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"contentSimHash":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"crawlDay":{ |
||||
|
"type":"long" |
||||
|
}, |
||||
|
"titleSimHash":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"commentId":{ |
||||
|
"type":"text", |
||||
|
"fields":{ |
||||
|
"keyword":{ |
||||
|
"ignore_above":256, |
||||
|
"type":"keyword" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"originalPhrase":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"forwardContent":{ |
||||
|
"analyzer":"ik_smart", |
||||
|
"type":"text", |
||||
|
"fields":{ |
||||
|
"shingles":{ |
||||
|
"analyzer":"shingle_analyzer", |
||||
|
"type":"text" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"finalPhrase":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"availability":{ |
||||
|
"type":"integer" |
||||
|
}, |
||||
|
"forwardUserId":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"forwardUserType":{ |
||||
|
"type":"integer" |
||||
|
}, |
||||
|
"forwardUserUrl":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"forwardAvatar":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"forwardImgs":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"forwardPostSource":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"forwardAttitudesCount":{ |
||||
|
"type":"long" |
||||
|
}, |
||||
|
"forwardCommentsCount":{ |
||||
|
"type":"long" |
||||
|
}, |
||||
|
"forwardQuoteCount":{ |
||||
|
"type":"long" |
||||
|
}, |
||||
|
"forwardPubTime":{ |
||||
|
"type":"long" |
||||
|
}, |
||||
|
"titleLength":{ |
||||
|
"type":"long" |
||||
|
}, |
||||
|
"forwardAuthor":{ |
||||
|
"type":"text", |
||||
|
"fields":{ |
||||
|
"keyword":{ |
||||
|
"ignore_above":256, |
||||
|
"type":"keyword" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"sysAbstract":{ |
||||
|
"analyzer":"ik_smart", |
||||
|
"type":"text" |
||||
|
}, |
||||
|
"forwardUrl":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"createDate":{ |
||||
|
"type":"date" |
||||
|
}, |
||||
|
"docType":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"getSource":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"dataCount":{ |
||||
|
"type":"integer" |
||||
|
}, |
||||
|
"primary":{ |
||||
|
"type":"integer" |
||||
|
}, |
||||
|
"cate":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"sex":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"collectCount":{ |
||||
|
"type":"long" |
||||
|
}, |
||||
|
"crawlDate":{ |
||||
|
"type":"date" |
||||
|
}, |
||||
|
"avatar":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"url":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"skuProperties":{ |
||||
|
"type":"text", |
||||
|
"fields":{ |
||||
|
"keyword":{ |
||||
|
"ignore_above":256, |
||||
|
"type":"keyword" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"expression":{ |
||||
|
"type":"text", |
||||
|
"fields":{ |
||||
|
"keyword":{ |
||||
|
"ignore_above":256, |
||||
|
"type":"keyword" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"hashTag":{ |
||||
|
"type":"text", |
||||
|
"fields":{ |
||||
|
"keyword":{ |
||||
|
"ignore_above":256, |
||||
|
"type":"keyword" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"places":{ |
||||
|
"type":"text", |
||||
|
"fields":{ |
||||
|
"keyword":{ |
||||
|
"ignore_above":256, |
||||
|
"type":"keyword" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"opinions":{ |
||||
|
"type":"text", |
||||
|
"fields":{ |
||||
|
"keyword":{ |
||||
|
"ignore_above":256, |
||||
|
"type":"keyword" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"hlKeywords":{ |
||||
|
"type":"text", |
||||
|
"fields":{ |
||||
|
"keyword":{ |
||||
|
"ignore_above":256, |
||||
|
"type":"keyword" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"createTime":{ |
||||
|
"type":"long" |
||||
|
}, |
||||
|
"contentLength":{ |
||||
|
"type":"integer" |
||||
|
}, |
||||
|
"pubTime":{ |
||||
|
"type":"long" |
||||
|
}, |
||||
|
"fansCount":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"language":{ |
||||
|
"type":"text", |
||||
|
"fields":{ |
||||
|
"keyword":{ |
||||
|
"ignore_above":256, |
||||
|
"type":"keyword" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"source":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"enSource":{ |
||||
|
"type":"text", |
||||
|
"fields":{ |
||||
|
"keyword":{ |
||||
|
"ignore_above":256, |
||||
|
"type":"keyword" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"pictureList":{ |
||||
|
"type":"text", |
||||
|
"fields":{ |
||||
|
"keyword":{ |
||||
|
"ignore_above":256, |
||||
|
"type":"keyword" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"userUrl":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"videoUrl":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"contentTag":{ |
||||
|
"type":"text", |
||||
|
"fields":{ |
||||
|
"keyword":{ |
||||
|
"ignore_above":256, |
||||
|
"type":"keyword" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"author":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"authorId":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"authorLevel":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"sysSentiment":{ |
||||
|
"type":"double" |
||||
|
}, |
||||
|
"price":{ |
||||
|
"type":"double" |
||||
|
}, |
||||
|
"nomorprice":{ |
||||
|
"type":"double" |
||||
|
}, |
||||
|
"attitudesCount":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"createDay":{ |
||||
|
"type":"long" |
||||
|
}, |
||||
|
"postId":{ |
||||
|
"type":"text", |
||||
|
"fields":{ |
||||
|
"keyword":{ |
||||
|
"ignore_above":256, |
||||
|
"type":"keyword" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"pubDate":{ |
||||
|
"type":"date" |
||||
|
}, |
||||
|
"sysKeywords":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"crawlTime":{ |
||||
|
"type":"long" |
||||
|
}, |
||||
|
"userType":{ |
||||
|
"type":"text", |
||||
|
"fields":{ |
||||
|
"keyword":{ |
||||
|
"ignore_above":256, |
||||
|
"type":"keyword" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"projectName":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"lastModifiedTime":{ |
||||
|
"type":"long" |
||||
|
}, |
||||
|
"productParameter":{ |
||||
|
"term_vector":"yes", |
||||
|
"type":"text", |
||||
|
"analyzer":"ik_smart", |
||||
|
"search_analyzer":"ik_smart", |
||||
|
"fields":{ |
||||
|
"shingles":{ |
||||
|
"type":"text", |
||||
|
"analyzer":"shingle_analyzer" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"docId":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"commentScore":{ |
||||
|
"type":"long" |
||||
|
}, |
||||
|
"urlHash":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"_id_":{ |
||||
|
"type":"text", |
||||
|
"fields":{ |
||||
|
"keyword":{ |
||||
|
"ignore_above":256, |
||||
|
"type":"keyword" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"title":{ |
||||
|
"term_vector":"yes", |
||||
|
"type":"text", |
||||
|
"analyzer":"ik_smart", |
||||
|
"search_analyzer":"ik_smart", |
||||
|
"fields":{ |
||||
|
"shingles":{ |
||||
|
"type":"text", |
||||
|
"analyzer":"shingle_analyzer" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"pageTranspondCount":{ |
||||
|
"type":"text", |
||||
|
"fields":{ |
||||
|
"keyword":{ |
||||
|
"ignore_above":256, |
||||
|
"type":"keyword" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"pageCommentCount":{ |
||||
|
"type":"text", |
||||
|
"fields":{ |
||||
|
"keyword":{ |
||||
|
"ignore_above":256, |
||||
|
"type":"keyword" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"content":{ |
||||
|
"term_vector":"yes", |
||||
|
"type":"text", |
||||
|
"analyzer":"ik_smart", |
||||
|
"search_analyzer":"ik_smart", |
||||
|
"fields":{ |
||||
|
"shingles":{ |
||||
|
"type":"text", |
||||
|
"analyzer":"shingle_analyzer" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"pubDay":{ |
||||
|
"type":"long" |
||||
|
}, |
||||
|
"pubTimeStr":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"postSource":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"crawlTimeStr":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"postCount":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"friendsCount":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"commentsCount":{ |
||||
|
"type":"long" |
||||
|
}, |
||||
|
"favorCnt":{ |
||||
|
"type":"long" |
||||
|
}, |
||||
|
"viewCnt":{ |
||||
|
"type":"long" |
||||
|
}, |
||||
|
"downCnt":{ |
||||
|
"type":"long" |
||||
|
}, |
||||
|
"sign":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"isVip":{ |
||||
|
"type":"integer" |
||||
|
}, |
||||
|
"forumScore":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"impression":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"promotionInfo":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"smallImgs":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"listBrand":{ |
||||
|
"term_vector":"yes", |
||||
|
"type":"text", |
||||
|
"analyzer":"ik_smart", |
||||
|
"search_analyzer":"ik_smart", |
||||
|
"fields":{ |
||||
|
"shingles":{ |
||||
|
"type":"text", |
||||
|
"analyzer":"shingle_analyzer" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"firstListBrand":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"secondListBrand":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"threeListBrand":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"fourListBrand":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"fiveListBrand":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"area":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"location":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"country":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"province":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"city":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"age":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"egc":{ |
||||
|
"type":"integer" |
||||
|
}, |
||||
|
"pgc":{ |
||||
|
"type":"integer" |
||||
|
}, |
||||
|
"ugc":{ |
||||
|
"type":"integer" |
||||
|
}, |
||||
|
"translateTitle":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"translateContent":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"filePath":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"resolution":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"extension":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"thumbnails":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"videoTime":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"isDownload":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"crawlDataFlag":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"attr":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"pageType":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"siteId":{ |
||||
|
"type":"keyword" |
||||
|
}, |
||||
|
"otherSourceJson":{ |
||||
|
"type":"keyword" |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,187 @@ |
|||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0" |
||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> |
||||
|
<parent> |
||||
|
<artifactId>cl_stream</artifactId> |
||||
|
<groupId>com.bfd.mf</groupId> |
||||
|
<version>2.0-SNAPSHOT</version> |
||||
|
</parent> |
||||
|
<modelVersion>4.0.0</modelVersion> |
||||
|
|
||||
|
<artifactId>cl_stream_datasave</artifactId> |
||||
|
|
||||
|
<properties> |
||||
|
<start-class>com.bfd.mf.runstart.RunStartDataSave</start-class> |
||||
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> |
||||
|
<skipTests>true</skipTests> |
||||
|
<java.version>1.8</java.version> |
||||
|
</properties> |
||||
|
|
||||
|
<dependencies> |
||||
|
<dependency> |
||||
|
<groupId>bfd</groupId> |
||||
|
<artifactId>utils</artifactId> |
||||
|
<version>3.0.0</version> |
||||
|
<!--<scope>system</scope>--> |
||||
|
<!--<systemPath>${project.basedir}/../../jarlib/utils-3.0.0.jar</systemPath>--> |
||||
|
</dependency> |
||||
|
<dependency> |
||||
|
<artifactId>slf4j-api</artifactId> |
||||
|
<groupId>org.slf4j</groupId> |
||||
|
<version>1.7.22</version> |
||||
|
</dependency> |
||||
|
<dependency> |
||||
|
|
||||
|
<groupId>com.bfd</groupId> |
||||
|
<artifactId>elastiUtils</artifactId> |
||||
|
<version>0.0.1-SNAPSHOT</version> |
||||
|
</dependency> |
||||
|
<dependency> |
||||
|
<groupId>kafka-utils</groupId> |
||||
|
<artifactId>kafka</artifactId> |
||||
|
<version>0.10</version> |
||||
|
<!--<exclusions>--> |
||||
|
<!--<exclusion>--> |
||||
|
<!--<artifactId>zookeeper</artifactId>--> |
||||
|
<!--<groupId>org.apache.zookeeper</groupId>--> |
||||
|
<!--</exclusion>--> |
||||
|
<!--<exclusion>--> |
||||
|
<!--<artifactId>slf4j-api</artifactId>--> |
||||
|
<!--<groupId>org.slf4j</groupId>--> |
||||
|
<!--</exclusion>--> |
||||
|
<!--</exclusions>--> |
||||
|
<!--<scope>system</scope>--> |
||||
|
<!--<systemPath>${project.basedir}/../../jarlib/kafka-0.10.jar</systemPath>--> |
||||
|
</dependency> |
||||
|
|
||||
|
|
||||
|
<dependency> |
||||
|
<groupId>com.alibaba</groupId> |
||||
|
<artifactId>fastjson</artifactId> |
||||
|
<version>1.1.22</version> |
||||
|
</dependency> |
||||
|
|
||||
|
<dependency> |
||||
|
<groupId>mysql</groupId> |
||||
|
<artifactId>mysql-connector-java</artifactId> |
||||
|
<version>5.1.29</version> |
||||
|
</dependency> |
||||
|
|
||||
|
<dependency> |
||||
|
<groupId>org.elasticsearch</groupId> |
||||
|
<artifactId>elasticsearch</artifactId> |
||||
|
<version>6.2.3</version> |
||||
|
<exclusions> |
||||
|
<exclusion> |
||||
|
<artifactId>jackson-core</artifactId> |
||||
|
<groupId>com.fasterxml.jackson.core</groupId> |
||||
|
</exclusion> |
||||
|
<exclusion> |
||||
|
<artifactId>jopt-simple</artifactId> |
||||
|
<groupId>net.sf.jopt-simple</groupId> |
||||
|
</exclusion> |
||||
|
</exclusions> |
||||
|
</dependency> |
||||
|
<dependency> |
||||
|
<groupId>org.elasticsearch.client</groupId> |
||||
|
<artifactId>transport</artifactId> |
||||
|
<version>6.2.3</version> |
||||
|
</dependency> |
||||
|
<dependency> |
||||
|
<groupId>org.elasticsearch.client</groupId> |
||||
|
<artifactId>elasticsearch-rest-high-level-client</artifactId> |
||||
|
<version>6.2.3</version> |
||||
|
</dependency> |
||||
|
<dependency> |
||||
|
<groupId>org.elasticsearch.plugin</groupId> |
||||
|
<artifactId>transport-netty4-client</artifactId> |
||||
|
<version>6.2.3</version> |
||||
|
</dependency> |
||||
|
|
||||
|
|
||||
|
<dependency> |
||||
|
<groupId>com.fasterxml.jackson.core</groupId> |
||||
|
<artifactId>jackson-annotations</artifactId> |
||||
|
<version>2.8.1</version> |
||||
|
</dependency> |
||||
|
<dependency> |
||||
|
<groupId>com.fasterxml.jackson.core</groupId> |
||||
|
<artifactId>jackson-core</artifactId> |
||||
|
<version>2.8.1</version> |
||||
|
</dependency> |
||||
|
<dependency> |
||||
|
<groupId>com.fasterxml.jackson.core</groupId> |
||||
|
<artifactId>jackson-databind</artifactId> |
||||
|
<version>2.8.1</version> |
||||
|
<exclusions> |
||||
|
<exclusion> |
||||
|
<artifactId>jackson-annotations</artifactId> |
||||
|
<groupId>com.fasterxml.jackson.core</groupId> |
||||
|
</exclusion> |
||||
|
</exclusions> |
||||
|
</dependency> |
||||
|
|
||||
|
|
||||
|
<dependency> |
||||
|
<groupId>org.apache.commons</groupId> |
||||
|
<artifactId>commons-lang3</artifactId> |
||||
|
<version>3.1</version> |
||||
|
</dependency> |
||||
|
|
||||
|
<!--<dependency>--> |
||||
|
<!--<groupId>org.slf4j</groupId>--> |
||||
|
<!--<artifactId>slf4j-simple</artifactId>--> |
||||
|
<!--<version>1.7.22</version>--> |
||||
|
<!--</dependency>--> |
||||
|
|
||||
|
<!--<dependency>--> |
||||
|
<!--<groupId>org.slf4j</groupId>--> |
||||
|
<!--<artifactId>slf4j-api</artifactId>--> |
||||
|
<!--<version>1.7.25</version>--> |
||||
|
<!--</dependency>--> |
||||
|
<dependency> |
||||
|
<groupId>com.squareup.okhttp3</groupId> |
||||
|
<artifactId>okhttp</artifactId> |
||||
|
<version>3.6.0</version> |
||||
|
</dependency> |
||||
|
<dependency> |
||||
|
<groupId>junit</groupId> |
||||
|
<artifactId>junit</artifactId> |
||||
|
<version>4.13-beta-1</version> |
||||
|
</dependency> |
||||
|
<dependency> |
||||
|
<groupId>log4j</groupId> |
||||
|
<artifactId>log4j</artifactId> |
||||
|
<version>1.2.17</version> |
||||
|
</dependency> |
||||
|
|
||||
|
</dependencies> |
||||
|
<build> |
||||
|
<plugins> |
||||
|
<plugin> |
||||
|
<artifactId>maven-compiler-plugin</artifactId> |
||||
|
<configuration> |
||||
|
<source>1.8</source> |
||||
|
<target>1.8</target> |
||||
|
</configuration> |
||||
|
</plugin> |
||||
|
<plugin> |
||||
|
<groupId>org.springframework.boot</groupId> |
||||
|
<artifactId>spring-boot-maven-plugin</artifactId> |
||||
|
<configuration> |
||||
|
<mainClass>com.bfd.mf.runstart.RunStartDataSave</mainClass> |
||||
|
</configuration> |
||||
|
<executions> |
||||
|
<execution> |
||||
|
<goals> |
||||
|
<goal>repackage</goal> |
||||
|
</goals> |
||||
|
</execution> |
||||
|
</executions> |
||||
|
</plugin> |
||||
|
</plugins> |
||||
|
</build> |
||||
|
|
||||
|
|
||||
|
</project> |
||||
@ -0,0 +1,69 @@ |
|||||
|
package com.bfd.mf.datasave.download; |
||||
|
|
||||
|
import com.alibaba.fastjson.JSONObject; |
||||
|
import okhttp3.*; |
||||
|
|
||||
|
import java.io.IOException; |
||||
|
import java.util.HashMap; |
||||
|
import java.util.Map; |
||||
|
|
||||
|
public class DownLoadFile { |
||||
|
public static Map<String,Object> downloadAndSaveFile(String getUrl,String putUrl){ |
||||
|
String realUrl = "";Integer size; |
||||
|
Map<String,Object> realresult= new HashMap<>(); |
||||
|
try{ |
||||
|
String files [] = getUrl.split("/"); |
||||
|
String fileName = getUrl.split("/")[files.length-1]; |
||||
|
Map<String,String> header = new HashMap<>(); |
||||
|
header.put("User-Agent","Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36"); |
||||
|
// header.put("Connection","close"); |
||||
|
try { |
||||
|
Map<String,Object> downloadresult = OkHttpUtils.doGetBytes(getUrl,header); |
||||
|
if (downloadresult.containsKey("content")){ |
||||
|
byte[] content = (byte[]) downloadresult.get("content"); |
||||
|
size= (Integer) downloadresult.get("size"); |
||||
|
Thread.sleep(4000); |
||||
|
String result = DownLoadFile.upload(putUrl,fileName,content); |
||||
|
|
||||
|
realUrl = JSONObject.parseObject(result).getString("url"); |
||||
|
realresult.put("realUrl",realUrl); |
||||
|
realresult.put("size",size); |
||||
|
} |
||||
|
} catch (IOException e) { |
||||
|
e.printStackTrace(); |
||||
|
} |
||||
|
}catch (Exception e){ |
||||
|
e.printStackTrace(); |
||||
|
} |
||||
|
return realresult; |
||||
|
} |
||||
|
|
||||
|
public static String upload(String uploadUrl,String fileName,byte[] content) { |
||||
|
String result = ""; |
||||
|
try { |
||||
|
OkHttpClient httpClient = new OkHttpClient(); |
||||
|
MultipartBody multipartBody = new MultipartBody.Builder(). |
||||
|
setType(MultipartBody.FORM) |
||||
|
.addFormDataPart("file", fileName, |
||||
|
RequestBody.create(MediaType.parse("multipart/form-data;charset=utf-8"), |
||||
|
content)) |
||||
|
.addFormDataPart("output", "json") |
||||
|
.build(); |
||||
|
Request request = new Request.Builder() |
||||
|
.url(uploadUrl) |
||||
|
.post(multipartBody) |
||||
|
.build(); |
||||
|
Response response = httpClient.newCall(request).execute(); |
||||
|
if (response.isSuccessful()) { |
||||
|
ResponseBody body = response.body(); |
||||
|
if (body != null) { |
||||
|
result = body.string(); |
||||
|
} |
||||
|
} |
||||
|
} catch (Exception e) { |
||||
|
e.printStackTrace(); |
||||
|
} |
||||
|
return result; |
||||
|
} |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,38 @@ |
|||||
|
package com.bfd.mf.datasave.download; |
||||
|
|
||||
|
import okhttp3.Cookie; |
||||
|
import okhttp3.CookieJar; |
||||
|
import okhttp3.HttpUrl; |
||||
|
|
||||
|
import java.util.ArrayList; |
||||
|
import java.util.HashMap; |
||||
|
import java.util.List; |
||||
|
import java.util.Map; |
||||
|
import java.util.concurrent.ConcurrentHashMap; |
||||
|
|
||||
|
public class MyCookieJar implements CookieJar { |
||||
|
private final Map<String, Map<String, Cookie>> cookieStore = new ConcurrentHashMap<>(); |
||||
|
|
||||
|
@Override |
||||
|
public void saveFromResponse(HttpUrl httpUrl, List<Cookie> list) { |
||||
|
Map<String, Cookie> cookies = cookieStore.get(httpUrl.host()); |
||||
|
if (cookies == null) { |
||||
|
cookies = new HashMap<>(); |
||||
|
} |
||||
|
for (Cookie c : list) { |
||||
|
cookies.put(c.name(), c); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public List<Cookie> loadForRequest(HttpUrl httpUrl) { |
||||
|
Map<String,Cookie> cookies = cookieStore.get(httpUrl.host()); |
||||
|
|
||||
|
List<Cookie> list = new ArrayList<>(); |
||||
|
if (cookies == null) |
||||
|
return list; |
||||
|
|
||||
|
cookies.forEach((k,v) -> list.add(v)); |
||||
|
return list; |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,190 @@ |
|||||
|
package com.bfd.mf.datasave.download; |
||||
|
|
||||
|
import okhttp3.*; |
||||
|
|
||||
|
import java.io.IOException; |
||||
|
import java.net.InetSocketAddress; |
||||
|
import java.net.Proxy; |
||||
|
import java.util.HashMap; |
||||
|
import java.util.Map; |
||||
|
import java.util.concurrent.TimeUnit; |
||||
|
|
||||
|
/** |
||||
|
* Created by BFD_303 on 2017/7/7. |
||||
|
*/ |
||||
|
public class OkHttpUtils { |
||||
|
|
||||
|
private static final CookieJar cookieJar = new MyCookieJar(); |
||||
|
private static final OkHttpClient dClient = new OkHttpClient().newBuilder() |
||||
|
.cookieJar(cookieJar) |
||||
|
.connectTimeout(10, TimeUnit.MINUTES) |
||||
|
.readTimeout(10,TimeUnit.MINUTES) |
||||
|
.writeTimeout(10,TimeUnit.MINUTES) |
||||
|
.build(); |
||||
|
|
||||
|
private static String doExecute(Request request, OkHttpClient client) throws Exception{ |
||||
|
if (client == null) |
||||
|
client = dClient; |
||||
|
|
||||
|
Response response = null; |
||||
|
try{ |
||||
|
response = client.newCall(request).execute(); |
||||
|
System.out.println(request.url() + " => get status code is " + response.code()); |
||||
|
return response.isSuccessful() ? response.body().string() : ""; |
||||
|
}finally { |
||||
|
if (response != null) |
||||
|
response.close(); |
||||
|
} |
||||
|
} |
||||
|
// |
||||
|
public static String doGet(String url, Map<String,String> headers,String ip,int port) throws Exception { |
||||
|
OkHttpClient client ; |
||||
|
if (ip == null) |
||||
|
client = dClient; |
||||
|
else |
||||
|
client = dClient.newBuilder() |
||||
|
.cookieJar(cookieJar) |
||||
|
.proxy(new Proxy(Proxy.Type.HTTP,new InetSocketAddress(ip,port))) |
||||
|
.connectTimeout(10, TimeUnit.SECONDS) |
||||
|
.build(); |
||||
|
|
||||
|
Request.Builder builder = new Request.Builder().url(url); |
||||
|
if (headers != null && headers.size() > 0){ |
||||
|
headers.forEach((k,v) -> builder.addHeader(k,v)); |
||||
|
} |
||||
|
Request request = builder.build(); |
||||
|
return doExecute(request,client); |
||||
|
} |
||||
|
|
||||
|
public static String doPost(String url, Map<String,String> headers,Map<String,String> params) throws Exception { |
||||
|
OkHttpClient client = dClient.newBuilder() |
||||
|
.cookieJar(cookieJar) |
||||
|
.connectTimeout(30, TimeUnit.SECONDS) |
||||
|
.build(); |
||||
|
|
||||
|
FormBody.Builder bodyBuilder= new FormBody.Builder(); |
||||
|
if (params != null){ |
||||
|
params.forEach((k,v) -> bodyBuilder.add(k,v)); |
||||
|
} |
||||
|
RequestBody body = bodyBuilder.build(); |
||||
|
|
||||
|
Request.Builder builder = new Request.Builder().url(url).post(body); |
||||
|
if (headers != null && headers.size() > 0){ |
||||
|
headers.forEach((k,v) -> builder.addHeader(k,v)); |
||||
|
} |
||||
|
Request request = builder.build(); |
||||
|
return doExecute(request,client); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
public static String doPost(String url, Map<String,String> headers,Map<String,String> params, ProxyIp ip) throws Exception { |
||||
|
OkHttpClient client; |
||||
|
if (ip == null) |
||||
|
client = dClient; |
||||
|
else |
||||
|
client = dClient.newBuilder() |
||||
|
.cookieJar(cookieJar) |
||||
|
.proxy(new Proxy(ip.getType(),new InetSocketAddress(ip.getIp(),ip.getPort()))) |
||||
|
.connectTimeout(5, TimeUnit.SECONDS) |
||||
|
.build(); |
||||
|
|
||||
|
FormBody.Builder bodyBuilder= new FormBody.Builder(); |
||||
|
if (params != null){ |
||||
|
params.forEach((k,v) -> bodyBuilder.add(k,v)); |
||||
|
} |
||||
|
RequestBody body = bodyBuilder.build(); |
||||
|
|
||||
|
Request.Builder builder = new Request.Builder().url(url).post(body); |
||||
|
if (headers != null && headers.size() > 0){ |
||||
|
headers.forEach((k,v) -> builder.addHeader(k,v)); |
||||
|
} |
||||
|
Request request = builder.build(); |
||||
|
return doExecute(request,client); |
||||
|
} |
||||
|
|
||||
|
public static byte[] doPostByte(String url,Map<String,String> headers,Map<String,String> params,ProxyIp ip) throws IOException { |
||||
|
OkHttpClient client; |
||||
|
if (ip == null) |
||||
|
client = dClient; |
||||
|
else |
||||
|
client = dClient.newBuilder() |
||||
|
.cookieJar(cookieJar) |
||||
|
.proxy(new Proxy(ip.getType(),new InetSocketAddress(ip.getIp(),ip.getPort()))) |
||||
|
.connectTimeout(10, TimeUnit.SECONDS) |
||||
|
.build(); |
||||
|
|
||||
|
FormBody.Builder bodyBuilder= new FormBody.Builder(); |
||||
|
if (params != null){ |
||||
|
params.forEach((k,v) -> bodyBuilder.add(k,v)); |
||||
|
} |
||||
|
RequestBody body = bodyBuilder.build(); |
||||
|
|
||||
|
Request.Builder builder = new Request.Builder().url(url).post(body); |
||||
|
if (headers != null && headers.size() > 0){ |
||||
|
headers.forEach((k,v) -> builder.addHeader(k,v)); |
||||
|
} |
||||
|
Request request = builder.build(); |
||||
|
|
||||
|
Response response = null; |
||||
|
try{ |
||||
|
response = client.newCall(request).execute(); |
||||
|
System.out.println(request.url() + " => get status code is " + response.code()); |
||||
|
// cookieJar.loadForRequest(request.url()).forEach(c -> System.out.println(c.name() + " -> " + c.value())); |
||||
|
return response.isSuccessful() ? response.body().bytes() : null; |
||||
|
}finally { |
||||
|
if (response != null) |
||||
|
response.close(); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
public static byte[] doGetByte(String url,Map<String,String> headers) throws IOException { |
||||
|
Request.Builder rBuilder = new Request.Builder().url(url); |
||||
|
|
||||
|
if (headers != null){ |
||||
|
headers.forEach((k,v) -> rBuilder.addHeader(k,v)); |
||||
|
} |
||||
|
Request request = rBuilder.build(); |
||||
|
Response response = null; |
||||
|
try{ |
||||
|
response = dClient.newCall(request).execute(); |
||||
|
System.out.println(request.url() + " => get status code is " + response.code()); |
||||
|
System.out.println( " => get size code is " + Integer.valueOf(response.header("Content-Length"))/1024); |
||||
|
return response.isSuccessful() ? response.body().bytes() : null; |
||||
|
}finally { |
||||
|
if (response != null) |
||||
|
response.close(); |
||||
|
System.gc(); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
|
||||
|
public static Map<String,Object> doGetBytes(String url,Map<String,String> headers) throws IOException { |
||||
|
Map<String,Object> result= new HashMap<>(); |
||||
|
Request.Builder rBuilder = new Request.Builder().url(url); |
||||
|
if (headers != null){ |
||||
|
headers.forEach((k,v) -> rBuilder.addHeader(k,v)); |
||||
|
} |
||||
|
Request request = rBuilder.build(); |
||||
|
Response response = null; |
||||
|
try{ |
||||
|
response = dClient.newCall(request).execute(); |
||||
|
System.out.println(request.url() + " => get status code is " + response.code()); |
||||
|
|
||||
|
if (response.isSuccessful()) { |
||||
|
ResponseBody body = response.body(); |
||||
|
if (body != null) { |
||||
|
byte[] content=response.body().bytes(); |
||||
|
result.put("content",content); |
||||
|
int size=Integer.valueOf(response.header("Content-Length"))/1024; |
||||
|
result.put("size",size); |
||||
|
} |
||||
|
} |
||||
|
return result; |
||||
|
}finally { |
||||
|
if (response != null) |
||||
|
response.close(); |
||||
|
System.gc(); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,33 @@ |
|||||
|
package com.bfd.mf.datasave.download; |
||||
|
|
||||
|
import java.net.Proxy; |
||||
|
|
||||
|
public class ProxyIp { |
||||
|
private static Proxy.Type type; |
||||
|
private static String ip; |
||||
|
private static int port; |
||||
|
|
||||
|
public static Proxy.Type getType() { |
||||
|
return type; |
||||
|
} |
||||
|
|
||||
|
public static void setType(Proxy.Type type) { |
||||
|
ProxyIp.type = type; |
||||
|
} |
||||
|
|
||||
|
public static String getIp() { |
||||
|
return ip; |
||||
|
} |
||||
|
|
||||
|
public static void setIp(String ip) { |
||||
|
ProxyIp.ip = ip; |
||||
|
} |
||||
|
|
||||
|
public static int getPort() { |
||||
|
return port; |
||||
|
} |
||||
|
|
||||
|
public static void setPort(int port) { |
||||
|
ProxyIp.port = port; |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,11 @@ |
|||||
|
package com.bfd.mf.datasave.kafka; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
public interface IKafka { |
||||
|
public void read(); |
||||
|
public void read(String readTopicName); |
||||
|
public void read(String readTopicName, String groupId); |
||||
|
public void write(List<String> data, String writeTopicName); |
||||
|
public void stop(); |
||||
|
} |
||||
@ -0,0 +1,117 @@ |
|||||
|
package com.bfd.mf.datasave.kafka; |
||||
|
|
||||
|
|
||||
|
import com.bfd.crawler.kafka7.KfkConsumer; |
||||
|
import com.bfd.crawler.kafka7.KfkProducer; |
||||
|
import org.apache.commons.logging.Log; |
||||
|
import org.apache.commons.logging.LogFactory; |
||||
|
|
||||
|
import java.util.List; |
||||
|
import java.util.concurrent.BlockingQueue; |
||||
|
import java.util.concurrent.LinkedBlockingDeque; |
||||
|
|
||||
|
public class ReadKafka implements IKafka{ |
||||
|
private static Log LOG = LogFactory.getLog(ReadKafka.class); |
||||
|
private BlockingQueue<String> queue; |
||||
|
private String defaultReadTopicName; |
||||
|
private int threadNums; |
||||
|
private String groupId; |
||||
|
private int kafkaServerName ; |
||||
|
private int esSerName ; |
||||
|
|
||||
|
public ReadKafka(BlockingQueue<String> queue,String topicName,int threadNums,String groupId,int kafkaServerName,int esSerName){ |
||||
|
this.queue = queue; |
||||
|
this.defaultReadTopicName = topicName; |
||||
|
this.threadNums =threadNums; |
||||
|
this.groupId = groupId; |
||||
|
this.kafkaServerName = kafkaServerName ; |
||||
|
this.esSerName = esSerName ; |
||||
|
} |
||||
|
|
||||
|
// public void read(){ |
||||
|
// KfkConsumer.startReadThread(this.queue, this.defaultReadTopicName,this.threadNums,this.groupId,this.kafkaServerName); |
||||
|
// } |
||||
|
// |
||||
|
public void read(){ |
||||
|
System.out.println(this.queue+"队列"+this.defaultReadTopicName+"topic"+this.threadNums+"group"+this.groupId+"sercer"+this.kafkaServerName); |
||||
|
//KfkConsumer.startReadThread(this.queue, this.defaultReadTopicName,this.threadNums,this.groupId,this.kafkaServerName); |
||||
|
KfkConsumer.startReadThread(this.queue, this.defaultReadTopicName,this.threadNums, this.groupId,this.kafkaServerName); |
||||
|
} |
||||
|
@Override |
||||
|
public void read(String readTopicName) { |
||||
|
KfkConsumer.startReadThread(this.queue, readTopicName,this.threadNums,this.groupId,this.kafkaServerName); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public void read(String readTopicName, String groupId) { |
||||
|
KfkConsumer.startReadThread(this.queue, readTopicName,this.threadNums,groupId,this.kafkaServerName); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public void write(List<String> data,String writeTopicName ) { |
||||
|
KfkProducer.getInstance(kafkaServerName,"").send(writeTopicName,data); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public void stop() { |
||||
|
LOG.info("ending:kfk consumer:stopping..."); |
||||
|
KfkConsumer.stopKfkConsumerThreads(); |
||||
|
LOG.info("ending:kfk consumer:closed"); |
||||
|
} |
||||
|
|
||||
|
// public static void main(String[] args) { |
||||
|
// test2(); |
||||
|
// } |
||||
|
// |
||||
|
// public static void test2(){ |
||||
|
// BlockingQueue<String> queue = new LinkedBlockingDeque<String>(); |
||||
|
// String topicName = "Ejingdongdedup"; |
||||
|
// int threadNums = 5; |
||||
|
// ReadKafka kfk = new ReadKafka(queue, topicName, threadNums,"bbs_group_test",1,1); |
||||
|
// kfk.read(); |
||||
|
// while(true){ |
||||
|
// if(queue.size()>0){ |
||||
|
// try { |
||||
|
// System.out.println("kafka 读取结果 : "+queue.take()); |
||||
|
// } catch (InterruptedException e) { |
||||
|
// e.printStackTrace(); |
||||
|
// } |
||||
|
// }else{ |
||||
|
//// kfk.stop(); |
||||
|
//// break; |
||||
|
// } |
||||
|
// } |
||||
|
// |
||||
|
// } |
||||
|
// |
||||
|
// public static void test1(){ |
||||
|
// |
||||
|
// |
||||
|
// |
||||
|
// BlockingQueue<String> queue = new LinkedBlockingDeque<String>(); |
||||
|
// String topicName = "test_hrn"; |
||||
|
// int threadNums = 5; |
||||
|
// ReadKafka kfk = new ReadKafka(queue, topicName, threadNums,"test_group_2",1,1); |
||||
|
//// List<String> data = new ArrayList<String>(); |
||||
|
//// for(int i=1000;i<1010;i++){ |
||||
|
//// data.add("test_" + i); |
||||
|
//// } |
||||
|
//// kfk.write(data); |
||||
|
// |
||||
|
// |
||||
|
// kfk.read(); |
||||
|
// while(true){ |
||||
|
// if(queue.size()>0){ |
||||
|
// try { |
||||
|
// System.out.println(queue.take()); |
||||
|
// } catch (InterruptedException e) { |
||||
|
// e.printStackTrace(); |
||||
|
// } |
||||
|
// }else{ |
||||
|
//// kfk.stop(); |
||||
|
//// break; |
||||
|
// } |
||||
|
// } |
||||
|
// |
||||
|
// } |
||||
|
} |
||||
@ -0,0 +1,671 @@ |
|||||
|
package com.bfd.mf.datasave.listen; |
||||
|
|
||||
|
import com.alibaba.fastjson.JSONArray; |
||||
|
import com.bfd.crawler.elasti.ElastiProducer; |
||||
|
import com.bfd.crawler.kafka7.KfkProducer; |
||||
|
import com.bfd.crawler.kafka7.utils.PropertiesParser; |
||||
|
import com.bfd.crawler.utils.JsonUtils; |
||||
|
import com.bfd.mf.datasave.download.DownLoadFile; |
||||
|
import com.bfd.mf.datasave.tools.DateUtil; |
||||
|
import com.bfd.mf.datasave.tools.ReadLine; |
||||
|
import com.bfd.mf.datasave.tools.WriteMethod; |
||||
|
import com.bfd.mf.entity.AllKeys; |
||||
|
import com.bfd.mf.entity.FieldNormaliz; |
||||
|
import com.bfd.mf.entity.mysql.SubjectTask; |
||||
|
import org.apache.commons.lang3.StringUtils; |
||||
|
|
||||
|
import org.apache.log4j.Logger; |
||||
|
import scala.collection.generic.BitOperations; |
||||
|
//import org.apache.logging.log4j.core.parser.ParseException; |
||||
|
|
||||
|
import java.io.BufferedReader; |
||||
|
import java.io.File; |
||||
|
import java.io.FileReader; |
||||
|
import java.text.DateFormat; |
||||
|
import java.text.ParseException; |
||||
|
import java.text.SimpleDateFormat; |
||||
|
import java.util.*; |
||||
|
import java.util.regex.Matcher; |
||||
|
import java.util.regex.Pattern; |
||||
|
|
||||
|
public class DataSaveManager implements Runnable{ |
||||
|
|
||||
|
private static Logger log = Logger.getLogger(DataSaveManager.class); |
||||
|
private String data ; |
||||
|
private FieldNormaliz fieldNormaliz ; |
||||
|
private static Map<String, List<Map<String,String>>> subject; |
||||
|
private static Map<Integer,Map<String,String>> tableInfoMap; |
||||
|
private static String preIndex = "cl_index_"; |
||||
|
private static String preSubject = "cl_subject_"; |
||||
|
private static int subjectEsNum = 1; |
||||
|
private static int indexEsNum = 2; |
||||
|
private static String indexType = "docs"; |
||||
|
private static int bussinessType = 1; |
||||
|
private static String kafkaTopic = "dataFromES_"; |
||||
|
private static String myGoFastAddr = "http://172.18.1.113:8080/upload"; |
||||
|
private static Map<String, Object> resultMap = AllKeys.getMap(); |
||||
|
private static String filePath = "../datasaveputkafka_file/";// |
||||
|
public DataSaveManager(String data, FieldNormaliz fieldNormaliz){ |
||||
|
this.data = data ; |
||||
|
this.fieldNormaliz = fieldNormaliz ; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
public DataSaveManager(String data, FieldNormaliz fieldNormaliz, |
||||
|
Map<String, List<Map<String,String>>> subject, |
||||
|
Map<Integer,Map<String,String>> tableInfoMap){ |
||||
|
this.data = data ; |
||||
|
this.fieldNormaliz = fieldNormaliz ; |
||||
|
this.subject = subject; |
||||
|
this.tableInfoMap = tableInfoMap; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
public void excData(){ |
||||
|
try{ |
||||
|
int kafkaNum = fieldNormaliz.getKafkaSerName(); |
||||
|
Map<String,Object> jsonData = JsonUtils.parseObject(data); |
||||
|
Map<String,String> tableInfo = tableInfoMap.get(bussinessType) ; |
||||
|
String res = convertData(jsonData, tableInfo); |
||||
|
Map<String, Object> resultMap = getResponse(res); // resultMap 就是将要写入到 ES 和 kafka 的一条数据 |
||||
|
System.out.println("The Message : "+JsonUtils.toJSONString(resultMap)); |
||||
|
//System.out.println("The Message subject: "+JsonUtils.toJSONString(subject)); |
||||
|
// 1、先判断是主贴还是评论 主贴写日期索引,回帖评论写 渠道索引 |
||||
|
String dateIndexName = getIndexName(resultMap); |
||||
|
System.out.println(dateIndexName); |
||||
|
int index= Integer.parseInt(dateIndexName.split("cl_index_")[1].split("-")[0]); |
||||
|
if(resultMap.containsKey("primary") && resultMap.get("primary").toString().equals("0")) { |
||||
|
dateIndexName = preIndex + resultMap.get("docType").toString(); |
||||
|
} |
||||
|
System.out.println("切割后的索引名字"+index); |
||||
|
//writerToKafka(2, "dataFromES_10000tw", resultMap); |
||||
|
// writerToSubjectES("cl_subject_10429", resultMap); |
||||
|
if (index>2015){ |
||||
|
writerToIndexES(dateIndexName, resultMap); |
||||
|
} |
||||
|
//System.out.println("-----------------------继续后面的步骤哇--------------------: " + JsonUtils.toJSONString(resultMap)); |
||||
|
// 2、判断数据中是否要下载标识,如果有需要先下载对应的文件,然后替换存储路径后再保存数据 |
||||
|
if(resultMap.containsKey("crawlDataFlag") && resultMap.containsKey("isDownload")) { //resultMap.containsKey("isDownload") |
||||
|
String key = getAllMapKey(resultMap); |
||||
|
//String getUrl = (String) resultMap.get("filePath"); |
||||
|
List<String> filePathlist=new ArrayList<>(); |
||||
|
List<String> imagePathlist=new ArrayList<>(); |
||||
|
List<String> videoPathlist=new ArrayList<>(); |
||||
|
List<String> filePath= (List<String>) resultMap.get("filePath"); |
||||
|
List<String> imagePath= (List<String>) resultMap.get("imagePath"); |
||||
|
List<String> videoPath= (List<String>) resultMap.get("videoPath"); |
||||
|
// 从 subject 中可以获取到这个key 对应的 专题信息 |
||||
|
System.out.println("key == " + key + " **** " + JsonUtils.toJSONString(subject)); |
||||
|
|
||||
|
if(subject.containsKey(key)) { |
||||
|
List<Map<String, String>> subjectList = subject.get(key); |
||||
|
for (Map<String, String> subjectMap : subjectList) { |
||||
|
String go_fast_addr = subjectMap.get("go_fast_addr"); |
||||
|
String subject_id = subjectMap.get("subject_id"); |
||||
|
String isDownload = (String)resultMap.get("isDownload"); |
||||
|
if (isDownload.equals("true")) { |
||||
|
String putUrl = myGoFastAddr; |
||||
|
if (!go_fast_addr.isEmpty()){ |
||||
|
putUrl = go_fast_addr; |
||||
|
} |
||||
|
if (filePath.size()>0){ |
||||
|
Iterator<String> it = filePath.iterator(); |
||||
|
List<Map<String,String>> valueList = new ArrayList<>(); |
||||
|
Map<String,String> filemap =new HashMap<>(); |
||||
|
while(it.hasNext()){ |
||||
|
String geturl= it.next(); |
||||
|
Map<String,Object> resultmap = DownLoadFile.downloadAndSaveFile(geturl, putUrl); |
||||
|
String resulturl= (String) resultmap.get("realUrl"); |
||||
|
String size= resultmap.get("size").toString()+"KB"; |
||||
|
if (resulturl!= null && resulturl.length()!= 0){ |
||||
|
filemap.put(resulturl,size); |
||||
|
filePathlist.add(resulturl); |
||||
|
}else { |
||||
|
System.out.print("很遗憾,怎么有下载失败了"); |
||||
|
filePath.add(geturl); |
||||
|
filemap.put(geturl,size); |
||||
|
} |
||||
|
} |
||||
|
//valueList.add(filemap); |
||||
|
// if(videoPathlist.size()>0){ |
||||
|
// resultMap.put("ugc",1); |
||||
|
// } |
||||
|
// else { |
||||
|
// resultMap.put("ugc",0); |
||||
|
// } |
||||
|
resultMap.put("filePathSize",JsonUtils.toJSONString(filemap)); |
||||
|
resultMap.put("filePath", filePathlist); |
||||
|
} |
||||
|
if (imagePath.size()>0){ |
||||
|
List<Map<String,String>> valueList = new ArrayList<>(); |
||||
|
Map<String,String> imagemap =new HashMap<>(); |
||||
|
Iterator<String> it = imagePath.iterator(); |
||||
|
while(it.hasNext()){ |
||||
|
String geturl= it.next(); |
||||
|
Map<String,Object> resultmap = DownLoadFile.downloadAndSaveFile(geturl, putUrl); |
||||
|
String resulturl= (String) resultmap.get("realUrl"); |
||||
|
String size= resultmap.get("size").toString()+"KB"; |
||||
|
if (resulturl!= null && resulturl.length()!= 0){ |
||||
|
imagemap.put(resulturl,size); //url +size |
||||
|
imagePathlist.add(resulturl);//url |
||||
|
}else{ |
||||
|
System.out.print("很遗憾,怎么有下载失败了"); |
||||
|
imagePath.add(geturl); |
||||
|
imagemap.put(geturl,size); |
||||
|
} |
||||
|
} |
||||
|
//valueList.add(imagemap); |
||||
|
// if(imagePath.size()>0){ |
||||
|
// resultMap.put("pgc",1); |
||||
|
// } |
||||
|
// else { |
||||
|
// resultMap.put("pgc",0); |
||||
|
// } |
||||
|
resultMap.put("imagePathSize",JsonUtils.toJSONString(imagemap)); |
||||
|
resultMap.put("imagePath", imagePathlist); |
||||
|
} |
||||
|
if (videoPath.size()>0){ |
||||
|
List<Map<String,String>> valueList = new ArrayList<>(); |
||||
|
Map<String,String> videomap =new HashMap<>(); |
||||
|
Iterator<String> it = videoPath.iterator(); |
||||
|
while(it.hasNext()){ |
||||
|
String geturl= it.next(); |
||||
|
System.out.println(putUrl+"putUrl是哪个啊"); |
||||
|
Map<String,Object> resultmap = DownLoadFile.downloadAndSaveFile(geturl, putUrl); |
||||
|
String resulturl= (String) resultmap.get("realUrl"); |
||||
|
String size= resultmap.get("size").toString()+"KB"; |
||||
|
|
||||
|
System.out.println("视频地址啊"+resulturl); |
||||
|
if (resulturl!= null && resulturl.length()!= 0){//判断 是否下载成功 |
||||
|
videomap.put(geturl,size); |
||||
|
videoPathlist.add(resulturl);}else{ |
||||
|
videoPathlist.add(geturl); |
||||
|
videomap.put(geturl,size); |
||||
|
} |
||||
|
} |
||||
|
//valueList.add(videomap); |
||||
|
if(videoPathlist.size()>0){ |
||||
|
resultMap.put("egc",1); |
||||
|
} |
||||
|
else { |
||||
|
resultMap.put("egc",0); |
||||
|
} |
||||
|
resultMap.put("videoPathSize",JsonUtils.toJSONString(videomap)); |
||||
|
resultMap.put("videoPath", videoPathlist); |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
String task_id = subjectMap.get("task_id"); |
||||
|
String external_id = subjectMap.get("external_id"); |
||||
|
resultMap.put("taskId", task_id); |
||||
|
resultMap.put("externalId", external_id); |
||||
|
String indexName = preSubject + subject_id; |
||||
|
// 数据写入到对应的专题索引中 |
||||
|
writerToSubjectES(indexName, resultMap); |
||||
|
|
||||
|
String kafka_addr = subjectMap.get("kafka_addr"); |
||||
|
if (!kafka_addr.isEmpty()) { |
||||
|
// 数据写入到指定的kafka 中 |
||||
|
kafkaTopic = kafkaTopic + "_" + subject_id; |
||||
|
//kafkaNum 指的是etc 中 kafka 配置文件的编号 |
||||
|
int num= checkPathExists(kafka_addr); |
||||
|
if (num>0){ |
||||
|
System.out.print(num); |
||||
|
writerToKafka(num, "dataFromES_10000", resultMap);} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
}else{ |
||||
|
System.out.println(" 这条数据都没有标识位,就不往专题的索引存储了呗!!!!" + resultMap.get("dataId")); |
||||
|
} |
||||
|
|
||||
|
}catch(Exception e){ |
||||
|
e.printStackTrace(); |
||||
|
log.error(data); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
private static void writerToSubjectES(String indexName , Map<String, Object> responseMap) { |
||||
|
System.out.println("==========================写入到【专题】ES : ==========" + indexName + " - "+responseMap.get("docId") ); |
||||
|
WriteMethod.writeMethod("zhuti.txt",JsonUtils.toJSONString(responseMap)); |
||||
|
// System.out.println("==========================写入到【专题】ES : ==========" + indexName + " - "+responseMap.get("videoPath") ); |
||||
|
ElastiProducer elastiProducer = ElastiProducer.getInstance(bussinessType, subjectEsNum, indexName, indexType); |
||||
|
elastiProducer.sendMessageToEs(JsonUtils.toJSONString(responseMap)); |
||||
|
//System.out.println("==========================写入到【专题】ES : ==========" + indexName + " - "+JsonUtils.toJSONString(responseMap) ); |
||||
|
} |
||||
|
|
||||
|
private static void writerToIndexES(String indexName , Map<String, Object> responseMap) { |
||||
|
System.out.println("==========================写入到【日期】ES : ==========" + indexName + " - "+responseMap.get("docId")); |
||||
|
ElastiProducer elastiProducer = ElastiProducer.getInstance(bussinessType, indexEsNum, indexName, indexType); |
||||
|
elastiProducer.sendMessageToEs(JsonUtils.toJSONString(responseMap)); |
||||
|
|
||||
|
} |
||||
|
|
||||
|
private static void writerToKafka(int kafkaNum,String indexName, String key, Map<String, Object> responseMap) { |
||||
|
try{ |
||||
|
List<Map<String,String>> subjects = subject.get(key); |
||||
|
if(subjects.size() > 0) { |
||||
|
for (Map<String, String> sub : subjects) { |
||||
|
String subjectId = sub.get("subject_id"); |
||||
|
String exportToKafka = sub.get("export_to_kafka"); |
||||
|
String kafkaAddr = sub.get("kafka_addr"); |
||||
|
//System.out.println("indexName : " + indexName + " ; subjectId : " + subjectId); |
||||
|
if (indexName.contains(subjectId) && exportToKafka.equals("1")) { |
||||
|
System.out.println("-----------------------------------------将数据写到对应的 kafka 中 : " + kafkaAddr); |
||||
|
//KfkProducer.getInstance().send("test0910", JsonUtils.toJSONString(responseMap)); |
||||
|
} |
||||
|
} |
||||
|
}else{ |
||||
|
System.out.println("空的????????" + key); |
||||
|
} |
||||
|
|
||||
|
}catch (Exception e){ |
||||
|
e.printStackTrace(); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
private static void writerToKafka(int kafkaNum,String kafkaTopic,Map<String, Object> responseMap) { |
||||
|
try{ |
||||
|
System.out.println("要写的kafka : "+kafkaNum + " ; kafkaTopic: " + kafkaTopic); |
||||
|
KfkProducer.getInstance(kafkaNum, kafkaTopic).send(kafkaTopic, JsonUtils.toJSONString(responseMap)); |
||||
|
}catch (Exception e){ |
||||
|
e.printStackTrace(); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
private static String downloadAndChange(String indexName ,String key ,Map<String, Object> responseMap,String defaultgetUrl ) { |
||||
|
String newdefaultUrl=""; |
||||
|
try{ |
||||
|
// 判断数据是否有文件需要下载,如果有需要下载的讲文件下载到对应的 gofast 地址中 |
||||
|
if(null != responseMap && responseMap.containsKey("isDownload")){ |
||||
|
String isDownload = (String)responseMap.get("isDownload"); |
||||
|
if(isDownload.equals("true")){ |
||||
|
// String getUrl = "https://www.bilibili.com/video/BV1gJ411L7aF?from=search&seid"; |
||||
|
String getUrl = defaultgetUrl; |
||||
|
System.out.println("实际要下载的视频链接: "+getUrl); |
||||
|
List<Map<String,String>> subjects = subject.get(key); |
||||
|
for (Map<String,String> sub: subjects) { |
||||
|
String subjectId = sub.get("subject_id"); |
||||
|
if(indexName.contains(subjectId)){ |
||||
|
//String putUrl = sub.get("go_fast_addr"); |
||||
|
System.out.println("gofast的地址是这个啊"+myGoFastAddr); |
||||
|
//newdefaultUrl = DownLoadFile.downloadAndSaveFile(getUrl,myGoFastAddr); |
||||
|
System.out.println("下载后的地址链接: "+newdefaultUrl); |
||||
|
//responseMap.put("videoUrl",resulturl); |
||||
|
// responseMap.put("filePath","http://172.26.11.110:8080/group1/default/20200904/09/58/5/VIUuOnpnGyE.mp4"); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
}catch (Exception e){ |
||||
|
e.printStackTrace(); |
||||
|
} |
||||
|
return newdefaultUrl; |
||||
|
} |
||||
|
|
||||
|
private static String getAllMapKey(Map<String,Object> responseMap){ |
||||
|
String key = null; |
||||
|
if(responseMap.containsKey("enSource")){ |
||||
|
String enSource = (String) responseMap.get("enSource"); |
||||
|
if(responseMap.containsKey("crawlDataFlag")) { |
||||
|
String crawlDataFlag = (String) responseMap.get("crawlDataFlag"); |
||||
|
key = enSource+"#####"+crawlDataFlag; |
||||
|
}else{ |
||||
|
System.out.println("数据没有标识???为什么呀?" + JsonUtils.toJSONString(responseMap)); |
||||
|
} |
||||
|
} |
||||
|
return key.toLowerCase(); |
||||
|
} |
||||
|
|
||||
|
// private List<String> getIndexNameList(String key , Map<String,Object> responseMap) { |
||||
|
// List<String> indexNames = new ArrayList<>(); |
||||
|
// try{ |
||||
|
// System.out.println( key + " ; task_subject: "+JsonUtils.toJSONString(subject)); |
||||
|
// if(subject.containsKey(key)){ |
||||
|
// List<Map<String,String>> values = subject.get(key); |
||||
|
// for (Map<String,String> val: values) { |
||||
|
// String subjectId = val.get("subject_id"); |
||||
|
// String taskId = val.get("task_id"); |
||||
|
// String externalId = val.get("external_id"); |
||||
|
// System.out.println(taskId + " -- " + externalId); |
||||
|
// System.out.println(externalId); |
||||
|
// indexNames.add(preSubject + subjectId); |
||||
|
// } |
||||
|
// }else{ |
||||
|
// //System.out.println("3333 : " + JsonUtils.toJSONString(responseMap)); |
||||
|
// System.out.println("这条数据不用写到 【专题】 索引中哦!!! " + |
||||
|
// "crawlDataFlag = " +responseMap.get("crawlDataFlag") + " ; " + |
||||
|
// "id = " + responseMap.get("dataId") + " ; " + |
||||
|
// "pubTime = " + responseMap.get("pubTimeStr")); |
||||
|
// } |
||||
|
// |
||||
|
//// }else{ |
||||
|
//// System.out.println("33333 "+responseMap); |
||||
|
//// } |
||||
|
// |
||||
|
//// for (Map.Entry<String, String> entry : subject.entrySet()) { |
||||
|
//// System.out.println("subject : key= " + entry.getKey() + " and value= " + entry.getValue()); |
||||
|
//// } |
||||
|
//// for (Map.Entry<String, String> entry : downloadAddr.entrySet()) { |
||||
|
//// System.out.println("download : key= " + entry.getKey() + " and value= " + entry.getValue()); |
||||
|
//// } |
||||
|
//// for (Map.Entry<String, String> entry : kafkaAddr.entrySet()) { |
||||
|
//// System.out.println("kafka: key= " + entry.getKey() + " and value= " + entry.getValue()); |
||||
|
//// } |
||||
|
// }catch (Exception e){ |
||||
|
// e.printStackTrace(); |
||||
|
// } |
||||
|
// return indexNames; |
||||
|
// } |
||||
|
|
||||
|
// private static String getIndexName(Map<String,Object> responseMap) { |
||||
|
// String pubTimeStr = responseMap.get("pubTimeStr").toString().split(" ")[0]; |
||||
|
// String indexName = preIndex+pubTimeStr; |
||||
|
// return indexName; |
||||
|
// } |
||||
|
|
||||
|
private static String getIndexName(Map<String,Object> responseMap) { |
||||
|
String pubTimeStr= null; |
||||
|
try { |
||||
|
//System.out.print(responseMap); |
||||
|
//System.out.print(responseMap.get("pubTimeStr").toString()+"pubTimeStr是啦啦啦"); |
||||
|
pubTimeStr = getDayString( responseMap.get("pubTimeStr").toString()); |
||||
|
|
||||
|
} catch (ParseException e) { |
||||
|
e.printStackTrace(); |
||||
|
} |
||||
|
String indexName = preIndex+pubTimeStr; |
||||
|
return indexName; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
private static Map<String, Object> getResponse(String dataNew) throws Exception { |
||||
|
Map<String,Object> responseMap = new HashMap<>(resultMap); |
||||
|
try { |
||||
|
Map<String, Object> dataMap = JsonUtils.parseObject(dataNew); |
||||
|
for (Map.Entry<String, Object> entry : dataMap.entrySet()) { |
||||
|
if (resultMap.containsKey(entry.getKey())) { |
||||
|
responseMap.put(entry.getKey(), entry.getValue()); |
||||
|
} |
||||
|
} |
||||
|
return responseMap; |
||||
|
}catch (Exception e){ |
||||
|
e.printStackTrace(); |
||||
|
return null; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
// public static void main(String[] args) { |
||||
|
// String getUrl = "https://wx1.sinaimg.cn/mw1024/89c644a5ly8fnskt9bm5gj20ro0rogls.jpg"; |
||||
|
// String putUrl = "http://172.26.11.110:8080/upload"; |
||||
|
// String url = DownLoadFile.downloadAndSaveFile(getUrl,putUrl); |
||||
|
// System.out.println(url); |
||||
|
// } |
||||
|
|
||||
|
// public static void main(String[] args) { |
||||
|
// int bussinessType = 1; |
||||
|
// int esServerName = 2; |
||||
|
// String indexType = "docs"; |
||||
|
// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); |
||||
|
// Date dBegin = null; |
||||
|
// try { |
||||
|
// dBegin = sdf.parse("2020-08-11"); |
||||
|
// Date dEnd = sdf.parse("2020-08-12"); |
||||
|
// List < Date > lDate = findDates(dBegin, dEnd); |
||||
|
// for (Date d:lDate) { |
||||
|
//// String indexName = "cl_index_"+ sdf.format(d); |
||||
|
// String indexName = "cl_index_news"; |
||||
|
//// String indexName = "cl_index_yilong_comment"; |
||||
|
//// String indexName = "cl_subject_10277"; |
||||
|
// System.out.println(indexName); |
||||
|
// ElastiProducer elastiProducer = ElastiProducer.getInstance(bussinessType, esServerName, indexName, indexType); |
||||
|
// System.out.println(elastiProducer); |
||||
|
// } |
||||
|
//// ElastiProducer elastiProducer = ElastiProducer.getInstance(bussinessType, esServerName, indexName, indexType); |
||||
|
//// System.out.println(esServerName+"#"+indexName+" : "+ JsonUtils.toJSONString(elastiProducer)); |
||||
|
// } catch (Exception e) { |
||||
|
// e.printStackTrace(); |
||||
|
// } |
||||
|
// } |
||||
|
|
||||
|
|
||||
|
private static String convertData(Map<String,Object> jsonData, Map<String,String> tableInfo){ |
||||
|
try{ |
||||
|
Map<String,Object> jsonDatanew = new HashMap<String,Object>(jsonData); |
||||
|
for(Map.Entry<String, Object> entry : jsonDatanew.entrySet()){ |
||||
|
String key = entry.getKey() ; |
||||
|
Object dataValue = entry.getValue(); |
||||
|
if(key.equals("content") && dataValue != null){ |
||||
|
String content = dataValue.toString().replaceAll("[^\\u0000-\\uFFFF]", "") ; |
||||
|
jsonData.put(key, content); |
||||
|
} |
||||
|
if(key.equals("title") && dataValue != null){ |
||||
|
String title = dataValue.toString().replaceAll("[^\\u0000-\\uFFFF]", "") ; |
||||
|
jsonData.put(key, title); |
||||
|
} |
||||
|
if(key.equals("author") && dataValue != null){ |
||||
|
String author = dataValue.toString().replaceAll("[^\\u0000-\\uFFFF]", "") ; |
||||
|
jsonData.put(key, author); |
||||
|
} |
||||
|
// if(key.equals("videoPath") && dataValue != null){ |
||||
|
// List<String> list=new ArrayList<>(); |
||||
|
// list.add(dataValue.toString()); |
||||
|
// jsonData.put(key,list); |
||||
|
// } |
||||
|
// if(key.equals("imagePath")&&dataValue != null){ |
||||
|
// List<String> list=new ArrayList<>(); |
||||
|
// list.add(dataValue.toString()); |
||||
|
// jsonData.put(key,list); |
||||
|
// } |
||||
|
// if(key.equals("filePath") && dataValue != null){ |
||||
|
// List<String> list=new ArrayList<>(); |
||||
|
// list.add(dataValue.toString()); |
||||
|
// jsonData.put(key,list); |
||||
|
// } |
||||
|
|
||||
|
if(tableInfo.containsKey(key)){ |
||||
|
System.out.print("tableInfo"+tableInfo); |
||||
|
String value = tableInfo.get(key); |
||||
|
if(value.equals("Integer")){ |
||||
|
if(StringUtils.isNotBlank(dataValue.toString())){ |
||||
|
String dataValuenew = dataValue.toString(); |
||||
|
if(dataValuenew.contains(",")){ |
||||
|
dataValuenew = dataValuenew.replace(",", ""); |
||||
|
jsonData.put(key, Integer.valueOf(dataValuenew)) ; |
||||
|
}else if(dataValuenew.contains("顶")){ |
||||
|
dataValuenew = "0"; |
||||
|
jsonData.put(key, Integer.valueOf(dataValuenew)) ; |
||||
|
}else if(dataValuenew.endsWith("万")){ |
||||
|
dataValuenew = dataValuenew.substring(0, dataValuenew.indexOf("万")); |
||||
|
jsonData.put(key, new Double(Double.valueOf(dataValuenew) * 10000).intValue()) ; |
||||
|
}else if(dataValuenew.endsWith("万+")){ |
||||
|
dataValuenew = dataValuenew.substring(0,dataValuenew.indexOf("万+")) ; |
||||
|
jsonData.put(key, new Double(Double.valueOf(dataValuenew) * 10000).intValue()) ; |
||||
|
}else{ |
||||
|
try{ |
||||
|
if(dataValue.toString().contains("全部评论")){ |
||||
|
dataValue = dataValue.toString().replace("全部评论 (","").replace(")",""); |
||||
|
} |
||||
|
jsonData.put(key, Integer.valueOf(dataValue.toString())) ; |
||||
|
}catch(Exception e){ |
||||
|
System.out.println("ERROR key " + key + "; value " + dataValue.toString()); |
||||
|
jsonData.put(key, 0) ; |
||||
|
e.printStackTrace(); |
||||
|
log.error("parse data IntFormat err value:"+dataValue); |
||||
|
} |
||||
|
} |
||||
|
}else{ |
||||
|
jsonData.put(key, 0) ; |
||||
|
} |
||||
|
}else if(value.equals("List")){ |
||||
|
if(StringUtils.isNotBlank(dataValue.toString())){ |
||||
|
jsonData.put(key, JSONArray.parseArray(dataValue.toString())) ; |
||||
|
} else{ |
||||
|
jsonData.put(key, new ArrayList<String>()) ; |
||||
|
} |
||||
|
}else if(value.equals("Long")){ |
||||
|
if(StringUtils.isNotBlank(dataValue.toString())){ |
||||
|
try{ |
||||
|
Long theValue = 0L; |
||||
|
if(dataValue.toString().contains("万+")){ |
||||
|
Double dou = Double.valueOf(dataValue.toString().replace("万+","")); |
||||
|
theValue =new Double(dou * 10000).longValue(); ; |
||||
|
jsonData.put(key,theValue) ; |
||||
|
}else{ |
||||
|
jsonData.put(key,Long.valueOf(dataValue.toString())) ; |
||||
|
} |
||||
|
|
||||
|
}catch(Exception e){ |
||||
|
jsonData.put(key, 0) ; |
||||
|
e.printStackTrace(); |
||||
|
log.error("parse data LongFormat err value:"+dataValue); |
||||
|
} |
||||
|
}else{ |
||||
|
jsonData.put(key, 0) ; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
return JsonUtils.toJSONString(jsonData) ; |
||||
|
}catch(Exception e){ |
||||
|
e.printStackTrace(); |
||||
|
log.error("parse data NumberFormat err :"+jsonData); |
||||
|
} |
||||
|
return null ; |
||||
|
} |
||||
|
|
||||
|
public static Pattern datePattrn = Pattern.compile("^\\d{4}\\-\\d{2}\\-\\d{2}\\s\\d{2}\\:\\d{2}:\\d{2}$"); |
||||
|
|
||||
|
// private String getDayString(String indexName){ |
||||
|
// Matcher matcher = datePattrn.matcher(indexName); |
||||
|
// String result = ""; |
||||
|
// if(matcher.find()){ |
||||
|
// if(StringUtils.isBlank(indexName)){ |
||||
|
// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); |
||||
|
// return sdf.format(new Date()); |
||||
|
// } |
||||
|
// }else{ |
||||
|
// result = DateUtil.getDate(); |
||||
|
// return result; |
||||
|
// } |
||||
|
// result = indexName.trim().split("\\s+")[0]; |
||||
|
// return result; |
||||
|
// } |
||||
|
|
||||
|
|
||||
|
private static String getDayString(String indexName) throws ParseException { |
||||
|
Matcher matcher = datePattrn.matcher(indexName); |
||||
|
String result = ""; |
||||
|
if(matcher.find()){ |
||||
|
if(StringUtils.isBlank(indexName)){ |
||||
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); |
||||
|
return sdf.format(new Date()); |
||||
|
} |
||||
|
}else{ |
||||
|
result = DateUtil.getDate(); |
||||
|
return result; |
||||
|
} |
||||
|
result = indexName.trim().split("\\s+")[0]; |
||||
|
DateFormat format1 = new SimpleDateFormat("yyyy-MM-dd"); |
||||
|
boolean checkResult = check(result); |
||||
|
if(!checkResult) { |
||||
|
return format1.format(new Date()); |
||||
|
} |
||||
|
try { |
||||
|
Long date = format1.parse(result).getTime(); |
||||
|
Long date1 = new Date().getTime(); |
||||
|
if (date > date1) { |
||||
|
return format1.format(new Date()); |
||||
|
} |
||||
|
} catch (ParseException e) { |
||||
|
e.printStackTrace(); |
||||
|
} |
||||
|
return result; |
||||
|
} |
||||
|
public static boolean check (String str) { |
||||
|
// SimpleDateFormat sd=new SimpleDateFormat("yyyy-MM-dd");//括号内为日期格式,y代表年份,M代表年份中的月份(为避免与小时中的分钟数m冲突,此处用M),d代表月份中的天数 |
||||
|
// try { |
||||
|
// sd.setLenient(false);//此处指定日期/时间解析是否不严格,在true是不严格,false时为严格 |
||||
|
// sd.parse(str); //从给定字符串的开始解析文本,以生成一个日期 |
||||
|
// } |
||||
|
// catch (Exception e) { |
||||
|
// return false; |
||||
|
// } |
||||
|
// return true; |
||||
|
SimpleDateFormat sd=new SimpleDateFormat("yyyy-MM-dd");//括号内为日期格式,y代表年份,M代表年份中的月份(为避免与小时中的分钟数m冲突,此处用M),d代表月份中的天数 |
||||
|
try { |
||||
|
sd.setLenient(false);//此处指定日期/时间解析是否不严格,在true是不严格,false时为严格 |
||||
|
sd.parse(str);//从给定字符串的开始解析文本,以生成一个日期 |
||||
|
} |
||||
|
catch (Exception e) { |
||||
|
return false; |
||||
|
} |
||||
|
return true; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
@Override |
||||
|
public void run() { |
||||
|
excData(); |
||||
|
} |
||||
|
|
||||
|
public List <Date> findDates(Date dBegin, Date dEnd) { |
||||
|
List lDate = new ArrayList(); |
||||
|
lDate.add(dBegin); |
||||
|
Calendar calBegin = Calendar.getInstance(); |
||||
|
// 使用给定的 Date 设置此 Calendar 的时间 |
||||
|
calBegin.setTime(dBegin); |
||||
|
Calendar calEnd = Calendar.getInstance(); |
||||
|
// 使用给定的 Date 设置此 Calendar 的时间 |
||||
|
calEnd.setTime(dEnd); |
||||
|
// 测试此日期是否在指定日期之后 |
||||
|
while (dEnd.after(calBegin.getTime())) { |
||||
|
// 根据日历的规则,为给定的日历字段添加或减去指定的时间量 |
||||
|
calBegin.add(Calendar.DAY_OF_MONTH, 1); |
||||
|
lDate.add(calBegin.getTime()); |
||||
|
} |
||||
|
return lDate; |
||||
|
} |
||||
|
public static int checkPathExists(String kafka_addr){//检查文件夹是否存在kafka的配置文件 |
||||
|
int num = 0; |
||||
|
String filename=""; |
||||
|
if (kafka_addr.equals("172.18.1.119:9992")){ |
||||
|
num=1; |
||||
|
}else if(kafka_addr.equals("172.18.1.178:9092,172.18.1.181:9092,172.18.1.182:9092")) { |
||||
|
num=2; |
||||
|
}else if(kafka_addr.equals("172.26.11.123:9092")) { |
||||
|
num=3; |
||||
|
}else if(kafka_addr.equals("50.19.49.16:9092")) { |
||||
|
num=4; |
||||
|
}else if(kafka_addr.equals("172.18.1.113:9092")) { |
||||
|
num=5; |
||||
|
}else { |
||||
|
if (kafka_addr.contains(",")){ |
||||
|
filename=kafka_addr.split(",")[0]; |
||||
|
} |
||||
|
filename=filename.split(":")[0]; |
||||
|
System.out.print(filename+"kafka_adds是"); |
||||
|
String filepath="../etc/"+filename+".properties"; |
||||
|
File file = new File(filepath); |
||||
|
List<String> properties = ReadLine.readLine(new File("../etc/1_kafka.properties")); |
||||
|
if (!file.exists()) { |
||||
|
WriteMethod.writeMethod(filepath,"crawl.kfk.metadata.broker.list="+kafka_addr); |
||||
|
for(int i=1;i<properties.size();i++){ |
||||
|
System.out.print(filepath); |
||||
|
WriteMethod.writeMethod(filepath,properties.get(i)); |
||||
|
} |
||||
|
} |
||||
|
num = Integer.parseInt(filename); |
||||
|
} |
||||
|
|
||||
|
return num; |
||||
|
} |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,424 @@ |
|||||
|
//package com.bfd.mf.datasave.listen; |
||||
|
// |
||||
|
//import com.alibaba.fastjson.JSONArray; |
||||
|
//import com.bfd.crawler.elasti.ElastiProducer; |
||||
|
//import com.bfd.crawler.kafka7.KfkProducer; |
||||
|
//import com.bfd.crawler.utils.JsonUtils; |
||||
|
//import com.bfd.mf.datasave.download.DownLoadFile; |
||||
|
//import com.bfd.mf.datasave.tools.DateUtil; |
||||
|
//import com.bfd.mf.entity.AllKeys; |
||||
|
//import com.bfd.mf.entity.FieldNormaliz; |
||||
|
//import org.apache.commons.lang3.StringUtils; |
||||
|
//import org.apache.log4j.Logger; |
||||
|
// |
||||
|
//import java.text.SimpleDateFormat; |
||||
|
//import java.util.*; |
||||
|
//import java.util.regex.Matcher; |
||||
|
//import java.util.regex.Pattern; |
||||
|
// |
||||
|
//public class DataSaveManager_kongtianyuan implements Runnable{ |
||||
|
// |
||||
|
// private static Logger log = Logger.getLogger(DataSaveManager_kongtianyuan.class); |
||||
|
// private String data ; |
||||
|
// private FieldNormaliz fieldNormaliz ; |
||||
|
// private static Map<String, List<Map<String,String>>> subject; |
||||
|
// private static Map<Integer,Map<String,String>> tableInfoMap; |
||||
|
// private static String preIndex = "cl_index_"; |
||||
|
// private static String preSubject = "cl_subject_"; |
||||
|
// private static int subjectEsNum = 1; |
||||
|
// private static int indexEsNum = 2; |
||||
|
// private static String indexType = "docs"; |
||||
|
// private static int bussinessType = 1; |
||||
|
// private static String kafkaTopic = "newsTopic_fromES"; |
||||
|
// private static Map<String, Object> resultMap = AllKeys.getMap(); |
||||
|
// |
||||
|
// public DataSaveManager_kongtianyuan(String data, FieldNormaliz fieldNormaliz){ |
||||
|
// this.data = data ; |
||||
|
// this.fieldNormaliz = fieldNormaliz ; |
||||
|
// } |
||||
|
// |
||||
|
// |
||||
|
// public DataSaveManager_kongtianyuan(String data, FieldNormaliz fieldNormaliz, |
||||
|
// Map<String, List<Map<String,String>>> subject, |
||||
|
// Map<Integer,Map<String,String>> tableInfoMap){ |
||||
|
// this.data = data ; |
||||
|
// this.fieldNormaliz = fieldNormaliz ; |
||||
|
// this.subject = subject; |
||||
|
// this.tableInfoMap = tableInfoMap; |
||||
|
// } |
||||
|
// |
||||
|
// |
||||
|
// public void excData(){ |
||||
|
// try{ |
||||
|
// int kafkaNum = fieldNormaliz.getKafkaSerName(); |
||||
|
// Map<String,Object> jsonData = JsonUtils.parseObject(data); |
||||
|
// Map<String,String> tableInfo = tableInfoMap.get(bussinessType) ; |
||||
|
// String res = convertData(jsonData, tableInfo); |
||||
|
// Map<String, Object> resultMap = getResponse(res); |
||||
|
//// System.out.println("resultMap : " + JsonUtils.toJSONString(resultMap)); |
||||
|
// // 直接先将数据写入到日期索引的ES中 |
||||
|
// String dateIndexName = getIndexName(resultMap); |
||||
|
// if(resultMap.containsKey("primary") && resultMap.get("primary").toString().equals("0")) { |
||||
|
// dateIndexName = preIndex + resultMap.get("docType").toString(); |
||||
|
// } |
||||
|
// writerToKafka(kafkaNum,kafkaTopic,resultMap); |
||||
|
// // writerToIndexES(dateIndexName, resultMap); |
||||
|
// |
||||
|
//// if(responseMap.containsKey("crawlDataFlag")){ |
||||
|
//// // 需要根据这个标识位知道要添加的 ID 和 要写入的ES |
||||
|
//// String key = getAllMapKey(responseMap); |
||||
|
//// //List<String> indexNames = getIndexNameList(key,responseMap); |
||||
|
//// WriterToSubjectES("",responseMap); |
||||
|
//// } |
||||
|
//// System.out.println("4444 : " + JsonUtils.toJSONString(responseMap)); |
||||
|
//// WriterToIndexES(dateIndexName, responseMap); |
||||
|
// // 判断数据要写入到哪个索引,然后讲数据写入到对应的索引中 |
||||
|
//// if(null != responseMap && responseMap.containsKey("source")) { |
||||
|
//// //key = twitter#####account:https://twitter.com/spokespersonchn &&& 索引名称是: cl_subject_10337 &&& 数据标识:keyword:folklore |
||||
|
//// String key = getAllMapKey(responseMap); |
||||
|
//// System.out.println(" ============== key = " + key + "; crawlDataFlag = " + responseMap.get("crawlDataFlag")); |
||||
|
//// // 从 subject 中可以根据 key get 到 数据 要不要写 kafka,kafka的地址,文件要不要下载,文件输出的go-fast地址 |
||||
|
//// List<String> indexNames = getIndexNameList(key,responseMap); |
||||
|
//// System.out.println("indexNames size = "+indexNames.size()); |
||||
|
//// for(String in: indexNames){ |
||||
|
//// System.out.println("key = " + key +" &&& 索引名称是: " + in + " &&& 数据标识:" + responseMap.get("crawlDataFlag")); |
||||
|
//// if(key.contains(responseMap.get("crawlDataFlag").toString().toLowerCase())) { |
||||
|
//// // 根据 key 和 索引名 去 subject 中查看数据要下载文件的gofast地址 |
||||
|
//// responseMap = downloadAndChange(in, key, responseMap); |
||||
|
//// // 根据 key 和 索引名 去 subject 中查看数据是否要导出到kafka,写到 kafka 中的数据得是替换文件地址后的数据 |
||||
|
//// writerToKafka(in, key, responseMap); |
||||
|
//// // 讲数据写入到对应索引的ES 中 |
||||
|
//// WriterToSubjectES(in, responseMap); |
||||
|
//// }else{ |
||||
|
//// System.out.println("对应关系错了!!!! key = " + key +" ;&&& 数据标识:" + responseMap.get("crawlDataFlag")); |
||||
|
//// } |
||||
|
//// } |
||||
|
//// } |
||||
|
// }catch(Exception e){ |
||||
|
// e.printStackTrace(); |
||||
|
// log.error(data); |
||||
|
// } |
||||
|
// } |
||||
|
// |
||||
|
// private static void writerToSubjectES(String indexName , Map<String, Object> responseMap) { |
||||
|
// System.out.println("==========================写入到【专题】ES : ==========" + indexName + " - "+responseMap.get("docId")); |
||||
|
//// ElastiProducer elastiProducer = ElastiProducer.getInstance(bussinessType, subjectEsNum, indexName, indexType); |
||||
|
//// elastiProducer.sendMessageToEs(JsonUtils.toJSONString(responseMap)); |
||||
|
// |
||||
|
// } |
||||
|
// |
||||
|
// private static void writerToIndexES(String indexName , Map<String, Object> responseMap) { |
||||
|
// System.out.println("==========================写入到【日期】ES : ==========" + indexName + " - "+responseMap.get("docId")); |
||||
|
// ElastiProducer elastiProducer = ElastiProducer.getInstance(bussinessType, indexEsNum, indexName, indexType); |
||||
|
// elastiProducer.sendMessageToEs(JsonUtils.toJSONString(responseMap)); |
||||
|
// |
||||
|
// } |
||||
|
// |
||||
|
// private static void writerToKafka(int kafkaNum,String indexName, String key, Map<String, Object> responseMap) { |
||||
|
// try{ |
||||
|
// List<Map<String,String>> subjects = subject.get(key); |
||||
|
// if(subjects.size() > 0) { |
||||
|
// for (Map<String, String> sub : subjects) { |
||||
|
// String subjectId = sub.get("subject_id"); |
||||
|
// String exportToKafka = sub.get("export_to_kafka"); |
||||
|
// String kafkaAddr = sub.get("kafka_addr"); |
||||
|
// //System.out.println("indexName : " + indexName + " ; subjectId : " + subjectId); |
||||
|
// if (indexName.contains(subjectId) && exportToKafka.equals("1")) { |
||||
|
// System.out.println("-----------------------------------------将数据写到对应的 kafka 中 : " + kafkaAddr); |
||||
|
// //KfkProducer.getInstance().send("test0910", JsonUtils.toJSONString(responseMap)); |
||||
|
// } |
||||
|
// } |
||||
|
// }else{ |
||||
|
// System.out.println("空的????????" + key); |
||||
|
// } |
||||
|
// |
||||
|
// }catch (Exception e){ |
||||
|
// e.printStackTrace(); |
||||
|
// } |
||||
|
// } |
||||
|
// |
||||
|
// private static void writerToKafka(int kafkaNum,String kafkaTopic,Map<String, Object> responseMap) { |
||||
|
// try{ |
||||
|
// System.out.println("要写的kafka : "+kafkaNum + " ; kafkaTopic: " + kafkaTopic); |
||||
|
// KfkProducer.getInstance(kafkaNum, kafkaTopic).send(kafkaTopic, JsonUtils.toJSONString(responseMap)); |
||||
|
// }catch (Exception e){ |
||||
|
// e.printStackTrace(); |
||||
|
// } |
||||
|
// } |
||||
|
// |
||||
|
// private static Map<String,Object> downloadAndChange(String indexName ,String key ,Map<String, Object> responseMap) { |
||||
|
// try{ |
||||
|
// // 判断数据是否有文件需要下载,如果有需要下载的讲文件下载到对应的 gofast 地址中 |
||||
|
// if(null != responseMap && responseMap.containsKey("isDownload")){ |
||||
|
// String isDownload = (String)responseMap.get("isDownload"); |
||||
|
// if(isDownload.equals("true")){ |
||||
|
//// String getUrl = "https://wx1.sinaimg.cn/mw1024/89c644a5ly8fnskt9bm5gj20ro0rogls.jpg"; |
||||
|
// String getUrl = (String) responseMap.get("videoUrl"); |
||||
|
//// System.out.println("实际要下载的视频链接: "+getUrl1); |
||||
|
// List<Map<String,String>> subjects = subject.get(key); |
||||
|
// for (Map<String,String> sub: subjects) { |
||||
|
// String subjectId = sub.get("subject_id"); |
||||
|
// if(indexName.contains(subjectId)){ |
||||
|
// String putUrl = sub.get("go_fast_addr"); |
||||
|
// String resulturl = DownLoadFile.downloadAndSaveFile(getUrl,putUrl); |
||||
|
//// System.out.println("下载后的地址链接: "+resulturl); |
||||
|
// responseMap.put("videoUrl",resulturl); |
||||
|
//// responseMap.put("filePath","http://172.26.11.110:8080/group1/default/20200904/09/58/5/VIUuOnpnGyE.mp4"); |
||||
|
// } |
||||
|
// } |
||||
|
// } |
||||
|
// } |
||||
|
// }catch (Exception e){ |
||||
|
// e.printStackTrace(); |
||||
|
// } |
||||
|
// return responseMap; |
||||
|
// } |
||||
|
// |
||||
|
// private static String getAllMapKey(Map<String,Object> responseMap){ |
||||
|
// String key = null; |
||||
|
// if(responseMap.containsKey("enSource")){ |
||||
|
// String enSource = (String) responseMap.get("enSource"); |
||||
|
// if(responseMap.containsKey("crawlDataFlag")) { |
||||
|
// String crawlDataFlag = (String) responseMap.get("crawlDataFlag"); |
||||
|
// key = enSource+"#####"+crawlDataFlag; |
||||
|
// }else{ |
||||
|
// System.out.println("数据没有标识???为什么呀?" + JsonUtils.toJSONString(responseMap)); |
||||
|
// } |
||||
|
// } |
||||
|
// return key; |
||||
|
// } |
||||
|
// |
||||
|
//// private List<String> getIndexNameList(String key , Map<String,Object> responseMap) { |
||||
|
//// List<String> indexNames = new ArrayList<>(); |
||||
|
//// try{ |
||||
|
//// System.out.println( key + " ; task_subject: "+JsonUtils.toJSONString(subject)); |
||||
|
//// if(subject.containsKey(key)){ |
||||
|
//// List<Map<String,String>> values = subject.get(key); |
||||
|
//// for (Map<String,String> val: values) { |
||||
|
//// String subjectId = val.get("subject_id"); |
||||
|
//// String taskId = val.get("task_id"); |
||||
|
//// String externalId = val.get("external_id"); |
||||
|
//// System.out.println(taskId + " -- " + externalId); |
||||
|
//// System.out.println(externalId); |
||||
|
//// indexNames.add(preSubject + subjectId); |
||||
|
//// } |
||||
|
//// }else{ |
||||
|
//// //System.out.println("3333 : " + JsonUtils.toJSONString(responseMap)); |
||||
|
//// System.out.println("这条数据不用写到 【专题】 索引中哦!!! " + |
||||
|
//// "crawlDataFlag = " +responseMap.get("crawlDataFlag") + " ; " + |
||||
|
//// "id = " + responseMap.get("dataId") + " ; " + |
||||
|
//// "pubTime = " + responseMap.get("pubTimeStr")); |
||||
|
//// } |
||||
|
//// |
||||
|
////// }else{ |
||||
|
////// System.out.println("33333 "+responseMap); |
||||
|
////// } |
||||
|
//// |
||||
|
////// for (Map.Entry<String, String> entry : subject.entrySet()) { |
||||
|
////// System.out.println("subject : key= " + entry.getKey() + " and value= " + entry.getValue()); |
||||
|
////// } |
||||
|
////// for (Map.Entry<String, String> entry : downloadAddr.entrySet()) { |
||||
|
////// System.out.println("download : key= " + entry.getKey() + " and value= " + entry.getValue()); |
||||
|
////// } |
||||
|
////// for (Map.Entry<String, String> entry : kafkaAddr.entrySet()) { |
||||
|
////// System.out.println("kafka: key= " + entry.getKey() + " and value= " + entry.getValue()); |
||||
|
////// } |
||||
|
//// }catch (Exception e){ |
||||
|
//// e.printStackTrace(); |
||||
|
//// } |
||||
|
//// return indexNames; |
||||
|
//// } |
||||
|
// |
||||
|
// private static String getIndexName(Map<String,Object> responseMap) { |
||||
|
// String pubTimeStr = responseMap.get("pubTimeStr").toString().split(" ")[0]; |
||||
|
// String indexName = preIndex+pubTimeStr; |
||||
|
// return indexName; |
||||
|
// } |
||||
|
// |
||||
|
// private static Map<String, Object> getResponse(String dataNew) throws Exception { |
||||
|
// Map<String,Object> responseMap = new HashMap<>(resultMap); |
||||
|
// try { |
||||
|
// Map<String, Object> dataMap = JsonUtils.parseObject(dataNew); |
||||
|
// for (Map.Entry<String, Object> entry : dataMap.entrySet()) { |
||||
|
// if (resultMap.containsKey(entry.getKey())) { |
||||
|
// responseMap.put(entry.getKey(), entry.getValue()); |
||||
|
// } |
||||
|
// } |
||||
|
// return responseMap; |
||||
|
// }catch (Exception e){ |
||||
|
// e.printStackTrace(); |
||||
|
// return null; |
||||
|
// } |
||||
|
// } |
||||
|
// |
||||
|
//// public static void main(String[] args) { |
||||
|
//// String getUrl = "https://wx1.sinaimg.cn/mw1024/89c644a5ly8fnskt9bm5gj20ro0rogls.jpg"; |
||||
|
//// String putUrl = "http://172.26.11.110:8080/upload"; |
||||
|
//// String url = DownLoadFile.downloadAndSaveFile(getUrl,putUrl); |
||||
|
//// System.out.println(url); |
||||
|
//// } |
||||
|
// |
||||
|
//// public static void main(String[] args) { |
||||
|
//// int bussinessType = 1; |
||||
|
//// int esServerName = 2; |
||||
|
//// String indexType = "docs"; |
||||
|
//// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); |
||||
|
//// Date dBegin = null; |
||||
|
//// try { |
||||
|
//// dBegin = sdf.parse("2020-08-11"); |
||||
|
//// Date dEnd = sdf.parse("2020-08-12"); |
||||
|
//// List < Date > lDate = findDates(dBegin, dEnd); |
||||
|
//// for (Date d:lDate) { |
||||
|
////// String indexName = "cl_index_"+ sdf.format(d); |
||||
|
//// String indexName = "cl_index_news"; |
||||
|
////// String indexName = "cl_index_yilong_comment"; |
||||
|
////// String indexName = "cl_subject_10277"; |
||||
|
//// System.out.println(indexName); |
||||
|
//// ElastiProducer elastiProducer = ElastiProducer.getInstance(bussinessType, esServerName, indexName, indexType); |
||||
|
//// System.out.println(elastiProducer); |
||||
|
//// } |
||||
|
////// ElastiProducer elastiProducer = ElastiProducer.getInstance(bussinessType, esServerName, indexName, indexType); |
||||
|
////// System.out.println(esServerName+"#"+indexName+" : "+ JsonUtils.toJSONString(elastiProducer)); |
||||
|
//// } catch (Exception e) { |
||||
|
//// e.printStackTrace(); |
||||
|
//// } |
||||
|
//// } |
||||
|
// |
||||
|
// |
||||
|
// private static String convertData(Map<String,Object> jsonData, Map<String,String> tableInfo){ |
||||
|
// try{ |
||||
|
// Map<String,Object> jsonDatanew = new HashMap<String,Object>(jsonData); |
||||
|
// for(Map.Entry<String, Object> entry : jsonDatanew.entrySet()){ |
||||
|
// String key = entry.getKey() ; |
||||
|
// Object dataValue = entry.getValue(); |
||||
|
// if(key.equals("content") && dataValue != null){ |
||||
|
// String content = dataValue.toString().replaceAll("[^\\u0000-\\uFFFF]", "") ; |
||||
|
// jsonData.put(key, content); |
||||
|
// } |
||||
|
// if(key.equals("title") && dataValue != null){ |
||||
|
// String title = dataValue.toString().replaceAll("[^\\u0000-\\uFFFF]", "") ; |
||||
|
// jsonData.put(key, title); |
||||
|
// } |
||||
|
// if(key.equals("author") && dataValue != null){ |
||||
|
// String author = dataValue.toString().replaceAll("[^\\u0000-\\uFFFF]", "") ; |
||||
|
// jsonData.put(key, author); |
||||
|
// } |
||||
|
// if(tableInfo.containsKey(key)){ |
||||
|
// String value = tableInfo.get(key); |
||||
|
// if(value.equals("Integer")){ |
||||
|
// if(StringUtils.isNotBlank(dataValue.toString())){ |
||||
|
// String dataValuenew = dataValue.toString(); |
||||
|
// if(dataValuenew.contains(",")){ |
||||
|
// dataValuenew = dataValuenew.replace(",", ""); |
||||
|
// jsonData.put(key, Integer.valueOf(dataValuenew)) ; |
||||
|
// }else if(dataValuenew.contains("顶")){ |
||||
|
// dataValuenew = "0"; |
||||
|
// jsonData.put(key, Integer.valueOf(dataValuenew)) ; |
||||
|
// }else if(dataValuenew.endsWith("万")){ |
||||
|
// dataValuenew = dataValuenew.substring(0, dataValuenew.indexOf("万")); |
||||
|
// jsonData.put(key, new Double(Double.valueOf(dataValuenew) * 10000).intValue()) ; |
||||
|
// }else if(dataValuenew.endsWith("万+")){ |
||||
|
// dataValuenew = dataValuenew.substring(0,dataValuenew.indexOf("万+")) ; |
||||
|
// jsonData.put(key, new Double(Double.valueOf(dataValuenew) * 10000).intValue()) ; |
||||
|
// }else{ |
||||
|
// try{ |
||||
|
// if(dataValue.toString().contains("全部评论")){ |
||||
|
// dataValue = dataValue.toString().replace("全部评论 (","").replace(")",""); |
||||
|
// } |
||||
|
// jsonData.put(key, Integer.valueOf(dataValue.toString())) ; |
||||
|
// }catch(Exception e){ |
||||
|
// System.out.println("ERROR key " + key + "; value " + dataValue.toString()); |
||||
|
// jsonData.put(key, 0) ; |
||||
|
// e.printStackTrace(); |
||||
|
// log.error("parse data IntFormat err value:"+dataValue); |
||||
|
// } |
||||
|
// } |
||||
|
// }else{ |
||||
|
// jsonData.put(key, 0) ; |
||||
|
// } |
||||
|
// |
||||
|
// }else if(value.equals("List")){ |
||||
|
// if(StringUtils.isNotBlank(dataValue.toString())){ |
||||
|
// jsonData.put(key, JSONArray.parseArray(dataValue.toString())) ; |
||||
|
// } else{ |
||||
|
// jsonData.put(key, new ArrayList<String>()) ; |
||||
|
// } |
||||
|
// }else if(value.equals("Long")){ |
||||
|
// if(StringUtils.isNotBlank(dataValue.toString())){ |
||||
|
// try{ |
||||
|
// jsonData.put(key, Long.valueOf(dataValue.toString())) ; |
||||
|
// }catch(Exception e){ |
||||
|
// jsonData.put(key, 0) ; |
||||
|
// e.printStackTrace(); |
||||
|
// log.error("parse data LongFormat err value:"+dataValue); |
||||
|
// } |
||||
|
// }else{ |
||||
|
// jsonData.put(key, 0) ; |
||||
|
// } |
||||
|
// } |
||||
|
// } |
||||
|
// } |
||||
|
// return JsonUtils.toJSONString(jsonData) ; |
||||
|
// }catch(Exception e){ |
||||
|
// e.printStackTrace(); |
||||
|
// log.error("parse data NumberFormat err :"+jsonData); |
||||
|
// } |
||||
|
// return null ; |
||||
|
// } |
||||
|
// |
||||
|
// public static Pattern datePattrn = Pattern.compile("^\\d{4}\\-\\d{2}\\-\\d{2}\\s\\d{2}\\:\\d{2}:\\d{2}$"); |
||||
|
// |
||||
|
// private String getDayString(String indexName){ |
||||
|
// Matcher matcher = datePattrn.matcher(indexName); |
||||
|
// String result = ""; |
||||
|
// if(matcher.find()){ |
||||
|
// if(StringUtils.isBlank(indexName)){ |
||||
|
// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); |
||||
|
// return sdf.format(new Date()); |
||||
|
// } |
||||
|
// }else{ |
||||
|
// result = DateUtil.getDate(); |
||||
|
// return result; |
||||
|
// } |
||||
|
// result = indexName.trim().split("\\s+")[0]; |
||||
|
// return result; |
||||
|
// } |
||||
|
// |
||||
|
// public boolean check (String str) { |
||||
|
// SimpleDateFormat sd=new SimpleDateFormat("yyyy-MM-dd");//括号内为日期格式,y代表年份,M代表年份中的月份(为避免与小时中的分钟数m冲突,此处用M),d代表月份中的天数 |
||||
|
// try { |
||||
|
// sd.setLenient(false);//此处指定日期/时间解析是否不严格,在true是不严格,false时为严格 |
||||
|
// sd.parse(str); //从给定字符串的开始解析文本,以生成一个日期 |
||||
|
// } |
||||
|
// catch (Exception e) { |
||||
|
// return false; |
||||
|
// } |
||||
|
// return true; |
||||
|
// } |
||||
|
// |
||||
|
// |
||||
|
// @Override |
||||
|
// public void run() { |
||||
|
// excData(); |
||||
|
// } |
||||
|
// |
||||
|
// public List <Date> findDates(Date dBegin, Date dEnd) { |
||||
|
// List lDate = new ArrayList(); |
||||
|
// lDate.add(dBegin); |
||||
|
// Calendar calBegin = Calendar.getInstance(); |
||||
|
// // 使用给定的 Date 设置此 Calendar 的时间 |
||||
|
// calBegin.setTime(dBegin); |
||||
|
// Calendar calEnd = Calendar.getInstance(); |
||||
|
// // 使用给定的 Date 设置此 Calendar 的时间 |
||||
|
// calEnd.setTime(dEnd); |
||||
|
// // 测试此日期是否在指定日期之后 |
||||
|
// while (dEnd.after(calBegin.getTime())) { |
||||
|
// // 根据日历的规则,为给定的日历字段添加或减去指定的时间量 |
||||
|
// calBegin.add(Calendar.DAY_OF_MONTH, 1); |
||||
|
// lDate.add(calBegin.getTime()); |
||||
|
// } |
||||
|
// return lDate; |
||||
|
// } |
||||
|
// |
||||
|
// |
||||
|
//} |
||||
@ -0,0 +1,77 @@ |
|||||
|
package com.bfd.mf.datasave.listen; |
||||
|
import com.bfd.crawler.kafka7.KfkConsumer; |
||||
|
import com.bfd.mf.datasave.kafka.ReadKafka; |
||||
|
import com.bfd.mf.datasave.tools.DateUtil; |
||||
|
import com.bfd.mf.entity.FieldNormaliz; |
||||
|
import com.bfd.mf.entity.mysql.FiledTableInfo; |
||||
|
import com.bfd.mf.entity.mysql.SubjectTask; |
||||
|
|
||||
|
import java.util.List; |
||||
|
import java.util.Map; |
||||
|
import java.util.concurrent.LinkedBlockingDeque; |
||||
|
import java.util.concurrent.SynchronousQueue; |
||||
|
import java.util.concurrent.ThreadPoolExecutor; |
||||
|
import java.util.concurrent.TimeUnit; |
||||
|
|
||||
|
public class ListenKafkaManager implements Runnable{ |
||||
|
|
||||
|
private LinkedBlockingDeque<String> queue= new LinkedBlockingDeque<String>(5000); |
||||
|
private boolean isRun = true; |
||||
|
private FieldNormaliz fieldNormaliz; |
||||
|
private ThreadPoolExecutor spiderPoolExec ; |
||||
|
private Map<String, List<Map<String,String>>> subject; |
||||
|
private Map<Integer,Map<String,String>> tableInfoMap; |
||||
|
|
||||
|
public ListenKafkaManager(FieldNormaliz fieldNormaliz){ |
||||
|
int croePoolsize = 20 ; |
||||
|
int maximumPoolsize = 60; |
||||
|
long keepAliveTime = 0; |
||||
|
this.spiderPoolExec = new ThreadPoolExecutor(croePoolsize, maximumPoolsize, keepAliveTime, TimeUnit.SECONDS, new SynchronousQueue<Runnable>()); |
||||
|
this.fieldNormaliz = fieldNormaliz ; |
||||
|
this.subject = SubjectTask.subjectTaskMap; |
||||
|
this.tableInfoMap = FiledTableInfo.tableInfoMap; |
||||
|
String kafkaname = fieldNormaliz.getKafkaName() ; |
||||
|
// KfkConsumer.startReadThread(queue,"Ejingdongdedup_filter1",10,"333",2); |
||||
|
ReadKafka readKafka = new ReadKafka(queue , kafkaname ,10 , fieldNormaliz.getGroupId(), fieldNormaliz.getKafkaSerName(),fieldNormaliz.getEsSerName()); |
||||
|
readKafka.read(); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public void run() { |
||||
|
while(isRun){ |
||||
|
if(this.queue.size() < 1){ |
||||
|
DateUtil.sleep(1); |
||||
|
continue; |
||||
|
} |
||||
|
String data = this.queue.poll(); |
||||
|
if(data == null) continue ; |
||||
|
if (data.equals("__Exit__")) break ; |
||||
|
this.addTask(data); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
private void addTask(String data){ |
||||
|
while ( spiderPoolExec.getPoolSize() >= spiderPoolExec.getMaximumPoolSize() || |
||||
|
spiderPoolExec.getActiveCount() >= spiderPoolExec.getMaximumPoolSize()) { |
||||
|
try { |
||||
|
Thread.sleep(200); |
||||
|
} catch (InterruptedException e) { |
||||
|
e.printStackTrace(); |
||||
|
} |
||||
|
} |
||||
|
//spiderPoolExec.submit(new DataSaveManager(data, fieldNormaliz)); |
||||
|
//spiderPoolExec.submit(new DataSaveManager_kongtianyuan(data, fieldNormaliz,subject,tableInfoMap)); |
||||
|
spiderPoolExec.submit(new DataSaveManager(data, fieldNormaliz,subject,tableInfoMap)); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
public void setSwitch(boolean flag){ |
||||
|
this.isRun = flag ; |
||||
|
} |
||||
|
|
||||
|
public LinkedBlockingDeque<String> getQueue(){ |
||||
|
return queue ; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
} |
||||
@ -0,0 +1,30 @@ |
|||||
|
package com.bfd.mf.datasave.listen; |
||||
|
|
||||
|
|
||||
|
import com.bfd.mf.entity.FieldNormaliz; |
||||
|
|
||||
|
import java.util.HashMap; |
||||
|
import java.util.Map; |
||||
|
import java.util.Set; |
||||
|
import java.util.TreeSet; |
||||
|
|
||||
|
public class ListenTaskManager { |
||||
|
|
||||
|
private static Set<String> listenkafkaTopicThreadObj = new TreeSet<String>(); |
||||
|
|
||||
|
public static Map<String,ListenKafkaManager> listenKafkaManagers = new HashMap<String,ListenKafkaManager>(); |
||||
|
|
||||
|
public static void addKafkaTopicListen(FieldNormaliz fieldNormaliz){ |
||||
|
String kafkaTopicName = fieldNormaliz.getKafkaName() ; |
||||
|
int kafkaServerName = fieldNormaliz.getKafkaSerName() ; |
||||
|
if (!listenkafkaTopicThreadObj.contains(kafkaServerName+"#"+kafkaTopicName)) { |
||||
|
listenkafkaTopicThreadObj.add(kafkaServerName+"#"+kafkaTopicName); |
||||
|
ListenKafkaManager listenKafkaManager = new ListenKafkaManager(fieldNormaliz); |
||||
|
new Thread(listenKafkaManager).start(); |
||||
|
listenKafkaManagers.put(kafkaServerName+"#"+kafkaTopicName, listenKafkaManager); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
} |
||||
@ -0,0 +1,226 @@ |
|||||
|
package com.bfd.mf.datasave.tools; |
||||
|
|
||||
|
import java.sql.Connection; |
||||
|
import java.sql.Driver; |
||||
|
import java.sql.DriverManager; |
||||
|
import java.sql.SQLException; |
||||
|
import java.util.*; |
||||
|
|
||||
|
public class DBConnectionManager { |
||||
|
|
||||
|
private static DBConnectionManager m_dbInstance; |
||||
|
|
||||
|
private static int m_ClientNum; |
||||
|
|
||||
|
@SuppressWarnings("rawtypes") |
||||
|
private Vector drivers = new Vector(); |
||||
|
@SuppressWarnings("rawtypes") |
||||
|
private Hashtable pools = new Hashtable(); |
||||
|
public int nCount; |
||||
|
public int iConID; |
||||
|
|
||||
|
public static synchronized DBConnectionManager getInstance(String name) { |
||||
|
if (m_dbInstance == null) |
||||
|
m_dbInstance = new DBConnectionManager(name); |
||||
|
m_ClientNum++; |
||||
|
return m_dbInstance; |
||||
|
} |
||||
|
|
||||
|
private DBConnectionManager(String name) { |
||||
|
init(name); |
||||
|
} |
||||
|
|
||||
|
public void freeConnection(String name, Connection con) { |
||||
|
DBConnectionPool pool = (DBConnectionPool) pools.get(name); |
||||
|
if (pool != null) { |
||||
|
pool.freeConnection(con); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
public Connection getConnection(String name) { |
||||
|
DBConnectionPool pool = (DBConnectionPool) pools.get(name); |
||||
|
if (pool != null) |
||||
|
return pool.getConnection(); |
||||
|
return null; |
||||
|
} |
||||
|
|
||||
|
public Connection getConnection(String name, long time) { |
||||
|
DBConnectionPool pool = (DBConnectionPool) pools.get(name); |
||||
|
if (pool != null) { |
||||
|
return pool.getConnection(time); |
||||
|
} |
||||
|
return null; |
||||
|
} |
||||
|
|
||||
|
@SuppressWarnings("rawtypes") |
||||
|
public void release() { |
||||
|
if (--m_ClientNum != 0) |
||||
|
return; |
||||
|
Enumeration allPools = pools.elements(); |
||||
|
while (allPools.hasMoreElements()) { |
||||
|
DBConnectionPool pool = (DBConnectionPool) allPools.nextElement(); |
||||
|
pool.release(); |
||||
|
} |
||||
|
Enumeration allDrivers = drivers.elements(); |
||||
|
while (allDrivers.hasMoreElements()) { |
||||
|
Driver driver = (Driver) allDrivers.nextElement(); |
||||
|
try { |
||||
|
DriverManager.deregisterDriver(driver); |
||||
|
} catch (SQLException e) { |
||||
|
} |
||||
|
} |
||||
|
System.gc(); |
||||
|
} |
||||
|
|
||||
|
@SuppressWarnings({ "unchecked"}) |
||||
|
private void createPools(Map<String,String> props) { |
||||
|
Set<String> propNames = props.keySet(); |
||||
|
for(String name:propNames){ |
||||
|
if (name.endsWith(".url")) { |
||||
|
String poolName = name.substring(0, name.lastIndexOf(".")); |
||||
|
String url = props.get(poolName + ".url"); |
||||
|
if (url == null) { |
||||
|
continue; |
||||
|
} |
||||
|
String user = props.get(poolName + ".user"); |
||||
|
String password = props.get(poolName + ".password"); |
||||
|
String maxconn="0"; |
||||
|
if(props.containsKey(poolName + ".maxconn")) |
||||
|
maxconn = props.get(poolName + ".maxconn"); |
||||
|
else |
||||
|
maxconn = "50"; |
||||
|
int max = 0; |
||||
|
try { |
||||
|
max = Integer.parseInt(maxconn); |
||||
|
} catch (Exception e) { |
||||
|
max = 50; |
||||
|
} |
||||
|
|
||||
|
DBConnectionPool pool = new DBConnectionPool(poolName, url, user, password, max); |
||||
|
pools.put(poolName, pool); |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
} |
||||
|
|
||||
|
private void init(String name) { |
||||
|
Map<String, String> config=PropertiesUtil.getProperties(name); |
||||
|
|
||||
|
if(config==null){ |
||||
|
System.exit(-1); |
||||
|
} |
||||
|
|
||||
|
loadDrivers(config); |
||||
|
createPools(config); |
||||
|
} |
||||
|
|
||||
|
@SuppressWarnings("unchecked") |
||||
|
private void loadDrivers(Map<String,String> props) { |
||||
|
String driverClasses = props.get("drivers"); |
||||
|
StringTokenizer st = new StringTokenizer(driverClasses); |
||||
|
while (st.hasMoreElements()) { |
||||
|
String driverClassName = st.nextToken().trim(); |
||||
|
try { |
||||
|
Driver driver = (Driver) Class.forName(driverClassName).newInstance(); |
||||
|
DriverManager.registerDriver(driver); |
||||
|
drivers.addElement(driver); |
||||
|
} catch (Exception e) { |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
class DBConnectionPool { |
||||
|
private int checkedOut; |
||||
|
@SuppressWarnings("rawtypes") |
||||
|
private Vector freeConnections = new Vector(); |
||||
|
private int maxConn; |
||||
|
private String name; |
||||
|
private String password; |
||||
|
private String URL; |
||||
|
private String user; |
||||
|
|
||||
|
public DBConnectionPool(String name, String URL, String user, String password, int maxConn) { |
||||
|
this.name = name; |
||||
|
this.URL = URL; |
||||
|
this.user = user; |
||||
|
this.password = password; |
||||
|
this.maxConn = maxConn; |
||||
|
} |
||||
|
|
||||
|
@SuppressWarnings("unchecked") |
||||
|
public synchronized void freeConnection(Connection con) { |
||||
|
freeConnections.addElement(con); |
||||
|
checkedOut--; |
||||
|
notifyAll(); |
||||
|
} |
||||
|
|
||||
|
@SuppressWarnings("resource") |
||||
|
public synchronized Connection getConnection() { |
||||
|
Connection con = null; |
||||
|
if (freeConnections.size() > 0) { |
||||
|
con = (Connection) freeConnections.firstElement(); |
||||
|
freeConnections.removeElementAt(0); |
||||
|
try { |
||||
|
if (con.isClosed() || !con.isValid(2)) { |
||||
|
checkedOut--; |
||||
|
con = null; |
||||
|
con = getConnection(); |
||||
|
} |
||||
|
} catch (SQLException e) { |
||||
|
checkedOut--; |
||||
|
con = null; |
||||
|
con = getConnection(); |
||||
|
} |
||||
|
} else if (maxConn == 0 || checkedOut < maxConn) { |
||||
|
con = newConnection(); |
||||
|
}else{ |
||||
|
} |
||||
|
|
||||
|
if (con != null) { |
||||
|
checkedOut++; |
||||
|
} |
||||
|
return con; |
||||
|
} |
||||
|
|
||||
|
public synchronized Connection getConnection(long timeout) { |
||||
|
long startTime = 0; |
||||
|
Connection con; |
||||
|
while ((con = getConnection()) == null) { |
||||
|
try { |
||||
|
wait(timeout); |
||||
|
} catch (InterruptedException e) { |
||||
|
} |
||||
|
if (startTime++ >= timeout) { |
||||
|
return null; |
||||
|
} |
||||
|
} |
||||
|
return con; |
||||
|
} |
||||
|
|
||||
|
@SuppressWarnings("rawtypes") |
||||
|
public synchronized void release() { |
||||
|
Enumeration allConnections = freeConnections.elements(); |
||||
|
while (allConnections.hasMoreElements()) { |
||||
|
Connection con = (Connection) allConnections.nextElement(); |
||||
|
try { |
||||
|
con.close(); |
||||
|
} catch (SQLException e) { |
||||
|
} |
||||
|
} |
||||
|
freeConnections.removeAllElements(); |
||||
|
} |
||||
|
|
||||
|
private Connection newConnection() { |
||||
|
Connection con = null; |
||||
|
try { |
||||
|
if (user == null) |
||||
|
con = DriverManager.getConnection(URL); |
||||
|
else |
||||
|
con = DriverManager.getConnection(URL, user, password); |
||||
|
} catch (SQLException e) { |
||||
|
return null; |
||||
|
} |
||||
|
return con; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,317 @@ |
|||||
|
package com.bfd.mf.datasave.tools; |
||||
|
|
||||
|
import java.sql.*; |
||||
|
import java.util.*; |
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* the operation of the db |
||||
|
* @author ruining.he |
||||
|
* @createTime 2015年5月5日上午10:28:56 |
||||
|
* */ |
||||
|
public class DBUtil { |
||||
|
|
||||
|
private static String etc_path = ""; |
||||
|
private static DBConnectionManager dbManager = null; |
||||
|
private static Map<String,DBUtil> map = Collections.synchronizedMap(new HashMap<String,DBUtil>()); |
||||
|
private String conn_name; |
||||
|
|
||||
|
private DBUtil(String conn){ |
||||
|
if(dbManager==null) |
||||
|
dbManager = DBConnectionManager.getInstance(etc_path); |
||||
|
this.conn_name = conn; |
||||
|
} |
||||
|
|
||||
|
public static void init(String path){ |
||||
|
etc_path = path; |
||||
|
} |
||||
|
|
||||
|
public static DBUtil getInstance(String connectionName){ |
||||
|
if("".equals(etc_path) && dbManager==null){ |
||||
|
System.exit(0); |
||||
|
} |
||||
|
if(map.containsKey(connectionName)) |
||||
|
return map.get(connectionName); |
||||
|
else{ |
||||
|
DBUtil dbUtil = new DBUtil(connectionName); |
||||
|
map.put(connectionName, dbUtil); |
||||
|
return dbUtil; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
private DBConnectionManager getDBCONConnectionManager(){ |
||||
|
return dbManager; |
||||
|
} |
||||
|
|
||||
|
public List<Map<String,Object>> query(String querySql){ |
||||
|
List<Map<String,Object>> list = new ArrayList<Map<String,Object>>(); |
||||
|
List<String> columns = new ArrayList<String>(); |
||||
|
|
||||
|
DBConnectionManager dbm=getDBCONConnectionManager(); |
||||
|
Connection conn=null; |
||||
|
while(conn == null){ |
||||
|
conn = dbm.getConnection(conn_name); |
||||
|
// DateUtil.sleep(1); |
||||
|
} |
||||
|
|
||||
|
Statement statement = null; |
||||
|
ResultSet rs = null; |
||||
|
try { |
||||
|
conn.setAutoCommit(false); |
||||
|
statement=conn.createStatement(); |
||||
|
rs=statement.executeQuery(querySql); |
||||
|
ResultSetMetaData data = rs.getMetaData(); |
||||
|
for(int i=1;i<=data.getColumnCount();i++) { |
||||
|
columns.add(data.getColumnName(i)); |
||||
|
} |
||||
|
while(rs.next()) { |
||||
|
HashMap<String,Object> map = new HashMap<String, Object>(); |
||||
|
for(int i=0;i<columns.size();i++) { |
||||
|
map.put(columns.get(i).toLowerCase(), rs.getObject(columns.get(i)));//key to lowercase |
||||
|
} |
||||
|
list.add(map); |
||||
|
} |
||||
|
conn.commit(); |
||||
|
} catch (Exception e) { |
||||
|
list.clear(); |
||||
|
return list; |
||||
|
} finally{ |
||||
|
try { |
||||
|
if(rs!=null) |
||||
|
rs.close(); |
||||
|
if(statement!=null) |
||||
|
statement.close(); |
||||
|
} catch (Exception e2) { |
||||
|
} |
||||
|
dbm.freeConnection(conn_name, conn); |
||||
|
} |
||||
|
return list; |
||||
|
} |
||||
|
public List<Map<String,Object>> queryOriginalColumn(String querySql){ |
||||
|
List<Map<String,Object>> list = new ArrayList<Map<String,Object>>(); |
||||
|
List<String> columns = new ArrayList<String>(); |
||||
|
|
||||
|
DBConnectionManager dbm=getDBCONConnectionManager(); |
||||
|
Connection conn=null; |
||||
|
while(conn == null){ |
||||
|
conn = dbm.getConnection(conn_name); |
||||
|
try { |
||||
|
Thread.currentThread().sleep(1*1000); |
||||
|
} catch (InterruptedException e) { |
||||
|
// TODO Auto-generated catch block |
||||
|
e.printStackTrace(); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
Statement statement = null; |
||||
|
ResultSet rs = null; |
||||
|
try { |
||||
|
conn.setAutoCommit(false); |
||||
|
statement=conn.createStatement(); |
||||
|
rs=statement.executeQuery(querySql); |
||||
|
ResultSetMetaData data = rs.getMetaData(); |
||||
|
for(int i=1;i<=data.getColumnCount();i++){ |
||||
|
columns.add(data.getColumnName(i)); |
||||
|
} |
||||
|
while(rs.next()){ |
||||
|
HashMap<String,Object> map = new HashMap<String, Object>(); |
||||
|
for(int i=0;i<columns.size();i++){ |
||||
|
map.put(columns.get(i), rs.getObject(columns.get(i)));//key to lowercase |
||||
|
} |
||||
|
list.add(map); |
||||
|
} |
||||
|
conn.commit(); |
||||
|
} catch (Exception e) { |
||||
|
list.clear(); |
||||
|
return list; |
||||
|
} finally{ |
||||
|
try { |
||||
|
if(rs!=null) |
||||
|
rs.close(); |
||||
|
if(statement!=null) |
||||
|
statement.close(); |
||||
|
} catch (Exception e2) { |
||||
|
} |
||||
|
dbm.freeConnection(conn_name, conn); |
||||
|
} |
||||
|
return list; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
public List<Map<String,Object>> getQuaryResult(String quartReplyTable,String iid,Object node_name,Object website_source,Object keyword,Object title ,Object url){ |
||||
|
DBConnectionManager dbm=getDBCONConnectionManager(); |
||||
|
Connection conn=null; |
||||
|
while(conn == null){ |
||||
|
conn = dbm.getConnection(conn_name); |
||||
|
|
||||
|
} |
||||
|
Statement statement = null; |
||||
|
ResultSet rs = null; |
||||
|
String querySql = ""; |
||||
|
try { |
||||
|
conn.setAutoCommit(false); |
||||
|
statement=conn.createStatement(); |
||||
|
rs=statement.executeQuery("select * from "+quartReplyTable+" where iid = '"+iid+"'"); |
||||
|
List<Map<String,Object>> datalist = new ArrayList<Map<String,Object>>(); |
||||
|
while(rs.next()){ |
||||
|
Map<String,Object> dataMap = new HashMap<String,Object>(); |
||||
|
dataMap.put("node_name", node_name); |
||||
|
dataMap.put("website_source", website_source); |
||||
|
dataMap.put("iid", rs.getObject("iid")); |
||||
|
dataMap.put("keyword", keyword); |
||||
|
dataMap.put("title", title); |
||||
|
dataMap.put("url", url); |
||||
|
dataMap.put("node_type", rs.getObject("node_type")); |
||||
|
dataMap.put("authorname", rs.getObject("authorname")); |
||||
|
dataMap.put("publicNumberName", rs.getObject("publicNumberName")); |
||||
|
dataMap.put("newstime", rs.getObject("newstime")); |
||||
|
dataMap.put("contents", rs.getObject("contents")); |
||||
|
dataMap.put("reply_cnt", rs.getObject("reply_cnt")); |
||||
|
dataMap.put("forward_num", rs.getObject("forward_num")); |
||||
|
dataMap.put("reply_up_cnt", rs.getObject("reply_up_cnt")); |
||||
|
dataMap.put("click_num", rs.getObject("click_num")); |
||||
|
int reply_cnt = 0; |
||||
|
if(rs.getObject("reply_cnt") != null){ |
||||
|
reply_cnt = Integer.parseInt((String) rs.getObject("reply_cnt")); |
||||
|
} |
||||
|
int forward_num = 0 ; |
||||
|
if(rs.getObject("forward_num") != null ){ |
||||
|
forward_num = Integer.parseInt((String) rs.getObject("forward_num")); |
||||
|
|
||||
|
} |
||||
|
dataMap.put("integra_sound_vol",1 + reply_cnt + forward_num); |
||||
|
dataMap.put("cate", rs.getObject("cate")); |
||||
|
dataMap.put("page_reply_cnt", rs.getObject("page_reply_cnt")); |
||||
|
dataMap.put("page_forward_num", rs.getObject("page_forward_num")); |
||||
|
datalist.add(dataMap); |
||||
|
|
||||
|
} |
||||
|
|
||||
|
return datalist; |
||||
|
} catch (Exception e) { |
||||
|
} finally{ |
||||
|
try { |
||||
|
if(rs!=null) |
||||
|
rs.close(); |
||||
|
if(statement!=null) |
||||
|
statement.close(); |
||||
|
} catch (Exception e2) { |
||||
|
} |
||||
|
dbm.freeConnection(conn_name, conn); |
||||
|
} |
||||
|
return null; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
public int quaryCount(String querySql){ |
||||
|
|
||||
|
DBConnectionManager dbm=getDBCONConnectionManager(); |
||||
|
Connection conn=null; |
||||
|
while(conn == null){ |
||||
|
conn = dbm.getConnection(conn_name); |
||||
|
try { |
||||
|
Thread.currentThread().sleep(1*1000); |
||||
|
} catch (InterruptedException e) { |
||||
|
// TODO Auto-generated catch block |
||||
|
e.printStackTrace(); |
||||
|
} |
||||
|
} |
||||
|
Statement statement = null; |
||||
|
ResultSet rs = null; |
||||
|
try { |
||||
|
conn.setAutoCommit(false); |
||||
|
statement=conn.createStatement(); |
||||
|
rs=statement.executeQuery(querySql); |
||||
|
while(rs.next()){ |
||||
|
return rs.getInt(1); |
||||
|
} |
||||
|
|
||||
|
conn.commit(); |
||||
|
} catch (Exception e) { |
||||
|
} finally{ |
||||
|
try { |
||||
|
if(rs!=null) |
||||
|
rs.close(); |
||||
|
if(statement!=null) |
||||
|
statement.close(); |
||||
|
} catch (Exception e2) { |
||||
|
} |
||||
|
dbm.freeConnection(conn_name, conn); |
||||
|
} |
||||
|
return 0; |
||||
|
|
||||
|
} |
||||
|
|
||||
|
public void executeBatch(List<String> sqlCache){ |
||||
|
DBConnectionManager dbm=getDBCONConnectionManager(); |
||||
|
Connection conn=null; |
||||
|
while(conn == null){ |
||||
|
conn = dbm.getConnection(conn_name); |
||||
|
} |
||||
|
try { |
||||
|
conn.setAutoCommit(false); |
||||
|
} catch (SQLException e) { |
||||
|
// TODO Auto-generated catch block |
||||
|
e.printStackTrace(); |
||||
|
} |
||||
|
Statement statement = null; |
||||
|
try { |
||||
|
statement = conn.createStatement(); |
||||
|
for (int i = 0; i < sqlCache.size(); i++) { |
||||
|
statement.addBatch(sqlCache.get(i)); |
||||
|
} |
||||
|
statement.executeBatch(); |
||||
|
conn.commit(); |
||||
|
System.out.println("mysql execute batch committed..."); |
||||
|
}catch (Exception bue) { |
||||
|
bue.printStackTrace(); |
||||
|
|
||||
|
}finally{ |
||||
|
if(statement!=null){ |
||||
|
try { |
||||
|
statement.close(); |
||||
|
} catch (SQLException e) { |
||||
|
// TODO Auto-generated catch block |
||||
|
e.printStackTrace(); |
||||
|
} |
||||
|
} |
||||
|
if(conn!=null){ |
||||
|
dbm.freeConnection(conn_name, conn); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
|
||||
|
} |
||||
|
|
||||
|
|
||||
|
public int execute(String sql){ |
||||
|
DBConnectionManager dbm=getDBCONConnectionManager(); |
||||
|
Connection conn= null; |
||||
|
while(conn == null){ |
||||
|
conn = dbm.getConnection(conn_name); |
||||
|
// DateUtil.sleep(1); |
||||
|
} |
||||
|
Statement st = null; |
||||
|
|
||||
|
try { |
||||
|
conn.setAutoCommit(false); |
||||
|
st = conn.createStatement(); |
||||
|
int rs = st.executeUpdate(sql); |
||||
|
conn.commit(); |
||||
|
return rs; |
||||
|
// } catch (com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException e1){ |
||||
|
// return ConfigCache.CODE_EXIST_IN_DB_AND_NOT_EXIST_IN_DUPLICATE; |
||||
|
}catch (Exception e) { |
||||
|
//return -10; |
||||
|
}finally{ |
||||
|
try { |
||||
|
if(st!=null) |
||||
|
st.close(); |
||||
|
} catch (Exception e2) { |
||||
|
} |
||||
|
dbm.freeConnection(conn_name, conn); |
||||
|
} |
||||
|
return 0; |
||||
|
} |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,861 @@ |
|||||
|
package com.bfd.mf.datasave.tools; |
||||
|
|
||||
|
import org.apache.commons.logging.Log; |
||||
|
import org.apache.commons.logging.LogFactory; |
||||
|
|
||||
|
import java.text.ParseException; |
||||
|
import java.text.ParsePosition; |
||||
|
import java.text.SimpleDateFormat; |
||||
|
import java.util.Calendar; |
||||
|
import java.util.Date; |
||||
|
import java.util.GregorianCalendar; |
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* 日期处理工具类 |
||||
|
*/ |
||||
|
|
||||
|
public class DateUtil { |
||||
|
//~ Static fields/initializers ============================================= |
||||
|
|
||||
|
|
||||
|
private static Log log = LogFactory.getLog(DateUtil.class); |
||||
|
private static String defaultDatePattern = null; |
||||
|
private static String timePattern = "HH:mm"; |
||||
|
public static final String TS_FORMAT = DateUtil.getDatePattern() + " HH:mm:ss.S"; |
||||
|
private static Calendar cale = Calendar.getInstance(); |
||||
|
|
||||
|
|
||||
|
//~ Methods ================================================================ |
||||
|
|
||||
|
public DateUtil(){ |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 获得服务器当前日期及时间,以格式为:yyyy-MM-dd HH:mm:ss的日期字符串形式返回 |
||||
|
*/ |
||||
|
public static String getDateTime(){ |
||||
|
try{ |
||||
|
SimpleDateFormat datetime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
||||
|
return datetime.format(Calendar.getInstance().getTime()); |
||||
|
} catch(Exception e){ |
||||
|
log.debug("DateUtil.getDateTime():" + e.getMessage()); |
||||
|
return ""; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 获得服务器当前日期及时间,以格式为:yyyy-MM-dd HH:mm:ss的日期字符串形式返回 |
||||
|
*/ |
||||
|
public static String getDateTime(long date){ |
||||
|
try{ |
||||
|
SimpleDateFormat datetime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
||||
|
return datetime.format(new Date(date)); |
||||
|
} catch(Exception e){ |
||||
|
log.debug("DateUtil.getDateTime():" + e.getMessage()); |
||||
|
return ""; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 获得服务器当前日期,以格式为:yyyy-MM-dd的日期字符串形式返回 |
||||
|
*/ |
||||
|
public static String getDate(){ |
||||
|
try{ |
||||
|
SimpleDateFormat date = new SimpleDateFormat("yyyy-MM-dd"); |
||||
|
return date.format(Calendar.getInstance().getTime()); |
||||
|
} catch(Exception e){ |
||||
|
log.debug("DateUtil.getDate():" + e.getMessage()); |
||||
|
return ""; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 获得服务器当前时间,以格式为:HH:mm:ss的日期字符串形式返回 |
||||
|
*/ |
||||
|
public static String getTime(){ |
||||
|
String temp = ""; |
||||
|
try{ |
||||
|
SimpleDateFormat time = new SimpleDateFormat("HH:mm:ss"); |
||||
|
temp += time.format(cale.getTime()); |
||||
|
return temp; |
||||
|
} catch(Exception e){ |
||||
|
log.debug("DateUtil.getTime():" + e.getMessage()); |
||||
|
return ""; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 获得服务器当前时间,以格式为:HH:mm:ss的日期字符串形式返回 |
||||
|
*/ |
||||
|
public static int getHour(){ |
||||
|
int temp = 0; |
||||
|
try{ |
||||
|
temp = Calendar.getInstance().get(Calendar.HOUR_OF_DAY); |
||||
|
return temp; |
||||
|
} catch(Exception e){ |
||||
|
log.debug("DateUtil.getTime():" + e.getMessage()); |
||||
|
return 0; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 返回日期加X天后的日期 |
||||
|
*/ |
||||
|
@SuppressWarnings("static-access") |
||||
|
public static int getHour(String fromdate){ |
||||
|
try{ |
||||
|
SimpleDateFormat date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
||||
|
GregorianCalendar gCal = new GregorianCalendar(); |
||||
|
Date datetime = date.parse(fromdate) ; |
||||
|
gCal.setTime(datetime) ; |
||||
|
return gCal.get(gCal.HOUR_OF_DAY); |
||||
|
} catch(Exception e){ |
||||
|
log.debug("DateUtil.addDay():" + e.toString()); |
||||
|
return 0; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
|
||||
|
public static int getMinute(){ |
||||
|
int temp = 0; |
||||
|
try{ |
||||
|
temp = Calendar.getInstance().get(Calendar.MINUTE); |
||||
|
return temp; |
||||
|
} catch(Exception e){ |
||||
|
log.debug("DateUtil.getTime():" + e.getMessage()); |
||||
|
return 0; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* 统计时开始日期的默认值, |
||||
|
* 今年的开始时间 |
||||
|
*/ |
||||
|
public static String getStartDate(){ |
||||
|
try{ |
||||
|
return getYear() + "-01-01"; |
||||
|
} catch(Exception e){ |
||||
|
log.debug("DateUtil.getStartDate():" + e.getMessage()); |
||||
|
return ""; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 统计时结束日期的默认值 |
||||
|
*/ |
||||
|
public static String getEndDate(){ |
||||
|
try{ |
||||
|
return getDate(); |
||||
|
} catch(Exception e){ |
||||
|
log.debug("DateUtil.getEndDate():" + e.getMessage()); |
||||
|
return ""; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* 获得服务器当前日期的年份 |
||||
|
*/ |
||||
|
public static String getYear(){ |
||||
|
try{ |
||||
|
//返回的int型,需要字符串转换 |
||||
|
return String.valueOf(cale.get(Calendar.YEAR)); |
||||
|
} catch(Exception e){ |
||||
|
log.debug("DateUtil.getYear():" + e.getMessage()); |
||||
|
return ""; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 获得服务器当前日期的月份 |
||||
|
*/ |
||||
|
public static String getMonth(){ |
||||
|
try{ |
||||
|
//一个数字格式,非常好 |
||||
|
java.text.DecimalFormat df = new java.text.DecimalFormat(); |
||||
|
df.applyPattern("00"); |
||||
|
return df.format((cale.get(Calendar.MONTH) + 1)); |
||||
|
//return String.valueOf(cale.get(Calendar.MONTH) + 1); |
||||
|
} catch(Exception e){ |
||||
|
log.debug("DateUtil.getMonth():" + e.getMessage()); |
||||
|
return ""; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 获得服务器在当前月中天数 |
||||
|
*/ |
||||
|
public static String getDay(){ |
||||
|
try{ |
||||
|
return String.valueOf(cale.get(Calendar.DAY_OF_MONTH)); |
||||
|
} catch(Exception e){ |
||||
|
log.debug("DateUtil.getDay():" + e.getMessage()); |
||||
|
return ""; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 比较两个日期相差的天数, |
||||
|
* 第一个日期要比第二个日期要晚 |
||||
|
*/ |
||||
|
public static int getDays(String date1,String date2){ |
||||
|
int margin; |
||||
|
try{ |
||||
|
SimpleDateFormat date = new SimpleDateFormat("yyyy-MM-dd"); |
||||
|
ParsePosition pos = new ParsePosition(0); |
||||
|
ParsePosition pos1 = new ParsePosition(0); |
||||
|
Date dt1 = date.parse(date1,pos); |
||||
|
Date dt2 = date.parse(date2,pos1); |
||||
|
long l = dt1.getTime() - dt2.getTime(); |
||||
|
margin = (int)(l / (24 * 60 * 60 * 1000)); |
||||
|
return margin; |
||||
|
} catch(Exception e){ |
||||
|
log.debug("DateUtil.getDays():" + e.toString()); |
||||
|
return 0; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 比较两个日期相差的 小时数, |
||||
|
* 第一个日期要比第二个日期要晚 |
||||
|
*/ |
||||
|
public static int getHours(String date1,String date2){ |
||||
|
int margin; |
||||
|
try{ |
||||
|
SimpleDateFormat datetime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
||||
|
ParsePosition pos = new ParsePosition(0); |
||||
|
ParsePosition pos1 = new ParsePosition(0); |
||||
|
Date dt1 = datetime.parse(date1,pos); |
||||
|
Date dt2 = datetime.parse(date2,pos1); |
||||
|
long l = dt1.getTime() - dt2.getTime(); |
||||
|
margin = (int)(l / ( 60 * 60 * 1000)); |
||||
|
return margin; |
||||
|
} catch(Exception e){ |
||||
|
log.debug("DateUtil.getHours():" + e.toString()); |
||||
|
return 0; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 比较两个日期相差的分钟数, |
||||
|
* 第一个日期要比第二个日期要晚 |
||||
|
*/ |
||||
|
public static int getMinutes(String date1,String date2){ |
||||
|
int margin; |
||||
|
try{ |
||||
|
SimpleDateFormat datetime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
||||
|
ParsePosition pos = new ParsePosition(0); |
||||
|
ParsePosition pos1 = new ParsePosition(0); |
||||
|
Date dt1 = datetime.parse(date1,pos); |
||||
|
Date dt2 = datetime.parse(date2,pos1); |
||||
|
long l = dt1.getTime() - dt2.getTime(); |
||||
|
margin = (int)(l / ( 60 * 1000)); |
||||
|
return margin; |
||||
|
} catch(Exception e){ |
||||
|
log.debug("DateUtil.getMinutes():" + e.toString()); |
||||
|
return 0; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 返回日期加X天后的日期 |
||||
|
*/ |
||||
|
@SuppressWarnings("static-access") |
||||
|
public static int getMinutes(String fromdate){ |
||||
|
try{ |
||||
|
SimpleDateFormat date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
||||
|
GregorianCalendar gCal = new GregorianCalendar(); |
||||
|
Date datetime = date.parse(fromdate) ; |
||||
|
gCal.setTime(datetime) ; |
||||
|
return gCal.get(gCal.MINUTE); |
||||
|
} catch(Exception e){ |
||||
|
log.debug("DateUtil.addDay():" + e.toString()); |
||||
|
return 0; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 比较两个日期相差的秒数, |
||||
|
* 第一个日期要比第二个日期要晚 |
||||
|
*/ |
||||
|
public static int getSeconds(String date1,String date2){ |
||||
|
int margin; |
||||
|
try{ |
||||
|
SimpleDateFormat datetime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
||||
|
Date dt1 = datetime.parse(date1); |
||||
|
Date dt2 = datetime.parse(date2); |
||||
|
long dateintvlong = dt1.getTime() - dt2.getTime(); |
||||
|
margin = (int)(dateintvlong /1000); |
||||
|
return margin; |
||||
|
} catch(Exception e){ |
||||
|
log.debug("DateUtil.getSeconds():" + e.toString()); |
||||
|
return 0; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* 比较两个日期相差的天数,格式不一样 |
||||
|
* 第一个日期要比第二个日期要晚 |
||||
|
*/ |
||||
|
public static double getDoubledays(String date1,String date2){ |
||||
|
double margin; |
||||
|
try{ |
||||
|
SimpleDateFormat datetime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
||||
|
ParsePosition pos = new ParsePosition(0); |
||||
|
ParsePosition pos1 = new ParsePosition(0); |
||||
|
Date dt1 = datetime.parse(date1,pos); |
||||
|
Date dt2 = datetime.parse(date2,pos1); |
||||
|
long l = dt1.getTime() - dt2.getTime(); |
||||
|
margin = (l / (24 * 60 * 60 * 1000.00)); |
||||
|
return margin; |
||||
|
} catch(Exception e){ |
||||
|
log.debug("DateUtil.getMargin():" + e.toString()); |
||||
|
return 0; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* 比较两个日期相差的月数 |
||||
|
*/ |
||||
|
public static int getMonthMargin(String date1,String date2){ |
||||
|
int margin; |
||||
|
try{ |
||||
|
margin = (Integer.parseInt(date2.substring(0,4)) - Integer.parseInt(date1.substring(0,4)))* 12; |
||||
|
margin += (Integer.parseInt(date2.substring(4,7).replaceAll("-0","-")) - Integer.parseInt(date1.substring(4,7).replaceAll("-0","-"))); |
||||
|
return margin; |
||||
|
} catch(Exception e){ |
||||
|
log.debug("DateUtil.getMargin():" + e.toString()); |
||||
|
return 0; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 返回日期加X天后的日期 |
||||
|
*/ |
||||
|
public static String addDay(String fromdate,int i){ |
||||
|
try{ |
||||
|
SimpleDateFormat date = new SimpleDateFormat("yyyy-MM-dd"); |
||||
|
GregorianCalendar gCal = new GregorianCalendar(Integer.parseInt(fromdate.substring(0,4)),Integer.parseInt(fromdate.substring(5,7))-1,Integer.parseInt(fromdate.substring(8,10))); |
||||
|
gCal.add(GregorianCalendar.DATE,i); |
||||
|
return date.format(gCal.getTime()); |
||||
|
} catch(Exception e){ |
||||
|
log.debug("DateUtil.addDay():" + e.toString()); |
||||
|
return getDate(); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 返回日期加X天后的日期 |
||||
|
*/ |
||||
|
public static String addDay(int i){ |
||||
|
try{ |
||||
|
SimpleDateFormat date = new SimpleDateFormat("yyyy-MM-dd"); |
||||
|
Calendar cale = Calendar.getInstance() ; |
||||
|
cale.add(Calendar.DAY_OF_MONTH, i) ; |
||||
|
return date.format(cale.getTime()); |
||||
|
} catch(Exception e){ |
||||
|
log.debug("DateUtil.addDay():" + e.toString()); |
||||
|
return getDate(); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 返回日期加X月后的日期 |
||||
|
*/ |
||||
|
public static String addMonth(String fromdate,int i){ |
||||
|
try{ |
||||
|
SimpleDateFormat date = new SimpleDateFormat("yyyy-MM-dd"); |
||||
|
GregorianCalendar gCal = new GregorianCalendar(Integer.parseInt(fromdate.substring(0,4)),Integer.parseInt(fromdate.substring(5,7))-1,Integer.parseInt(fromdate.substring(8,10))); |
||||
|
gCal.add(GregorianCalendar.MONTH,i); |
||||
|
return date.format(gCal.getTime()); |
||||
|
} catch(Exception e){ |
||||
|
log.debug("DateUtil.addMonth():" + e.toString()); |
||||
|
return getDate(); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 返回日期加X年后的日期 |
||||
|
*/ |
||||
|
public static String addYear(String fromdate,int i){ |
||||
|
try{ |
||||
|
SimpleDateFormat date = new SimpleDateFormat("yyyy-MM-dd"); |
||||
|
GregorianCalendar gCal = new GregorianCalendar(Integer.parseInt(fromdate.substring(0,4)),Integer.parseInt(fromdate.substring(5,7))-1,Integer.parseInt(fromdate.substring(8,10))); |
||||
|
gCal.add(GregorianCalendar.YEAR,i); |
||||
|
return date.format(gCal.getTime()); |
||||
|
} catch(Exception e){ |
||||
|
log.debug("DateUtil.addYear():" + e.toString()); |
||||
|
return ""; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* 返回某年某月中的最大天 |
||||
|
*/ |
||||
|
public static int getMaxDay(String year,String month){ |
||||
|
int day = 0; |
||||
|
try{ |
||||
|
int iyear = Integer.parseInt(year); |
||||
|
int imonth = Integer.parseInt(month); |
||||
|
if(imonth == 1 || imonth == 3 || imonth == 5 || imonth == 7 || imonth == 8 || imonth == 10 || imonth == 12){ |
||||
|
day = 31; |
||||
|
} else if(imonth == 4 || imonth == 6 || imonth == 9 || imonth == 11){ |
||||
|
day = 30; |
||||
|
} else if((0 == (iyear % 4)) && (0 != (iyear % 100)) || (0 == (iyear % 400))){ |
||||
|
day = 29; |
||||
|
} else{ |
||||
|
day = 28; |
||||
|
} |
||||
|
return day; |
||||
|
} catch(Exception e){ |
||||
|
log.debug("DateUtil.getMonthDay():" + e.toString()); |
||||
|
return 1; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* 格式化日期 |
||||
|
*/ |
||||
|
@SuppressWarnings("static-access") |
||||
|
public String rollDate(String orgDate,int Type,int Span){ |
||||
|
try{ |
||||
|
String temp = ""; |
||||
|
int iyear,imonth,iday; |
||||
|
int iPos = 0; |
||||
|
char seperater = '-'; |
||||
|
if(orgDate == null || orgDate.length() < 6){ |
||||
|
return ""; |
||||
|
} |
||||
|
|
||||
|
iPos = orgDate.indexOf(seperater); |
||||
|
if(iPos > 0){ |
||||
|
iyear = Integer.parseInt(orgDate.substring(0,iPos)); |
||||
|
temp = orgDate.substring(iPos + 1); |
||||
|
} else{ |
||||
|
iyear = Integer.parseInt(orgDate.substring(0,4)); |
||||
|
temp = orgDate.substring(4); |
||||
|
} |
||||
|
|
||||
|
iPos = temp.indexOf(seperater); |
||||
|
if(iPos > 0){ |
||||
|
imonth = Integer.parseInt(temp.substring(0,iPos)); |
||||
|
temp = temp.substring(iPos + 1); |
||||
|
} else{ |
||||
|
imonth = Integer.parseInt(temp.substring(0,2)); |
||||
|
temp = temp.substring(2); |
||||
|
} |
||||
|
|
||||
|
imonth--; |
||||
|
if(imonth < 0 || imonth > 11){ |
||||
|
imonth = 0; |
||||
|
} |
||||
|
|
||||
|
iday = Integer.parseInt(temp); |
||||
|
if(iday < 1 || iday > 31) |
||||
|
iday = 1; |
||||
|
|
||||
|
Calendar orgcale = Calendar.getInstance(); |
||||
|
orgcale.set(iyear,imonth,iday); |
||||
|
temp = this.rollDate(orgcale,Type,Span); |
||||
|
return temp; |
||||
|
}catch(Exception e){ |
||||
|
return ""; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
public static String rollDate(Calendar cal,int Type,int Span){ |
||||
|
try{ |
||||
|
SimpleDateFormat date = new SimpleDateFormat("yyyy-MM-dd"); |
||||
|
String temp = ""; |
||||
|
Calendar rolcale; |
||||
|
rolcale = cal; |
||||
|
rolcale.add(Type,Span); |
||||
|
temp = date.format(rolcale.getTime()); |
||||
|
return temp; |
||||
|
}catch(Exception e){ |
||||
|
return ""; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* |
||||
|
* 返回默认的日期格式 |
||||
|
* |
||||
|
*/ |
||||
|
public static synchronized String getDatePattern() { |
||||
|
defaultDatePattern = "yyyy-MM-dd"; |
||||
|
return defaultDatePattern; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 将指定日期按默认格式进行格式代化成字符串后输出如:yyyy-MM-dd |
||||
|
*/ |
||||
|
public static final String getDate(Date aDate) { |
||||
|
SimpleDateFormat df = null; |
||||
|
String returnValue = ""; |
||||
|
|
||||
|
if (aDate != null) { |
||||
|
df = new SimpleDateFormat(getDatePattern()); |
||||
|
returnValue = df.format(aDate); |
||||
|
} |
||||
|
|
||||
|
return (returnValue); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* 取得给定日期的时间字符串,格式为当前默认时间格式 |
||||
|
*/ |
||||
|
public static String getTimeNow(Date theTime) { |
||||
|
return getDateTime(timePattern, theTime); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 取得当前时间的Calendar日历对象 |
||||
|
*/ |
||||
|
public Calendar getToday() throws ParseException { |
||||
|
Date today = new Date(); |
||||
|
SimpleDateFormat df = new SimpleDateFormat(getDatePattern()); |
||||
|
String todayAsString = df.format(today); |
||||
|
Calendar cal = new GregorianCalendar(); |
||||
|
cal.setTime(convertStringToDate(todayAsString)); |
||||
|
return cal; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 将日期类转换成指定格式的字符串形式 |
||||
|
*/ |
||||
|
public static final String getDateTime(String aMask, Date aDate) { |
||||
|
SimpleDateFormat df = null; |
||||
|
String returnValue = ""; |
||||
|
|
||||
|
if (aDate == null) { |
||||
|
log.error("aDate is null!"); |
||||
|
} else { |
||||
|
df = new SimpleDateFormat(aMask); |
||||
|
returnValue = df.format(aDate); |
||||
|
} |
||||
|
return (returnValue); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 将指定的日期转换成默认格式的字符串形式 |
||||
|
*/ |
||||
|
public static final String convertDateToString(Date aDate) { |
||||
|
return getDateTime(getDatePattern(), aDate); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* 将日期字符串按指定格式转换成日期类型 |
||||
|
* @param aMask 指定的日期格式,如:yyyy-MM-dd |
||||
|
* @param strDate 待转换的日期字符串 |
||||
|
*/ |
||||
|
|
||||
|
public static final Date convertStringToDate(String aMask, String strDate) |
||||
|
throws ParseException { |
||||
|
SimpleDateFormat df = null; |
||||
|
Date date = null; |
||||
|
df = new SimpleDateFormat(aMask); |
||||
|
|
||||
|
if (log.isDebugEnabled()) { |
||||
|
log.debug("converting '" + strDate + "' to date with mask '" |
||||
|
+ aMask + "'"); |
||||
|
} |
||||
|
try { |
||||
|
date = df.parse(strDate); |
||||
|
} catch (ParseException pe) { |
||||
|
log.error("ParseException: " + pe); |
||||
|
throw pe; |
||||
|
} |
||||
|
return (date); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 将日期字符串按默认格式转换成日期类型 |
||||
|
*/ |
||||
|
public static Date convertStringToDate(String strDate) |
||||
|
throws ParseException { |
||||
|
Date aDate = null; |
||||
|
|
||||
|
try { |
||||
|
if (log.isDebugEnabled()) { |
||||
|
log.debug("converting date with pattern: " + getDatePattern()); |
||||
|
} |
||||
|
aDate = convertStringToDate(getDatePattern(), strDate); |
||||
|
} catch (ParseException pe) { |
||||
|
log.error("Could not convert '" + strDate |
||||
|
+ "' to a date, throwing exception"); |
||||
|
throw new ParseException(pe.getMessage(), |
||||
|
pe.getErrorOffset()); |
||||
|
|
||||
|
} |
||||
|
|
||||
|
return aDate; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 返回一个JAVA简单类型的日期字符串 |
||||
|
*/ |
||||
|
public static String getSimpleDateFormat(){ |
||||
|
SimpleDateFormat formatter=new SimpleDateFormat(); |
||||
|
String NDateTime=formatter.format(new Date()); |
||||
|
return NDateTime; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 将两个字符串格式的日期进行比较 |
||||
|
* @param last 要比较的第一个日期字符串 |
||||
|
* @param now 要比较的第二个日期格式字符串 |
||||
|
* @return true(last 在now 日期之前),false(last 在now 日期之后) |
||||
|
*/ |
||||
|
public static boolean compareTo(String last, String now) { |
||||
|
try { |
||||
|
SimpleDateFormat formatter = new SimpleDateFormat( |
||||
|
"yyyy-MM-dd HH:mm:ss"); |
||||
|
Date temp1 = formatter.parse(last); |
||||
|
Date temp2 = formatter.parse(now); |
||||
|
if (temp1.after(temp2)) |
||||
|
return false; |
||||
|
else if (temp1.before(temp2)) |
||||
|
return true; |
||||
|
} catch (ParseException e) { |
||||
|
log.debug(e.getMessage()); |
||||
|
} |
||||
|
return false; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* 将两个字符串格式的日期进行比较 |
||||
|
* @param last 要比较的第一个日期字符串 |
||||
|
* @param now 要比较的第二个日期格式字符串 |
||||
|
* @return true(last 在now 日期之前),false(last 在now 日期之后) |
||||
|
*/ |
||||
|
public static boolean compareToForBBS(String last, String now) { |
||||
|
try { |
||||
|
if(last.equals(now)) |
||||
|
return true; |
||||
|
SimpleDateFormat formatter = new SimpleDateFormat( |
||||
|
"yyyy-MM-dd"); |
||||
|
Date temp1 = formatter.parse(last); |
||||
|
Date temp2 = formatter.parse(now); |
||||
|
if (temp1.after(temp2)) |
||||
|
return false; |
||||
|
else if (temp1.before(temp2)) |
||||
|
return true; |
||||
|
} catch (ParseException e) { |
||||
|
log.debug(e.getMessage()); |
||||
|
} |
||||
|
return false; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* 为查询日期添加最小时间 |
||||
|
* @return |
||||
|
*/ |
||||
|
@SuppressWarnings("deprecation") |
||||
|
public static Date addStartTime(Date param) { |
||||
|
Date date = param; |
||||
|
try{ |
||||
|
date.setHours(0); |
||||
|
date.setMinutes(0); |
||||
|
date.setSeconds(0); |
||||
|
return date; |
||||
|
}catch(Exception ex){ |
||||
|
return date; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* 为查询日期添加最大时间 |
||||
|
* @return |
||||
|
*/ |
||||
|
@SuppressWarnings("deprecation") |
||||
|
public static Date addEndTime(Date param) { |
||||
|
Date date = param; |
||||
|
try{ |
||||
|
date.setHours(23); |
||||
|
date.setMinutes(59); |
||||
|
date.setSeconds(0); |
||||
|
return date; |
||||
|
}catch(Exception ex){ |
||||
|
return date; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* 返回系统现在年份中指定月份的天数 |
||||
|
* @return 指定月的总天数 |
||||
|
*/ |
||||
|
@SuppressWarnings("deprecation") |
||||
|
public static String getMonthLastDay(int month) |
||||
|
{ |
||||
|
Date date=new Date(); |
||||
|
int[][] day={{0,30,28,31,30,31,30,31,31,30,31,30,31}, |
||||
|
{0,31,29,31,30,31,30,31,31,30,31,30,31}}; |
||||
|
int year=date.getYear()+1900; |
||||
|
if(year%4==0 && year%100!=0 || year%400==0) |
||||
|
{ |
||||
|
return day[1][month]+""; |
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
return day[0][month]+""; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 返回指定年份中指定月份的天数 |
||||
|
* @return 指定月的总天数 |
||||
|
*/ |
||||
|
public static String getMonthLastDay(int year,int month) |
||||
|
{ |
||||
|
int[][] day={{0,30,28,31,30,31,30,31,31,30,31,30,31}, |
||||
|
{0,31,29,31,30,31,30,31,31,30,31,30,31}}; |
||||
|
if(year%4==0 && year%100!=0 || year%400==0) |
||||
|
{ |
||||
|
return day[1][month]+""; |
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
return day[0][month]+""; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 取得当前时间的日戳 |
||||
|
* @return |
||||
|
*/ |
||||
|
@SuppressWarnings("deprecation") |
||||
|
public static String getTimestamp(){ |
||||
|
Date date=new Date(); |
||||
|
String timestamp=""+(date.getYear()+1900)+date.getMonth()+date.getDate()+date.getMinutes()+date.getSeconds()+date.getTime(); |
||||
|
return timestamp; |
||||
|
} |
||||
|
/** |
||||
|
* 取得指定时间的日戳 |
||||
|
* @return |
||||
|
*/ |
||||
|
@SuppressWarnings("deprecation") |
||||
|
public static String getTimestamp(Date date){ |
||||
|
String timestamp=""+(date.getYear()+1900)+date.getMonth()+date.getDate()+date.getMinutes()+date.getSeconds()+date.getTime(); |
||||
|
return timestamp; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
public static Date getDate(String time) { |
||||
|
Date date = new Date(); |
||||
|
try { |
||||
|
SimpleDateFormat datetime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
||||
|
date = datetime.parse(time); |
||||
|
} catch (ParseException e) { |
||||
|
e.printStackTrace(); |
||||
|
} |
||||
|
return date; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
public static long getTimeMillis(String datetime){ |
||||
|
long timemillis = 0 ; |
||||
|
Calendar cal = Calendar.getInstance(); |
||||
|
Date date = getDate(datetime) ; |
||||
|
cal.setTime(date) ; |
||||
|
timemillis = cal.getTimeInMillis() ; |
||||
|
return timemillis ; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
public static long getsmallSec(String datetime1,String datetime2){ |
||||
|
long time1 = 0 ; |
||||
|
long time2 = 0 ; |
||||
|
long time = 0 ; |
||||
|
if(datetime1!=null){ |
||||
|
time1 = getTimeMillis(datetime1) ; |
||||
|
} |
||||
|
if(datetime2!=null){ |
||||
|
time2 = getTimeMillis(datetime2) ; |
||||
|
} |
||||
|
if(time1==0){ |
||||
|
time = time2 ; |
||||
|
}else if(time2==0){ |
||||
|
time = time1 ; |
||||
|
}else if(time1>time2){ |
||||
|
time = time2 ; |
||||
|
}else{ |
||||
|
time = time1 ; |
||||
|
} |
||||
|
time = time/1000 ; |
||||
|
return time ; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* @Description: TODO |
||||
|
* @param calendarField 修改的字段 |
||||
|
* @param calc add/sub |
||||
|
* @param n |
||||
|
* @return |
||||
|
* |
||||
|
* @return String |
||||
|
* @throws |
||||
|
*/ |
||||
|
public static String getDatetimeNfieldgap(int calendarField,String calc,int n){ |
||||
|
try{ |
||||
|
SimpleDateFormat datetime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
||||
|
Calendar cal = Calendar.getInstance() ; |
||||
|
int value = cal.get(calendarField) ; |
||||
|
if(calc.equals("add")){ |
||||
|
cal.set(calendarField, value+n) ; |
||||
|
}else if(calc.equals("sub")){ |
||||
|
cal.set(calendarField, value-n); |
||||
|
} |
||||
|
return datetime.format(cal.getTime()); |
||||
|
} catch(Exception e){ |
||||
|
log.debug("DateUtil.getDay():" + e.getMessage()); |
||||
|
return "" ; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
@SuppressWarnings("static-access") |
||||
|
public static void sleep(int seconds){ |
||||
|
if(seconds<1) |
||||
|
return; |
||||
|
try { |
||||
|
Thread.currentThread().sleep(seconds*1000); |
||||
|
} catch (InterruptedException e) { |
||||
|
e.printStackTrace(); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
@SuppressWarnings("static-access") |
||||
|
public static void sleepLong(long millisecond){ |
||||
|
if(millisecond<1) |
||||
|
return; |
||||
|
try { |
||||
|
Thread.currentThread().sleep(millisecond); |
||||
|
} catch (InterruptedException e) { |
||||
|
e.printStackTrace(); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
// public static void main(String[] args) { |
||||
|
// boolean flag = compareToForBBS("0000-06-01 00:00:00.0","11-09"); |
||||
|
// System.out.println(flag); |
||||
|
// } |
||||
|
} |
||||
@ -0,0 +1,33 @@ |
|||||
|
package com.bfd.mf.datasave.tools; |
||||
|
|
||||
|
import java.io.*; |
||||
|
import java.util.HashMap; |
||||
|
import java.util.Map; |
||||
|
import java.util.Properties; |
||||
|
|
||||
|
/** |
||||
|
* properties文件读取 |
||||
|
* @author ruining.he |
||||
|
* */ |
||||
|
public class PropertiesUtil { |
||||
|
|
||||
|
@SuppressWarnings({ "rawtypes", "unchecked" }) |
||||
|
public static Map<String,String> getProperties(String filePath){ |
||||
|
Properties properties=new Properties(); |
||||
|
try { |
||||
|
Reader reader = new InputStreamReader(new FileInputStream(new File(filePath)), "utf8"); |
||||
|
properties.load(reader); |
||||
|
return new HashMap(properties); |
||||
|
} catch (FileNotFoundException e) { |
||||
|
} catch (IOException e) { |
||||
|
} |
||||
|
return null; |
||||
|
} |
||||
|
|
||||
|
// public static void main(String[] args) { |
||||
|
// Map<String,String> map = getProperties("E:\\BaiFenDian\\工作文档\\5月\\B版_develop\\test\\info-config"); |
||||
|
// for(String k:map.keySet()){ |
||||
|
// System.out.println(k + ":" + map.get(k)); |
||||
|
// } |
||||
|
// } |
||||
|
} |
||||
@ -0,0 +1,37 @@ |
|||||
|
package com.bfd.mf.datasave.tools; |
||||
|
|
||||
|
import java.io.*; |
||||
|
import java.util.ArrayList; |
||||
|
import java.util.List; |
||||
|
|
||||
|
|
||||
|
public class ReadLine { |
||||
|
public static List<String> readLine( File fileName){ |
||||
|
List<String> list = new ArrayList<String> (); |
||||
|
String line; |
||||
|
try { |
||||
|
InputStreamReader read = new InputStreamReader(new FileInputStream(fileName), "utf-8"); |
||||
|
BufferedReader reader = new BufferedReader(read); |
||||
|
while ((line = reader.readLine()) != null) { |
||||
|
try { |
||||
|
if (line.length() > 0) { |
||||
|
list.add(line); |
||||
|
} |
||||
|
} catch (Exception e) { |
||||
|
e.printStackTrace(); |
||||
|
} |
||||
|
} |
||||
|
return list; |
||||
|
}catch (UnsupportedEncodingException e) { |
||||
|
e.printStackTrace(); |
||||
|
return null; |
||||
|
} catch (FileNotFoundException e) { |
||||
|
e.printStackTrace(); |
||||
|
return null; |
||||
|
} catch (IOException e) { |
||||
|
e.printStackTrace(); |
||||
|
return null; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,21 @@ |
|||||
|
package com.bfd.mf.datasave.tools; |
||||
|
|
||||
|
import java.io.FileWriter; |
||||
|
import java.io.IOException; |
||||
|
|
||||
|
/** |
||||
|
* Created by BFD-229 on 2017/7/6. |
||||
|
*/ |
||||
|
public class WriteMethod { |
||||
|
public static void writeMethod(String fileName, String json){ |
||||
|
try{ |
||||
|
FileWriter writer=new FileWriter(fileName,true); |
||||
|
writer.write(json+"\n"); |
||||
|
writer.close(); |
||||
|
} catch (IOException e) |
||||
|
{ |
||||
|
e.printStackTrace(); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,147 @@ |
|||||
|
package com.bfd.mf.entity; |
||||
|
|
||||
|
import java.util.*; |
||||
|
|
||||
|
public class AllKeys { |
||||
|
private static Map<String,Object> map = new HashMap(); |
||||
|
|
||||
|
public static Map<String, Object> getMap() { |
||||
|
return map; |
||||
|
} |
||||
|
|
||||
|
public static void setMap(Map<String, Object> map) { |
||||
|
AllKeys.map = map; |
||||
|
} |
||||
|
|
||||
|
static { |
||||
|
map.put("_id_",""); |
||||
|
map.put("age",""); |
||||
|
map.put("area",""); |
||||
|
map.put("attitudesCount",""); |
||||
|
map.put("attr",""); |
||||
|
map.put("author",""); |
||||
|
map.put("authorId",""); |
||||
|
map.put("authorLevel",""); |
||||
|
map.put("authornickname",""); |
||||
|
map.put("availability",0); |
||||
|
map.put("avatar",""); |
||||
|
map.put("brand",""); |
||||
|
map.put("brandId",""); |
||||
|
map.put("cate",""); |
||||
|
map.put("channel",""); |
||||
|
map.put("city",""); |
||||
|
map.put("collectCount",0); |
||||
|
map.put("commentId",""); |
||||
|
map.put("commentScore",0); |
||||
|
map.put("commentsCount",0); |
||||
|
map.put("commentUrl",""); |
||||
|
map.put("content",""); |
||||
|
map.put("contentLength",0); |
||||
|
map.put("contentSimHash",""); |
||||
|
map.put("contentTag",""); |
||||
|
map.put("country",""); |
||||
|
map.put("crawlDataFlag",""); |
||||
|
map.put("crawlDate",new Date ()); |
||||
|
map.put("crawlDay",0L); |
||||
|
map.put("crawlTime",0L); |
||||
|
map.put("crawlTimeStr",""); |
||||
|
map.put("createDate",new Date ()); |
||||
|
map.put("createDay",0L); |
||||
|
map.put("createTime",0L); |
||||
|
map.put("createTimeStr",""); |
||||
|
map.put("dataCount",0); |
||||
|
map.put("dataId",""); |
||||
|
map.put("docId",""); |
||||
|
map.put("docType",""); |
||||
|
map.put("downCnt",0); |
||||
|
map.put("egc",0); |
||||
|
map.put("enSource",""); |
||||
|
map.put("expression",new ArrayList<>()); |
||||
|
map.put("extension",""); |
||||
|
map.put("fansCount",""); |
||||
|
map.put("favorCnt",0); |
||||
|
map.put("filePath",new ArrayList<>()); |
||||
|
map.put("imagePath",new ArrayList<>()); |
||||
|
map.put("videoPath",new ArrayList<>()); |
||||
|
map.put("finalPhrase",""); |
||||
|
map.put("firstListBrand",""); |
||||
|
map.put("fiveListBrand",""); |
||||
|
map.put("forumScore",""); |
||||
|
map.put("forwardAttitudesCount",0); |
||||
|
map.put("forwardAuthor",""); |
||||
|
map.put("forwardAvatar",""); |
||||
|
map.put("forwardCommentsCount",0); |
||||
|
map.put("forwardContent",""); |
||||
|
map.put("forwardImgs",""); |
||||
|
map.put("forwardPostSource",""); |
||||
|
map.put("forwardPubTime",0L); |
||||
|
map.put("forwardQuoteCount",0); |
||||
|
map.put("forwardUrl",""); |
||||
|
map.put("forwardUserId",""); |
||||
|
map.put("forwardUserType",0); |
||||
|
map.put("forwardUserUrl",""); |
||||
|
map.put("fourListBrand",""); |
||||
|
map.put("friendsCount",""); |
||||
|
map.put("getSource",""); |
||||
|
map.put("hashTag",new ArrayList<>()); |
||||
|
map.put("hlKeywords",new ArrayList<>()); |
||||
|
map.put("impression",""); |
||||
|
map.put("isDownload",false); |
||||
|
map.put("isVip",0); |
||||
|
map.put("language",""); |
||||
|
map.put("lastModifiedTime",0L); |
||||
|
map.put("listBrand",""); |
||||
|
map.put("location",""); |
||||
|
map.put("nomorprice",0); |
||||
|
map.put("opinions",new ArrayList<>()); |
||||
|
map.put("originalPhrase",""); |
||||
|
map.put("otherSourceJson",""); |
||||
|
map.put("pageCommentCount",0); |
||||
|
map.put("pageTranspondCount",0); |
||||
|
map.put("pageType",""); |
||||
|
map.put("pgc",0); |
||||
|
map.put("pictureList",""); |
||||
|
map.put("places",new ArrayList<>()); |
||||
|
map.put("postCount",""); |
||||
|
map.put("postId",""); |
||||
|
map.put("postSource",""); |
||||
|
map.put("price",0); |
||||
|
map.put("primary",1); |
||||
|
map.put("productParameter",""); |
||||
|
map.put("projectName",""); |
||||
|
map.put("promotionInfo",""); |
||||
|
map.put("province",""); |
||||
|
map.put("pubDate",new Date()); |
||||
|
map.put("pubDay",0L); |
||||
|
map.put("pubTime",0L); |
||||
|
map.put("pubTimeStr",""); |
||||
|
map.put("quoteCount",0); |
||||
|
map.put("readCount",0); |
||||
|
map.put("resolution",""); |
||||
|
map.put("secondListBrand",""); |
||||
|
map.put("sex",""); |
||||
|
map.put("sign",""); |
||||
|
map.put("siteId",""); |
||||
|
map.put("skuProperties",""); |
||||
|
map.put("smallImgs",""); |
||||
|
map.put("source",""); |
||||
|
map.put("sysAbstract",""); |
||||
|
map.put("sysKeywords",""); |
||||
|
map.put("sysSentiment",0.0); |
||||
|
map.put("threeListBrand",""); |
||||
|
map.put("thumbnails",""); |
||||
|
map.put("title",""); |
||||
|
map.put("titleLength",0); |
||||
|
map.put("titleSimHash",""); |
||||
|
map.put("translateContent",""); |
||||
|
map.put("translateTitle",""); |
||||
|
map.put("ugc",0); |
||||
|
map.put("url",""); |
||||
|
map.put("urlHash",""); |
||||
|
map.put("userType",""); |
||||
|
map.put("userUrl",""); |
||||
|
map.put("videoTime",""); |
||||
|
map.put("videoUrl",""); |
||||
|
map.put("viewCnt",0); |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,21 @@ |
|||||
|
package com.bfd.mf.entity; |
||||
|
|
||||
|
|
||||
|
import com.bfd.mf.entity.FieldNormaliz; |
||||
|
|
||||
|
import java.rmi.Remote; |
||||
|
import java.rmi.RemoteException; |
||||
|
import java.util.Map; |
||||
|
|
||||
|
public interface DataSaveManager extends Remote{ |
||||
|
|
||||
|
public void addTaskName(FieldNormaliz fieldNormaliz) throws RemoteException; |
||||
|
|
||||
|
public void stopImprotTask(int kafkaSerName, String kafkaName) throws RemoteException ; |
||||
|
|
||||
|
public void startImprotTask(String kafkaName) throws RemoteException ; |
||||
|
|
||||
|
public long getNowImportEsNum(Map<String, Object> param) throws RemoteException; |
||||
|
|
||||
|
public int getNowKafkaNum() throws RemoteException ; |
||||
|
} |
||||
@ -0,0 +1,39 @@ |
|||||
|
package com.bfd.mf.entity; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
public class FieldInfo { |
||||
|
|
||||
|
private String kafka_type ; |
||||
|
|
||||
|
private List<String> kafkaJsonString ; |
||||
|
|
||||
|
private List<String> kafkaJsonArray ; |
||||
|
|
||||
|
public String getKafka_type() { |
||||
|
return kafka_type; |
||||
|
} |
||||
|
|
||||
|
public void setKafka_type(String kafka_type) { |
||||
|
this.kafka_type = kafka_type; |
||||
|
} |
||||
|
|
||||
|
public List<String> getKafkaJsonString() { |
||||
|
return kafkaJsonString; |
||||
|
} |
||||
|
|
||||
|
public void setKafkaJsonString(List<String> kafkaJsonString) { |
||||
|
this.kafkaJsonString = kafkaJsonString; |
||||
|
} |
||||
|
|
||||
|
public List<String> getKafkaJsonArray() { |
||||
|
return kafkaJsonArray; |
||||
|
} |
||||
|
|
||||
|
public void setKafkaJsonArray(List<String> kafkaJsonArray) { |
||||
|
this.kafkaJsonArray = kafkaJsonArray; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
} |
||||
@ -0,0 +1,207 @@ |
|||||
|
package com.bfd.mf.entity; |
||||
|
|
||||
|
import java.io.Serializable; |
||||
|
import java.util.Map; |
||||
|
import java.util.Set; |
||||
|
|
||||
|
public class FieldNormaliz implements Serializable{ |
||||
|
|
||||
|
private static final long serialVersionUID = 1L; |
||||
|
|
||||
|
private int id ; |
||||
|
|
||||
|
private String kafkaName ; |
||||
|
|
||||
|
private int kafkaSerName ; |
||||
|
|
||||
|
private int esSerName ; |
||||
|
|
||||
|
private String esSuffixNames ; |
||||
|
|
||||
|
private String docType ; |
||||
|
|
||||
|
private int isSemtimentApi ; |
||||
|
|
||||
|
private boolean ishlKeyword ; |
||||
|
|
||||
|
private int bussinessType ; |
||||
|
|
||||
|
private Map<String, String> fieldNormalizeContentMap ; |
||||
|
|
||||
|
private Map<String, String> fieldNormalizeCommentMap ; |
||||
|
|
||||
|
private Map<Integer,Map<String, Map<String, String>>> fieldDataMap ; |
||||
|
|
||||
|
private Map<String, FieldInfo> fieldInfo ; |
||||
|
|
||||
|
private String groupId ; |
||||
|
|
||||
|
private String createTime ; |
||||
|
|
||||
|
private String finshTime ; |
||||
|
|
||||
|
private int status ; |
||||
|
|
||||
|
private String projectName ; |
||||
|
|
||||
|
public String getKafkaName() { |
||||
|
return kafkaName; |
||||
|
} |
||||
|
|
||||
|
public void setKafkaName(String kafkaName) { |
||||
|
this.kafkaName = kafkaName; |
||||
|
} |
||||
|
|
||||
|
public int getKafkaSerName() { |
||||
|
return kafkaSerName; |
||||
|
} |
||||
|
|
||||
|
public void setKafkaSerName(int kafkaSerName) { |
||||
|
this.kafkaSerName = kafkaSerName; |
||||
|
} |
||||
|
|
||||
|
public int getEsSerName() { |
||||
|
return esSerName; |
||||
|
} |
||||
|
|
||||
|
public void setEsSerName(int esSerName) { |
||||
|
this.esSerName = esSerName; |
||||
|
} |
||||
|
|
||||
|
public String getDocType() { |
||||
|
return docType; |
||||
|
} |
||||
|
|
||||
|
public void setDocType(String docType) { |
||||
|
this.docType = docType; |
||||
|
} |
||||
|
|
||||
|
public int getIsSemtimentApi() { |
||||
|
return isSemtimentApi; |
||||
|
} |
||||
|
|
||||
|
public void setIsSemtimentApi(int isSemtimentApi) { |
||||
|
this.isSemtimentApi = isSemtimentApi; |
||||
|
} |
||||
|
|
||||
|
public int getBussinessType() { |
||||
|
return bussinessType; |
||||
|
} |
||||
|
|
||||
|
public void setBussinessType(int bussinessType) { |
||||
|
this.bussinessType = bussinessType; |
||||
|
} |
||||
|
|
||||
|
public Map<String, String> getFieldNormalizeContentMap() { |
||||
|
return fieldNormalizeContentMap; |
||||
|
} |
||||
|
|
||||
|
public void setFieldNormalizeContentMap(Map<String, String> fieldNormalizeContentMap) { |
||||
|
this.fieldNormalizeContentMap = fieldNormalizeContentMap; |
||||
|
} |
||||
|
|
||||
|
public Map<String, String> getFieldNormalizeCommentMap() { |
||||
|
return fieldNormalizeCommentMap; |
||||
|
} |
||||
|
|
||||
|
public void setFieldNormalizeCommentMap(Map<String, String> fieldNormalizeCommentMap) { |
||||
|
this.fieldNormalizeCommentMap = fieldNormalizeCommentMap; |
||||
|
} |
||||
|
|
||||
|
public Map<Integer,Map<String, Map<String, String>>> getFieldDataMap() { |
||||
|
return fieldDataMap; |
||||
|
} |
||||
|
|
||||
|
public Map<String,Map<String, String>> getFieldDataMapByType(String type){ |
||||
|
return fieldDataMap.get(type); |
||||
|
} |
||||
|
|
||||
|
public void addFieldDataMap(String type, Map<String, Object> fixFieldData, Integer bussinessType){ |
||||
|
Set<String> keys = fixFieldData.keySet() ; |
||||
|
Map<String,Map<String, String>> fieldMaps = fieldDataMap.get(bussinessType) ; |
||||
|
Map<String, String> fieldMap = fieldMaps.get(type) ; |
||||
|
for(String key : keys){ |
||||
|
fieldMap.put(key, key) ; |
||||
|
} |
||||
|
fieldMaps.put(type, fieldMap); |
||||
|
fieldDataMap.put(bussinessType, fieldMaps) ; |
||||
|
} |
||||
|
|
||||
|
public void setFieldDataMap(Map<Integer,Map<String, Map<String, String>>> fieldDataMap) { |
||||
|
this.fieldDataMap = fieldDataMap; |
||||
|
} |
||||
|
|
||||
|
public Map<String, FieldInfo> getFieldInfo() { |
||||
|
return fieldInfo; |
||||
|
} |
||||
|
|
||||
|
public void setFieldInfo(Map<String, FieldInfo> fieldInfo) { |
||||
|
this.fieldInfo = fieldInfo; |
||||
|
} |
||||
|
|
||||
|
public boolean isIshlKeyword() { |
||||
|
return ishlKeyword; |
||||
|
} |
||||
|
|
||||
|
public void setIshlKeyword(boolean ishlKeyword) { |
||||
|
this.ishlKeyword = ishlKeyword; |
||||
|
} |
||||
|
|
||||
|
public String getEsSuffixNames() { |
||||
|
return esSuffixNames; |
||||
|
} |
||||
|
|
||||
|
public void setEsSuffixNames(String esSuffixNames) { |
||||
|
this.esSuffixNames = esSuffixNames; |
||||
|
} |
||||
|
|
||||
|
public String getGroupId() { |
||||
|
return groupId; |
||||
|
} |
||||
|
|
||||
|
public void setGroupId(String groupId) { |
||||
|
this.groupId = groupId; |
||||
|
} |
||||
|
|
||||
|
public String getCreateTime() { |
||||
|
return createTime; |
||||
|
} |
||||
|
|
||||
|
public void setCreateTime(String createTime) { |
||||
|
this.createTime = createTime; |
||||
|
} |
||||
|
|
||||
|
public String getFinshTime() { |
||||
|
return finshTime; |
||||
|
} |
||||
|
|
||||
|
public void setFinshTime(String finshTime) { |
||||
|
this.finshTime = finshTime; |
||||
|
} |
||||
|
|
||||
|
public int getStatus() { |
||||
|
return status; |
||||
|
} |
||||
|
|
||||
|
public void setStatus(int status) { |
||||
|
this.status = status; |
||||
|
} |
||||
|
|
||||
|
public int getId() { |
||||
|
return id; |
||||
|
} |
||||
|
|
||||
|
public void setId(int id) { |
||||
|
this.id = id; |
||||
|
} |
||||
|
|
||||
|
public String getProjectName() { |
||||
|
return projectName; |
||||
|
} |
||||
|
|
||||
|
public void setProjectName(String projectName) { |
||||
|
this.projectName = projectName; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
} |
||||
1397
cl_stream_datasave/src/main/java/com/bfd/mf/entity/ReaultInfo.java
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -0,0 +1,74 @@ |
|||||
|
package com.bfd.mf.entity.impl; |
||||
|
|
||||
|
import com.bfd.crawler.elasti.ElatiIndexManager; |
||||
|
import com.bfd.crawler.kafka7.KfkConsumer; |
||||
|
import com.bfd.mf.datasave.listen.ListenKafkaManager; |
||||
|
import com.bfd.mf.datasave.listen.ListenTaskManager; |
||||
|
import com.bfd.mf.entity.DataSaveManager; |
||||
|
import com.bfd.mf.entity.FieldNormaliz; |
||||
|
import org.apache.commons.lang3.StringUtils; |
||||
|
|
||||
|
import java.rmi.RemoteException; |
||||
|
import java.rmi.server.UnicastRemoteObject; |
||||
|
import java.util.Map; |
||||
|
|
||||
|
public class DataSaveManagerImpl extends UnicastRemoteObject implements DataSaveManager { |
||||
|
|
||||
|
private static final long serialVersionUID = 1L; |
||||
|
|
||||
|
public DataSaveManagerImpl() throws RemoteException { |
||||
|
super(); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public void addTaskName(FieldNormaliz fieldNormaliz) throws RemoteException { |
||||
|
ListenTaskManager.addKafkaTopicListen(fieldNormaliz); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public void stopImprotTask(int kafkaSerName, String kafkaName) throws RemoteException{ |
||||
|
if(ListenTaskManager.listenKafkaManagers.size() > 0){ |
||||
|
KfkConsumer.stopKfkConsumerThreads(kafkaSerName, kafkaName); |
||||
|
ListenKafkaManager listenKafkaManager = ListenTaskManager.listenKafkaManagers.get(kafkaSerName+"#"+kafkaName) ; |
||||
|
listenKafkaManager.setSwitch(false); |
||||
|
ListenTaskManager.listenKafkaManagers.remove(kafkaSerName+"#"+kafkaName); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public void startImprotTask(String kafkaName) throws RemoteException{ |
||||
|
if(ListenTaskManager.listenKafkaManagers.size() > 0){ |
||||
|
System.out.println("kafkaName : "+kafkaName); |
||||
|
ListenKafkaManager listenKafkaManager = ListenTaskManager.listenKafkaManagers.get(kafkaName) ; |
||||
|
listenKafkaManager.setSwitch(true); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 获取当前插入到 ES 中的数据 (仅限查询后台的ES ,因为前台的ES 是按日期的,因此暂时不统计) |
||||
|
*/ |
||||
|
@Override |
||||
|
public long getNowImportEsNum(Map<String,Object> param) throws RemoteException{ |
||||
|
long esNum = 0 ; |
||||
|
try{ |
||||
|
int esServerName = Integer.valueOf(param.get("esServerName").toString()) ; |
||||
|
if(param.containsKey("indexName")){ |
||||
|
String indexName = param.get("indexName").toString() ; |
||||
|
if(StringUtils.isNotBlank(indexName)){ |
||||
|
ElatiIndexManager elatiIndexManager = ElatiIndexManager.getInstance(esServerName) ; |
||||
|
esNum += elatiIndexManager.getindexNum(indexName+"_content") ; |
||||
|
ElatiIndexManager elatiIndexManagerCommment = ElatiIndexManager.getInstance(esServerName) ; |
||||
|
esNum += elatiIndexManagerCommment.getindexNum(indexName+"_comment") ; |
||||
|
} |
||||
|
} |
||||
|
}catch(Exception e){ |
||||
|
e.printStackTrace(); |
||||
|
} |
||||
|
return esNum; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public int getNowKafkaNum() throws RemoteException{ |
||||
|
return 0 ; |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,26 @@ |
|||||
|
package com.bfd.mf.entity.mysql; |
||||
|
|
||||
|
|
||||
|
import com.bfd.mf.datasave.tools.DBUtil; |
||||
|
|
||||
|
import java.util.HashMap; |
||||
|
import java.util.List; |
||||
|
import java.util.Map; |
||||
|
|
||||
|
public class FiledTableInfo { |
||||
|
|
||||
|
public static Map<Integer,Map<String,String>> tableInfoMap = new HashMap<Integer,Map<String,String>>(); |
||||
|
|
||||
|
public static void loadTableInfo(){ |
||||
|
List<Map<String, Object>> tableInfoList1 = DBUtil.getInstance("db_stat").query("select * from mf_field_table_info where bussiness_type = 1"); |
||||
|
if(tableInfoList1.size() > 0){ |
||||
|
Map<String,String> tablefieldValue = new HashMap<String,String>(); |
||||
|
for(Map<String, Object> tableInfo : tableInfoList1){ |
||||
|
tablefieldValue.put(tableInfo.get("col_name").toString(), tableInfo.get("col_type").toString()); |
||||
|
} |
||||
|
tableInfoMap.put(1, tablefieldValue); |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,70 @@ |
|||||
|
package com.bfd.mf.entity.mysql; |
||||
|
|
||||
|
|
||||
|
//import com.bfd.crawler.utils.JsonUtils; |
||||
|
import com.bfd.mf.datasave.tools.DBUtil; |
||||
|
|
||||
|
import java.util.ArrayList; |
||||
|
import java.util.HashMap; |
||||
|
import java.util.List; |
||||
|
import java.util.Map; |
||||
|
|
||||
|
public class SubjectTask { |
||||
|
|
||||
|
public static Map<String, List<Map<String,String>>> subjectTaskMap = new HashMap<>(); |
||||
|
|
||||
|
public static void loadSubjectTask(){ |
||||
|
subjectTaskMap.clear(); |
||||
|
List<Map<String, Object>> subjectTaskList = DBUtil.getInstance("db_stat").query("SELECT cst.id,ct.external_id,cst.subject_id, cst.task_id, ct.cid, ct.crawl_data_flag,cs.export_to_kafka,cs.kafka_addr,cs.go_fast_addr FROM cl_subject_task cst JOIN cl_subject cs ON (cst.subject_id = cs.id) LEFT JOIN cl_task ct ON (cst.task_id = ct.id );"); |
||||
|
//System.out.println("***&&&&&**"+subjectTaskList+"subjectTaskList"); |
||||
|
if(subjectTaskList.size() > 0){ |
||||
|
String key = ""; |
||||
|
for(Map<String, Object> subjectTask : subjectTaskList){ //{subject_id=10222, name=我是张三, task_id=188, id=71, crawl_data_flag=aaa} |
||||
|
key = subjectTask.get("cid") + "#####" + subjectTask.get("crawl_data_flag"); |
||||
|
//System.out.print(key+"asdasd"); |
||||
|
Map<String,String> value = new HashMap<>(); |
||||
|
List<Map<String,String>> valueList = new ArrayList<>(); |
||||
|
String v_subject_id = ""; |
||||
|
String v_go_fast_addr = ""; |
||||
|
String v_export_to_kafka = ""; |
||||
|
String v_kafka_addr = ""; |
||||
|
String v_task_id = ""; |
||||
|
String v_external_id =""; |
||||
|
if(null != subjectTask.get("subject_id")) { |
||||
|
v_subject_id = subjectTask.get("subject_id").toString(); |
||||
|
} |
||||
|
if(null != subjectTask.get("go_fast_addr")) { |
||||
|
v_go_fast_addr = subjectTask.get("go_fast_addr").toString(); |
||||
|
} |
||||
|
if(null != subjectTask.get("kafka_addr")) { |
||||
|
v_kafka_addr = subjectTask.get("kafka_addr").toString(); |
||||
|
} |
||||
|
if(null != subjectTask.get("export_to_kafka")){ |
||||
|
v_export_to_kafka = subjectTask.get("export_to_kafka").toString(); |
||||
|
} |
||||
|
if(null !=subjectTask.get("task_id")){ |
||||
|
v_task_id = subjectTask.get("task_id").toString(); |
||||
|
} |
||||
|
if(null !=subjectTask.get("external_id")){ |
||||
|
v_external_id = subjectTask.get("external_id").toString(); |
||||
|
} |
||||
|
value.put("subject_id",v_subject_id); |
||||
|
value.put("go_fast_addr",v_go_fast_addr); |
||||
|
value.put("export_to_kafka",v_export_to_kafka); |
||||
|
value.put("kafka_addr",v_kafka_addr); |
||||
|
value.put("task_id",v_task_id); |
||||
|
value.put("external_id",v_external_id); |
||||
|
//System.out.print(v_external_id+"external_id"); |
||||
|
String newkey = key.toLowerCase(); |
||||
|
if(subjectTaskMap.containsKey(newkey)){ |
||||
|
valueList = subjectTaskMap.get(newkey); |
||||
|
valueList.add(value); |
||||
|
}else{ |
||||
|
valueList.add(value); |
||||
|
} |
||||
|
subjectTaskMap.put(newkey,valueList); |
||||
|
} |
||||
|
//System.out.println(JsonUtils.toJSONString(subjectTaskMap)); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,11 @@ |
|||||
|
//package com.bfd.mf.runstart; |
||||
|
// |
||||
|
// |
||||
|
//public class GeterExit extends Thread { |
||||
|
// |
||||
|
// public void run() { |
||||
|
// System.out.println("system run close..."); |
||||
|
// TaskFileUtils.clearTaskQueue(); |
||||
|
// System.out.println("system run closeed"); |
||||
|
// } |
||||
|
//} |
||||
@ -0,0 +1,73 @@ |
|||||
|
package com.bfd.mf.runstart; |
||||
|
|
||||
|
import com.bfd.crawler.kafka7.KfkConsumer; |
||||
|
import com.bfd.crawler.kafka7.consts.KafkaConsts; |
||||
|
import com.bfd.mf.entity.DataSaveManager; |
||||
|
import com.bfd.mf.entity.impl.DataSaveManagerImpl; |
||||
|
import com.bfd.mf.datasave.tools.DBUtil; |
||||
|
import com.bfd.mf.entity.mysql.FiledTableInfo; |
||||
|
import com.bfd.mf.entity.mysql.SubjectTask; |
||||
|
import org.apache.log4j.Logger; |
||||
|
import org.apache.log4j.PropertyConfigurator; |
||||
|
|
||||
|
import java.net.MalformedURLException; |
||||
|
import java.rmi.AlreadyBoundException; |
||||
|
import java.rmi.Naming; |
||||
|
import java.rmi.RemoteException; |
||||
|
import java.rmi.registry.LocateRegistry; |
||||
|
|
||||
|
public class RunStartDataSave { |
||||
|
private static final Logger LOG = Logger.getLogger(RunStartDataSave.class); |
||||
|
|
||||
|
private static String log4jPath = "../etc/log4j.properties"; |
||||
|
private static String dbPath = "../etc/db.properties"; |
||||
|
static { |
||||
|
PropertyConfigurator.configureAndWatch(log4jPath); |
||||
|
DBUtil.init(dbPath); |
||||
|
} |
||||
|
public static void main(String[] args) { |
||||
|
|
||||
|
//KfkConsumer.startReadThread(this.queue, readTopicName,this.threadNums,this.groupId,this.kafkaServerName); |
||||
|
FiledTableInfo.loadTableInfo(); |
||||
|
// cl_subject_task |
||||
|
startRmiService(); |
||||
|
while (true){ |
||||
|
SubjectTask.loadSubjectTask(); |
||||
|
try { |
||||
|
Thread.sleep(30000); |
||||
|
} catch (InterruptedException e) { |
||||
|
e.printStackTrace(); |
||||
|
} |
||||
|
} |
||||
|
/**后面增加把es缓存的数据关闭的时候处理 不让丢数据**/ |
||||
|
//Runtime.getRuntime().addShutdownHook(new GeterExit()); |
||||
|
} |
||||
|
|
||||
|
public static void startRmiService() { |
||||
|
try { |
||||
|
/*** 创建一个远程对象 ***/ |
||||
|
DataSaveManager dataSaveManager = new DataSaveManagerImpl(); |
||||
|
/*** |
||||
|
* 本地主机上的远程对象注册表Registry的实例, 并指定端口为8888,这一步必不可少(Java默认端口是1099), |
||||
|
* 必不可缺的一步,缺少注册表创建,则无法绑定对象到远程注册表上 |
||||
|
***/ |
||||
|
LocateRegistry.createRegistry(1099); |
||||
|
/*** 把远程对象注册到RMI注册服务器上,并命名为taskManager ***/ |
||||
|
/*** 绑定的URL标准格式为:rmi://host:port/name(其中协议名可以省略,下面两种写法都是正确的) ***/ |
||||
|
|
||||
|
Naming.bind("//127.0.0.1:1099/dataSaveManager", dataSaveManager); |
||||
|
System.out.println(">>>>>INFO:远程IHello对象绑定成功!"); |
||||
|
} catch (RemoteException e) { |
||||
|
System.out.println("创建远程对象发生异常!"); |
||||
|
e.printStackTrace(); |
||||
|
} catch (MalformedURLException e) { |
||||
|
System.out.println("发生URL畸形异常!"); |
||||
|
e.printStackTrace(); |
||||
|
} catch (AlreadyBoundException e) { |
||||
|
e.printStackTrace(); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
@ -0,0 +1,37 @@ |
|||||
|
//package com.bfd.mf.runstart; |
||||
|
// |
||||
|
//import com.bfd.crawler.kafka7.KfkConsumer; |
||||
|
//import com.bfd.mf.datasave.listen.ListenKafkaManager; |
||||
|
//import com.bfd.mf.datasave.listen.ListenTaskManager; |
||||
|
//import org.apache.log4j.Logger; |
||||
|
// |
||||
|
//import java.util.Map; |
||||
|
//import java.util.concurrent.LinkedBlockingDeque; |
||||
|
// |
||||
|
//public class TaskFileUtils { |
||||
|
// |
||||
|
// private static Logger log = Logger.getLogger(TaskFileUtils.class); |
||||
|
// |
||||
|
// public static void clearTaskQueue(){ |
||||
|
// if(ListenTaskManager.listenKafkaManagers.size() > 0){ |
||||
|
// for(Map.Entry<String,ListenKafkaManager> entry : ListenTaskManager.listenKafkaManagers.entrySet()){ |
||||
|
// try { |
||||
|
// ListenKafkaManager listenKafkaManager = entry.getValue() ; |
||||
|
// String kafkaInfo = entry.getKey(); |
||||
|
// KfkConsumer.stopKfkConsumerThreads(Integer.valueOf(kafkaInfo.split("#")[0]), kafkaInfo.split("#")[1]); |
||||
|
// LinkedBlockingDeque<String> cacheQueue = listenKafkaManager.getQueue() ; |
||||
|
// if (cacheQueue.size() == 0) { |
||||
|
// listenKafkaManager.setSwitch(false); |
||||
|
// continue ; |
||||
|
// } |
||||
|
// cacheQueue.put("__Exit__"); |
||||
|
// } catch (InterruptedException e) { |
||||
|
// // TODO Auto-generated catch block |
||||
|
// e.printStackTrace(); |
||||
|
// log.error("TaskFileUtils>>> clearTaskQueue err "+e); |
||||
|
// } |
||||
|
// } |
||||
|
// } |
||||
|
// |
||||
|
// } |
||||
|
//} |
||||
@ -0,0 +1,13 @@ |
|||||
|
//import com.bfd.mf.datasave.tools.DBUtil; |
||||
|
//import com.bfd.mf.entity.mysql.SubjectTask; |
||||
|
//import org.junit.Test; |
||||
|
// |
||||
|
//public class AboutMysql { |
||||
|
// |
||||
|
// |
||||
|
// @Test |
||||
|
// public void test1(){ |
||||
|
// DBUtil.init("../etc/db.properties"); |
||||
|
// SubjectTask.loadSubjectTask(); |
||||
|
// } |
||||
|
//} |
||||
@ -0,0 +1,19 @@ |
|||||
|
public class CreatIndex { |
||||
|
// 110 话题索引ES |
||||
|
|
||||
|
// public static void main(String[] args) { |
||||
|
// int bussinessType = 1; |
||||
|
// int esServerName = 2; |
||||
|
// String indexType = "docs"; |
||||
|
// try { |
||||
|
// for (int i = 0 ; i < 00 ; i ++) { |
||||
|
// String indexName = "cl_subject_00"+i ; |
||||
|
// System.out.println(indexName); |
||||
|
// ElastiProducer elastiProducer = ElastiProducer.getInstance(bussinessType, esServerName, indexName, indexType); |
||||
|
// System.out.println(elastiProducer); |
||||
|
// } |
||||
|
// } catch (Exception e) { |
||||
|
// e.printStackTrace(); |
||||
|
// } |
||||
|
// } |
||||
|
} |
||||
@ -0,0 +1,32 @@ |
|||||
|
import com.bfd.crawler.utils.JsonUtils; |
||||
|
import com.bfd.mf.datasave.tools.ReadLine; |
||||
|
|
||||
|
import java.io.File; |
||||
|
import java.util.HashMap; |
||||
|
import java.util.List; |
||||
|
import java.util.Map; |
||||
|
|
||||
|
public class Test1 { |
||||
|
|
||||
|
public static void main(String[] args) { |
||||
|
List<String> list = ReadLine.readLine(new File("E:\\work\\workspace2020\\socialx\\SocialX_Stream\\SocialX_Stream/es.txt")); |
||||
|
Map<String,Object> map1 = new HashMap<>(); |
||||
|
for (String line:list) { |
||||
|
System.out.println(line); |
||||
|
String key = line.split("\t@@@\t")[0]; |
||||
|
String type = line.split("\t@@@\t")[1]; |
||||
|
if(type.contains("Long")){ |
||||
|
|
||||
|
} |
||||
|
// Map<String,Object> map2 = new HashMap<>(); |
||||
|
Map<String,Object> map3 = new HashMap<>(); |
||||
|
map3.put("type","keyword"); |
||||
|
map3.put("index",true); |
||||
|
map1.put(line,map3); |
||||
|
// map1.put(map2); |
||||
|
|
||||
|
} |
||||
|
|
||||
|
System.out.println(JsonUtils.toJSONString(map1)); |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,205 @@ |
|||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||
|
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4"> |
||||
|
<component name="FacetManager"> |
||||
|
<facet type="Spring" name="Spring"> |
||||
|
<configuration /> |
||||
|
</facet> |
||||
|
</component> |
||||
|
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8"> |
||||
|
<output url="file://$MODULE_DIR$/target/classes" /> |
||||
|
<output-test url="file://$MODULE_DIR$/target/test-classes" /> |
||||
|
<content url="file://$MODULE_DIR$"> |
||||
|
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" /> |
||||
|
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" /> |
||||
|
<sourceFolder url="file://$MODULE_DIR$/src/main/webapp" type="java-resource" /> |
||||
|
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" /> |
||||
|
<excludeFolder url="file://$MODULE_DIR$/target" /> |
||||
|
</content> |
||||
|
<orderEntry type="jdk" jdkName="1.8" jdkType="JavaSDK" /> |
||||
|
<orderEntry type="sourceFolder" forTests="false" /> |
||||
|
<orderEntry type="module-library"> |
||||
|
<library> |
||||
|
<CLASSES> |
||||
|
<root url="jar://$MODULE_DIR$/../../jarlib/BfdRedisTools-2.0.jar!/" /> |
||||
|
</CLASSES> |
||||
|
<JAVADOC /> |
||||
|
<SOURCES /> |
||||
|
</library> |
||||
|
</orderEntry> |
||||
|
<orderEntry type="module-library"> |
||||
|
<library> |
||||
|
<CLASSES> |
||||
|
<root url="jar://$MODULE_DIR$/../../jarlib/dataManager-0.0.1-SNAPSHOT.jar!/" /> |
||||
|
</CLASSES> |
||||
|
<JAVADOC /> |
||||
|
<SOURCES /> |
||||
|
</library> |
||||
|
</orderEntry> |
||||
|
<orderEntry type="module-library"> |
||||
|
<library> |
||||
|
<CLASSES> |
||||
|
<root url="jar://$MODULE_DIR$/../../jarlib/hanlp-portable-1.6.8.jar!/" /> |
||||
|
</CLASSES> |
||||
|
<JAVADOC /> |
||||
|
<SOURCES /> |
||||
|
</library> |
||||
|
</orderEntry> |
||||
|
<orderEntry type="module-library"> |
||||
|
<library> |
||||
|
<CLASSES> |
||||
|
<root url="jar://$MODULE_DIR$/../../jarlib/kafka-0.10.jar!/" /> |
||||
|
</CLASSES> |
||||
|
<JAVADOC /> |
||||
|
<SOURCES /> |
||||
|
</library> |
||||
|
</orderEntry> |
||||
|
<orderEntry type="module-library"> |
||||
|
<library> |
||||
|
<CLASSES> |
||||
|
<root url="jar://$MODULE_DIR$/../../jarlib/taskManager-0.0.1-SNAPSHOT.jar!/" /> |
||||
|
</CLASSES> |
||||
|
<JAVADOC /> |
||||
|
<SOURCES /> |
||||
|
</library> |
||||
|
</orderEntry> |
||||
|
<orderEntry type="module-library"> |
||||
|
<library> |
||||
|
<CLASSES> |
||||
|
<root url="jar://$MODULE_DIR$/../../jarlib/utils-0.0.1-SNAPSHOT.jar!/" /> |
||||
|
</CLASSES> |
||||
|
<JAVADOC /> |
||||
|
<SOURCES /> |
||||
|
</library> |
||||
|
</orderEntry> |
||||
|
<orderEntry type="module-library"> |
||||
|
<library> |
||||
|
<CLASSES> |
||||
|
<root url="jar://$MODULE_DIR$/../../jarlib/utils-3.0.0.jar!/" /> |
||||
|
</CLASSES> |
||||
|
<JAVADOC /> |
||||
|
<SOURCES /> |
||||
|
</library> |
||||
|
</orderEntry> |
||||
|
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:1.4.3.RELEASE" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:1.4.3.RELEASE" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:1.4.3.RELEASE" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:1.4.3.RELEASE" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:1.4.3.RELEASE" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:8.5.6" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.hibernate:hibernate-validator:5.2.4.Final" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: javax.validation:validation-api:1.1.0.Final" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.3.0.Final" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: com.fasterxml:classmate:1.3.3" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.8.5" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.8.5" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.springframework:spring-web:4.3.5.RELEASE" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.springframework:spring-aop:4.3.5.RELEASE" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.springframework:spring-beans:4.3.5.RELEASE" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.springframework:spring-context:4.3.5.RELEASE" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.springframework:spring-webmvc:4.3.5.RELEASE" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.springframework:spring-expression:4.3.5.RELEASE" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-starter:1.3.1" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:1.4.3.RELEASE" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.apache.tomcat:tomcat-jdbc:8.5.6" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.apache.tomcat:tomcat-juli:8.5.6" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:4.3.5.RELEASE" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.springframework:spring-tx:4.3.5.RELEASE" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-autoconfigure:1.3.1" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.mybatis:mybatis:3.4.5" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:1.3.1" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: com.alibaba:fastjson:1.1.22" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-log4j:1.3.8.RELEASE" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.slf4j:jcl-over-slf4j:1.7.22" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.22" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.slf4j:slf4j-log4j12:1.7.22" level="project" /> |
||||
|
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:1.4.3.RELEASE" level="project" /> |
||||
|
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test:1.4.3.RELEASE" level="project" /> |
||||
|
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test-autoconfigure:1.4.3.RELEASE" level="project" /> |
||||
|
<orderEntry type="library" scope="TEST" name="Maven: com.jayway.jsonpath:json-path:2.2.0" level="project" /> |
||||
|
<orderEntry type="library" scope="TEST" name="Maven: net.minidev:json-smart:2.2.1" level="project" /> |
||||
|
<orderEntry type="library" scope="TEST" name="Maven: net.minidev:accessors-smart:1.1" level="project" /> |
||||
|
<orderEntry type="library" scope="TEST" name="Maven: org.ow2.asm:asm:5.0.3" level="project" /> |
||||
|
<orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.12" level="project" /> |
||||
|
<orderEntry type="library" scope="TEST" name="Maven: org.assertj:assertj-core:2.5.0" level="project" /> |
||||
|
<orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-core:1.10.19" level="project" /> |
||||
|
<orderEntry type="library" scope="TEST" name="Maven: org.objenesis:objenesis:2.1" level="project" /> |
||||
|
<orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" /> |
||||
|
<orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-library:1.3" level="project" /> |
||||
|
<orderEntry type="library" scope="TEST" name="Maven: org.skyscreamer:jsonassert:1.3.0" level="project" /> |
||||
|
<orderEntry type="library" scope="TEST" name="Maven: org.json:json:20140107" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.springframework:spring-core:4.3.5.RELEASE" level="project" /> |
||||
|
<orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-test:4.3.5.RELEASE" level="project" /> |
||||
|
<orderEntry type="module" module-name="serviceManager" /> |
||||
|
<orderEntry type="module" module-name="dataSaveManager" /> |
||||
|
<orderEntry type="library" name="Maven: javax.servlet:jstl:1.2" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-jasper:8.5.6" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:8.5.6" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-el:8.5.6" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.eclipse.jdt.core.compiler:ecj:4.5.1" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.apache.poi:poi:3.15" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: commons-codec:commons-codec:1.10" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.apache.commons:commons-collections4:4.1" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml:3.15" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml-schemas:3.15" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.apache.xmlbeans:xmlbeans:2.6.0" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: stax:stax-api:1.0.1" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: com.github.virtuald:curvesapi:1.04" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: net.sf.json-lib:json-lib:jdk15:2.4" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils:1.9.3" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.2" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: commons-lang:commons-lang:2.5" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: commons-logging:commons-logging:1.1.1" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: net.sf.ezmorph:ezmorph:1.0.6" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.elasticsearch:elasticsearch:6.0.0" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.apache.lucene:lucene-core:7.0.1" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.apache.lucene:lucene-analyzers-common:7.0.1" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.apache.lucene:lucene-backward-codecs:7.0.1" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.apache.lucene:lucene-grouping:7.0.1" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.apache.lucene:lucene-highlighter:7.0.1" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.apache.lucene:lucene-join:7.0.1" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.apache.lucene:lucene-memory:7.0.1" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.apache.lucene:lucene-misc:7.0.1" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.apache.lucene:lucene-queries:7.0.1" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.apache.lucene:lucene-queryparser:7.0.1" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.apache.lucene:lucene-sandbox:7.0.1" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.apache.lucene:lucene-spatial:7.0.1" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.apache.lucene:lucene-spatial-extras:7.0.1" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.apache.lucene:lucene-spatial3d:7.0.1" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.apache.lucene:lucene-suggest:7.0.1" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.elasticsearch:securesm:1.1" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: net.sf.jopt-simple:jopt-simple:5.0.2" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: com.carrotsearch:hppc:0.7.1" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: joda-time:joda-time:2.9.6" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.yaml:snakeyaml:1.17" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.8.5" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: com.fasterxml.jackson.dataformat:jackson-dataformat-smile:2.8.5" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.8.5" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:2.8.5" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: com.tdunning:t-digest:3.0" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.hdrhistogram:HdrHistogram:2.1.9" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.6.2" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.elasticsearch:jna:4.4.0-1" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.elasticsearch.client:transport:6.0.0" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.elasticsearch.plugin:transport-netty4-client:6.0.0" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: io.netty:netty-buffer:4.1.13.Final" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: io.netty:netty-codec:4.1.13.Final" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: io.netty:netty-codec-http:4.1.13.Final" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: io.netty:netty-common:4.1.13.Final" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: io.netty:netty-handler:4.1.13.Final" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: io.netty:netty-resolver:4.1.13.Final" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: io.netty:netty-transport:4.1.13.Final" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.elasticsearch.plugin:reindex-client:6.0.0" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.elasticsearch.client:elasticsearch-rest-client:6.0.0" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.2" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.5" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpasyncclient:4.1.2" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore-nio:4.4.5" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.elasticsearch.plugin:lang-mustache-client:6.0.0" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: com.github.spullara.mustache.java:compiler:0.9.3" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.elasticsearch.plugin:percolator-client:6.0.0" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.elasticsearch.plugin:parent-join-client:6.0.0" level="project" /> |
||||
|
<orderEntry type="library" scope="RUNTIME" name="Maven: mysql:mysql-connector-java:5.1.40" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: log4j:log4j:1.2.17" level="project" /> |
||||
|
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.25" level="project" /> |
||||
|
</component> |
||||
|
</module> |
||||
@ -0,0 +1,180 @@ |
|||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0" |
||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> |
||||
|
<!--<parent>--> |
||||
|
<!--<artifactId>cl_stream</artifactId>--> |
||||
|
<!--<groupId>com.bfd.mf</groupId>--> |
||||
|
<!--<version>2.0-SNAPSHOT</version>--> |
||||
|
<!--</parent>--> |
||||
|
|
||||
|
<modelVersion>4.0.0</modelVersion> |
||||
|
|
||||
|
<artifactId>cl_stream_mybatis</artifactId> |
||||
|
|
||||
|
<parent> |
||||
|
<groupId>org.springframework.boot</groupId> |
||||
|
<artifactId>spring-boot-starter-parent</artifactId> |
||||
|
<version>1.4.3.RELEASE</version> |
||||
|
<relativePath/> <!-- lookup parent from repository --> |
||||
|
</parent> |
||||
|
|
||||
|
<properties> |
||||
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> |
||||
|
<!--<spring-boot-version>2.0.0.RELEASE</spring-boot-version>--> |
||||
|
<skipTests>true</skipTests> |
||||
|
<java.version>1.8</java.version> |
||||
|
</properties> |
||||
|
|
||||
|
<dependencies> |
||||
|
<dependency> |
||||
|
<groupId>org.springframework.boot</groupId> |
||||
|
<artifactId>spring-boot-starter-web</artifactId> |
||||
|
<exclusions> |
||||
|
<exclusion> |
||||
|
<groupId>org.springframework.boot</groupId> |
||||
|
<artifactId>spring-boot-starter-logging</artifactId> |
||||
|
</exclusion> |
||||
|
</exclusions> |
||||
|
</dependency> |
||||
|
<dependency> |
||||
|
<groupId>org.mybatis.spring.boot</groupId> |
||||
|
<artifactId>mybatis-spring-boot-starter</artifactId> |
||||
|
<version>1.3.1</version> |
||||
|
</dependency> |
||||
|
<dependency> |
||||
|
<groupId>com.alibaba</groupId> |
||||
|
<artifactId>fastjson</artifactId> |
||||
|
<version>1.1.22</version> |
||||
|
</dependency> |
||||
|
|
||||
|
<dependency> |
||||
|
<groupId>org.springframework.boot</groupId> |
||||
|
<artifactId>spring-boot-starter-log4j</artifactId> |
||||
|
<version>1.3.8.RELEASE</version> |
||||
|
</dependency> |
||||
|
|
||||
|
<dependency> |
||||
|
<groupId>org.springframework.boot</groupId> |
||||
|
<artifactId>spring-boot-starter-test</artifactId> |
||||
|
<scope>test</scope> |
||||
|
</dependency> |
||||
|
|
||||
|
<dependency> |
||||
|
<groupId>com.bfd.mf</groupId> |
||||
|
<artifactId>serviceManager</artifactId> |
||||
|
<version>2.0-SNAPSHOT</version> |
||||
|
|
||||
|
</dependency> |
||||
|
<dependency> |
||||
|
<groupId>com.bfd.mf</groupId> |
||||
|
<artifactId>dataSaveManager</artifactId> |
||||
|
<version>2.0-SNAPSHOT</version> |
||||
|
|
||||
|
</dependency> |
||||
|
|
||||
|
<dependency> |
||||
|
<groupId>javax.servlet</groupId> |
||||
|
<artifactId>jstl</artifactId> |
||||
|
</dependency> |
||||
|
<dependency> |
||||
|
<groupId>org.apache.tomcat.embed</groupId> |
||||
|
<artifactId>tomcat-embed-jasper</artifactId> |
||||
|
</dependency> |
||||
|
<dependency> |
||||
|
<groupId>org.apache.poi</groupId> |
||||
|
<artifactId>poi</artifactId> |
||||
|
<version>3.15</version> |
||||
|
</dependency> |
||||
|
<dependency> |
||||
|
<groupId>org.apache.poi</groupId> |
||||
|
<artifactId>poi-ooxml</artifactId> |
||||
|
<version>3.15</version> |
||||
|
</dependency> |
||||
|
<dependency> |
||||
|
<groupId>net.sf.json-lib</groupId> |
||||
|
<artifactId>json-lib</artifactId> |
||||
|
<version>2.4</version> |
||||
|
<classifier>jdk15</classifier> |
||||
|
</dependency> |
||||
|
<dependency> |
||||
|
<groupId>org.elasticsearch</groupId> |
||||
|
<artifactId>elasticsearch</artifactId> |
||||
|
<version>6.0.0</version> |
||||
|
</dependency> |
||||
|
<dependency> |
||||
|
<groupId>org.elasticsearch.client</groupId> |
||||
|
<artifactId>transport</artifactId> |
||||
|
<version>6.0.0</version> |
||||
|
</dependency> |
||||
|
|
||||
|
<dependency> |
||||
|
<groupId>mysql</groupId> |
||||
|
<artifactId>mysql-connector-java</artifactId> |
||||
|
<scope>runtime</scope> |
||||
|
</dependency> |
||||
|
<dependency> |
||||
|
<groupId>log4j</groupId> |
||||
|
<artifactId>log4j</artifactId> |
||||
|
<version>1.2.17</version> |
||||
|
</dependency> |
||||
|
<dependency> |
||||
|
<groupId>org.slf4j</groupId> |
||||
|
<artifactId>slf4j-api</artifactId> |
||||
|
<version>1.7.25</version> |
||||
|
</dependency> |
||||
|
</dependencies> |
||||
|
|
||||
|
<build> |
||||
|
|
||||
|
<plugins> |
||||
|
<plugin> |
||||
|
<groupId>org.springframework.boot</groupId> |
||||
|
<artifactId>spring-boot-maven-plugin</artifactId> |
||||
|
<version>1.4.2.RELEASE</version> |
||||
|
<configuration> |
||||
|
<mainClass>com.bfd.mf.TestmybatisApplication</mainClass> |
||||
|
</configuration> |
||||
|
<executions> |
||||
|
<execution> |
||||
|
<goals> |
||||
|
<goal>repackage</goal> |
||||
|
</goals> |
||||
|
</execution> |
||||
|
</executions> |
||||
|
|
||||
|
</plugin> |
||||
|
<plugin> |
||||
|
<artifactId>maven-compiler-plugin</artifactId> |
||||
|
<configuration> |
||||
|
<source>1.8</source> |
||||
|
<target>1.8</target> |
||||
|
</configuration> |
||||
|
</plugin> |
||||
|
<plugin> |
||||
|
<groupId>org.apache.maven.plugins</groupId> |
||||
|
<artifactId>maven-war-plugin</artifactId> |
||||
|
<configuration> |
||||
|
<failOnMissingWebXml>false</failOnMissingWebXml> |
||||
|
</configuration> |
||||
|
</plugin> |
||||
|
</plugins> |
||||
|
<resources> |
||||
|
<resource> |
||||
|
<directory>${project.basedir}/src/main/webapp</directory> |
||||
|
<!--注意此次必须要放在此目录下才能被访问到--> |
||||
|
<targetPath>META-INF/resources</targetPath> |
||||
|
<includes> |
||||
|
<include>**/**</include> |
||||
|
</includes> |
||||
|
</resource> |
||||
|
<resource> |
||||
|
<directory>${project.basedir}/src/main/resources</directory> |
||||
|
<includes> |
||||
|
<include>**/**</include> |
||||
|
</includes> |
||||
|
</resource> |
||||
|
</resources> |
||||
|
</build> |
||||
|
|
||||
|
</project> |
||||
@ -0,0 +1,18 @@ |
|||||
|
package com.bfd.mf; |
||||
|
|
||||
|
import org.mybatis.spring.annotation.MapperScan; |
||||
|
import org.springframework.boot.SpringApplication; |
||||
|
import org.springframework.boot.autoconfigure.SpringBootApplication; |
||||
|
|
||||
|
@SpringBootApplication |
||||
|
@MapperScan("com.bfd.mf.mapper") |
||||
|
public class TestmybatisApplication { |
||||
|
|
||||
|
public static void main(String[] args) { |
||||
|
try { |
||||
|
SpringApplication.run(TestmybatisApplication.class, args); |
||||
|
}catch (Exception e){ |
||||
|
e.printStackTrace(); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,58 @@ |
|||||
|
package com.bfd.mf.common; |
||||
|
|
||||
|
import org.elasticsearch.client.transport.TransportClient; |
||||
|
import org.elasticsearch.common.settings.Settings; |
||||
|
import org.elasticsearch.common.settings.Settings.Builder; |
||||
|
import org.elasticsearch.common.transport.TransportAddress; |
||||
|
import org.elasticsearch.transport.client.PreBuiltTransportClient; |
||||
|
import org.springframework.stereotype.Component; |
||||
|
|
||||
|
import java.net.InetAddress; |
||||
|
|
||||
|
|
||||
|
@Component |
||||
|
public class ExternalConnCache { |
||||
|
|
||||
|
private static final String hosts = "172.18.1.148"; |
||||
|
private static final Integer port = 9303; |
||||
|
private static final String clusterName = "SQ_Mini_new"; |
||||
|
|
||||
|
private static TransportClient transportClient ; |
||||
|
/*private static String hosts; |
||||
|
private static String port; |
||||
|
private static String clusterName; |
||||
|
*/ |
||||
|
/*@Value("${externalConn.cache.hosts}") |
||||
|
public void setHosts(String hosts) { |
||||
|
ExternalConnCache.hosts = hosts; |
||||
|
} |
||||
|
|
||||
|
@Value("${externalConn.cache.port}") |
||||
|
public void setPort(String port) { |
||||
|
ExternalConnCache.port = port; |
||||
|
} |
||||
|
|
||||
|
@Value("${externalConn.cache.clusterName}") |
||||
|
public void setClusterName(String clusterName) { |
||||
|
ExternalConnCache.clusterName = clusterName; |
||||
|
}*/ |
||||
|
|
||||
|
public static TransportClient getTransportClient(){ |
||||
|
if(transportClient == null){ |
||||
|
try{ |
||||
|
Builder builder = |
||||
|
Settings.builder().put("cluster.name", clusterName).put("client.transport.sniff", false); |
||||
|
Settings esSettings = builder.build(); |
||||
|
transportClient = new PreBuiltTransportClient(esSettings); |
||||
|
transportClient.addTransportAddress(new TransportAddress(InetAddress.getByName(hosts),Integer.valueOf(port))); |
||||
|
}catch (Exception ex){ |
||||
|
ex.printStackTrace(); |
||||
|
new RuntimeException(ex); |
||||
|
}finally { |
||||
|
|
||||
|
} |
||||
|
} |
||||
|
return transportClient; |
||||
|
|
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,38 @@ |
|||||
|
package com.bfd.mf.common; |
||||
|
|
||||
|
import java.io.Serializable; |
||||
|
|
||||
|
|
||||
|
public class PageBean<T> implements Serializable { |
||||
|
private static final long serialVersionUID = 8656597559014685635L; |
||||
|
private long total; //总记录数 |
||||
|
private long quarycount; // 当前页的数量 <= pageSize,该属性来自ArrayList的size属性 |
||||
|
|
||||
|
|
||||
|
public PageBean() { |
||||
|
|
||||
|
} |
||||
|
|
||||
|
public PageBean(long total, long quarycount) { |
||||
|
this.total = total; |
||||
|
|
||||
|
this.quarycount = quarycount; |
||||
|
} |
||||
|
|
||||
|
public long getTotal() { |
||||
|
return total; |
||||
|
} |
||||
|
|
||||
|
public void setTotal(long total) { |
||||
|
this.total = total; |
||||
|
} |
||||
|
|
||||
|
public long getQuarycount() { |
||||
|
return quarycount; |
||||
|
} |
||||
|
|
||||
|
public void setQuarycount(long quarycount) { |
||||
|
this.quarycount = quarycount; |
||||
|
} |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,11 @@ |
|||||
|
package com.bfd.mf.config; |
||||
|
|
||||
|
import org.springframework.context.annotation.Configuration; |
||||
|
import org.springframework.context.annotation.ImportResource; |
||||
|
|
||||
|
@Configuration |
||||
|
@ImportResource({"classpath:/com/bfd/mf/spring/applicationContext.xml"}) |
||||
|
public class XmlConfiguration { |
||||
|
|
||||
|
|
||||
|
} |
||||
@ -0,0 +1,256 @@ |
|||||
|
package com.bfd.mf.controller; |
||||
|
|
||||
|
|
||||
|
import com.bfd.mf.common.PageBean; |
||||
|
import com.bfd.mf.entity.DataSaveManager; |
||||
|
import com.bfd.mf.entity.FieldNormaliz; |
||||
|
import com.bfd.mf.entity.StatInfo; |
||||
|
import com.bfd.mf.service.rmi.ServiceManager; |
||||
|
import com.bfd.mf.service.FieldNormalizService; |
||||
|
import com.bfd.mf.service.MetaSearchService; |
||||
|
import com.bfd.mf.service.StatService; |
||||
|
import com.bfd.mf.tools.ConnectionRmi; |
||||
|
import net.sf.json.JSONObject; |
||||
|
import org.apache.commons.lang.StringUtils; |
||||
|
import org.slf4j.Logger; |
||||
|
import org.slf4j.LoggerFactory; |
||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||
|
import org.springframework.stereotype.Controller; |
||||
|
import org.springframework.web.bind.annotation.RequestMapping; |
||||
|
import org.springframework.web.bind.annotation.RequestMethod; |
||||
|
import org.springframework.web.bind.annotation.RequestParam; |
||||
|
import org.springframework.web.bind.annotation.ResponseBody; |
||||
|
import org.springframework.web.multipart.MultipartFile; |
||||
|
|
||||
|
import javax.servlet.http.HttpServletRequest; |
||||
|
import java.io.File; |
||||
|
import java.io.IOException; |
||||
|
import java.rmi.RemoteException; |
||||
|
import java.text.SimpleDateFormat; |
||||
|
import java.util.*; |
||||
|
|
||||
|
/** |
||||
|
* @author hanzhitong |
||||
|
* @version 1.0 |
||||
|
* @description com.uniocredit.controller |
||||
|
* @date 2018/5/15 |
||||
|
*/ |
||||
|
@Controller |
||||
|
@RequestMapping("/web") |
||||
|
public class CompanyController { |
||||
|
private Logger logger = LoggerFactory.getLogger(CompanyController.class); |
||||
|
|
||||
|
@Autowired |
||||
|
private FieldNormalizService fieldNormalizService; |
||||
|
@Autowired |
||||
|
private MetaSearchService metaSearchService ; |
||||
|
@Autowired |
||||
|
private StatService statService ; |
||||
|
|
||||
|
private ServiceManager serviceManager = ConnectionRmi.getServiceManager(); |
||||
|
private DataSaveManager dataSaveManager = ConnectionRmi.getDataSaveManager(); |
||||
|
|
||||
|
public Map<Integer,Map<String,Object>> taskInfos = new HashMap<Integer,Map<String,Object>>(); |
||||
|
|
||||
|
private SimpleDateFormat ddf = new SimpleDateFormat("yyyy-MM-dd"); |
||||
|
|
||||
|
@RequestMapping(value = { "/upload" }, method = RequestMethod.GET) |
||||
|
public String upload() { |
||||
|
return "importdb" ; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 重载 |
||||
|
*/ |
||||
|
@RequestMapping(value = { "/upload" }, method = RequestMethod.POST) |
||||
|
public String upload(HttpServletRequest request, |
||||
|
@RequestParam(value="myfile") MultipartFile[] files) { |
||||
|
List<String> fileNames = new ArrayList<String>(); |
||||
|
List<String> errfileNames = new ArrayList<String>(); |
||||
|
String uploadFile = request.getSession().getServletContext().getRealPath("/")+"upload/"; |
||||
|
File dir = new File(uploadFile); |
||||
|
if(!dir.exists()){ |
||||
|
dir.mkdir(); |
||||
|
} |
||||
|
for (MultipartFile file: files){ |
||||
|
String fileName=file.getOriginalFilename(); |
||||
|
System.out.println(fileName); |
||||
|
File serverFile = new File(uploadFile + fileName); |
||||
|
try { |
||||
|
file.transferTo(serverFile); |
||||
|
// excelToDB.exc_import_db(uploadFile + fileName); |
||||
|
if(serverFile.exists() && serverFile.isFile()) |
||||
|
serverFile.delete(); |
||||
|
fileNames.add(fileName); |
||||
|
} catch (IOException e) { |
||||
|
errfileNames.add(fileName); |
||||
|
logger.error(fileName+"--上传到服务器报错!!"); |
||||
|
e.printStackTrace(); |
||||
|
} catch (Exception e) { |
||||
|
errfileNames.add(fileName); |
||||
|
e.printStackTrace(); |
||||
|
} |
||||
|
} |
||||
|
if(errfileNames.size() > 0){ |
||||
|
request.setAttribute("errfileNames",errfileNames); |
||||
|
} |
||||
|
request.setAttribute("fileNames",fileNames); |
||||
|
return "importdb" ; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
@RequestMapping(value = { "/taskInfo" }, method = RequestMethod.POST) |
||||
|
public String addTask(@RequestParam("kafkaSerName") String kafkaSerName, |
||||
|
@RequestParam("kafkaName") String kafkaName,@RequestParam("groupId") String groupId, |
||||
|
@RequestParam("bussinessType") String bussinessType,@RequestParam("esSerName") String esSerName, |
||||
|
@RequestParam("esSuffixNames") String esSuffixNames, @RequestParam("projectName") String projectName, |
||||
|
@RequestParam("isSemtimentApi") String isSemtimentApi) { |
||||
|
FieldNormaliz fieldNormaliz = new FieldNormaliz(); |
||||
|
fieldNormaliz.setEsSerName(Integer.valueOf(esSerName)); |
||||
|
fieldNormaliz.setBussinessType(Integer.valueOf(bussinessType)); |
||||
|
fieldNormaliz.setEsSuffixNames(esSuffixNames); |
||||
|
fieldNormaliz.setKafkaName(kafkaName); |
||||
|
fieldNormaliz.setGroupId(groupId); |
||||
|
fieldNormaliz.setKafkaSerName(Integer.valueOf(kafkaSerName)); |
||||
|
fieldNormaliz.setProjectName(projectName); |
||||
|
fieldNormaliz.setIsSemtimentApi(Integer.valueOf(isSemtimentApi)); |
||||
|
fieldNormaliz.setKafkaSuffixName("filter1"); |
||||
|
fieldNormalizService.add(fieldNormaliz) ; |
||||
|
return "importdb" ; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* 获取任务列表 |
||||
|
* @return |
||||
|
*/ |
||||
|
@RequestMapping(value = { "/tasklist" }, method = RequestMethod.POST) |
||||
|
@ResponseBody |
||||
|
public String tasklist() { |
||||
|
List<FieldNormaliz> fieldNormalizs = fieldNormalizService.getFieldNormalizList() ; |
||||
|
Map<String, Object> map = new HashMap<String, Object>(); |
||||
|
map.put("fieldNormalizs", fieldNormalizs); |
||||
|
String result = JSONObject.fromObject(map).toString(); |
||||
|
return result ; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
@RequestMapping(value = { "/startTask" }, method = RequestMethod.POST) |
||||
|
public String startTask(int id){ |
||||
|
FieldNormaliz fieldNormaliz = fieldNormalizService.getFieldNormalizById(id); |
||||
|
Map<String,Object> map = new HashMap<String,Object>(); |
||||
|
map.put("kafkaName", fieldNormaliz.getKafkaName()) ; |
||||
|
map.put("taskid", fieldNormaliz.getId()) ; |
||||
|
map.put("busniessType", fieldNormaliz.getBussinessType()) ; // 2=后台 1=前台 |
||||
|
map.put("esServerName",fieldNormaliz.getEsSerName()); // 1= 后台 2=前台 |
||||
|
map.put("indexName",fieldNormaliz.getEsSuffixNames()); |
||||
|
taskInfos.put(fieldNormaliz.getId(), map); |
||||
|
try { |
||||
|
System.out.println("任务开始 ~" + fieldNormaliz.getId()); |
||||
|
//serviceManager.addTaskName(fieldNormaliz); |
||||
|
serviceManager.addTaskName(fieldNormaliz); |
||||
|
if(fieldNormaliz.getIsSemtimentApi() == 1){ |
||||
|
String kafkaName = fieldNormaliz.getKafkaName() ; |
||||
|
String kafkasuffixName = fieldNormaliz.getKafkaSuffixName() ; |
||||
|
fieldNormaliz.setKafkaName(kafkaName+"_"+kafkasuffixName); |
||||
|
System.out.println(fieldNormaliz.toString()+"fieldNormaliz是000"); |
||||
|
dataSaveManager.addTaskName(fieldNormaliz); |
||||
|
} |
||||
|
} catch (RemoteException e) { |
||||
|
e.printStackTrace(); |
||||
|
} |
||||
|
fieldNormalizService.update(id, fieldNormaliz); |
||||
|
return "importdb"; |
||||
|
} |
||||
|
|
||||
|
@RequestMapping(value = { "/stopTask" }, method = RequestMethod.POST) |
||||
|
public String stopTask(int id){ |
||||
|
FieldNormaliz fieldNormaliz = fieldNormalizService.getFieldNormalizById(id); |
||||
|
fieldNormalizService.delete(id); |
||||
|
if(fieldNormaliz != null){ |
||||
|
String kafkaName = ""; |
||||
|
try{ |
||||
|
kafkaName = fieldNormaliz.getKafkaName() ; |
||||
|
}catch(Exception e){ |
||||
|
e.printStackTrace(); |
||||
|
} |
||||
|
|
||||
|
if(taskInfos.containsKey(id)){ |
||||
|
taskInfos.remove(id); |
||||
|
} |
||||
|
try { |
||||
|
if(StringUtils.isNotBlank(kafkaName)){ |
||||
|
int kafkaSerName= fieldNormaliz.getKafkaSerName() ; |
||||
|
serviceManager.stopImprotTask(kafkaSerName,kafkaName) ; |
||||
|
if(fieldNormaliz.getIsSemtimentApi() == 1){ |
||||
|
String kafkasuffixName = fieldNormaliz.getKafkaSuffixName() ; |
||||
|
dataSaveManager.stopImprotTask(kafkaSerName,kafkaName+"_"+kafkasuffixName); |
||||
|
} |
||||
|
} |
||||
|
} catch (RemoteException e) { |
||||
|
e.printStackTrace(); |
||||
|
} |
||||
|
} |
||||
|
return "importdb"; |
||||
|
} |
||||
|
|
||||
|
@RequestMapping(value = { "/refreshStats" }, method = RequestMethod.POST) |
||||
|
@ResponseBody |
||||
|
public String refreshStats(){ |
||||
|
List<Map<String, Object>> statdatas= new ArrayList<Map<String, Object>>(); |
||||
|
try{ |
||||
|
// if(taskInfos.size() > 0){ |
||||
|
// for(Map.Entry<Integer,Map<String,Object>> entry : taskInfos.entrySet()){ |
||||
|
// Map<String,Object> taski = entry.getValue() ; |
||||
|
// int kafkaNum = serviceManager.getNowKafkaNum(taski) ; // 获取 kafka 当前条数 |
||||
|
// String checkDay = ddf.format(new Date()); |
||||
|
// String kafkaName = taski.get("kafkaName").toString(); |
||||
|
// String indexName = taski.get("indexName").toString() ; |
||||
|
// PageBean pageBean = metaSearchService.metaSearchPageList(indexName, new Date().getTime()) ; |
||||
|
// long quaryesToalNum= pageBean.getTotal(); |
||||
|
// long quaryesDiffrows = pageBean.getQuarycount(); |
||||
|
// StatInfo statInfo = statService.getStatInfoByCheck(checkDay, kafkaName, indexName); |
||||
|
// if(statInfo != null){ |
||||
|
// int kafkaN = statInfo.getKafkaRows() ; |
||||
|
// int esN = statInfo.getIndexRows() ; |
||||
|
// int esdiffNum = statInfo.getDiffRows() ; |
||||
|
// if(kafkaNum != kafkaN || esN != quaryesToalNum || quaryesDiffrows != esdiffNum ){ |
||||
|
// statService.update(checkDay, kafkaName, indexName, quaryesToalNum , quaryesDiffrows, kafkaNum); |
||||
|
// } |
||||
|
// }else{ |
||||
|
// StatInfo statInfonew = new StatInfo(); |
||||
|
// statInfonew.setCheckDay(checkDay); |
||||
|
// statInfonew.setKafkaName(kafkaName); |
||||
|
// statInfonew.setKafkaRows(kafkaNum); |
||||
|
// statInfonew.setIndexName(indexName); |
||||
|
// statInfonew.setIndexRows((int) quaryesToalNum); |
||||
|
// statInfonew.setDiffRows((int) quaryesDiffrows); |
||||
|
// statService.add(statInfonew); |
||||
|
// } |
||||
|
// } |
||||
|
// } |
||||
|
|
||||
|
List<StatInfo> statlist = statService.getStatInfo(); |
||||
|
if(statlist.size() > 0){ |
||||
|
Map<String, Object> statdata ; |
||||
|
for(StatInfo statInfo : statlist){ |
||||
|
statdata = new HashMap<String, Object>(); |
||||
|
statdata.put("indexName", statInfo.getIndexName()); |
||||
|
statdata.put("kafkaNum", statInfo.getKafkaRows()); |
||||
|
statdata.put("esNum", statInfo.getIndexRows()); |
||||
|
statdata.put("diffesNum", statInfo.getDiffRows()); |
||||
|
statdata.put("checkDay", statInfo.getCheckDay()); |
||||
|
statdata.put("kafkaName", statInfo.getKafkaName()); |
||||
|
statdatas.add(statdata); |
||||
|
} |
||||
|
} |
||||
|
}catch(Exception e){ |
||||
|
e.printStackTrace(); |
||||
|
} |
||||
|
Map<String, Object> map = new HashMap<String, Object>(); |
||||
|
map.put("autoRefresh", statdatas); |
||||
|
String result = JSONObject.fromObject(map).toString(); |
||||
|
return result; |
||||
|
|
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,39 @@ |
|||||
|
package com.bfd.mf.entity; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
public class FieldInfo { |
||||
|
|
||||
|
private String kafka_type ; |
||||
|
|
||||
|
private List<String> kafkaJsonString ; |
||||
|
|
||||
|
private List<String> kafkaJsonArray ; |
||||
|
|
||||
|
public String getKafka_type() { |
||||
|
return kafka_type; |
||||
|
} |
||||
|
|
||||
|
public void setKafka_type(String kafka_type) { |
||||
|
this.kafka_type = kafka_type; |
||||
|
} |
||||
|
|
||||
|
public List<String> getKafkaJsonString() { |
||||
|
return kafkaJsonString; |
||||
|
} |
||||
|
|
||||
|
public void setKafkaJsonString(List<String> kafkaJsonString) { |
||||
|
this.kafkaJsonString = kafkaJsonString; |
||||
|
} |
||||
|
|
||||
|
public List<String> getKafkaJsonArray() { |
||||
|
return kafkaJsonArray; |
||||
|
} |
||||
|
|
||||
|
public void setKafkaJsonArray(List<String> kafkaJsonArray) { |
||||
|
this.kafkaJsonArray = kafkaJsonArray; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
} |
||||
@ -0,0 +1,258 @@ |
|||||
|
package com.bfd.mf.entity; |
||||
|
|
||||
|
import java.io.Serializable; |
||||
|
import java.util.Map; |
||||
|
import java.util.Set; |
||||
|
|
||||
|
public class FieldNormaliz implements Serializable{ |
||||
|
|
||||
|
/** |
||||
|
* |
||||
|
*/ |
||||
|
private static final long serialVersionUID = 1L; |
||||
|
|
||||
|
private int id ; |
||||
|
|
||||
|
private String kafkaName ; |
||||
|
|
||||
|
private int kafkaSerName ; |
||||
|
|
||||
|
private int esSerName ; |
||||
|
|
||||
|
private String esSuffixNames ; |
||||
|
|
||||
|
private String docType ; |
||||
|
|
||||
|
private int isSemtimentApi ; |
||||
|
|
||||
|
private boolean ishlKeyword ; |
||||
|
|
||||
|
private int bussinessType ; |
||||
|
|
||||
|
private Map<String, String> fieldNormalizeContentMap ; |
||||
|
|
||||
|
private Map<String, String> fieldNormalizeCommentMap ; |
||||
|
|
||||
|
private Map<Integer,Map<String, Map<String, String>>> fieldDataMap ; |
||||
|
|
||||
|
private Map<String, FieldInfo> fieldInfo ; |
||||
|
|
||||
|
private String groupId ; |
||||
|
|
||||
|
private String createTime ; |
||||
|
|
||||
|
private String finshTime ; |
||||
|
|
||||
|
private int status ; |
||||
|
|
||||
|
private String projectName ; |
||||
|
|
||||
|
private Map<Integer,Map<String, Map<String, String>>> userfieldDataMap ; |
||||
|
|
||||
|
private String kafkaSuffixName ; |
||||
|
|
||||
|
public String getKafkaSuffixName() { |
||||
|
return kafkaSuffixName; |
||||
|
} |
||||
|
|
||||
|
public void setKafkaSuffixName(String kafkaSuffixName) { |
||||
|
this.kafkaSuffixName = kafkaSuffixName; |
||||
|
} |
||||
|
|
||||
|
public String getKafkaName() { |
||||
|
return kafkaName; |
||||
|
} |
||||
|
|
||||
|
public void setKafkaName(String kafkaName) { |
||||
|
this.kafkaName = kafkaName; |
||||
|
} |
||||
|
|
||||
|
public int getKafkaSerName() { |
||||
|
return kafkaSerName; |
||||
|
} |
||||
|
|
||||
|
public void setKafkaSerName(int kafkaSerName) { |
||||
|
this.kafkaSerName = kafkaSerName; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
public int getEsSerName() { |
||||
|
return esSerName; |
||||
|
} |
||||
|
|
||||
|
public void setEsSerName(int esSerName) { |
||||
|
this.esSerName = esSerName; |
||||
|
} |
||||
|
|
||||
|
public String getDocType() { |
||||
|
return docType; |
||||
|
} |
||||
|
|
||||
|
public void setDocType(String docType) { |
||||
|
this.docType = docType; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
public int getIsSemtimentApi() { |
||||
|
return isSemtimentApi; |
||||
|
} |
||||
|
|
||||
|
public void setIsSemtimentApi(int isSemtimentApi) { |
||||
|
this.isSemtimentApi = isSemtimentApi; |
||||
|
} |
||||
|
|
||||
|
public int getBussinessType() { |
||||
|
return bussinessType; |
||||
|
} |
||||
|
|
||||
|
public void setBussinessType(int bussinessType) { |
||||
|
this.bussinessType = bussinessType; |
||||
|
} |
||||
|
|
||||
|
public Map<String, String> getFieldNormalizeContentMap() { |
||||
|
return fieldNormalizeContentMap; |
||||
|
} |
||||
|
|
||||
|
public void setFieldNormalizeContentMap(Map<String, String> fieldNormalizeContentMap) { |
||||
|
this.fieldNormalizeContentMap = fieldNormalizeContentMap; |
||||
|
} |
||||
|
|
||||
|
public Map<String, String> getFieldNormalizeCommentMap() { |
||||
|
return fieldNormalizeCommentMap; |
||||
|
} |
||||
|
|
||||
|
public void setFieldNormalizeCommentMap(Map<String, String> fieldNormalizeCommentMap) { |
||||
|
this.fieldNormalizeCommentMap = fieldNormalizeCommentMap; |
||||
|
} |
||||
|
|
||||
|
public Map<Integer,Map<String, Map<String, String>>> getFieldDataMap() { |
||||
|
return fieldDataMap; |
||||
|
} |
||||
|
|
||||
|
public Map<String,Map<String, String>> getFieldDataMapByType(String type){ |
||||
|
return fieldDataMap.get(type); |
||||
|
} |
||||
|
|
||||
|
public void addFieldDataMap(String type, Map<String, Object> fixFieldData, Integer bussinessType){ |
||||
|
Set<String> keys = fixFieldData.keySet() ; |
||||
|
Map<String,Map<String, String>> fieldMaps = fieldDataMap.get(bussinessType) ; |
||||
|
Map<String, String> fieldMap = fieldMaps.get(type) ; |
||||
|
for(String key : keys){ |
||||
|
fieldMap.put(key, key) ; |
||||
|
} |
||||
|
fieldMaps.put(type, fieldMap); |
||||
|
fieldDataMap.put(bussinessType, fieldMaps) ; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
public void setFieldDataMap(Map<Integer,Map<String, Map<String, String>>> fieldDataMap) { |
||||
|
this.fieldDataMap = fieldDataMap; |
||||
|
} |
||||
|
|
||||
|
public Map<String, FieldInfo> getFieldInfo() { |
||||
|
return fieldInfo; |
||||
|
} |
||||
|
|
||||
|
public void setFieldInfo(Map<String, FieldInfo> fieldInfo) { |
||||
|
this.fieldInfo = fieldInfo; |
||||
|
} |
||||
|
|
||||
|
public boolean isIshlKeyword() { |
||||
|
return ishlKeyword; |
||||
|
} |
||||
|
|
||||
|
public void setIshlKeyword(boolean ishlKeyword) { |
||||
|
this.ishlKeyword = ishlKeyword; |
||||
|
} |
||||
|
|
||||
|
public String getEsSuffixNames() { |
||||
|
return esSuffixNames; |
||||
|
} |
||||
|
|
||||
|
public void setEsSuffixNames(String esSuffixNames) { |
||||
|
this.esSuffixNames = esSuffixNames; |
||||
|
} |
||||
|
|
||||
|
public String getGroupId() { |
||||
|
return groupId; |
||||
|
} |
||||
|
|
||||
|
public void setGroupId(String groupId) { |
||||
|
this.groupId = groupId; |
||||
|
} |
||||
|
|
||||
|
public String getCreateTime() { |
||||
|
return createTime; |
||||
|
} |
||||
|
|
||||
|
public void setCreateTime(String createTime) { |
||||
|
this.createTime = createTime; |
||||
|
} |
||||
|
|
||||
|
public String getFinshTime() { |
||||
|
return finshTime; |
||||
|
} |
||||
|
|
||||
|
public void setFinshTime(String finshTime) { |
||||
|
this.finshTime = finshTime; |
||||
|
} |
||||
|
|
||||
|
public int getStatus() { |
||||
|
return status; |
||||
|
} |
||||
|
|
||||
|
public void setStatus(int status) { |
||||
|
this.status = status; |
||||
|
} |
||||
|
|
||||
|
public int getId() { |
||||
|
return id; |
||||
|
} |
||||
|
|
||||
|
public void setId(int id) { |
||||
|
this.id = id; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
public String getProjectName() { |
||||
|
return projectName; |
||||
|
} |
||||
|
|
||||
|
public void setProjectName(String projectName) { |
||||
|
this.projectName = projectName; |
||||
|
} |
||||
|
|
||||
|
public Map<Integer, Map<String, Map<String, String>>> getUserfieldDataMap() { |
||||
|
return userfieldDataMap; |
||||
|
} |
||||
|
|
||||
|
public void setUserfieldDataMap(Map<Integer, Map<String, Map<String, String>>> userfieldDataMap) { |
||||
|
this.userfieldDataMap = userfieldDataMap; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public String toString() { |
||||
|
return "FieldNormaliz{" + |
||||
|
"id=" + id + |
||||
|
", kafkaName='" + kafkaName + '\'' + |
||||
|
", kafkaSerName=" + kafkaSerName + |
||||
|
", esSerName=" + esSerName + |
||||
|
", esSuffixNames='" + esSuffixNames + '\'' + |
||||
|
", docType='" + docType + '\'' + |
||||
|
", isSemtimentApi=" + isSemtimentApi + |
||||
|
", ishlKeyword=" + ishlKeyword + |
||||
|
", bussinessType=" + bussinessType + |
||||
|
", fieldNormalizeContentMap=" + fieldNormalizeContentMap + |
||||
|
", fieldNormalizeCommentMap=" + fieldNormalizeCommentMap + |
||||
|
", fieldDataMap=" + fieldDataMap + |
||||
|
", fieldInfo=" + fieldInfo + |
||||
|
", groupId='" + groupId + '\'' + |
||||
|
", createTime='" + createTime + '\'' + |
||||
|
", finshTime='" + finshTime + '\'' + |
||||
|
", status=" + status + |
||||
|
", projectName='" + projectName + '\'' + |
||||
|
", userfieldDataMap=" + userfieldDataMap + |
||||
|
", kafkaSuffixName='" + kafkaSuffixName + '\'' + |
||||
|
'}'; |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,22 @@ |
|||||
|
package com.bfd.mf.entity; |
||||
|
|
||||
|
import java.util.List; |
||||
|
import java.util.Map; |
||||
|
|
||||
|
public class Record { |
||||
|
private Long counts; |
||||
|
private List<Map<String, Object>> records; |
||||
|
|
||||
|
public Long getCounts() { |
||||
|
return counts; |
||||
|
} |
||||
|
public void setCounts(Long counts) { |
||||
|
this.counts = counts; |
||||
|
} |
||||
|
public List<Map<String, Object>> getRecords() { |
||||
|
return records; |
||||
|
} |
||||
|
public void setRecords(List<Map<String, Object>> records) { |
||||
|
this.records = records; |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,84 @@ |
|||||
|
package com.bfd.mf.entity; |
||||
|
|
||||
|
import java.io.Serializable; |
||||
|
|
||||
|
public class StatInfo implements Serializable{ |
||||
|
|
||||
|
/** |
||||
|
* |
||||
|
*/ |
||||
|
private static final long serialVersionUID = 1L; |
||||
|
|
||||
|
|
||||
|
private String checkDay ; |
||||
|
|
||||
|
private String kafkaName ; |
||||
|
|
||||
|
private int kafkaRows ; |
||||
|
|
||||
|
private String indexName ; |
||||
|
|
||||
|
private int indexRows ; |
||||
|
|
||||
|
private int diffRows; |
||||
|
|
||||
|
private String addTime ; |
||||
|
|
||||
|
public String getCheckDay() { |
||||
|
return checkDay; |
||||
|
} |
||||
|
|
||||
|
public void setCheckDay(String checkDay) { |
||||
|
this.checkDay = checkDay; |
||||
|
} |
||||
|
|
||||
|
public String getKafkaName() { |
||||
|
return kafkaName; |
||||
|
} |
||||
|
|
||||
|
public void setKafkaName(String kafkaName) { |
||||
|
this.kafkaName = kafkaName; |
||||
|
} |
||||
|
|
||||
|
public int getKafkaRows() { |
||||
|
return kafkaRows; |
||||
|
} |
||||
|
|
||||
|
public void setKafkaRows(int kafkaRows) { |
||||
|
this.kafkaRows = kafkaRows; |
||||
|
} |
||||
|
|
||||
|
public String getIndexName() { |
||||
|
return indexName; |
||||
|
} |
||||
|
|
||||
|
public void setIndexName(String indexName) { |
||||
|
this.indexName = indexName; |
||||
|
} |
||||
|
|
||||
|
public int getIndexRows() { |
||||
|
return indexRows; |
||||
|
} |
||||
|
|
||||
|
public void setIndexRows(int indexRows) { |
||||
|
this.indexRows = indexRows; |
||||
|
} |
||||
|
|
||||
|
public int getDiffRows() { |
||||
|
return diffRows; |
||||
|
} |
||||
|
|
||||
|
public void setDiffRows(int diffRows) { |
||||
|
this.diffRows = diffRows; |
||||
|
} |
||||
|
|
||||
|
public String getAddTime() { |
||||
|
return addTime; |
||||
|
} |
||||
|
|
||||
|
public void setAddTime(String addTime) { |
||||
|
this.addTime = addTime; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
} |
||||
@ -0,0 +1,86 @@ |
|||||
|
package com.bfd.mf.es; |
||||
|
|
||||
|
import com.bfd.mf.common.ExternalConnCache; |
||||
|
import org.elasticsearch.action.search.SearchRequestBuilder; |
||||
|
import org.elasticsearch.action.search.SearchResponse; |
||||
|
import org.elasticsearch.client.transport.TransportClient; |
||||
|
import org.elasticsearch.index.query.BoolQueryBuilder; |
||||
|
import org.elasticsearch.index.query.QueryBuilders; |
||||
|
import org.slf4j.Logger; |
||||
|
import org.slf4j.LoggerFactory; |
||||
|
import org.springframework.stereotype.Repository; |
||||
|
|
||||
|
import java.text.SimpleDateFormat; |
||||
|
import java.util.Date; |
||||
|
|
||||
|
|
||||
|
@Repository |
||||
|
public class ESHandler { |
||||
|
|
||||
|
private static final Logger logger = LoggerFactory.getLogger(ESHandler.class); |
||||
|
|
||||
|
private static final SimpleDateFormat startddf = new SimpleDateFormat("yyyy-MM-dd 00:00:00"); |
||||
|
|
||||
|
private static final SimpleDateFormat nowddf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
||||
|
|
||||
|
public long synoPageSearch(String indexName, long nowcreateTime) { |
||||
|
|
||||
|
TransportClient client = ExternalConnCache.getTransportClient(); |
||||
|
BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery(); |
||||
|
if(nowcreateTime != 0){ |
||||
|
String startTime = startddf.format(new Date(nowcreateTime)); |
||||
|
String nowTime = nowddf.format(new Date(nowcreateTime)) ; |
||||
|
queryBuilder.must(QueryBuilders.rangeQuery("createTimeStr").from(startTime).to(nowTime)); |
||||
|
}else{ |
||||
|
queryBuilder.must(QueryBuilders.matchAllQuery()); |
||||
|
} |
||||
|
|
||||
|
SearchResponse response; |
||||
|
try { |
||||
|
SearchRequestBuilder srb = client.prepareSearch(indexName) |
||||
|
.setTypes("docs") |
||||
|
.setQuery(queryBuilder); |
||||
|
response = srb.get(); |
||||
|
} catch (Exception e) { |
||||
|
e.printStackTrace(); |
||||
|
return 0 ; |
||||
|
} |
||||
|
|
||||
|
Long count = response.getHits().getTotalHits(); |
||||
|
return count ; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
// public static void main(String[] args) { |
||||
|
// String indexName = "overseas_content"; |
||||
|
//// JSONArray jsonArray = new JSONArray(); |
||||
|
//// jsonArray.add("{\"id\":259,\"question\":\"人工智能是指什么\",\"answer\":\"AI,人工智能它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。\",\"createdBy\":1,\"createTime\":1541757803,\"lastModifiedBy\":1,\"lastModifiedTime\":1541757803}"); |
||||
|
// |
||||
|
// //jsonArray.add("{\"id\":4440,\"question\":\"人工智能指什么\",\"answer\":\"AI,人工智能它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。\",\"createdBy\":1,\"createTime\":1541757803,\"lastModifiedBy\":1,\"lastModifiedTime\":1541757803}"); |
||||
|
// |
||||
|
// //System.out.println(jsonArray.toJSONString()); |
||||
|
// |
||||
|
// //batchInsert(indexName, type, jsonArray); |
||||
|
// |
||||
|
// //update(jsonArray, indexName, type); |
||||
|
// |
||||
|
// //String ids = "24,25"; |
||||
|
// //deleteByIDs(indexName, type, ids); |
||||
|
//// ChatPairs chatPairs = new ChatPairs(); |
||||
|
//// chatPairs.setAnswer("请问能帮我介绍一下AI"); |
||||
|
//// chatPairs.setQuestion("请问能帮我介绍一下AI"); |
||||
|
//// chatSearch(indexName,type, chatPairs); |
||||
|
// |
||||
|
//// Synonym synonym = new Synonym(); |
||||
|
//// synonym.setRoot("抓取"); |
||||
|
//// synoSearch(indexName,type, 1, 10, synonym); |
||||
|
// |
||||
|
// //exportIndex(indexName); |
||||
|
// ESHandler esh = new ESHandler(); |
||||
|
// long a= esh.synoPageSearch(indexName,0); //13978 |
||||
|
// System.out.println(a); |
||||
|
// } |
||||
|
|
||||
|
|
||||
|
} |
||||
@ -0,0 +1,23 @@ |
|||||
|
package com.bfd.mf.mapper; |
||||
|
|
||||
|
import com.bfd.mf.entity.FieldNormaliz; |
||||
|
import org.apache.ibatis.annotations.Mapper; |
||||
|
import org.apache.ibatis.annotations.Param; |
||||
|
import org.springframework.stereotype.Repository; |
||||
|
import java.util.List; |
||||
|
|
||||
|
@Repository |
||||
|
@Mapper |
||||
|
public interface FieldNormalizMapper { |
||||
|
|
||||
|
FieldNormaliz getFieldNormalizById(Integer id); |
||||
|
|
||||
|
public List<FieldNormaliz> getFieldNormalizList(); |
||||
|
|
||||
|
public int add(FieldNormaliz fieldNormaliz); |
||||
|
|
||||
|
public int update(@Param("id") Integer id, @Param("fieldNormaliz") FieldNormaliz fieldNormaliz); |
||||
|
|
||||
|
public int delete(Integer id); |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,20 @@ |
|||||
|
package com.bfd.mf.mapper; |
||||
|
|
||||
|
import com.bfd.mf.entity.StatInfo; |
||||
|
import org.apache.ibatis.annotations.Param; |
||||
|
import org.springframework.stereotype.Repository; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
|
||||
|
@Repository |
||||
|
public interface StatMapper { |
||||
|
|
||||
|
public List<StatInfo> getStatInfo(); |
||||
|
|
||||
|
public int add(StatInfo statInfo); |
||||
|
|
||||
|
public int update(@Param("checkDay") String checkDay, @Param("kafkaName") String kafkaName, @Param("indexName") String indexName, @Param("indexRows") long indexRows, @Param("diffRows") long diffRows, @Param("kafkaRows") int kafkaRows); |
||||
|
|
||||
|
public StatInfo getStatInfoByCheck(@Param("checkDay") String checkDay, @Param("kafkaName") String kafkaName, @Param("indexName") String indexName); |
||||
|
} |
||||
@ -0,0 +1,12 @@ |
|||||
|
package com.bfd.mf.sendTask; |
||||
|
|
||||
|
import java.rmi.Remote; |
||||
|
import java.rmi.RemoteException; |
||||
|
import java.util.Map; |
||||
|
|
||||
|
public interface SendTask extends Remote{ |
||||
|
|
||||
|
public void backTopic(Map<String, Object> dataMap) throws RemoteException; |
||||
|
|
||||
|
|
||||
|
} |
||||
@ -0,0 +1,23 @@ |
|||||
|
package com.bfd.mf.sendTask.impl; |
||||
|
|
||||
|
|
||||
|
import com.bfd.mf.sendTask.SendTask; |
||||
|
|
||||
|
import java.io.Serializable; |
||||
|
import java.rmi.RemoteException; |
||||
|
import java.util.Map; |
||||
|
|
||||
|
public class SendTaskImpl implements SendTask,Serializable,Cloneable{ |
||||
|
/** |
||||
|
* |
||||
|
*/ |
||||
|
private static final long serialVersionUID = 6269469187077502624L; |
||||
|
|
||||
|
|
||||
|
@Override |
||||
|
public void backTopic(Map<String, Object> dataMap) throws RemoteException { |
||||
|
// TODO Auto-generated method stub |
||||
|
|
||||
|
} |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,22 @@ |
|||||
|
package com.bfd.mf.service; |
||||
|
|
||||
|
|
||||
|
import com.bfd.mf.entity.FieldNormaliz; |
||||
|
import org.springframework.stereotype.Service; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
@Service |
||||
|
public interface FieldNormalizService { |
||||
|
|
||||
|
FieldNormaliz getFieldNormalizById(Integer id); |
||||
|
|
||||
|
public List<FieldNormaliz> getFieldNormalizList(); |
||||
|
|
||||
|
public int add(FieldNormaliz fieldNormaliz); |
||||
|
|
||||
|
public int update(Integer id, FieldNormaliz fieldNormaliz); |
||||
|
|
||||
|
public int delete(Integer id); |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,8 @@ |
|||||
|
package com.bfd.mf.service; |
||||
|
|
||||
|
|
||||
|
import com.bfd.mf.common.PageBean; |
||||
|
|
||||
|
public interface MetaSearchService { |
||||
|
PageBean metaSearchPageList(String indexName, long createTime); |
||||
|
} |
||||
@ -0,0 +1,17 @@ |
|||||
|
package com.bfd.mf.service; |
||||
|
|
||||
|
|
||||
|
import com.bfd.mf.entity.StatInfo; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
public interface StatService { |
||||
|
public List<StatInfo> getStatInfo(); |
||||
|
|
||||
|
public int add(StatInfo statInfo); |
||||
|
|
||||
|
public int update(String checkDay, String kafkaName, String indexName, long quaryesToalNum, long quaryesDiffrows, int kafkaNum); |
||||
|
|
||||
|
public StatInfo getStatInfoByCheck(String checkDay, String kafkaName, String indexName); |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,46 @@ |
|||||
|
package com.bfd.mf.service.impl; |
||||
|
|
||||
|
import com.bfd.mf.entity.FieldNormaliz; |
||||
|
import com.bfd.mf.mapper.FieldNormalizMapper; |
||||
|
import com.bfd.mf.service.FieldNormalizService; |
||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||
|
import org.springframework.stereotype.Service; |
||||
|
import java.util.List; |
||||
|
|
||||
|
@Service |
||||
|
public class FieldNormalizServiceImpl implements FieldNormalizService { |
||||
|
|
||||
|
@Autowired |
||||
|
private FieldNormalizMapper fieldNormalizMapper ; |
||||
|
|
||||
|
@Override |
||||
|
public FieldNormaliz getFieldNormalizById(Integer id) { |
||||
|
// TODO Auto-generated method stub |
||||
|
return fieldNormalizMapper.getFieldNormalizById(id); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public List<FieldNormaliz> getFieldNormalizList() { |
||||
|
// TODO Auto-generated method stub |
||||
|
return fieldNormalizMapper.getFieldNormalizList(); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public int add(FieldNormaliz fieldNormaliz) { |
||||
|
// TODO Auto-generated method stub |
||||
|
return fieldNormalizMapper.add(fieldNormaliz); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public int update(Integer id, FieldNormaliz fieldNormaliz) { |
||||
|
// TODO Auto-generated method stub |
||||
|
return fieldNormalizMapper.update(id, fieldNormaliz); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public int delete(Integer id) { |
||||
|
// TODO Auto-generated method stub |
||||
|
return fieldNormalizMapper.delete(id); |
||||
|
} |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,35 @@ |
|||||
|
package com.bfd.mf.service.impl; |
||||
|
|
||||
|
|
||||
|
import com.bfd.mf.common.PageBean; |
||||
|
import com.bfd.mf.es.ESHandler; |
||||
|
import com.bfd.mf.service.MetaSearchService; |
||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||
|
import org.springframework.stereotype.Service; |
||||
|
|
||||
|
|
||||
|
@Service |
||||
|
public class MetaSearchServiceImpl implements MetaSearchService { |
||||
|
|
||||
|
@Autowired |
||||
|
private ESHandler esHandler; |
||||
|
|
||||
|
@Override |
||||
|
public PageBean metaSearchPageList(String indexName, long createTime) { |
||||
|
// TODO Auto-generated method stub |
||||
|
try { |
||||
|
long quarycommentCount = esHandler.synoPageSearch(indexName+"_comment",createTime); |
||||
|
long quarycontentCount = esHandler.synoPageSearch(indexName+"_content",createTime); |
||||
|
long totalcommentCount = esHandler.synoPageSearch(indexName+"_comment",0); |
||||
|
long totalcontentCount = esHandler.synoPageSearch(indexName+"_content",0); |
||||
|
PageBean pageBean = new PageBean(); |
||||
|
pageBean.setTotal(totalcommentCount + totalcontentCount); |
||||
|
pageBean.setQuarycount(quarycommentCount + quarycontentCount); |
||||
|
return pageBean; |
||||
|
} catch (Exception e) { |
||||
|
e.printStackTrace(); |
||||
|
return null; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,42 @@ |
|||||
|
package com.bfd.mf.service.impl; |
||||
|
|
||||
|
import com.bfd.mf.entity.StatInfo; |
||||
|
import com.bfd.mf.mapper.StatMapper; |
||||
|
import com.bfd.mf.service.StatService; |
||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||
|
import org.springframework.stereotype.Service; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
@Service |
||||
|
public class StatServiceImpl implements StatService { |
||||
|
|
||||
|
@Autowired |
||||
|
private StatMapper statMapper ; |
||||
|
|
||||
|
@Override |
||||
|
public List<StatInfo> getStatInfo() { |
||||
|
// TODO Auto-generated method stub |
||||
|
return statMapper.getStatInfo(); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public int add(StatInfo statInfo) { |
||||
|
// TODO Auto-generated method stub |
||||
|
return statMapper.add(statInfo); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public int update(String checkDay,String kafkaName,String indexName,long quaryesToalNum ,long quaryesDiffrows,int kafkaNum) { |
||||
|
// TODO Auto-generated method stub |
||||
|
return statMapper.update(checkDay,kafkaName,indexName, quaryesToalNum, quaryesDiffrows, kafkaNum); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public StatInfo getStatInfoByCheck(String checkDay, String kafkaName, String indexName) { |
||||
|
// TODO Auto-generated method stub |
||||
|
return statMapper.getStatInfoByCheck(checkDay, kafkaName, indexName); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
} |
||||
@ -0,0 +1,53 @@ |
|||||
|
package com.bfd.mf.tools; |
||||
|
|
||||
|
import com.bfd.mf.entity.DataSaveManager; |
||||
|
import com.bfd.mf.service.rmi.ServiceManager; |
||||
|
|
||||
|
import java.rmi.NotBoundException; |
||||
|
import java.rmi.RemoteException; |
||||
|
import java.rmi.registry.LocateRegistry; |
||||
|
import java.rmi.registry.Registry; |
||||
|
|
||||
|
public class ConnectionRmi { |
||||
|
|
||||
|
private static ServiceManager serviceManager ; |
||||
|
|
||||
|
private static DataSaveManager dataSaveManager ; |
||||
|
|
||||
|
private ConnectionRmi() {} |
||||
|
|
||||
|
private static ServiceManager initServiceManager() { |
||||
|
Registry registry; |
||||
|
try { |
||||
|
registry = LocateRegistry.getRegistry("127.0.0.1", 8899); |
||||
|
serviceManager = (ServiceManager) registry.lookup("serviceManager"); |
||||
|
} catch (RemoteException e) { |
||||
|
e.printStackTrace(); |
||||
|
} catch (NotBoundException e) { |
||||
|
e.printStackTrace(); |
||||
|
} |
||||
|
return serviceManager; |
||||
|
} |
||||
|
|
||||
|
private static DataSaveManager initDataSaveManager() { |
||||
|
Registry registry; |
||||
|
try { |
||||
|
registry = LocateRegistry.getRegistry("127.0.0.1", 1099); |
||||
|
dataSaveManager = (DataSaveManager) registry.lookup("dataSaveManager"); |
||||
|
} catch (RemoteException e) { |
||||
|
e.printStackTrace(); |
||||
|
} catch (NotBoundException e) { |
||||
|
e.printStackTrace(); |
||||
|
} |
||||
|
return dataSaveManager; |
||||
|
} |
||||
|
|
||||
|
public static ServiceManager getServiceManager(){ |
||||
|
return initServiceManager(); |
||||
|
} |
||||
|
|
||||
|
public static DataSaveManager getDataSaveManager(){ |
||||
|
return initDataSaveManager(); |
||||
|
} |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,18 @@ |
|||||
|
# mysql |
||||
|
#spring.datasource.url=jdbc:mysql://192.168.67.152/field_normaliz?useUnicode=true&characterEncoding=utf-8 |
||||
|
#spring.datasource.username=root |
||||
|
#spring.datasource.password=Bfd123!@# |
||||
|
#spring.datasource.driver-class-name=com.mysql.jdbc.Driver |
||||
|
|
||||
|
spring.datasource.url=jdbc:mysql://172.26.11.113:3306/bfd_sq_data?useUnicode=true&characterEncoding=utf-8 |
||||
|
spring.datasource.username=root |
||||
|
spring.datasource.password=bfd123 |
||||
|
spring.datasource.driver-class-name=com.mysql.jdbc.Driver |
||||
|
|
||||
|
spring.mvc.view.suffix=.jsp |
||||
|
spring.mvc.view.prefix=/WEB-INF/ |
||||
|
spring.mvc.static-path-pattern=/static/** |
||||
|
|
||||
|
|
||||
|
#mybatis |
||||
|
mybatis.mapperLocations=classpath:com/bfd/mf/mapper/*.xml |
||||
@ -0,0 +1,63 @@ |
|||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
||||
|
<mapper namespace="com.bfd.mf.mapper.FieldNormalizMapper" > |
||||
|
<resultMap id="BaseResultMap" type="com.bfd.mf.entity.FieldNormaliz" > |
||||
|
<id column="id" property="id" jdbcType="INTEGER" /> |
||||
|
<result column="kafka_server" property="kafkaSerName" jdbcType="INTEGER" /> |
||||
|
<result column="es_server" property="esSerName" jdbcType="VARCHAR" /> |
||||
|
<result column="bussiness_type" property="bussinessType" jdbcType="INTEGER" /> |
||||
|
<result column="es_index_name" property="esSuffixNames" jdbcType="VARCHAR" /> |
||||
|
<result column="kafka_topic" property="kafkaName" jdbcType="VARCHAR" /> |
||||
|
<result column="groupid" property="groupId" jdbcType="VARCHAR"/> |
||||
|
<result column="project_name" property="projectName" jdbcType="VARCHAR"/> |
||||
|
<result column="is_semtiment_api" property="isSemtimentApi" jdbcType="INTEGER"/> |
||||
|
<result column="create_time" property="createTime" jdbcType="TIMESTAMP"/> |
||||
|
<result column="finish_time" property="finshTime" jdbcType="TIMESTAMP"/> |
||||
|
<result column="status" property="status" jdbcType="INTEGER" /> |
||||
|
<result column="kafka_suffix_name" property="kafkaSuffixName" jdbcType="VARCHAR"/> |
||||
|
</resultMap> |
||||
|
|
||||
|
<sql id="Base_Column_List" > |
||||
|
id, kafka_server, es_server, bussiness_type,es_index_name,kafka_topic,groupid,project_name,is_semtiment_api,kafka_suffix_name |
||||
|
</sql> |
||||
|
|
||||
|
<select id="getFieldNormalizList" resultMap="BaseResultMap" > |
||||
|
SELECT |
||||
|
id,kafka_server,kafka_topic,groupid,es_server,bussiness_type,es_index_name,project_name,is_semtiment_api,STATUS,kafka_suffix_name, |
||||
|
DATE_FORMAT(finish_time,'%Y-%m-%d %H:%i:%s') AS finish_time, |
||||
|
DATE_FORMAT(create_time,'%Y-%m-%d %H:%i:%s') AS create_time |
||||
|
FROM |
||||
|
mf_kafka_info |
||||
|
</select> |
||||
|
|
||||
|
<select id="getFieldNormalizById" parameterType="java.lang.Integer" resultMap="BaseResultMap" > |
||||
|
SELECT |
||||
|
<include refid="Base_Column_List" /> |
||||
|
FROM mf_kafka_info |
||||
|
WHERE id = #{id} |
||||
|
</select> |
||||
|
|
||||
|
<insert id="add" parameterType="com.bfd.mf.entity.FieldNormaliz" > |
||||
|
INSERT INTO |
||||
|
mf_kafka_info |
||||
|
(kafka_server,kafka_topic,groupid,es_server,bussiness_type,es_index_name,create_time,project_name,is_semtiment_api,kafka_suffix_name) |
||||
|
VALUES |
||||
|
(#{kafkaSerName}, #{kafkaName}, #{groupId}, #{esSerName}, #{bussinessType}, #{esSuffixNames}, now(), #{projectName}, #{isSemtimentApi}, #{kafkaSuffixName}) |
||||
|
</insert> |
||||
|
|
||||
|
<update id="update" parameterType="java.util.Map" > |
||||
|
UPDATE |
||||
|
mf_kafka_info |
||||
|
SET |
||||
|
status = 1 |
||||
|
WHERE |
||||
|
id = #{id} |
||||
|
</update> |
||||
|
|
||||
|
<delete id="delete" parameterType="java.lang.Integer" > |
||||
|
DELETE FROM |
||||
|
mf_kafka_info |
||||
|
WHERE |
||||
|
id = #{id} |
||||
|
</delete> |
||||
|
</mapper> |
||||
@ -0,0 +1,50 @@ |
|||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
||||
|
<mapper namespace="com.bfd.mf.mapper.StatMapper" > |
||||
|
<resultMap id="BaseResultMap" type="com.bfd.mf.entity.StatInfo" > |
||||
|
<result column="check_day" property="checkDay" jdbcType="VARCHAR" /> |
||||
|
<result column="kafka_name" property="kafkaName" jdbcType="VARCHAR" /> |
||||
|
<result column="kafka_rows" property="kafkaRows" jdbcType="INTEGER" /> |
||||
|
<result column="index_name" property="indexName" jdbcType="VARCHAR" /> |
||||
|
<result column="index_rows" property="indexRows" jdbcType="INTEGER" /> |
||||
|
<result column="diff_rows" property="diffRows" jdbcType="INTEGER"/> |
||||
|
<result column="add_time" property="addTime" jdbcType="TIMESTAMP"/> |
||||
|
</resultMap> |
||||
|
|
||||
|
<sql id="Base_Column_List" > |
||||
|
check_day, kafka_name, kafka_rows, index_name, index_rows, diff_rows, add_time |
||||
|
</sql> |
||||
|
|
||||
|
<select id="getStatInfo" resultMap="BaseResultMap" > |
||||
|
SELECT |
||||
|
check_day,kafka_name,kafka_rows,index_name,index_rows,diff_rows,DATE_FORMAT(add_time, '%Y-%m-%d %H:%i:%s') as add_time |
||||
|
FROM |
||||
|
mf_check_rows_list |
||||
|
</select> |
||||
|
|
||||
|
<insert id="add" parameterType="com.bfd.mf.entity.StatInfo" > |
||||
|
INSERT INTO |
||||
|
mf_check_rows_list |
||||
|
(check_day,kafka_name,kafka_rows,index_name,index_rows,diff_rows,add_time) |
||||
|
VALUES |
||||
|
(#{checkDay}, #{kafkaName}, #{kafkaRows}, #{indexName}, #{indexRows}, #{diffRows}, now()) |
||||
|
</insert> |
||||
|
|
||||
|
<update id="update" parameterType="java.util.Map" > |
||||
|
UPDATE |
||||
|
mf_check_rows_list |
||||
|
SET |
||||
|
kafka_rows = #{kafkaRows}, index_rows = #{indexRows} , diff_rows = #{diffRows} |
||||
|
WHERE |
||||
|
check_day = #{checkDay} and kafka_name = #{kafkaName} and index_name = #{indexName} |
||||
|
</update> |
||||
|
|
||||
|
<select id="getStatInfoByCheck" resultMap="BaseResultMap" parameterType="java.util.Map" > |
||||
|
SELECT |
||||
|
check_day,kafka_name,kafka_rows,index_name,index_rows,diff_rows,DATE_FORMAT(add_time, '%Y-%m-%d %H:%i:%s') as add_time |
||||
|
FROM |
||||
|
mf_check_rows_list |
||||
|
WHERE |
||||
|
check_day = #{checkDay} and kafka_name = #{kafkaName} and index_name = #{indexName} |
||||
|
</select> |
||||
|
</mapper> |
||||
@ -0,0 +1,31 @@ |
|||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||
|
<beans xmlns="http://www.springframework.org/schema/beans" |
||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" |
||||
|
xsi:schemaLocation=" |
||||
|
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd |
||||
|
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd"> |
||||
|
|
||||
|
<bean id="propertyConfigurers" |
||||
|
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> |
||||
|
<property name="locations"> |
||||
|
<value>classpath:/datasources.properties |
||||
|
</value> |
||||
|
</property> |
||||
|
</bean> |
||||
|
|
||||
|
<bean id="sendTask" class="com.bfd.mf.sendTask.impl.SendTaskImpl"> |
||||
|
|
||||
|
</bean> |
||||
|
|
||||
|
<bean id="baseServiceExporter" class="org.springframework.remoting.rmi.RmiServiceExporter"> |
||||
|
<!-- 调用Service --> |
||||
|
<property name="service" ref="sendTask" /> |
||||
|
<!-- value值是提供给客户端调用 --> |
||||
|
<property name="serviceName" value="baseService" /> |
||||
|
<!-- service接口 --> |
||||
|
<property name="serviceInterface" value="com.bfd.mf.sendTask.SendTask" /> |
||||
|
<!-- 注册端口 --> |
||||
|
<property name="registryPort" value="1200" /> |
||||
|
</bean> |
||||
|
|
||||
|
</beans> |
||||
@ -0,0 +1,4 @@ |
|||||
|
sms_username=0c44a92f900c5 |
||||
|
sms_password=100817121800010094 |
||||
|
sms_url=http://www.xcapi.net:18018/xcapi/smsApiSend.do |
||||
|
# |
||||
@ -0,0 +1,18 @@ |
|||||
|
log4j.rootLogger=DEBUG, error |
||||
|
|
||||
|
###### error appender definition ####### |
||||
|
log4j.appender.error=org.apache.log4j.DailyRollingFileAppender |
||||
|
log4j.appender.error.File=logs/sdkclient_error.log |
||||
|
log4j.appender.error.Append=true |
||||
|
log4j.appender.error.DatePattern='.'yyyy-MM-dd-HH |
||||
|
log4j.appender.error.layout=org.apache.log4j.PatternLayout |
||||
|
log4j.appender.error.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c] %m%n |
||||
|
|
||||
|
#error only |
||||
|
log4j.appender.error.filter.F1=org.apache.log4j.varia.LevelRangeFilter |
||||
|
log4j.appender.error.filter.F1.LevelMin=ERROR |
||||
|
log4j.appender.error.filter.F1.LevelMax=ERROR |
||||
|
# |
||||
|
log4j.appender.error.filter.F2=org.apache.log4j.varia.LevelMatchFilter |
||||
|
log4j.appender.error.filter.F2.levelToMatch=WARN |
||||
|
log4j.appender.error.filter.F2.acceptOnMatch=false |
||||
@ -0,0 +1,124 @@ |
|||||
|
/*---------------------------- Ajax 请求对象 ----------------------------*/ |
||||
|
|
||||
|
/************************************************** |
||||
|
-- 属性: |
||||
|
url: 请求地址; |
||||
|
method: 请求方法(GET 或者 POST),默认为 GET; |
||||
|
flag: 异步或者同步请求(true 或者 false),默认为 true; |
||||
|
info: 请求参数,默认为 null,注:只有当请求方法为 POST 时,才被使用; |
||||
|
//isEval: 是否调用 eval() 函数(true 或者 false),默认为为 false;
|
||||
|
//callback: 是否设置回调函数(true或者false),默认为 true;
|
||||
|
result: Ajax 请求的响应结果 |
||||
|
|
||||
|
-- 方法: |
||||
|
executeRequest: 执行 Ajax 请求的方法; |
||||
|
onReady: 绑定函数到 req.onreadystatechange 事件; |
||||
|
dealResult: 只提供了函数名称,用来设置用户自己的函数。注:在用户自己的函数中,用来处理 Ajax 请求的返回结果。 |
||||
|
**************************************************/ |
||||
|
function Ajax(url, method, flag, info) { |
||||
|
this.url = url; |
||||
|
this.method = method || "GET"; |
||||
|
this.flag = (flag == false) ? false : (flag || true); |
||||
|
this.info = info || null; |
||||
|
//this.isEval = false;
|
||||
|
//this.callback = true;
|
||||
|
this.result = null; |
||||
|
var req = null; // req: XMLHttpRequest 对象;
|
||||
|
|
||||
|
// 实例化 req 对象
|
||||
|
(function() { |
||||
|
if (window.XMLHttpRequest) { |
||||
|
req = new XMLHttpRequest(); |
||||
|
if (req.overrideMimeType) { |
||||
|
//req.overrideMimeType("text/xml");
|
||||
|
} |
||||
|
} else if (window.ActiveXObject) { |
||||
|
try { |
||||
|
req = new ActiveXObject("Msxml2.XMLHTTP"); |
||||
|
} catch (e) { |
||||
|
try { |
||||
|
req = new ActiveXObject("Microsoft.XMLHTTP"); |
||||
|
} catch (e) { |
||||
|
alert("该浏览器不支持 Ajax !"); |
||||
|
req = null; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/* Msxml2.XMLHTTP.5.0, 4.0, 3.0 都可以,2.0 和 1.0 不可以 |
||||
|
for (var i = 5; i; i--) { |
||||
|
try { |
||||
|
alert(i); |
||||
|
if (i != 2) { |
||||
|
req = new ActiveXObject("Msxml2.XMLHTTP." + i + ".0"); |
||||
|
} |
||||
|
|
||||
|
} catch (e) { |
||||
|
alert(e); |
||||
|
continue; |
||||
|
} |
||||
|
}*/ |
||||
|
} |
||||
|
}()); |
||||
|
this.executeRequest = function () { |
||||
|
if (!req || !this.url) { |
||||
|
alert("req 为空或者 url 为空!"); |
||||
|
return; |
||||
|
} |
||||
|
|
||||
|
if (this.url.indexOf("_id_=") != -1) { |
||||
|
// 不改变
|
||||
|
} else { |
||||
|
// 保证每次请求的 URL 都不一样,防止缓存
|
||||
|
var rand = "_id_=" + Math.random(); |
||||
|
if (this.url.indexOf("?") != -1) { |
||||
|
this.url += "&" + rand; |
||||
|
} else { |
||||
|
this.url += "?" + rand; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/*// 判断,是否设置回调函数 |
||||
|
if (this.callback) { |
||||
|
this.onReady(req); |
||||
|
}*/ |
||||
|
// 设置回调函数
|
||||
|
this.onReady(req, this); |
||||
|
// 初始化 req 对象
|
||||
|
req.open(this.method, this.url, this.flag); |
||||
|
|
||||
|
// 判断,是否为 POST 请求
|
||||
|
if ((this.method.toUpperCase() == "POST") && this.info) { |
||||
|
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); |
||||
|
} |
||||
|
// 向服务器端发送请求
|
||||
|
req.send(this.info); |
||||
|
|
||||
|
/*// 判断,是否执行 eval() 函数 |
||||
|
if (this.isEval) { |
||||
|
eval(req.responseText); |
||||
|
}*/ |
||||
|
}; |
||||
|
this.onReady = function (req, ajax) { |
||||
|
req.onreadystatechange = function () { |
||||
|
if (req.readyState == 4) { |
||||
|
var result = req.responseText; |
||||
|
if (req.status == 200) { |
||||
|
ajax.result = result; |
||||
|
if (ajax.dealResult) { |
||||
|
ajax.dealResult(result); |
||||
|
} else { |
||||
|
var message = "请为 Ajax对象的 dealResult 设置回调函数!"; |
||||
|
message += "\r\n例如:Ajax对象.dealResult=function(result) { Your Code }"; |
||||
|
message += "\r\n其中,result 参数为服务器端返回的响应数据。"; |
||||
|
//alert(message);
|
||||
|
} |
||||
|
} else { |
||||
|
//alert("响应错误!");
|
||||
|
|
||||
|
//alert(result);
|
||||
|
} |
||||
|
} |
||||
|
}; |
||||
|
}; |
||||
|
this.dealResult; // = function(result) { };
|
||||
|
} |
||||
@ -0,0 +1,203 @@ |
|||||
|
/* |
||||
|
生成EXCEL的数据格式定义: |
||||
|
{ |
||||
|
name: '', |
||||
|
widths: [xxx,…,xxx], |
||||
|
clazz" '', |
||||
|
style: '', |
||||
|
data: [ |
||||
|
{ |
||||
|
height: xxx, |
||||
|
clazz" '', |
||||
|
style: '', |
||||
|
cell: [ |
||||
|
{ |
||||
|
range: 'xxx.xxx', |
||||
|
text: '', |
||||
|
clazz: '', |
||||
|
style: '' |
||||
|
},…{ |
||||
|
… |
||||
|
} |
||||
|
] |
||||
|
},…,{ |
||||
|
} |
||||
|
], …,[ |
||||
|
… |
||||
|
] |
||||
|
} |
||||
|
*/ |
||||
|
(function($) { |
||||
|
$.fn.exportTableData = function(options) { |
||||
|
var opts = $.extend({}, $.fn.exportTableData.defaults, options); |
||||
|
|
||||
|
var table = $(this[0]); |
||||
|
if (table.attr('nodeName').toUpperCase() != 'TABLE') |
||||
|
return null; |
||||
|
|
||||
|
var result = { |
||||
|
widths: [], |
||||
|
data: [] |
||||
|
}; |
||||
|
|
||||
|
readCSS(result, table); |
||||
|
|
||||
|
var cols = table.find('col'); |
||||
|
cols.each(function(i) { |
||||
|
result.widths[i] = $(this).width(); |
||||
|
}) |
||||
|
|
||||
|
var trs = table.find('tr'); |
||||
|
trs.each(function(row) { |
||||
|
var tr = $(this); |
||||
|
|
||||
|
result.data[row] = { |
||||
|
height: tr.height(), |
||||
|
cell: [] |
||||
|
}; |
||||
|
|
||||
|
readCSS(result.data[row], tr); |
||||
|
|
||||
|
var tds = tr.find('td'); |
||||
|
tds.each(function(col) { |
||||
|
var td = $(this); |
||||
|
|
||||
|
var val = td.html(); |
||||
|
if (opts.callback) |
||||
|
val = opts.callback(tr, td, row, col, val); |
||||
|
|
||||
|
result.data[row].cell[col] = { |
||||
|
text: val |
||||
|
} |
||||
|
|
||||
|
readRange(result.data[row].cell[col], td); |
||||
|
readCSS(result.data[row].cell[col], td); |
||||
|
}) |
||||
|
}) |
||||
|
|
||||
|
return result; |
||||
|
|
||||
|
function readRange(data, el) { |
||||
|
var rowSpan = el.attr('rowSpan'); |
||||
|
var colSpan = el.attr('colSpan'); |
||||
|
|
||||
|
rowSpan = rowSpan ? parseInt(rowSpan) : 1; |
||||
|
colSpan = colSpan ? parseInt(colSpan) : 1; |
||||
|
|
||||
|
if (rowSpan != 1 || colSpan != 1) |
||||
|
data.range = rowSpan + '.' + colSpan; |
||||
|
} |
||||
|
|
||||
|
function readCSS(data, el) { |
||||
|
var clazz = el.attr('class'); |
||||
|
if (clazz) |
||||
|
data.clazz = clazz; |
||||
|
|
||||
|
var style = el.attr('style'); |
||||
|
if (style) |
||||
|
data.style = style; |
||||
|
} |
||||
|
}; |
||||
|
|
||||
|
$.fn.exportTableData.defaults = { |
||||
|
callback: function(tr, td, row, col, val) { |
||||
|
return val; |
||||
|
} |
||||
|
}; |
||||
|
|
||||
|
$.fn.parseImportTableConfig = function(options) { |
||||
|
var opts = $.extend({}, $.fn.parseImportTableConfig.defaults, options); |
||||
|
|
||||
|
var table = $(this[0]); |
||||
|
if (table.attr('nodeName').toUpperCase() != 'TABLE') |
||||
|
return null; |
||||
|
|
||||
|
var result = ''; |
||||
|
|
||||
|
var trs = table.find('tr'); |
||||
|
trs.each(function(row) { |
||||
|
var tr = $(this); |
||||
|
|
||||
|
var tds = tr.find('td'); |
||||
|
tds.each(function(col) { |
||||
|
var td = $(this); |
||||
|
|
||||
|
if (opts.callback) { |
||||
|
if (opts.callback({ |
||||
|
tr: tr, |
||||
|
td: td, |
||||
|
row: row, |
||||
|
col: col |
||||
|
}) == false) |
||||
|
return; |
||||
|
} |
||||
|
|
||||
|
result += row + '.' + col + ' '; |
||||
|
}) |
||||
|
}) |
||||
|
|
||||
|
return result; |
||||
|
}; |
||||
|
|
||||
|
$.fn.parseImportTableConfig.defaults = { |
||||
|
callback: function(params) { |
||||
|
return true; |
||||
|
} |
||||
|
}; |
||||
|
|
||||
|
$.fn.importTableData = function(data, options) { |
||||
|
var opts = $.extend({}, $.fn.importTableData.defaults, options); |
||||
|
|
||||
|
var table = $(this[0]); |
||||
|
if (table.attr('nodeName').toUpperCase() != 'TABLE') |
||||
|
return null; |
||||
|
|
||||
|
var importTds = []; |
||||
|
|
||||
|
var trs = table.find('tr'); |
||||
|
trs.each(function(row) { |
||||
|
var tr = $(this); |
||||
|
|
||||
|
var tds = tr.find('td'); |
||||
|
tds.each(function(col) { |
||||
|
var td = $(this); |
||||
|
|
||||
|
var key = row + '.' + col; |
||||
|
if (typeof(data[key]) == 'undefined') |
||||
|
return; |
||||
|
|
||||
|
var params = { |
||||
|
tr: tr, |
||||
|
td: td, |
||||
|
row: row, |
||||
|
col: col, |
||||
|
val: data[key] |
||||
|
}; |
||||
|
|
||||
|
if (opts.callback) { |
||||
|
if (opts.callback(params) == false) |
||||
|
return; |
||||
|
} |
||||
|
|
||||
|
var val = params.val; |
||||
|
var orgVal = td.html(); |
||||
|
if (val != null && val != orgVal) { |
||||
|
td.html(val); |
||||
|
|
||||
|
importTds[importTds.length] = td; |
||||
|
} |
||||
|
}) |
||||
|
}) |
||||
|
|
||||
|
if (importTds.length > 0 && opts.finish) |
||||
|
opts.finish(importTds); |
||||
|
}; |
||||
|
|
||||
|
$.fn.importTableData.defaults = { |
||||
|
callback: function(params) { |
||||
|
return true; |
||||
|
}, |
||||
|
finish: function(tds) { |
||||
|
} |
||||
|
}; |
||||
|
})(jQuery); |
||||
19
cl_stream_mybatis/src/main/resources/static/scripts/jquery/jquery-1.3.2.min.js
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -0,0 +1,209 @@ |
|||||
|
|
||||
|
jQuery.extend({ |
||||
|
|
||||
|
|
||||
|
createUploadIframe: function(id, uri) |
||||
|
{ |
||||
|
//create frame
|
||||
|
var frameId = 'jUploadFrame' + id; |
||||
|
|
||||
|
if(window.ActiveXObject) { |
||||
|
var io = document.createElement('<iframe id="' + frameId + '" name="' + frameId + '" />'); |
||||
|
if(typeof uri== 'boolean'){ |
||||
|
io.src = 'javascript:false'; |
||||
|
} |
||||
|
else if(typeof uri== 'string'){ |
||||
|
io.src = uri; |
||||
|
} |
||||
|
} |
||||
|
else { |
||||
|
var io = document.createElement('iframe'); |
||||
|
io.id = frameId; |
||||
|
io.name = frameId; |
||||
|
} |
||||
|
io.style.position = 'absolute'; |
||||
|
io.style.top = '-1000px'; |
||||
|
io.style.left = '-1000px'; |
||||
|
|
||||
|
document.body.appendChild(io); |
||||
|
|
||||
|
return io |
||||
|
}, |
||||
|
createUploadForm: function(id, fileElementId, data) |
||||
|
{ |
||||
|
//create form
|
||||
|
var formId = 'jUploadForm' + id; |
||||
|
var fileId = 'jUploadFile' + id; |
||||
|
var form = $('<form action="" method="POST" name="' + formId + '" id="' + formId + '" enctype="multipart/form-data"></form>'); |
||||
|
var oldElement = $('#' + fileElementId); |
||||
|
var newElement = $(oldElement).clone(); |
||||
|
$(oldElement).attr('id', fileId); |
||||
|
$(oldElement).before(newElement); |
||||
|
$(oldElement).appendTo(form); |
||||
|
|
||||
|
if (data) { |
||||
|
for (var name in data) { |
||||
|
var field = $('<input type="hidden" name="' + name + '" value="' + data[name] + '"/>'); |
||||
|
field.appendTo(form); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
//set attributes
|
||||
|
$(form).css('position', 'absolute'); |
||||
|
$(form).css('top', '-1200px'); |
||||
|
$(form).css('left', '-1200px'); |
||||
|
$(form).appendTo('body'); |
||||
|
return form; |
||||
|
}, |
||||
|
|
||||
|
ajaxFileUpload: function(s) { |
||||
|
// TODO introduce global settings, allowing the client to modify them for all requests, not only timeout
|
||||
|
s = jQuery.extend({}, jQuery.ajaxSettings, s); |
||||
|
var id = new Date().getTime() |
||||
|
var form = jQuery.createUploadForm(id, s.fileElementId, s.data); |
||||
|
var io = jQuery.createUploadIframe(id, s.secureuri); |
||||
|
var frameId = 'jUploadFrame' + id; |
||||
|
var formId = 'jUploadForm' + id; |
||||
|
// Watch for a new set of requests
|
||||
|
if ( s.global && ! jQuery.active++ ) |
||||
|
{ |
||||
|
jQuery.event.trigger( "ajaxStart" ); |
||||
|
} |
||||
|
var requestDone = false; |
||||
|
// Create the request object
|
||||
|
var xml = {} |
||||
|
if ( s.global ) |
||||
|
jQuery.event.trigger("ajaxSend", [xml, s]); |
||||
|
// Wait for a response to come back
|
||||
|
var uploadCallback = function(isTimeout) |
||||
|
{ |
||||
|
var io = document.getElementById(frameId); |
||||
|
try |
||||
|
{ |
||||
|
if(io.contentWindow) |
||||
|
{ |
||||
|
xml.responseText = io.contentWindow.document.body?io.contentWindow.document.body.innerHTML:null; |
||||
|
xml.responseXML = io.contentWindow.document.XMLDocument?io.contentWindow.document.XMLDocument:io.contentWindow.document; |
||||
|
|
||||
|
}else if(io.contentDocument) |
||||
|
{ |
||||
|
xml.responseText = io.contentDocument.document.body?io.contentDocument.document.body.innerHTML:null; |
||||
|
xml.responseXML = io.contentDocument.document.XMLDocument?io.contentDocument.document.XMLDocument:io.contentDocument.document; |
||||
|
} |
||||
|
}catch(e) |
||||
|
{ |
||||
|
jQuery.handleError(s, xml, null, e); |
||||
|
} |
||||
|
if ( xml || isTimeout == "timeout") |
||||
|
{ |
||||
|
requestDone = true; |
||||
|
var status; |
||||
|
try { |
||||
|
status = isTimeout != "timeout" ? "success" : "error"; |
||||
|
// Make sure that the request was successful or notmodified
|
||||
|
if ( status != "error" ) |
||||
|
{ |
||||
|
// process the data (runs the xml through httpData regardless of callback)
|
||||
|
var data = jQuery.uploadHttpData( xml, s.dataType ); |
||||
|
// If a local callback was specified, fire it and pass it the data
|
||||
|
if ( s.success ) |
||||
|
s.success( data, status ); |
||||
|
|
||||
|
// Fire the global callback
|
||||
|
if( s.global ) |
||||
|
jQuery.event.trigger( "ajaxSuccess", [xml, s] ); |
||||
|
} else |
||||
|
jQuery.handleError(s, xml, status); |
||||
|
} catch(e) |
||||
|
{ |
||||
|
status = "error"; |
||||
|
jQuery.handleError(s, xml, status, e); |
||||
|
} |
||||
|
|
||||
|
// The request was completed
|
||||
|
if( s.global ) |
||||
|
jQuery.event.trigger( "ajaxComplete", [xml, s] ); |
||||
|
|
||||
|
// Handle the global AJAX counter
|
||||
|
if ( s.global && ! --jQuery.active ) |
||||
|
jQuery.event.trigger( "ajaxStop" ); |
||||
|
|
||||
|
// Process result
|
||||
|
if ( s.complete ) |
||||
|
s.complete(xml, status); |
||||
|
|
||||
|
jQuery(io).unbind() |
||||
|
|
||||
|
setTimeout(function() |
||||
|
{ try |
||||
|
{ |
||||
|
$(io).remove(); |
||||
|
$(form).remove(); |
||||
|
|
||||
|
} catch(e) |
||||
|
{ |
||||
|
jQuery.handleError(s, xml, null, e); |
||||
|
} |
||||
|
|
||||
|
}, 100) |
||||
|
|
||||
|
xml = null |
||||
|
|
||||
|
} |
||||
|
} |
||||
|
// Timeout checker
|
||||
|
if ( s.timeout > 0 ) |
||||
|
{ |
||||
|
setTimeout(function(){ |
||||
|
// Check to see if the request is still happening
|
||||
|
if( !requestDone ) uploadCallback( "timeout" ); |
||||
|
}, s.timeout); |
||||
|
} |
||||
|
try |
||||
|
{ |
||||
|
// var io = $('#' + frameId);
|
||||
|
var form = $('#' + formId); |
||||
|
$(form).attr('action', s.url); |
||||
|
$(form).attr('method', 'POST'); |
||||
|
$(form).attr('target', frameId); |
||||
|
if(form.encoding) |
||||
|
{ |
||||
|
form.encoding = 'multipart/form-data'; |
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
form.enctype = 'multipart/form-data'; |
||||
|
} |
||||
|
$(form).submit(); |
||||
|
|
||||
|
} catch(e) |
||||
|
{ |
||||
|
jQuery.handleError(s, xml, null, e); |
||||
|
} |
||||
|
if(window.attachEvent){ |
||||
|
document.getElementById(frameId).attachEvent('onload', uploadCallback); |
||||
|
} |
||||
|
else{ |
||||
|
document.getElementById(frameId).addEventListener('load', uploadCallback, false); |
||||
|
} |
||||
|
return {abort: function () {}}; |
||||
|
|
||||
|
}, |
||||
|
|
||||
|
uploadHttpData: function( r, type ) { |
||||
|
var data = !type; |
||||
|
data = type == "xml" || data ? r.responseXML : r.responseText; |
||||
|
// If the type is "script", eval it in global context
|
||||
|
if ( type == "script" ) |
||||
|
jQuery.globalEval( data ); |
||||
|
// Get the JavaScript object, if JSON is used.
|
||||
|
if ( type == "json" ) |
||||
|
eval( "data = " + data ); |
||||
|
// evaluate scripts within html
|
||||
|
if ( type == "html" ) |
||||
|
jQuery("<div>").html(data).evalScripts(); |
||||
|
//alert($('param', data).each(function(){alert($(this).attr('value'));}));
|
||||
|
return data; |
||||
|
} |
||||
|
}) |
||||
|
|
||||
@ -0,0 +1,49 @@ |
|||||
|
/* |
||||
|
* jQuery UI Effects Blind 1.7 |
||||
|
* |
||||
|
* Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
|
||||
|
* Dual licensed under the MIT (MIT-LICENSE.txt) |
||||
|
* and GPL (GPL-LICENSE.txt) licenses. |
||||
|
* |
||||
|
* http://docs.jquery.com/UI/Effects/Blind
|
||||
|
* |
||||
|
* Depends: |
||||
|
* effects.core.js |
||||
|
*/ |
||||
|
(function($) { |
||||
|
|
||||
|
$.effects.blind = function(o) { |
||||
|
|
||||
|
return this.queue(function() { |
||||
|
|
||||
|
// Create element
|
||||
|
var el = $(this), props = ['position','top','left']; |
||||
|
|
||||
|
// Set options
|
||||
|
var mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode
|
||||
|
var direction = o.options.direction || 'vertical'; // Default direction
|
||||
|
|
||||
|
// Adjust
|
||||
|
$.effects.save(el, props); el.show(); // Save & Show
|
||||
|
var wrapper = $.effects.createWrapper(el).css({overflow:'hidden'}); // Create Wrapper
|
||||
|
var ref = (direction == 'vertical') ? 'height' : 'width'; |
||||
|
var distance = (direction == 'vertical') ? wrapper.height() : wrapper.width(); |
||||
|
if(mode == 'show') wrapper.css(ref, 0); // Shift
|
||||
|
|
||||
|
// Animation
|
||||
|
var animation = {}; |
||||
|
animation[ref] = mode == 'show' ? distance : 0; |
||||
|
|
||||
|
// Animate
|
||||
|
wrapper.animate(animation, o.duration, o.options.easing, function() { |
||||
|
if(mode == 'hide') el.hide(); // Hide
|
||||
|
$.effects.restore(el, props); $.effects.removeWrapper(el); // Restore
|
||||
|
if(o.callback) o.callback.apply(el[0], arguments); // Callback
|
||||
|
el.dequeue(); |
||||
|
}); |
||||
|
|
||||
|
}); |
||||
|
|
||||
|
}; |
||||
|
|
||||
|
})(jQuery); |
||||
@ -0,0 +1,78 @@ |
|||||
|
/* |
||||
|
* jQuery UI Effects Bounce 1.7 |
||||
|
* |
||||
|
* Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
|
||||
|
* Dual licensed under the MIT (MIT-LICENSE.txt) |
||||
|
* and GPL (GPL-LICENSE.txt) licenses. |
||||
|
* |
||||
|
* http://docs.jquery.com/UI/Effects/Bounce
|
||||
|
* |
||||
|
* Depends: |
||||
|
* effects.core.js |
||||
|
*/ |
||||
|
(function($) { |
||||
|
|
||||
|
$.effects.bounce = function(o) { |
||||
|
|
||||
|
return this.queue(function() { |
||||
|
|
||||
|
// Create element
|
||||
|
var el = $(this), props = ['position','top','left']; |
||||
|
|
||||
|
// Set options
|
||||
|
var mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode
|
||||
|
var direction = o.options.direction || 'up'; // Default direction
|
||||
|
var distance = o.options.distance || 20; // Default distance
|
||||
|
var times = o.options.times || 5; // Default # of times
|
||||
|
var speed = o.duration || 250; // Default speed per bounce
|
||||
|
if (/show|hide/.test(mode)) props.push('opacity'); // Avoid touching opacity to prevent clearType and PNG issues in IE
|
||||
|
|
||||
|
// Adjust
|
||||
|
$.effects.save(el, props); el.show(); // Save & Show
|
||||
|
$.effects.createWrapper(el); // Create Wrapper
|
||||
|
var ref = (direction == 'up' || direction == 'down') ? 'top' : 'left'; |
||||
|
var motion = (direction == 'up' || direction == 'left') ? 'pos' : 'neg'; |
||||
|
var distance = o.options.distance || (ref == 'top' ? el.outerHeight({margin:true}) / 3 : el.outerWidth({margin:true}) / 3); |
||||
|
if (mode == 'show') el.css('opacity', 0).css(ref, motion == 'pos' ? -distance : distance); // Shift
|
||||
|
if (mode == 'hide') distance = distance / (times * 2); |
||||
|
if (mode != 'hide') times--; |
||||
|
|
||||
|
// Animate
|
||||
|
if (mode == 'show') { // Show Bounce
|
||||
|
var animation = {opacity: 1}; |
||||
|
animation[ref] = (motion == 'pos' ? '+=' : '-=') + distance; |
||||
|
el.animate(animation, speed / 2, o.options.easing); |
||||
|
distance = distance / 2; |
||||
|
times--; |
||||
|
}; |
||||
|
for (var i = 0; i < times; i++) { // Bounces
|
||||
|
var animation1 = {}, animation2 = {}; |
||||
|
animation1[ref] = (motion == 'pos' ? '-=' : '+=') + distance; |
||||
|
animation2[ref] = (motion == 'pos' ? '+=' : '-=') + distance; |
||||
|
el.animate(animation1, speed / 2, o.options.easing).animate(animation2, speed / 2, o.options.easing); |
||||
|
distance = (mode == 'hide') ? distance * 2 : distance / 2; |
||||
|
}; |
||||
|
if (mode == 'hide') { // Last Bounce
|
||||
|
var animation = {opacity: 0}; |
||||
|
animation[ref] = (motion == 'pos' ? '-=' : '+=') + distance; |
||||
|
el.animate(animation, speed / 2, o.options.easing, function(){ |
||||
|
el.hide(); // Hide
|
||||
|
$.effects.restore(el, props); $.effects.removeWrapper(el); // Restore
|
||||
|
if(o.callback) o.callback.apply(this, arguments); // Callback
|
||||
|
}); |
||||
|
} else { |
||||
|
var animation1 = {}, animation2 = {}; |
||||
|
animation1[ref] = (motion == 'pos' ? '-=' : '+=') + distance; |
||||
|
animation2[ref] = (motion == 'pos' ? '+=' : '-=') + distance; |
||||
|
el.animate(animation1, speed / 2, o.options.easing).animate(animation2, speed / 2, o.options.easing, function(){ |
||||
|
$.effects.restore(el, props); $.effects.removeWrapper(el); // Restore
|
||||
|
if(o.callback) o.callback.apply(this, arguments); // Callback
|
||||
|
}); |
||||
|
}; |
||||
|
el.queue('fx', function() { el.dequeue(); }); |
||||
|
el.dequeue(); |
||||
|
}); |
||||
|
|
||||
|
}; |
||||
|
|
||||
|
})(jQuery); |
||||
@ -0,0 +1,54 @@ |
|||||
|
/* |
||||
|
* jQuery UI Effects Clip 1.7 |
||||
|
* |
||||
|
* Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
|
||||
|
* Dual licensed under the MIT (MIT-LICENSE.txt) |
||||
|
* and GPL (GPL-LICENSE.txt) licenses. |
||||
|
* |
||||
|
* http://docs.jquery.com/UI/Effects/Clip
|
||||
|
* |
||||
|
* Depends: |
||||
|
* effects.core.js |
||||
|
*/ |
||||
|
(function($) { |
||||
|
|
||||
|
$.effects.clip = function(o) { |
||||
|
|
||||
|
return this.queue(function() { |
||||
|
|
||||
|
// Create element
|
||||
|
var el = $(this), props = ['position','top','left','height','width']; |
||||
|
|
||||
|
// Set options
|
||||
|
var mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode
|
||||
|
var direction = o.options.direction || 'vertical'; // Default direction
|
||||
|
|
||||
|
// Adjust
|
||||
|
$.effects.save(el, props); el.show(); // Save & Show
|
||||
|
var wrapper = $.effects.createWrapper(el).css({overflow:'hidden'}); // Create Wrapper
|
||||
|
var animate = el[0].tagName == 'IMG' ? wrapper : el; |
||||
|
var ref = { |
||||
|
size: (direction == 'vertical') ? 'height' : 'width', |
||||
|
position: (direction == 'vertical') ? 'top' : 'left' |
||||
|
}; |
||||
|
var distance = (direction == 'vertical') ? animate.height() : animate.width(); |
||||
|
if(mode == 'show') { animate.css(ref.size, 0); animate.css(ref.position, distance / 2); } // Shift
|
||||
|
|
||||
|
// Animation
|
||||
|
var animation = {}; |
||||
|
animation[ref.size] = mode == 'show' ? distance : 0; |
||||
|
animation[ref.position] = mode == 'show' ? 0 : distance / 2; |
||||
|
|
||||
|
// Animate
|
||||
|
animate.animate(animation, { queue: false, duration: o.duration, easing: o.options.easing, complete: function() { |
||||
|
if(mode == 'hide') el.hide(); // Hide
|
||||
|
$.effects.restore(el, props); $.effects.removeWrapper(el); // Restore
|
||||
|
if(o.callback) o.callback.apply(el[0], arguments); // Callback
|
||||
|
el.dequeue(); |
||||
|
}}); |
||||
|
|
||||
|
}); |
||||
|
|
||||
|
}; |
||||
|
|
||||
|
})(jQuery); |
||||
@ -0,0 +1,543 @@ |
|||||
|
/* |
||||
|
* jQuery UI Effects 1.7 |
||||
|
* |
||||
|
* Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
|
||||
|
* Dual licensed under the MIT (MIT-LICENSE.txt) |
||||
|
* and GPL (GPL-LICENSE.txt) licenses. |
||||
|
* |
||||
|
* http://docs.jquery.com/UI/Effects/
|
||||
|
*/ |
||||
|
;jQuery.effects || (function($) { |
||||
|
|
||||
|
$.effects = { |
||||
|
version: "1.7", |
||||
|
|
||||
|
// Saves a set of properties in a data storage
|
||||
|
save: function(element, set) { |
||||
|
for(var i=0; i < set.length; i++) { |
||||
|
if(set[i] !== null) element.data("ec.storage."+set[i], element[0].style[set[i]]); |
||||
|
} |
||||
|
}, |
||||
|
|
||||
|
// Restores a set of previously saved properties from a data storage
|
||||
|
restore: function(element, set) { |
||||
|
for(var i=0; i < set.length; i++) { |
||||
|
if(set[i] !== null) element.css(set[i], element.data("ec.storage."+set[i])); |
||||
|
} |
||||
|
}, |
||||
|
|
||||
|
setMode: function(el, mode) { |
||||
|
if (mode == 'toggle') mode = el.is(':hidden') ? 'show' : 'hide'; // Set for toggle
|
||||
|
return mode; |
||||
|
}, |
||||
|
|
||||
|
getBaseline: function(origin, original) { // Translates a [top,left] array into a baseline value
|
||||
|
// this should be a little more flexible in the future to handle a string & hash
|
||||
|
var y, x; |
||||
|
switch (origin[0]) { |
||||
|
case 'top': y = 0; break; |
||||
|
case 'middle': y = 0.5; break; |
||||
|
case 'bottom': y = 1; break; |
||||
|
default: y = origin[0] / original.height; |
||||
|
}; |
||||
|
switch (origin[1]) { |
||||
|
case 'left': x = 0; break; |
||||
|
case 'center': x = 0.5; break; |
||||
|
case 'right': x = 1; break; |
||||
|
default: x = origin[1] / original.width; |
||||
|
}; |
||||
|
return {x: x, y: y}; |
||||
|
}, |
||||
|
|
||||
|
// Wraps the element around a wrapper that copies position properties
|
||||
|
createWrapper: function(element) { |
||||
|
|
||||
|
//if the element is already wrapped, return it
|
||||
|
if (element.parent().is('.ui-effects-wrapper')) |
||||
|
return element.parent(); |
||||
|
|
||||
|
//Cache width,height and float properties of the element, and create a wrapper around it
|
||||
|
var props = { width: element.outerWidth(true), height: element.outerHeight(true), 'float': element.css('float') }; |
||||
|
element.wrap('<div class="ui-effects-wrapper" style="font-size:100%;background:transparent;border:none;margin:0;padding:0"></div>'); |
||||
|
var wrapper = element.parent(); |
||||
|
|
||||
|
//Transfer the positioning of the element to the wrapper
|
||||
|
if (element.css('position') == 'static') { |
||||
|
wrapper.css({ position: 'relative' }); |
||||
|
element.css({ position: 'relative'} ); |
||||
|
} else { |
||||
|
var top = element.css('top'); if(isNaN(parseInt(top,10))) top = 'auto'; |
||||
|
var left = element.css('left'); if(isNaN(parseInt(left,10))) left = 'auto'; |
||||
|
wrapper.css({ position: element.css('position'), top: top, left: left, zIndex: element.css('z-index') }).show(); |
||||
|
element.css({position: 'relative', top: 0, left: 0 }); |
||||
|
} |
||||
|
|
||||
|
wrapper.css(props); |
||||
|
return wrapper; |
||||
|
}, |
||||
|
|
||||
|
removeWrapper: function(element) { |
||||
|
if (element.parent().is('.ui-effects-wrapper')) |
||||
|
return element.parent().replaceWith(element); |
||||
|
return element; |
||||
|
}, |
||||
|
|
||||
|
setTransition: function(element, list, factor, value) { |
||||
|
value = value || {}; |
||||
|
$.each(list, function(i, x){ |
||||
|
unit = element.cssUnit(x); |
||||
|
if (unit[0] > 0) value[x] = unit[0] * factor + unit[1]; |
||||
|
}); |
||||
|
return value; |
||||
|
}, |
||||
|
|
||||
|
//Base function to animate from one class to another in a seamless transition
|
||||
|
animateClass: function(value, duration, easing, callback) { |
||||
|
|
||||
|
var cb = (typeof easing == "function" ? easing : (callback ? callback : null)); |
||||
|
var ea = (typeof easing == "string" ? easing : null); |
||||
|
|
||||
|
return this.each(function() { |
||||
|
|
||||
|
var offset = {}; var that = $(this); var oldStyleAttr = that.attr("style") || ''; |
||||
|
if(typeof oldStyleAttr == 'object') oldStyleAttr = oldStyleAttr["cssText"]; /* Stupidly in IE, style is a object.. */ |
||||
|
if(value.toggle) { that.hasClass(value.toggle) ? value.remove = value.toggle : value.add = value.toggle; } |
||||
|
|
||||
|
//Let's get a style offset
|
||||
|
var oldStyle = $.extend({}, (document.defaultView ? document.defaultView.getComputedStyle(this,null) : this.currentStyle)); |
||||
|
if(value.add) that.addClass(value.add); if(value.remove) that.removeClass(value.remove); |
||||
|
var newStyle = $.extend({}, (document.defaultView ? document.defaultView.getComputedStyle(this,null) : this.currentStyle)); |
||||
|
if(value.add) that.removeClass(value.add); if(value.remove) that.addClass(value.remove); |
||||
|
|
||||
|
// The main function to form the object for animation
|
||||
|
for(var n in newStyle) { |
||||
|
if( typeof newStyle[n] != "function" && newStyle[n] /* No functions and null properties */ |
||||
|
&& n.indexOf("Moz") == -1 && n.indexOf("length") == -1 /* No mozilla spezific render properties. */ |
||||
|
&& newStyle[n] != oldStyle[n] /* Only values that have changed are used for the animation */ |
||||
|
&& (n.match(/color/i) || (!n.match(/color/i) && !isNaN(parseInt(newStyle[n],10)))) /* Only things that can be parsed to integers or colors */ |
||||
|
&& (oldStyle.position != "static" || (oldStyle.position == "static" && !n.match(/left|top|bottom|right/))) /* No need for positions when dealing with static positions */ |
||||
|
) offset[n] = newStyle[n]; |
||||
|
} |
||||
|
|
||||
|
that.animate(offset, duration, ea, function() { // Animate the newly constructed offset object
|
||||
|
// Change style attribute back to original. For stupid IE, we need to clear the damn object.
|
||||
|
if(typeof $(this).attr("style") == 'object') { $(this).attr("style")["cssText"] = ""; $(this).attr("style")["cssText"] = oldStyleAttr; } else $(this).attr("style", oldStyleAttr); |
||||
|
if(value.add) $(this).addClass(value.add); if(value.remove) $(this).removeClass(value.remove); |
||||
|
if(cb) cb.apply(this, arguments); |
||||
|
}); |
||||
|
|
||||
|
}); |
||||
|
} |
||||
|
}; |
||||
|
|
||||
|
|
||||
|
function _normalizeArguments(a, m) { |
||||
|
|
||||
|
var o = a[1] && a[1].constructor == Object ? a[1] : {}; if(m) o.mode = m; |
||||
|
var speed = a[1] && a[1].constructor != Object ? a[1] : (o.duration ? o.duration : a[2]); //either comes from options.duration or the secon/third argument
|
||||
|
speed = $.fx.off ? 0 : typeof speed === "number" ? speed : $.fx.speeds[speed] || $.fx.speeds._default; |
||||
|
var callback = o.callback || ( $.isFunction(a[1]) && a[1] ) || ( $.isFunction(a[2]) && a[2] ) || ( $.isFunction(a[3]) && a[3] ); |
||||
|
|
||||
|
return [a[0], o, speed, callback]; |
||||
|
|
||||
|
} |
||||
|
|
||||
|
//Extend the methods of jQuery
|
||||
|
$.fn.extend({ |
||||
|
|
||||
|
//Save old methods
|
||||
|
_show: $.fn.show, |
||||
|
_hide: $.fn.hide, |
||||
|
__toggle: $.fn.toggle, |
||||
|
_addClass: $.fn.addClass, |
||||
|
_removeClass: $.fn.removeClass, |
||||
|
_toggleClass: $.fn.toggleClass, |
||||
|
|
||||
|
// New effect methods
|
||||
|
effect: function(fx, options, speed, callback) { |
||||
|
return $.effects[fx] ? $.effects[fx].call(this, {method: fx, options: options || {}, duration: speed, callback: callback }) : null; |
||||
|
}, |
||||
|
|
||||
|
show: function() { |
||||
|
if(!arguments[0] || (arguments[0].constructor == Number || (/(slow|normal|fast)/).test(arguments[0]))) |
||||
|
return this._show.apply(this, arguments); |
||||
|
else { |
||||
|
return this.effect.apply(this, _normalizeArguments(arguments, 'show')); |
||||
|
} |
||||
|
}, |
||||
|
|
||||
|
hide: function() { |
||||
|
if(!arguments[0] || (arguments[0].constructor == Number || (/(slow|normal|fast)/).test(arguments[0]))) |
||||
|
return this._hide.apply(this, arguments); |
||||
|
else { |
||||
|
return this.effect.apply(this, _normalizeArguments(arguments, 'hide')); |
||||
|
} |
||||
|
}, |
||||
|
|
||||
|
toggle: function(){ |
||||
|
if(!arguments[0] || (arguments[0].constructor == Number || (/(slow|normal|fast)/).test(arguments[0])) || (arguments[0].constructor == Function)) |
||||
|
return this.__toggle.apply(this, arguments); |
||||
|
else { |
||||
|
return this.effect.apply(this, _normalizeArguments(arguments, 'toggle')); |
||||
|
} |
||||
|
}, |
||||
|
|
||||
|
addClass: function(classNames, speed, easing, callback) { |
||||
|
return speed ? $.effects.animateClass.apply(this, [{ add: classNames },speed,easing,callback]) : this._addClass(classNames); |
||||
|
}, |
||||
|
removeClass: function(classNames,speed,easing,callback) { |
||||
|
return speed ? $.effects.animateClass.apply(this, [{ remove: classNames },speed,easing,callback]) : this._removeClass(classNames); |
||||
|
}, |
||||
|
toggleClass: function(classNames,speed,easing,callback) { |
||||
|
return ( (typeof speed !== "boolean") && speed ) ? $.effects.animateClass.apply(this, [{ toggle: classNames },speed,easing,callback]) : this._toggleClass(classNames, speed); |
||||
|
}, |
||||
|
morph: function(remove,add,speed,easing,callback) { |
||||
|
return $.effects.animateClass.apply(this, [{ add: add, remove: remove },speed,easing,callback]); |
||||
|
}, |
||||
|
switchClass: function() { |
||||
|
return this.morph.apply(this, arguments); |
||||
|
}, |
||||
|
|
||||
|
// helper functions
|
||||
|
cssUnit: function(key) { |
||||
|
var style = this.css(key), val = []; |
||||
|
$.each( ['em','px','%','pt'], function(i, unit){ |
||||
|
if(style.indexOf(unit) > 0) |
||||
|
val = [parseFloat(style), unit]; |
||||
|
}); |
||||
|
return val; |
||||
|
} |
||||
|
}); |
||||
|
|
||||
|
/* |
||||
|
* jQuery Color Animations |
||||
|
* Copyright 2007 John Resig |
||||
|
* Released under the MIT and GPL licenses. |
||||
|
*/ |
||||
|
|
||||
|
// We override the animation for all of these color styles
|
||||
|
$.each(['backgroundColor', 'borderBottomColor', 'borderLeftColor', 'borderRightColor', 'borderTopColor', 'color', 'outlineColor'], function(i,attr){ |
||||
|
$.fx.step[attr] = function(fx) { |
||||
|
if ( fx.state == 0 ) { |
||||
|
fx.start = getColor( fx.elem, attr ); |
||||
|
fx.end = getRGB( fx.end ); |
||||
|
} |
||||
|
|
||||
|
fx.elem.style[attr] = "rgb(" + [ |
||||
|
Math.max(Math.min( parseInt((fx.pos * (fx.end[0] - fx.start[0])) + fx.start[0],10), 255), 0), |
||||
|
Math.max(Math.min( parseInt((fx.pos * (fx.end[1] - fx.start[1])) + fx.start[1],10), 255), 0), |
||||
|
Math.max(Math.min( parseInt((fx.pos * (fx.end[2] - fx.start[2])) + fx.start[2],10), 255), 0) |
||||
|
].join(",") + ")"; |
||||
|
}; |
||||
|
}); |
||||
|
|
||||
|
// Color Conversion functions from highlightFade
|
||||
|
// By Blair Mitchelmore
|
||||
|
// http://jquery.offput.ca/highlightFade/
|
||||
|
|
||||
|
// Parse strings looking for color tuples [255,255,255]
|
||||
|
function getRGB(color) { |
||||
|
var result; |
||||
|
|
||||
|
// Check if we're already dealing with an array of colors
|
||||
|
if ( color && color.constructor == Array && color.length == 3 ) |
||||
|
return color; |
||||
|
|
||||
|
// Look for rgb(num,num,num)
|
||||
|
if (result = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(color)) |
||||
|
return [parseInt(result[1],10), parseInt(result[2],10), parseInt(result[3],10)]; |
||||
|
|
||||
|
// Look for rgb(num%,num%,num%)
|
||||
|
if (result = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(color)) |
||||
|
return [parseFloat(result[1])*2.55, parseFloat(result[2])*2.55, parseFloat(result[3])*2.55]; |
||||
|
|
||||
|
// Look for #a0b1c2
|
||||
|
if (result = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(color)) |
||||
|
return [parseInt(result[1],16), parseInt(result[2],16), parseInt(result[3],16)]; |
||||
|
|
||||
|
// Look for #fff
|
||||
|
if (result = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(color)) |
||||
|
return [parseInt(result[1]+result[1],16), parseInt(result[2]+result[2],16), parseInt(result[3]+result[3],16)]; |
||||
|
|
||||
|
// Look for rgba(0, 0, 0, 0) == transparent in Safari 3
|
||||
|
if (result = /rgba\(0, 0, 0, 0\)/.exec(color)) |
||||
|
return colors['transparent']; |
||||
|
|
||||
|
// Otherwise, we're most likely dealing with a named color
|
||||
|
return colors[$.trim(color).toLowerCase()]; |
||||
|
} |
||||
|
|
||||
|
function getColor(elem, attr) { |
||||
|
var color; |
||||
|
|
||||
|
do { |
||||
|
color = $.curCSS(elem, attr); |
||||
|
|
||||
|
// Keep going until we find an element that has color, or we hit the body
|
||||
|
if ( color != '' && color != 'transparent' || $.nodeName(elem, "body") ) |
||||
|
break; |
||||
|
|
||||
|
attr = "backgroundColor"; |
||||
|
} while ( elem = elem.parentNode ); |
||||
|
|
||||
|
return getRGB(color); |
||||
|
}; |
||||
|
|
||||
|
// Some named colors to work with
|
||||
|
// From Interface by Stefan Petre
|
||||
|
// http://interface.eyecon.ro/
|
||||
|
|
||||
|
var colors = { |
||||
|
aqua:[0,255,255], |
||||
|
azure:[240,255,255], |
||||
|
beige:[245,245,220], |
||||
|
black:[0,0,0], |
||||
|
blue:[0,0,255], |
||||
|
brown:[165,42,42], |
||||
|
cyan:[0,255,255], |
||||
|
darkblue:[0,0,139], |
||||
|
darkcyan:[0,139,139], |
||||
|
darkgrey:[169,169,169], |
||||
|
darkgreen:[0,100,0], |
||||
|
darkkhaki:[189,183,107], |
||||
|
darkmagenta:[139,0,139], |
||||
|
darkolivegreen:[85,107,47], |
||||
|
darkorange:[255,140,0], |
||||
|
darkorchid:[153,50,204], |
||||
|
darkred:[139,0,0], |
||||
|
darksalmon:[233,150,122], |
||||
|
darkviolet:[148,0,211], |
||||
|
fuchsia:[255,0,255], |
||||
|
gold:[255,215,0], |
||||
|
green:[0,128,0], |
||||
|
indigo:[75,0,130], |
||||
|
khaki:[240,230,140], |
||||
|
lightblue:[173,216,230], |
||||
|
lightcyan:[224,255,255], |
||||
|
lightgreen:[144,238,144], |
||||
|
lightgrey:[211,211,211], |
||||
|
lightpink:[255,182,193], |
||||
|
lightyellow:[255,255,224], |
||||
|
lime:[0,255,0], |
||||
|
magenta:[255,0,255], |
||||
|
maroon:[128,0,0], |
||||
|
navy:[0,0,128], |
||||
|
olive:[128,128,0], |
||||
|
orange:[255,165,0], |
||||
|
pink:[255,192,203], |
||||
|
purple:[128,0,128], |
||||
|
violet:[128,0,128], |
||||
|
red:[255,0,0], |
||||
|
silver:[192,192,192], |
||||
|
white:[255,255,255], |
||||
|
yellow:[255,255,0], |
||||
|
transparent: [255,255,255] |
||||
|
}; |
||||
|
|
||||
|
/* |
||||
|
* jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
|
||||
|
* |
||||
|
* Uses the built in easing capabilities added In jQuery 1.1 |
||||
|
* to offer multiple easing options |
||||
|
* |
||||
|
* TERMS OF USE - jQuery Easing |
||||
|
* |
||||
|
* Open source under the BSD License. |
||||
|
* |
||||
|
* Copyright 2008 George McGinley Smith |
||||
|
* All rights reserved. |
||||
|
* |
||||
|
* Redistribution and use in source and binary forms, with or without modification, |
||||
|
* are permitted provided that the following conditions are met: |
||||
|
* |
||||
|
* Redistributions of source code must retain the above copyright notice, this list of |
||||
|
* conditions and the following disclaimer. |
||||
|
* Redistributions in binary form must reproduce the above copyright notice, this list |
||||
|
* of conditions and the following disclaimer in the documentation and/or other materials |
||||
|
* provided with the distribution. |
||||
|
* |
||||
|
* Neither the name of the author nor the names of contributors may be used to endorse |
||||
|
* or promote products derived from this software without specific prior written permission. |
||||
|
* |
||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY |
||||
|
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
||||
|
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE |
||||
|
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, |
||||
|
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE |
||||
|
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED |
||||
|
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING |
||||
|
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED |
||||
|
* OF THE POSSIBILITY OF SUCH DAMAGE. |
||||
|
* |
||||
|
*/ |
||||
|
|
||||
|
// t: current time, b: begInnIng value, c: change In value, d: duration
|
||||
|
$.easing.jswing = $.easing.swing; |
||||
|
|
||||
|
$.extend($.easing, |
||||
|
{ |
||||
|
def: 'easeOutQuad', |
||||
|
swing: function (x, t, b, c, d) { |
||||
|
//alert($.easing.default);
|
||||
|
return $.easing[$.easing.def](x, t, b, c, d); |
||||
|
}, |
||||
|
easeInQuad: function (x, t, b, c, d) { |
||||
|
return c*(t/=d)*t + b; |
||||
|
}, |
||||
|
easeOutQuad: function (x, t, b, c, d) { |
||||
|
return -c *(t/=d)*(t-2) + b; |
||||
|
}, |
||||
|
easeInOutQuad: function (x, t, b, c, d) { |
||||
|
if ((t/=d/2) < 1) return c/2*t*t + b; |
||||
|
return -c/2 * ((--t)*(t-2) - 1) + b; |
||||
|
}, |
||||
|
easeInCubic: function (x, t, b, c, d) { |
||||
|
return c*(t/=d)*t*t + b; |
||||
|
}, |
||||
|
easeOutCubic: function (x, t, b, c, d) { |
||||
|
return c*((t=t/d-1)*t*t + 1) + b; |
||||
|
}, |
||||
|
easeInOutCubic: function (x, t, b, c, d) { |
||||
|
if ((t/=d/2) < 1) return c/2*t*t*t + b; |
||||
|
return c/2*((t-=2)*t*t + 2) + b; |
||||
|
}, |
||||
|
easeInQuart: function (x, t, b, c, d) { |
||||
|
return c*(t/=d)*t*t*t + b; |
||||
|
}, |
||||
|
easeOutQuart: function (x, t, b, c, d) { |
||||
|
return -c * ((t=t/d-1)*t*t*t - 1) + b; |
||||
|
}, |
||||
|
easeInOutQuart: function (x, t, b, c, d) { |
||||
|
if ((t/=d/2) < 1) return c/2*t*t*t*t + b; |
||||
|
return -c/2 * ((t-=2)*t*t*t - 2) + b; |
||||
|
}, |
||||
|
easeInQuint: function (x, t, b, c, d) { |
||||
|
return c*(t/=d)*t*t*t*t + b; |
||||
|
}, |
||||
|
easeOutQuint: function (x, t, b, c, d) { |
||||
|
return c*((t=t/d-1)*t*t*t*t + 1) + b; |
||||
|
}, |
||||
|
easeInOutQuint: function (x, t, b, c, d) { |
||||
|
if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b; |
||||
|
return c/2*((t-=2)*t*t*t*t + 2) + b; |
||||
|
}, |
||||
|
easeInSine: function (x, t, b, c, d) { |
||||
|
return -c * Math.cos(t/d * (Math.PI/2)) + c + b; |
||||
|
}, |
||||
|
easeOutSine: function (x, t, b, c, d) { |
||||
|
return c * Math.sin(t/d * (Math.PI/2)) + b; |
||||
|
}, |
||||
|
easeInOutSine: function (x, t, b, c, d) { |
||||
|
return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b; |
||||
|
}, |
||||
|
easeInExpo: function (x, t, b, c, d) { |
||||
|
return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b; |
||||
|
}, |
||||
|
easeOutExpo: function (x, t, b, c, d) { |
||||
|
return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b; |
||||
|
}, |
||||
|
easeInOutExpo: function (x, t, b, c, d) { |
||||
|
if (t==0) return b; |
||||
|
if (t==d) return b+c; |
||||
|
if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b; |
||||
|
return c/2 * (-Math.pow(2, -10 * --t) + 2) + b; |
||||
|
}, |
||||
|
easeInCirc: function (x, t, b, c, d) { |
||||
|
return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b; |
||||
|
}, |
||||
|
easeOutCirc: function (x, t, b, c, d) { |
||||
|
return c * Math.sqrt(1 - (t=t/d-1)*t) + b; |
||||
|
}, |
||||
|
easeInOutCirc: function (x, t, b, c, d) { |
||||
|
if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b; |
||||
|
return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b; |
||||
|
}, |
||||
|
easeInElastic: function (x, t, b, c, d) { |
||||
|
var s=1.70158;var p=0;var a=c; |
||||
|
if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3; |
||||
|
if (a < Math.abs(c)) { a=c; var s=p/4; } |
||||
|
else var s = p/(2*Math.PI) * Math.asin (c/a); |
||||
|
return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b; |
||||
|
}, |
||||
|
easeOutElastic: function (x, t, b, c, d) { |
||||
|
var s=1.70158;var p=0;var a=c; |
||||
|
if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3; |
||||
|
if (a < Math.abs(c)) { a=c; var s=p/4; } |
||||
|
else var s = p/(2*Math.PI) * Math.asin (c/a); |
||||
|
return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b; |
||||
|
}, |
||||
|
easeInOutElastic: function (x, t, b, c, d) { |
||||
|
var s=1.70158;var p=0;var a=c; |
||||
|
if (t==0) return b; if ((t/=d/2)==2) return b+c; if (!p) p=d*(.3*1.5); |
||||
|
if (a < Math.abs(c)) { a=c; var s=p/4; } |
||||
|
else var s = p/(2*Math.PI) * Math.asin (c/a); |
||||
|
if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b; |
||||
|
return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b; |
||||
|
}, |
||||
|
easeInBack: function (x, t, b, c, d, s) { |
||||
|
if (s == undefined) s = 1.70158; |
||||
|
return c*(t/=d)*t*((s+1)*t - s) + b; |
||||
|
}, |
||||
|
easeOutBack: function (x, t, b, c, d, s) { |
||||
|
if (s == undefined) s = 1.70158; |
||||
|
return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b; |
||||
|
}, |
||||
|
easeInOutBack: function (x, t, b, c, d, s) { |
||||
|
if (s == undefined) s = 1.70158; |
||||
|
if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b; |
||||
|
return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b; |
||||
|
}, |
||||
|
easeInBounce: function (x, t, b, c, d) { |
||||
|
return c - $.easing.easeOutBounce (x, d-t, 0, c, d) + b; |
||||
|
}, |
||||
|
easeOutBounce: function (x, t, b, c, d) { |
||||
|
if ((t/=d) < (1/2.75)) { |
||||
|
return c*(7.5625*t*t) + b; |
||||
|
} else if (t < (2/2.75)) { |
||||
|
return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b; |
||||
|
} else if (t < (2.5/2.75)) { |
||||
|
return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b; |
||||
|
} else { |
||||
|
return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b; |
||||
|
} |
||||
|
}, |
||||
|
easeInOutBounce: function (x, t, b, c, d) { |
||||
|
if (t < d/2) return $.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b; |
||||
|
return $.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b; |
||||
|
} |
||||
|
}); |
||||
|
|
||||
|
/* |
||||
|
* |
||||
|
* TERMS OF USE - EASING EQUATIONS |
||||
|
* |
||||
|
* Open source under the BSD License. |
||||
|
* |
||||
|
* Copyright 2001 Robert Penner |
||||
|
* All rights reserved. |
||||
|
* |
||||
|
* Redistribution and use in source and binary forms, with or without modification, |
||||
|
* are permitted provided that the following conditions are met: |
||||
|
* |
||||
|
* Redistributions of source code must retain the above copyright notice, this list of |
||||
|
* conditions and the following disclaimer. |
||||
|
* Redistributions in binary form must reproduce the above copyright notice, this list |
||||
|
* of conditions and the following disclaimer in the documentation and/or other materials |
||||
|
* provided with the distribution. |
||||
|
* |
||||
|
* Neither the name of the author nor the names of contributors may be used to endorse |
||||
|
* or promote products derived from this software without specific prior written permission. |
||||
|
* |
||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY |
||||
|
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
||||
|
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE |
||||
|
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, |
||||
|
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE |
||||
|
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED |
||||
|
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING |
||||
|
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED |
||||
|
* OF THE POSSIBILITY OF SUCH DAMAGE. |
||||
|
* |
||||
|
*/ |
||||
|
|
||||
|
})(jQuery); |
||||
@ -0,0 +1,50 @@ |
|||||
|
/* |
||||
|
* jQuery UI Effects Drop 1.7 |
||||
|
* |
||||
|
* Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
|
||||
|
* Dual licensed under the MIT (MIT-LICENSE.txt) |
||||
|
* and GPL (GPL-LICENSE.txt) licenses. |
||||
|
* |
||||
|
* http://docs.jquery.com/UI/Effects/Drop
|
||||
|
* |
||||
|
* Depends: |
||||
|
* effects.core.js |
||||
|
*/ |
||||
|
(function($) { |
||||
|
|
||||
|
$.effects.drop = function(o) { |
||||
|
|
||||
|
return this.queue(function() { |
||||
|
|
||||
|
// Create element
|
||||
|
var el = $(this), props = ['position','top','left','opacity']; |
||||
|
|
||||
|
// Set options
|
||||
|
var mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode
|
||||
|
var direction = o.options.direction || 'left'; // Default Direction
|
||||
|
|
||||
|
// Adjust
|
||||
|
$.effects.save(el, props); el.show(); // Save & Show
|
||||
|
$.effects.createWrapper(el); // Create Wrapper
|
||||
|
var ref = (direction == 'up' || direction == 'down') ? 'top' : 'left'; |
||||
|
var motion = (direction == 'up' || direction == 'left') ? 'pos' : 'neg'; |
||||
|
var distance = o.options.distance || (ref == 'top' ? el.outerHeight({margin:true}) / 2 : el.outerWidth({margin:true}) / 2); |
||||
|
if (mode == 'show') el.css('opacity', 0).css(ref, motion == 'pos' ? -distance : distance); // Shift
|
||||
|
|
||||
|
// Animation
|
||||
|
var animation = {opacity: mode == 'show' ? 1 : 0}; |
||||
|
animation[ref] = (mode == 'show' ? (motion == 'pos' ? '+=' : '-=') : (motion == 'pos' ? '-=' : '+=')) + distance; |
||||
|
|
||||
|
// Animate
|
||||
|
el.animate(animation, { queue: false, duration: o.duration, easing: o.options.easing, complete: function() { |
||||
|
if(mode == 'hide') el.hide(); // Hide
|
||||
|
$.effects.restore(el, props); $.effects.removeWrapper(el); // Restore
|
||||
|
if(o.callback) o.callback.apply(this, arguments); // Callback
|
||||
|
el.dequeue(); |
||||
|
}}); |
||||
|
|
||||
|
}); |
||||
|
|
||||
|
}; |
||||
|
|
||||
|
})(jQuery); |
||||
@ -0,0 +1,79 @@ |
|||||
|
/* |
||||
|
* jQuery UI Effects Explode 1.7 |
||||
|
* |
||||
|
* Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
|
||||
|
* Dual licensed under the MIT (MIT-LICENSE.txt) |
||||
|
* and GPL (GPL-LICENSE.txt) licenses. |
||||
|
* |
||||
|
* http://docs.jquery.com/UI/Effects/Explode
|
||||
|
* |
||||
|
* Depends: |
||||
|
* effects.core.js |
||||
|
*/ |
||||
|
(function($) { |
||||
|
|
||||
|
$.effects.explode = function(o) { |
||||
|
|
||||
|
return this.queue(function() { |
||||
|
|
||||
|
var rows = o.options.pieces ? Math.round(Math.sqrt(o.options.pieces)) : 3; |
||||
|
var cells = o.options.pieces ? Math.round(Math.sqrt(o.options.pieces)) : 3; |
||||
|
|
||||
|
o.options.mode = o.options.mode == 'toggle' ? ($(this).is(':visible') ? 'hide' : 'show') : o.options.mode; |
||||
|
var el = $(this).show().css('visibility', 'hidden'); |
||||
|
var offset = el.offset(); |
||||
|
|
||||
|
//Substract the margins - not fixing the problem yet.
|
||||
|
offset.top -= parseInt(el.css("marginTop"),10) || 0; |
||||
|
offset.left -= parseInt(el.css("marginLeft"),10) || 0; |
||||
|
|
||||
|
var width = el.outerWidth(true); |
||||
|
var height = el.outerHeight(true); |
||||
|
|
||||
|
for(var i=0;i<rows;i++) { // =
|
||||
|
for(var j=0;j<cells;j++) { // ||
|
||||
|
el |
||||
|
.clone() |
||||
|
.appendTo('body') |
||||
|
.wrap('<div></div>') |
||||
|
.css({ |
||||
|
position: 'absolute', |
||||
|
visibility: 'visible', |
||||
|
left: -j*(width/cells), |
||||
|
top: -i*(height/rows) |
||||
|
}) |
||||
|
.parent() |
||||
|
.addClass('ui-effects-explode') |
||||
|
.css({ |
||||
|
position: 'absolute', |
||||
|
overflow: 'hidden', |
||||
|
width: width/cells, |
||||
|
height: height/rows, |
||||
|
left: offset.left + j*(width/cells) + (o.options.mode == 'show' ? (j-Math.floor(cells/2))*(width/cells) : 0), |
||||
|
top: offset.top + i*(height/rows) + (o.options.mode == 'show' ? (i-Math.floor(rows/2))*(height/rows) : 0), |
||||
|
opacity: o.options.mode == 'show' ? 0 : 1 |
||||
|
}).animate({ |
||||
|
left: offset.left + j*(width/cells) + (o.options.mode == 'show' ? 0 : (j-Math.floor(cells/2))*(width/cells)), |
||||
|
top: offset.top + i*(height/rows) + (o.options.mode == 'show' ? 0 : (i-Math.floor(rows/2))*(height/rows)), |
||||
|
opacity: o.options.mode == 'show' ? 1 : 0 |
||||
|
}, o.duration || 500); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
// Set a timeout, to call the callback approx. when the other animations have finished
|
||||
|
setTimeout(function() { |
||||
|
|
||||
|
o.options.mode == 'show' ? el.css({ visibility: 'visible' }) : el.css({ visibility: 'visible' }).hide(); |
||||
|
if(o.callback) o.callback.apply(el[0]); // Callback
|
||||
|
el.dequeue(); |
||||
|
|
||||
|
$('div.ui-effects-explode').remove(); |
||||
|
|
||||
|
}, o.duration || 500); |
||||
|
|
||||
|
|
||||
|
}); |
||||
|
|
||||
|
}; |
||||
|
|
||||
|
})(jQuery); |
||||
@ -0,0 +1,56 @@ |
|||||
|
/* |
||||
|
* jQuery UI Effects Fold 1.7 |
||||
|
* |
||||
|
* Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
|
||||
|
* Dual licensed under the MIT (MIT-LICENSE.txt) |
||||
|
* and GPL (GPL-LICENSE.txt) licenses. |
||||
|
* |
||||
|
* http://docs.jquery.com/UI/Effects/Fold
|
||||
|
* |
||||
|
* Depends: |
||||
|
* effects.core.js |
||||
|
*/ |
||||
|
(function($) { |
||||
|
|
||||
|
$.effects.fold = function(o) { |
||||
|
|
||||
|
return this.queue(function() { |
||||
|
|
||||
|
// Create element
|
||||
|
var el = $(this), props = ['position','top','left']; |
||||
|
|
||||
|
// Set options
|
||||
|
var mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode
|
||||
|
var size = o.options.size || 15; // Default fold size
|
||||
|
var horizFirst = !(!o.options.horizFirst); // Ensure a boolean value
|
||||
|
var duration = o.duration ? o.duration / 2 : $.fx.speeds._default / 2; |
||||
|
|
||||
|
// Adjust
|
||||
|
$.effects.save(el, props); el.show(); // Save & Show
|
||||
|
var wrapper = $.effects.createWrapper(el).css({overflow:'hidden'}); // Create Wrapper
|
||||
|
var widthFirst = ((mode == 'show') != horizFirst); |
||||
|
var ref = widthFirst ? ['width', 'height'] : ['height', 'width']; |
||||
|
var distance = widthFirst ? [wrapper.width(), wrapper.height()] : [wrapper.height(), wrapper.width()]; |
||||
|
var percent = /([0-9]+)%/.exec(size); |
||||
|
if(percent) size = parseInt(percent[1],10) / 100 * distance[mode == 'hide' ? 0 : 1]; |
||||
|
if(mode == 'show') wrapper.css(horizFirst ? {height: 0, width: size} : {height: size, width: 0}); // Shift
|
||||
|
|
||||
|
// Animation
|
||||
|
var animation1 = {}, animation2 = {}; |
||||
|
animation1[ref[0]] = mode == 'show' ? distance[0] : size; |
||||
|
animation2[ref[1]] = mode == 'show' ? distance[1] : 0; |
||||
|
|
||||
|
// Animate
|
||||
|
wrapper.animate(animation1, duration, o.options.easing) |
||||
|
.animate(animation2, duration, o.options.easing, function() { |
||||
|
if(mode == 'hide') el.hide(); // Hide
|
||||
|
$.effects.restore(el, props); $.effects.removeWrapper(el); // Restore
|
||||
|
if(o.callback) o.callback.apply(el[0], arguments); // Callback
|
||||
|
el.dequeue(); |
||||
|
}); |
||||
|
|
||||
|
}); |
||||
|
|
||||
|
}; |
||||
|
|
||||
|
})(jQuery); |
||||
@ -0,0 +1,48 @@ |
|||||
|
/* |
||||
|
* jQuery UI Effects Highlight 1.7 |
||||
|
* |
||||
|
* Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
|
||||
|
* Dual licensed under the MIT (MIT-LICENSE.txt) |
||||
|
* and GPL (GPL-LICENSE.txt) licenses. |
||||
|
* |
||||
|
* http://docs.jquery.com/UI/Effects/Highlight
|
||||
|
* |
||||
|
* Depends: |
||||
|
* effects.core.js |
||||
|
*/ |
||||
|
(function($) { |
||||
|
|
||||
|
$.effects.highlight = function(o) { |
||||
|
|
||||
|
return this.queue(function() { |
||||
|
|
||||
|
// Create element
|
||||
|
var el = $(this), props = ['backgroundImage','backgroundColor','opacity']; |
||||
|
|
||||
|
// Set options
|
||||
|
var mode = $.effects.setMode(el, o.options.mode || 'show'); // Set Mode
|
||||
|
var color = o.options.color || "#ffff99"; // Default highlight color
|
||||
|
var oldColor = el.css("backgroundColor"); |
||||
|
|
||||
|
// Adjust
|
||||
|
$.effects.save(el, props); el.show(); // Save & Show
|
||||
|
el.css({backgroundImage: 'none', backgroundColor: color}); // Shift
|
||||
|
|
||||
|
// Animation
|
||||
|
var animation = {backgroundColor: oldColor }; |
||||
|
if (mode == "hide") animation['opacity'] = 0; |
||||
|
|
||||
|
// Animate
|
||||
|
el.animate(animation, { queue: false, duration: o.duration, easing: o.options.easing, complete: function() { |
||||
|
if(mode == "hide") el.hide(); |
||||
|
$.effects.restore(el, props); |
||||
|
if (mode == "show" && $.browser.msie) this.style.removeAttribute('filter'); |
||||
|
if(o.callback) o.callback.apply(this, arguments); |
||||
|
el.dequeue(); |
||||
|
}}); |
||||
|
|
||||
|
}); |
||||
|
|
||||
|
}; |
||||
|
|
||||
|
})(jQuery); |
||||
@ -0,0 +1,56 @@ |
|||||
|
/* |
||||
|
* jQuery UI Effects Pulsate 1.7 |
||||
|
* |
||||
|
* Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
|
||||
|
* Dual licensed under the MIT (MIT-LICENSE.txt) |
||||
|
* and GPL (GPL-LICENSE.txt) licenses. |
||||
|
* |
||||
|
* http://docs.jquery.com/UI/Effects/Pulsate
|
||||
|
* |
||||
|
* Depends: |
||||
|
* effects.core.js |
||||
|
*/ |
||||
|
(function($) { |
||||
|
|
||||
|
$.effects.pulsate = function(o) { |
||||
|
|
||||
|
return this.queue(function() { |
||||
|
|
||||
|
// Create element
|
||||
|
var el = $(this); |
||||
|
|
||||
|
// Set options
|
||||
|
var mode = $.effects.setMode(el, o.options.mode || 'show'); // Set Mode
|
||||
|
var times = o.options.times || 5; // Default # of times
|
||||
|
var duration = o.duration ? o.duration / 2 : $.fx.speeds._default / 2; |
||||
|
|
||||
|
// Adjust
|
||||
|
if (mode == 'hide') times--; |
||||
|
if (el.is(':hidden')) { // Show fadeIn
|
||||
|
el.css('opacity', 0); |
||||
|
el.show(); // Show
|
||||
|
el.animate({opacity: 1}, duration, o.options.easing); |
||||
|
times = times-2; |
||||
|
} |
||||
|
|
||||
|
// Animate
|
||||
|
for (var i = 0; i < times; i++) { // Pulsate
|
||||
|
el.animate({opacity: 0}, duration, o.options.easing).animate({opacity: 1}, duration, o.options.easing); |
||||
|
}; |
||||
|
if (mode == 'hide') { // Last Pulse
|
||||
|
el.animate({opacity: 0}, duration, o.options.easing, function(){ |
||||
|
el.hide(); // Hide
|
||||
|
if(o.callback) o.callback.apply(this, arguments); // Callback
|
||||
|
}); |
||||
|
} else { |
||||
|
el.animate({opacity: 0}, duration, o.options.easing).animate({opacity: 1}, duration, o.options.easing, function(){ |
||||
|
if(o.callback) o.callback.apply(this, arguments); // Callback
|
||||
|
}); |
||||
|
}; |
||||
|
el.queue('fx', function() { el.dequeue(); }); |
||||
|
el.dequeue(); |
||||
|
}); |
||||
|
|
||||
|
}; |
||||
|
|
||||
|
})(jQuery); |
||||
@ -0,0 +1,180 @@ |
|||||
|
/* |
||||
|
* jQuery UI Effects Scale 1.7 |
||||
|
* |
||||
|
* Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
|
||||
|
* Dual licensed under the MIT (MIT-LICENSE.txt) |
||||
|
* and GPL (GPL-LICENSE.txt) licenses. |
||||
|
* |
||||
|
* http://docs.jquery.com/UI/Effects/Scale
|
||||
|
* |
||||
|
* Depends: |
||||
|
* effects.core.js |
||||
|
*/ |
||||
|
(function($) { |
||||
|
|
||||
|
$.effects.puff = function(o) { |
||||
|
|
||||
|
return this.queue(function() { |
||||
|
|
||||
|
// Create element
|
||||
|
var el = $(this); |
||||
|
|
||||
|
// Set options
|
||||
|
var options = $.extend(true, {}, o.options); |
||||
|
var mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode
|
||||
|
var percent = parseInt(o.options.percent,10) || 150; // Set default puff percent
|
||||
|
options.fade = true; // It's not a puff if it doesn't fade! :)
|
||||
|
var original = {height: el.height(), width: el.width()}; // Save original
|
||||
|
|
||||
|
// Adjust
|
||||
|
var factor = percent / 100; |
||||
|
el.from = (mode == 'hide') ? original : {height: original.height * factor, width: original.width * factor}; |
||||
|
|
||||
|
// Animation
|
||||
|
options.from = el.from; |
||||
|
options.percent = (mode == 'hide') ? percent : 100; |
||||
|
options.mode = mode; |
||||
|
|
||||
|
// Animate
|
||||
|
el.effect('scale', options, o.duration, o.callback); |
||||
|
el.dequeue(); |
||||
|
}); |
||||
|
|
||||
|
}; |
||||
|
|
||||
|
$.effects.scale = function(o) { |
||||
|
|
||||
|
return this.queue(function() { |
||||
|
|
||||
|
// Create element
|
||||
|
var el = $(this); |
||||
|
|
||||
|
// Set options
|
||||
|
var options = $.extend(true, {}, o.options); |
||||
|
var mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode
|
||||
|
var percent = parseInt(o.options.percent,10) || (parseInt(o.options.percent,10) == 0 ? 0 : (mode == 'hide' ? 0 : 100)); // Set default scaling percent
|
||||
|
var direction = o.options.direction || 'both'; // Set default axis
|
||||
|
var origin = o.options.origin; // The origin of the scaling
|
||||
|
if (mode != 'effect') { // Set default origin and restore for show/hide
|
||||
|
options.origin = origin || ['middle','center']; |
||||
|
options.restore = true; |
||||
|
} |
||||
|
var original = {height: el.height(), width: el.width()}; // Save original
|
||||
|
el.from = o.options.from || (mode == 'show' ? {height: 0, width: 0} : original); // Default from state
|
||||
|
|
||||
|
// Adjust
|
||||
|
var factor = { // Set scaling factor
|
||||
|
y: direction != 'horizontal' ? (percent / 100) : 1, |
||||
|
x: direction != 'vertical' ? (percent / 100) : 1 |
||||
|
}; |
||||
|
el.to = {height: original.height * factor.y, width: original.width * factor.x}; // Set to state
|
||||
|
|
||||
|
if (o.options.fade) { // Fade option to support puff
|
||||
|
if (mode == 'show') {el.from.opacity = 0; el.to.opacity = 1;}; |
||||
|
if (mode == 'hide') {el.from.opacity = 1; el.to.opacity = 0;}; |
||||
|
}; |
||||
|
|
||||
|
// Animation
|
||||
|
options.from = el.from; options.to = el.to; options.mode = mode; |
||||
|
|
||||
|
// Animate
|
||||
|
el.effect('size', options, o.duration, o.callback); |
||||
|
el.dequeue(); |
||||
|
}); |
||||
|
|
||||
|
}; |
||||
|
|
||||
|
$.effects.size = function(o) { |
||||
|
|
||||
|
return this.queue(function() { |
||||
|
|
||||
|
// Create element
|
||||
|
var el = $(this), props = ['position','top','left','width','height','overflow','opacity']; |
||||
|
var props1 = ['position','top','left','overflow','opacity']; // Always restore
|
||||
|
var props2 = ['width','height','overflow']; // Copy for children
|
||||
|
var cProps = ['fontSize']; |
||||
|
var vProps = ['borderTopWidth', 'borderBottomWidth', 'paddingTop', 'paddingBottom']; |
||||
|
var hProps = ['borderLeftWidth', 'borderRightWidth', 'paddingLeft', 'paddingRight']; |
||||
|
|
||||
|
// Set options
|
||||
|
var mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode
|
||||
|
var restore = o.options.restore || false; // Default restore
|
||||
|
var scale = o.options.scale || 'both'; // Default scale mode
|
||||
|
var origin = o.options.origin; // The origin of the sizing
|
||||
|
var original = {height: el.height(), width: el.width()}; // Save original
|
||||
|
el.from = o.options.from || original; // Default from state
|
||||
|
el.to = o.options.to || original; // Default to state
|
||||
|
// Adjust
|
||||
|
if (origin) { // Calculate baseline shifts
|
||||
|
var baseline = $.effects.getBaseline(origin, original); |
||||
|
el.from.top = (original.height - el.from.height) * baseline.y; |
||||
|
el.from.left = (original.width - el.from.width) * baseline.x; |
||||
|
el.to.top = (original.height - el.to.height) * baseline.y; |
||||
|
el.to.left = (original.width - el.to.width) * baseline.x; |
||||
|
}; |
||||
|
var factor = { // Set scaling factor
|
||||
|
from: {y: el.from.height / original.height, x: el.from.width / original.width}, |
||||
|
to: {y: el.to.height / original.height, x: el.to.width / original.width} |
||||
|
}; |
||||
|
if (scale == 'box' || scale == 'both') { // Scale the css box
|
||||
|
if (factor.from.y != factor.to.y) { // Vertical props scaling
|
||||
|
props = props.concat(vProps); |
||||
|
el.from = $.effects.setTransition(el, vProps, factor.from.y, el.from); |
||||
|
el.to = $.effects.setTransition(el, vProps, factor.to.y, el.to); |
||||
|
}; |
||||
|
if (factor.from.x != factor.to.x) { // Horizontal props scaling
|
||||
|
props = props.concat(hProps); |
||||
|
el.from = $.effects.setTransition(el, hProps, factor.from.x, el.from); |
||||
|
el.to = $.effects.setTransition(el, hProps, factor.to.x, el.to); |
||||
|
}; |
||||
|
}; |
||||
|
if (scale == 'content' || scale == 'both') { // Scale the content
|
||||
|
if (factor.from.y != factor.to.y) { // Vertical props scaling
|
||||
|
props = props.concat(cProps); |
||||
|
el.from = $.effects.setTransition(el, cProps, factor.from.y, el.from); |
||||
|
el.to = $.effects.setTransition(el, cProps, factor.to.y, el.to); |
||||
|
}; |
||||
|
}; |
||||
|
$.effects.save(el, restore ? props : props1); el.show(); // Save & Show
|
||||
|
$.effects.createWrapper(el); // Create Wrapper
|
||||
|
el.css('overflow','hidden').css(el.from); // Shift
|
||||
|
|
||||
|
// Animate
|
||||
|
if (scale == 'content' || scale == 'both') { // Scale the children
|
||||
|
vProps = vProps.concat(['marginTop','marginBottom']).concat(cProps); // Add margins/font-size
|
||||
|
hProps = hProps.concat(['marginLeft','marginRight']); // Add margins
|
||||
|
props2 = props.concat(vProps).concat(hProps); // Concat
|
||||
|
el.find("*[width]").each(function(){ |
||||
|
child = $(this); |
||||
|
if (restore) $.effects.save(child, props2); |
||||
|
var c_original = {height: child.height(), width: child.width()}; // Save original
|
||||
|
child.from = {height: c_original.height * factor.from.y, width: c_original.width * factor.from.x}; |
||||
|
child.to = {height: c_original.height * factor.to.y, width: c_original.width * factor.to.x}; |
||||
|
if (factor.from.y != factor.to.y) { // Vertical props scaling
|
||||
|
child.from = $.effects.setTransition(child, vProps, factor.from.y, child.from); |
||||
|
child.to = $.effects.setTransition(child, vProps, factor.to.y, child.to); |
||||
|
}; |
||||
|
if (factor.from.x != factor.to.x) { // Horizontal props scaling
|
||||
|
child.from = $.effects.setTransition(child, hProps, factor.from.x, child.from); |
||||
|
child.to = $.effects.setTransition(child, hProps, factor.to.x, child.to); |
||||
|
}; |
||||
|
child.css(child.from); // Shift children
|
||||
|
child.animate(child.to, o.duration, o.options.easing, function(){ |
||||
|
if (restore) $.effects.restore(child, props2); // Restore children
|
||||
|
}); // Animate children
|
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
// Animate
|
||||
|
el.animate(el.to, { queue: false, duration: o.duration, easing: o.options.easing, complete: function() { |
||||
|
if(mode == 'hide') el.hide(); // Hide
|
||||
|
$.effects.restore(el, restore ? props : props1); $.effects.removeWrapper(el); // Restore
|
||||
|
if(o.callback) o.callback.apply(this, arguments); // Callback
|
||||
|
el.dequeue(); |
||||
|
}}); |
||||
|
|
||||
|
}); |
||||
|
|
||||
|
}; |
||||
|
|
||||
|
})(jQuery); |
||||
@ -0,0 +1,57 @@ |
|||||
|
/* |
||||
|
* jQuery UI Effects Shake 1.7 |
||||
|
* |
||||
|
* Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
|
||||
|
* Dual licensed under the MIT (MIT-LICENSE.txt) |
||||
|
* and GPL (GPL-LICENSE.txt) licenses. |
||||
|
* |
||||
|
* http://docs.jquery.com/UI/Effects/Shake
|
||||
|
* |
||||
|
* Depends: |
||||
|
* effects.core.js |
||||
|
*/ |
||||
|
(function($) { |
||||
|
|
||||
|
$.effects.shake = function(o) { |
||||
|
|
||||
|
return this.queue(function() { |
||||
|
|
||||
|
// Create element
|
||||
|
var el = $(this), props = ['position','top','left']; |
||||
|
|
||||
|
// Set options
|
||||
|
var mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode
|
||||
|
var direction = o.options.direction || 'left'; // Default direction
|
||||
|
var distance = o.options.distance || 20; // Default distance
|
||||
|
var times = o.options.times || 3; // Default # of times
|
||||
|
var speed = o.duration || o.options.duration || 140; // Default speed per shake
|
||||
|
|
||||
|
// Adjust
|
||||
|
$.effects.save(el, props); el.show(); // Save & Show
|
||||
|
$.effects.createWrapper(el); // Create Wrapper
|
||||
|
var ref = (direction == 'up' || direction == 'down') ? 'top' : 'left'; |
||||
|
var motion = (direction == 'up' || direction == 'left') ? 'pos' : 'neg'; |
||||
|
|
||||
|
// Animation
|
||||
|
var animation = {}, animation1 = {}, animation2 = {}; |
||||
|
animation[ref] = (motion == 'pos' ? '-=' : '+=') + distance; |
||||
|
animation1[ref] = (motion == 'pos' ? '+=' : '-=') + distance * 2; |
||||
|
animation2[ref] = (motion == 'pos' ? '-=' : '+=') + distance * 2; |
||||
|
|
||||
|
// Animate
|
||||
|
el.animate(animation, speed, o.options.easing); |
||||
|
for (var i = 1; i < times; i++) { // Shakes
|
||||
|
el.animate(animation1, speed, o.options.easing).animate(animation2, speed, o.options.easing); |
||||
|
}; |
||||
|
el.animate(animation1, speed, o.options.easing). |
||||
|
animate(animation, speed / 2, o.options.easing, function(){ // Last shake
|
||||
|
$.effects.restore(el, props); $.effects.removeWrapper(el); // Restore
|
||||
|
if(o.callback) o.callback.apply(this, arguments); // Callback
|
||||
|
}); |
||||
|
el.queue('fx', function() { el.dequeue(); }); |
||||
|
el.dequeue(); |
||||
|
}); |
||||
|
|
||||
|
}; |
||||
|
|
||||
|
})(jQuery); |
||||
@ -0,0 +1,50 @@ |
|||||
|
/* |
||||
|
* jQuery UI Effects Slide 1.7 |
||||
|
* |
||||
|
* Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
|
||||
|
* Dual licensed under the MIT (MIT-LICENSE.txt) |
||||
|
* and GPL (GPL-LICENSE.txt) licenses. |
||||
|
* |
||||
|
* http://docs.jquery.com/UI/Effects/Slide
|
||||
|
* |
||||
|
* Depends: |
||||
|
* effects.core.js |
||||
|
*/ |
||||
|
(function($) { |
||||
|
|
||||
|
$.effects.slide = function(o) { |
||||
|
|
||||
|
return this.queue(function() { |
||||
|
|
||||
|
// Create element
|
||||
|
var el = $(this), props = ['position','top','left']; |
||||
|
|
||||
|
// Set options
|
||||
|
var mode = $.effects.setMode(el, o.options.mode || 'show'); // Set Mode
|
||||
|
var direction = o.options.direction || 'left'; // Default Direction
|
||||
|
|
||||
|
// Adjust
|
||||
|
$.effects.save(el, props); el.show(); // Save & Show
|
||||
|
$.effects.createWrapper(el).css({overflow:'hidden'}); // Create Wrapper
|
||||
|
var ref = (direction == 'up' || direction == 'down') ? 'top' : 'left'; |
||||
|
var motion = (direction == 'up' || direction == 'left') ? 'pos' : 'neg'; |
||||
|
var distance = o.options.distance || (ref == 'top' ? el.outerHeight({margin:true}) : el.outerWidth({margin:true})); |
||||
|
if (mode == 'show') el.css(ref, motion == 'pos' ? -distance : distance); // Shift
|
||||
|
|
||||
|
// Animation
|
||||
|
var animation = {}; |
||||
|
animation[ref] = (mode == 'show' ? (motion == 'pos' ? '+=' : '-=') : (motion == 'pos' ? '-=' : '+=')) + distance; |
||||
|
|
||||
|
// Animate
|
||||
|
el.animate(animation, { queue: false, duration: o.duration, easing: o.options.easing, complete: function() { |
||||
|
if(mode == 'hide') el.hide(); // Hide
|
||||
|
$.effects.restore(el, props); $.effects.removeWrapper(el); // Restore
|
||||
|
if(o.callback) o.callback.apply(this, arguments); // Callback
|
||||
|
el.dequeue(); |
||||
|
}}); |
||||
|
|
||||
|
}); |
||||
|
|
||||
|
}; |
||||
|
|
||||
|
})(jQuery); |
||||
@ -0,0 +1,45 @@ |
|||||
|
/* |
||||
|
* jQuery UI Effects Transfer 1.7 |
||||
|
* |
||||
|
* Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
|
||||
|
* Dual licensed under the MIT (MIT-LICENSE.txt) |
||||
|
* and GPL (GPL-LICENSE.txt) licenses. |
||||
|
* |
||||
|
* http://docs.jquery.com/UI/Effects/Transfer
|
||||
|
* |
||||
|
* Depends: |
||||
|
* effects.core.js |
||||
|
*/ |
||||
|
(function($) { |
||||
|
|
||||
|
$.effects.transfer = function(o) { |
||||
|
return this.queue(function() { |
||||
|
var elem = $(this), |
||||
|
target = $(o.options.to), |
||||
|
endPosition = target.offset(), |
||||
|
animation = { |
||||
|
top: endPosition.top, |
||||
|
left: endPosition.left, |
||||
|
height: target.innerHeight(), |
||||
|
width: target.innerWidth() |
||||
|
}, |
||||
|
startPosition = elem.offset(), |
||||
|
transfer = $('<div class="ui-effects-transfer"></div>') |
||||
|
.appendTo(document.body) |
||||
|
.addClass(o.options.className) |
||||
|
.css({ |
||||
|
top: startPosition.top, |
||||
|
left: startPosition.left, |
||||
|
height: elem.innerHeight(), |
||||
|
width: elem.innerWidth(), |
||||
|
position: 'absolute' |
||||
|
}) |
||||
|
.animate(animation, o.duration, o.options.easing, function() { |
||||
|
transfer.remove(); |
||||
|
(o.callback && o.callback.apply(elem[0], arguments)); |
||||
|
elem.dequeue(); |
||||
|
}); |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
})(jQuery); |
||||
@ -0,0 +1,762 @@ |
|||||
|
/* Arabic Translation for jQuery UI date picker plugin. */ |
||||
|
/* Khaled Al Horani -- koko.dw@gmail.com */ |
||||
|
/* خالد الحوراني -- koko.dw@gmail.com */ |
||||
|
/* NOTE: monthNames are the original months names and they are the Arabic names, not the new months name فبراير - يناير and there isn't any Arabic roots for these months */ |
||||
|
jQuery(function($){ |
||||
|
$.datepicker.regional['ar'] = { |
||||
|
closeText: 'إغلاق', |
||||
|
prevText: '<السابق', |
||||
|
nextText: 'التالي>', |
||||
|
currentText: 'اليوم', |
||||
|
monthNames: ['كانون الثاني', 'شباط', 'آذار', 'نيسان', 'آذار', 'حزيران', |
||||
|
'تموز', 'آب', 'أيلول', 'تشرين الأول', 'تشرين الثاني', 'كانون الأول'], |
||||
|
monthNamesShort: ['1','2','3','4','5','6','7','8','9','10','11','12'], |
||||
|
dayNames: ['السبت', 'الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة'], |
||||
|
dayNamesShort: ['سبت', 'أحد', 'اثنين', 'ثلاثاء', 'أربعاء', 'خميس', 'جمعة'], |
||||
|
dayNamesMin: ['سبت', 'أحد', 'اثنين', 'ثلاثاء', 'أربعاء', 'خميس', 'جمعة'], |
||||
|
dateFormat: 'dd/mm/yy', firstDay: 0, |
||||
|
isRTL: true}; |
||||
|
$.datepicker.setDefaults($.datepicker.regional['ar']); |
||||
|
});/* Bulgarian initialisation for the jQuery UI date picker plugin. */ |
||||
|
/* Written by Stoyan Kyosev (http://svest.org). */ |
||||
|
jQuery(function($){ |
||||
|
$.datepicker.regional['bg'] = { |
||||
|
closeText: 'затвори', |
||||
|
prevText: '<назад', |
||||
|
nextText: 'напред>', |
||||
|
nextBigText: '>>', |
||||
|
currentText: 'днес', |
||||
|
monthNames: ['Януари','Февруари','Март','Април','Май','Юни', |
||||
|
'Юли','Август','Септември','Октомври','Ноември','Декември'], |
||||
|
monthNamesShort: ['Яну','Фев','Мар','Апр','Май','Юни', |
||||
|
'Юли','Авг','Сеп','Окт','Нов','Дек'], |
||||
|
dayNames: ['Неделя','Понеделник','Вторник','Сряда','Четвъртък','Петък','Събота'], |
||||
|
dayNamesShort: ['Нед','Пон','Вто','Сря','Чет','Пет','Съб'], |
||||
|
dayNamesMin: ['Не','По','Вт','Ср','Че','Пе','Съ'], |
||||
|
dateFormat: 'dd.mm.yy', firstDay: 1, |
||||
|
isRTL: false}; |
||||
|
$.datepicker.setDefaults($.datepicker.regional['bg']); |
||||
|
}); |
||||
|
/* Inicialitzaci� en catal� per a l'extenci� 'calendar' per jQuery. */ |
||||
|
/* Writers: (joan.leon@gmail.com). */ |
||||
|
jQuery(function($){ |
||||
|
$.datepicker.regional['ca'] = { |
||||
|
closeText: 'Tancar', |
||||
|
prevText: '<Ant', |
||||
|
nextText: 'Seg>', |
||||
|
currentText: 'Avui', |
||||
|
monthNames: ['Gener','Febrer','Març','Abril','Maig','Juny', |
||||
|
'Juliol','Agost','Setembre','Octubre','Novembre','Desembre'], |
||||
|
monthNamesShort: ['Gen','Feb','Mar','Abr','Mai','Jun', |
||||
|
'Jul','Ago','Set','Oct','Nov','Des'], |
||||
|
dayNames: ['Diumenge','Dilluns','Dimarts','Dimecres','Dijous','Divendres','Dissabte'], |
||||
|
dayNamesShort: ['Dug','Dln','Dmt','Dmc','Djs','Dvn','Dsb'], |
||||
|
dayNamesMin: ['Dg','Dl','Dt','Dc','Dj','Dv','Ds'], |
||||
|
dateFormat: 'mm/dd/yy', firstDay: 0, |
||||
|
isRTL: false}; |
||||
|
$.datepicker.setDefaults($.datepicker.regional['ca']); |
||||
|
});/* Czech initialisation for the jQuery UI date picker plugin. */ |
||||
|
/* Written by Tomas Muller (tomas@tomas-muller.net). */ |
||||
|
jQuery(function($){ |
||||
|
$.datepicker.regional['cs'] = { |
||||
|
closeText: 'Zavřít', |
||||
|
prevText: '<Dříve', |
||||
|
nextText: 'Později>', |
||||
|
currentText: 'Nyní', |
||||
|
monthNames: ['leden','únor','březen','duben','květen','červen', |
||||
|
'červenec','srpen','září','říjen','listopad','prosinec'], |
||||
|
monthNamesShort: ['led','úno','bře','dub','kvě','čer', |
||||
|
'čvc','srp','zář','říj','lis','pro'], |
||||
|
dayNames: ['neděle', 'pondělí', 'úterý', 'středa', 'čtvrtek', 'pátek', 'sobota'], |
||||
|
dayNamesShort: ['ne', 'po', 'út', 'st', 'čt', 'pá', 'so'], |
||||
|
dayNamesMin: ['ne','po','út','st','čt','pá','so'], |
||||
|
dateFormat: 'dd.mm.yy', firstDay: 1, |
||||
|
isRTL: false}; |
||||
|
$.datepicker.setDefaults($.datepicker.regional['cs']); |
||||
|
}); |
||||
|
/* Danish initialisation for the jQuery UI date picker plugin. */ |
||||
|
/* Written by Jan Christensen ( deletestuff@gmail.com). */ |
||||
|
jQuery(function($){ |
||||
|
$.datepicker.regional['da'] = { |
||||
|
closeText: 'Luk', |
||||
|
prevText: '<Forrige', |
||||
|
nextText: 'Næste>', |
||||
|
currentText: 'Idag', |
||||
|
monthNames: ['Januar','Februar','Marts','April','Maj','Juni', |
||||
|
'Juli','August','September','Oktober','November','December'], |
||||
|
monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun', |
||||
|
'Jul','Aug','Sep','Okt','Nov','Dec'], |
||||
|
dayNames: ['Søndag','Mandag','Tirsdag','Onsdag','Torsdag','Fredag','Lørdag'], |
||||
|
dayNamesShort: ['Søn','Man','Tir','Ons','Tor','Fre','Lør'], |
||||
|
dayNamesMin: ['Sø','Ma','Ti','On','To','Fr','Lø'], |
||||
|
dateFormat: 'dd-mm-yy', firstDay: 0, |
||||
|
isRTL: false}; |
||||
|
$.datepicker.setDefaults($.datepicker.regional['da']); |
||||
|
}); |
||||
|
/* German initialisation for the jQuery UI date picker plugin. */ |
||||
|
/* Written by Milian Wolff (mail@milianw.de). */ |
||||
|
jQuery(function($){ |
||||
|
$.datepicker.regional['de'] = { |
||||
|
closeText: 'schließen', |
||||
|
prevText: '<zurück', |
||||
|
nextText: 'Vor>', |
||||
|
currentText: 'heute', |
||||
|
monthNames: ['Januar','Februar','März','April','Mai','Juni', |
||||
|
'Juli','August','September','Oktober','November','Dezember'], |
||||
|
monthNamesShort: ['Jan','Feb','Mär','Apr','Mai','Jun', |
||||
|
'Jul','Aug','Sep','Okt','Nov','Dez'], |
||||
|
dayNames: ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'], |
||||
|
dayNamesShort: ['So','Mo','Di','Mi','Do','Fr','Sa'], |
||||
|
dayNamesMin: ['So','Mo','Di','Mi','Do','Fr','Sa'], |
||||
|
dateFormat: 'dd.mm.yy', firstDay: 1, |
||||
|
isRTL: false}; |
||||
|
$.datepicker.setDefaults($.datepicker.regional['de']); |
||||
|
}); |
||||
|
/* Greek (el) initialisation for the jQuery UI date picker plugin. */ |
||||
|
/* Written by Alex Cicovic (http://www.alexcicovic.com) */ |
||||
|
jQuery(function($){ |
||||
|
$.datepicker.regional['el'] = { |
||||
|
closeText: 'Κλείσιμο', |
||||
|
prevText: 'Προηγούμενος', |
||||
|
nextText: 'Επόμενος', |
||||
|
currentText: 'Τρέχων Μήνας', |
||||
|
monthNames: ['Ιανουάριος','Φεβρουάριος','Μάρτιος','Απρίλιος','Μάιος','Ιούνιος', |
||||
|
'Ιούλιος','Αύγουστος','Σεπτέμβριος','Οκτώβριος','Νοέμβριος','Δεκέμβριος'], |
||||
|
monthNamesShort: ['Ιαν','Φεβ','Μαρ','Απρ','Μαι','Ιουν', |
||||
|
'Ιουλ','Αυγ','Σεπ','Οκτ','Νοε','Δεκ'], |
||||
|
dayNames: ['Κυριακή','Δευτέρα','Τρίτη','Τετάρτη','Πέμπτη','Παρασκευή','Σάββατο'], |
||||
|
dayNamesShort: ['Κυρ','Δευ','Τρι','Τετ','Πεμ','Παρ','Σαβ'], |
||||
|
dayNamesMin: ['Κυ','Δε','Τρ','Τε','Πε','Πα','Σα'], |
||||
|
dateFormat: 'dd/mm/yy', firstDay: 1, |
||||
|
isRTL: false}; |
||||
|
$.datepicker.setDefaults($.datepicker.regional['el']); |
||||
|
});/* Esperanto initialisation for the jQuery UI date picker plugin. */ |
||||
|
/* Written by Olivier M. (olivierweb@ifrance.com). */ |
||||
|
jQuery(function($){ |
||||
|
$.datepicker.regional['eo'] = { |
||||
|
closeText: 'Fermi', |
||||
|
prevText: '<Anta', |
||||
|
nextText: 'Sekv>', |
||||
|
currentText: 'Nuna', |
||||
|
monthNames: ['Januaro','Februaro','Marto','Aprilo','Majo','Junio', |
||||
|
'Julio','Aŭgusto','Septembro','Oktobro','Novembro','Decembro'], |
||||
|
monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun', |
||||
|
'Jul','Aŭg','Sep','Okt','Nov','Dec'], |
||||
|
dayNames: ['Dimanĉo','Lundo','Mardo','Merkredo','Ĵaŭdo','Vendredo','Sabato'], |
||||
|
dayNamesShort: ['Dim','Lun','Mar','Mer','Ĵaŭ','Ven','Sab'], |
||||
|
dayNamesMin: ['Di','Lu','Ma','Me','Ĵa','Ve','Sa'], |
||||
|
dateFormat: 'dd/mm/yy', firstDay: 0, |
||||
|
isRTL: false}; |
||||
|
$.datepicker.setDefaults($.datepicker.regional['eo']); |
||||
|
}); |
||||
|
/* Inicializaci�n en espa�ol para la extensi�n 'UI date picker' para jQuery. */ |
||||
|
/* Traducido por Vester (xvester@gmail.com). */ |
||||
|
jQuery(function($){ |
||||
|
$.datepicker.regional['es'] = { |
||||
|
closeText: 'Cerrar', |
||||
|
prevText: '<Ant', |
||||
|
nextText: 'Sig>', |
||||
|
currentText: 'Hoy', |
||||
|
monthNames: ['Enero','Febrero','Marzo','Abril','Mayo','Junio', |
||||
|
'Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'], |
||||
|
monthNamesShort: ['Ene','Feb','Mar','Abr','May','Jun', |
||||
|
'Jul','Ago','Sep','Oct','Nov','Dic'], |
||||
|
dayNames: ['Domingo','Lunes','Martes','Miércoles','Jueves','Viernes','Sábado'], |
||||
|
dayNamesShort: ['Dom','Lun','Mar','Mié','Juv','Vie','Sáb'], |
||||
|
dayNamesMin: ['Do','Lu','Ma','Mi','Ju','Vi','Sá'], |
||||
|
dateFormat: 'dd/mm/yy', firstDay: 0, |
||||
|
isRTL: false}; |
||||
|
$.datepicker.setDefaults($.datepicker.regional['es']); |
||||
|
});/* Persian (Farsi) Translation for the jQuery UI date picker plugin. */ |
||||
|
/* Javad Mowlanezhad -- jmowla@gmail.com */ |
||||
|
/* Jalali calendar should supported soon! (Its implemented but I have to test it) */ |
||||
|
jQuery(function($) { |
||||
|
$.datepicker.regional['fa'] = { |
||||
|
closeText: 'بستن', |
||||
|
prevText: '<قبلي', |
||||
|
nextText: 'بعدي>', |
||||
|
currentText: 'امروز', |
||||
|
monthNames: ['فروردين','ارديبهشت','خرداد','تير','مرداد','شهريور', |
||||
|
'مهر','آبان','آذر','دي','بهمن','اسفند'], |
||||
|
monthNamesShort: ['1','2','3','4','5','6','7','8','9','10','11','12'], |
||||
|
dayNames: ['يکشنبه','دوشنبه','سهشنبه','چهارشنبه','پنجشنبه','جمعه','شنبه'], |
||||
|
dayNamesShort: ['ي','د','س','چ','پ','ج', 'ش'], |
||||
|
dayNamesMin: ['ي','د','س','چ','پ','ج', 'ش'], |
||||
|
dateFormat: 'yy/mm/dd', firstDay: 6, |
||||
|
isRTL: true}; |
||||
|
$.datepicker.setDefaults($.datepicker.regional['fa']); |
||||
|
});/* Finnish initialisation for the jQuery UI date picker plugin. */ |
||||
|
/* Written by Harri Kilpi� (harrikilpio@gmail.com). */ |
||||
|
jQuery(function($){ |
||||
|
$.datepicker.regional['fi'] = { |
||||
|
closeText: 'Sulje', |
||||
|
prevText: '«Edellinen', |
||||
|
nextText: 'Seuraava»', |
||||
|
currentText: 'Tänään', |
||||
|
monthNames: ['Tammikuu','Helmikuu','Maaliskuu','Huhtikuu','Toukokuu','Kesäkuu', |
||||
|
'Heinäkuu','Elokuu','Syyskuu','Lokakuu','Marraskuu','Joulukuu'], |
||||
|
monthNamesShort: ['Tammi','Helmi','Maalis','Huhti','Touko','Kesä', |
||||
|
'Heinä','Elo','Syys','Loka','Marras','Joulu'], |
||||
|
dayNamesShort: ['Su','Ma','Ti','Ke','To','Pe','Su'], |
||||
|
dayNames: ['Sunnuntai','Maanantai','Tiistai','Keskiviikko','Torstai','Perjantai','Lauantai'], |
||||
|
dayNamesMin: ['Su','Ma','Ti','Ke','To','Pe','La'], |
||||
|
dateFormat: 'dd.mm.yy', firstDay: 1, |
||||
|
isRTL: false}; |
||||
|
$.datepicker.setDefaults($.datepicker.regional['fi']); |
||||
|
}); |
||||
|
/* French initialisation for the jQuery UI date picker plugin. */ |
||||
|
/* Written by Keith Wood (kbwood@virginbroadband.com.au) and Stéphane Nahmani (sholby@sholby.net). */ |
||||
|
jQuery(function($){ |
||||
|
$.datepicker.regional['fr'] = { |
||||
|
closeText: 'Fermer', |
||||
|
prevText: '<Préc', |
||||
|
nextText: 'Suiv>', |
||||
|
currentText: 'Courant', |
||||
|
monthNames: ['Janvier','Février','Mars','Avril','Mai','Juin', |
||||
|
'Juillet','Août','Septembre','Octobre','Novembre','Décembre'], |
||||
|
monthNamesShort: ['Jan','Fév','Mar','Avr','Mai','Jun', |
||||
|
'Jul','Aoû','Sep','Oct','Nov','Déc'], |
||||
|
dayNames: ['Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'], |
||||
|
dayNamesShort: ['Dim','Lun','Mar','Mer','Jeu','Ven','Sam'], |
||||
|
dayNamesMin: ['Di','Lu','Ma','Me','Je','Ve','Sa'], |
||||
|
dateFormat: 'dd/mm/yy', firstDay: 1, |
||||
|
isRTL: false}; |
||||
|
$.datepicker.setDefaults($.datepicker.regional['fr']); |
||||
|
});/* Hebrew initialisation for the UI Datepicker extension. */ |
||||
|
/* Written by Amir Hardon (ahardon at gmail dot com). */ |
||||
|
jQuery(function($){ |
||||
|
$.datepicker.regional['he'] = { |
||||
|
closeText: 'סגור', |
||||
|
prevText: '<הקודם', |
||||
|
nextText: 'הבא>', |
||||
|
currentText: 'היום', |
||||
|
monthNames: ['ינואר','פברואר','מרץ','אפריל','מאי','יוני', |
||||
|
'יולי','אוגוסט','ספטמבר','אוקטובר','נובמבר','דצמבר'], |
||||
|
monthNamesShort: ['1','2','3','4','5','6', |
||||
|
'7','8','9','10','11','12'], |
||||
|
dayNames: ['ראשון','שני','שלישי','רביעי','חמישי','שישי','שבת'], |
||||
|
dayNamesShort: ['א\'','ב\'','ג\'','ד\'','ה\'','ו\'','שבת'], |
||||
|
dayNamesMin: ['א\'','ב\'','ג\'','ד\'','ה\'','ו\'','שבת'], |
||||
|
dateFormat: 'dd/mm/yy', firstDay: 0, |
||||
|
isRTL: true}; |
||||
|
$.datepicker.setDefaults($.datepicker.regional['he']); |
||||
|
}); |
||||
|
/* Croatian i18n for the jQuery UI date picker plugin. */ |
||||
|
/* Written by Vjekoslav Nesek. */ |
||||
|
jQuery(function($){ |
||||
|
$.datepicker.regional['hr'] = { |
||||
|
closeText: 'Zatvori', |
||||
|
prevText: '<', |
||||
|
nextText: '>', |
||||
|
currentText: 'Danas', |
||||
|
monthNames: ['Siječanj','Veljača','Ožujak','Travanj','Svibanj','Lipani', |
||||
|
'Srpanj','Kolovoz','Rujan','Listopad','Studeni','Prosinac'], |
||||
|
monthNamesShort: ['Sij','Velj','Ožu','Tra','Svi','Lip', |
||||
|
'Srp','Kol','Ruj','Lis','Stu','Pro'], |
||||
|
dayNames: ['Nedjalja','Ponedjeljak','Utorak','Srijeda','Četvrtak','Petak','Subota'], |
||||
|
dayNamesShort: ['Ned','Pon','Uto','Sri','Čet','Pet','Sub'], |
||||
|
dayNamesMin: ['Ne','Po','Ut','Sr','Če','Pe','Su'], |
||||
|
dateFormat: 'dd.mm.yy.', firstDay: 1, |
||||
|
isRTL: false}; |
||||
|
$.datepicker.setDefaults($.datepicker.regional['hr']); |
||||
|
});/* Hungarian initialisation for the jQuery UI date picker plugin. */ |
||||
|
/* Written by Istvan Karaszi (jquerycalendar@spam.raszi.hu). */ |
||||
|
jQuery(function($){ |
||||
|
$.datepicker.regional['hu'] = { |
||||
|
closeText: 'bezárás', |
||||
|
prevText: '« vissza', |
||||
|
nextText: 'előre »', |
||||
|
currentText: 'ma', |
||||
|
monthNames: ['Január', 'Február', 'Március', 'Április', 'Május', 'Június', |
||||
|
'Július', 'Augusztus', 'Szeptember', 'Október', 'November', 'December'], |
||||
|
monthNamesShort: ['Jan', 'Feb', 'Már', 'Ápr', 'Máj', 'Jún', |
||||
|
'Júl', 'Aug', 'Szep', 'Okt', 'Nov', 'Dec'], |
||||
|
dayNames: ['Vasámap', 'Hétfö', 'Kedd', 'Szerda', 'Csütörtök', 'Péntek', 'Szombat'], |
||||
|
dayNamesShort: ['Vas', 'Hét', 'Ked', 'Sze', 'Csü', 'Pén', 'Szo'], |
||||
|
dayNamesMin: ['V', 'H', 'K', 'Sze', 'Cs', 'P', 'Szo'], |
||||
|
dateFormat: 'yy-mm-dd', firstDay: 1, |
||||
|
isRTL: false}; |
||||
|
$.datepicker.setDefaults($.datepicker.regional['hu']); |
||||
|
}); |
||||
|
/* Armenian(UTF-8) initialisation for the jQuery UI date picker plugin. */ |
||||
|
/* Written by Levon Zakaryan (levon.zakaryan@gmail.com)*/ |
||||
|
jQuery(function($){ |
||||
|
$.datepicker.regional['hy'] = { |
||||
|
closeText: 'Փակել', |
||||
|
prevText: '<Նախ.', |
||||
|
nextText: 'Հաջ.>', |
||||
|
currentText: 'Այսօր', |
||||
|
monthNames: ['Հունվար','Փետրվար','Մարտ','Ապրիլ','Մայիս','Հունիս', |
||||
|
'Հուլիս','Օգոստոս','Սեպտեմբեր','Հոկտեմբեր','Նոյեմբեր','Դեկտեմբեր'], |
||||
|
monthNamesShort: ['Հունվ','Փետր','Մարտ','Ապր','Մայիս','Հունիս', |
||||
|
'Հուլ','Օգս','Սեպ','Հոկ','Նոյ','Դեկ'], |
||||
|
dayNames: ['կիրակի','եկուշաբթի','երեքշաբթի','չորեքշաբթի','հինգշաբթի','ուրբաթ','շաբաթ'], |
||||
|
dayNamesShort: ['կիր','երկ','երք','չրք','հնգ','ուրբ','շբթ'], |
||||
|
dayNamesMin: ['կիր','երկ','երք','չրք','հնգ','ուրբ','շբթ'], |
||||
|
dateFormat: 'dd.mm.yy', firstDay: 1, |
||||
|
isRTL: false}; |
||||
|
$.datepicker.setDefaults($.datepicker.regional['hy']); |
||||
|
});/* Indonesian initialisation for the jQuery UI date picker plugin. */ |
||||
|
/* Written by Deden Fathurahman (dedenf@gmail.com). */ |
||||
|
jQuery(function($){ |
||||
|
$.datepicker.regional['id'] = { |
||||
|
closeText: 'Tutup', |
||||
|
prevText: '<mundur', |
||||
|
nextText: 'maju>', |
||||
|
currentText: 'hari ini', |
||||
|
monthNames: ['Januari','Februari','Maret','April','Mei','Juni', |
||||
|
'Juli','Agustus','September','Oktober','Nopember','Desember'], |
||||
|
monthNamesShort: ['Jan','Feb','Mar','Apr','Mei','Jun', |
||||
|
'Jul','Agus','Sep','Okt','Nop','Des'], |
||||
|
dayNames: ['Minggu','Senin','Selasa','Rabu','Kamis','Jumat','Sabtu'], |
||||
|
dayNamesShort: ['Min','Sen','Sel','Rab','kam','Jum','Sab'], |
||||
|
dayNamesMin: ['Mg','Sn','Sl','Rb','Km','jm','Sb'], |
||||
|
dateFormat: 'dd/mm/yy', firstDay: 0, |
||||
|
isRTL: false}; |
||||
|
$.datepicker.setDefaults($.datepicker.regional['id']); |
||||
|
});/* Icelandic initialisation for the jQuery UI date picker plugin. */ |
||||
|
/* Written by Haukur H. Thorsson (haukur@eskill.is). */ |
||||
|
jQuery(function($){ |
||||
|
$.datepicker.regional['is'] = { |
||||
|
closeText: 'Loka', |
||||
|
prevText: '< Fyrri', |
||||
|
nextText: 'Næsti >', |
||||
|
currentText: 'Í dag', |
||||
|
monthNames: ['Janúar','Febrúar','Mars','Apríl','Maí','Júní', |
||||
|
'Júlí','Ágúst','September','Október','Nóvember','Desember'], |
||||
|
monthNamesShort: ['Jan','Feb','Mar','Apr','Maí','Jún', |
||||
|
'Júl','Ágú','Sep','Okt','Nóv','Des'], |
||||
|
dayNames: ['Sunnudagur','Mánudagur','Þriðjudagur','Miðvikudagur','Fimmtudagur','Föstudagur','Laugardagur'], |
||||
|
dayNamesShort: ['Sun','Mán','Þri','Mið','Fim','Fös','Lau'], |
||||
|
dayNamesMin: ['Su','Má','Þr','Mi','Fi','Fö','La'], |
||||
|
dateFormat: 'dd/mm/yy', firstDay: 0, |
||||
|
isRTL: false}; |
||||
|
$.datepicker.setDefaults($.datepicker.regional['is']); |
||||
|
});/* Italian initialisation for the jQuery UI date picker plugin. */ |
||||
|
/* Written by Apaella (apaella@gmail.com). */ |
||||
|
jQuery(function($){ |
||||
|
$.datepicker.regional['it'] = { |
||||
|
closeText: 'Chiudi', |
||||
|
prevText: '<Prec', |
||||
|
nextText: 'Succ>', |
||||
|
currentText: 'Oggi', |
||||
|
monthNames: ['Gennaio','Febbraio','Marzo','Aprile','Maggio','Giugno', |
||||
|
'Luglio','Agosto','Settembre','Ottobre','Novembre','Dicembre'], |
||||
|
monthNamesShort: ['Gen','Feb','Mar','Apr','Mag','Giu', |
||||
|
'Lug','Ago','Set','Ott','Nov','Dic'], |
||||
|
dayNames: ['Domenica','Lunedì','Martedì','Mercoledì','Giovedì','Venerdì','Sabato'], |
||||
|
dayNamesShort: ['Dom','Lun','Mar','Mer','Gio','Ven','Sab'], |
||||
|
dayNamesMin: ['Do','Lu','Ma','Me','Gio','Ve','Sa'], |
||||
|
dateFormat: 'dd/mm/yy', firstDay: 1, |
||||
|
isRTL: false}; |
||||
|
$.datepicker.setDefaults($.datepicker.regional['it']); |
||||
|
}); |
||||
|
/* Japanese initialisation for the jQuery UI date picker plugin. */ |
||||
|
/* Written by Kentaro SATO (kentaro@ranvis.com). */ |
||||
|
jQuery(function($){ |
||||
|
$.datepicker.regional['ja'] = { |
||||
|
closeText: '閉じる', |
||||
|
prevText: '<前', |
||||
|
nextText: '次>', |
||||
|
currentText: '今日', |
||||
|
monthNames: ['1月','2月','3月','4月','5月','6月', |
||||
|
'7月','8月','9月','10月','11月','12月'], |
||||
|
monthNamesShort: ['1月','2月','3月','4月','5月','6月', |
||||
|
'7月','8月','9月','10月','11月','12月'], |
||||
|
dayNames: ['日曜日','月曜日','火曜日','水曜日','木曜日','金曜日','土曜日'], |
||||
|
dayNamesShort: ['日','月','火','水','木','金','土'], |
||||
|
dayNamesMin: ['日','月','火','水','木','金','土'], |
||||
|
dateFormat: 'yy/mm/dd', firstDay: 0, |
||||
|
isRTL: false, |
||||
|
showMonthAfterYear: true}; |
||||
|
$.datepicker.setDefaults($.datepicker.regional['ja']); |
||||
|
});/* Korean initialisation for the jQuery calendar extension. */ |
||||
|
/* Written by DaeKwon Kang (ncrash.dk@gmail.com). */ |
||||
|
jQuery(function($){ |
||||
|
$.datepicker.regional['ko'] = { |
||||
|
closeText: '닫기', |
||||
|
prevText: '이전달', |
||||
|
nextText: '다음달', |
||||
|
currentText: '오늘', |
||||
|
monthNames: ['1월(JAN)','2월(FEB)','3월(MAR)','4월(APR)','5월(MAY)','6월(JUN)', |
||||
|
'7월(JUL)','8월(AUG)','9월(SEP)','10월(OCT)','11월(NOV)','12월(DEC)'], |
||||
|
monthNamesShort: ['1월(JAN)','2월(FEB)','3월(MAR)','4월(APR)','5월(MAY)','6월(JUN)', |
||||
|
'7월(JUL)','8월(AUG)','9월(SEP)','10월(OCT)','11월(NOV)','12월(DEC)'], |
||||
|
dayNames: ['일','월','화','수','목','금','토'], |
||||
|
dayNamesShort: ['일','월','화','수','목','금','토'], |
||||
|
dayNamesMin: ['일','월','화','수','목','금','토'], |
||||
|
dateFormat: 'yy-mm-dd', firstDay: 0, |
||||
|
isRTL: false}; |
||||
|
$.datepicker.setDefaults($.datepicker.regional['ko']); |
||||
|
});/* Lithuanian (UTF-8) initialisation for the jQuery UI date picker plugin. */ |
||||
|
/* @author Arturas Paleicikas <arturas@avalon.lt> */ |
||||
|
jQuery(function($){ |
||||
|
$.datepicker.regional['lt'] = { |
||||
|
closeText: 'Uždaryti', |
||||
|
prevText: '<Atgal', |
||||
|
nextText: 'Pirmyn>', |
||||
|
currentText: 'Šiandien', |
||||
|
monthNames: ['Sausis','Vasaris','Kovas','Balandis','Gegužė','Birželis', |
||||
|
'Liepa','Rugpjūtis','Rugsėjis','Spalis','Lapkritis','Gruodis'], |
||||
|
monthNamesShort: ['Sau','Vas','Kov','Bal','Geg','Bir', |
||||
|
'Lie','Rugp','Rugs','Spa','Lap','Gru'], |
||||
|
dayNames: ['sekmadienis','pirmadienis','antradienis','trečiadienis','ketvirtadienis','penktadienis','šeštadienis'], |
||||
|
dayNamesShort: ['sek','pir','ant','tre','ket','pen','šeš'], |
||||
|
dayNamesMin: ['Se','Pr','An','Tr','Ke','Pe','Še'], |
||||
|
dateFormat: 'yy-mm-dd', firstDay: 1, |
||||
|
isRTL: false}; |
||||
|
$.datepicker.setDefaults($.datepicker.regional['lt']); |
||||
|
});/* Latvian (UTF-8) initialisation for the jQuery UI date picker plugin. */ |
||||
|
/* @author Arturas Paleicikas <arturas.paleicikas@metasite.net> */ |
||||
|
jQuery(function($){ |
||||
|
$.datepicker.regional['lv'] = { |
||||
|
closeText: 'Aizvērt', |
||||
|
prevText: 'Iepr', |
||||
|
nextText: 'Nāka', |
||||
|
currentText: 'Šodien', |
||||
|
monthNames: ['Janvāris','Februāris','Marts','Aprīlis','Maijs','Jūnijs', |
||||
|
'Jūlijs','Augusts','Septembris','Oktobris','Novembris','Decembris'], |
||||
|
monthNamesShort: ['Jan','Feb','Mar','Apr','Mai','Jūn', |
||||
|
'Jūl','Aug','Sep','Okt','Nov','Dec'], |
||||
|
dayNames: ['svētdiena','pirmdiena','otrdiena','trešdiena','ceturtdiena','piektdiena','sestdiena'], |
||||
|
dayNamesShort: ['svt','prm','otr','tre','ctr','pkt','sst'], |
||||
|
dayNamesMin: ['Sv','Pr','Ot','Tr','Ct','Pk','Ss'], |
||||
|
dateFormat: 'dd-mm-yy', firstDay: 1, |
||||
|
isRTL: false}; |
||||
|
$.datepicker.setDefaults($.datepicker.regional['lv']); |
||||
|
});/* Malaysian initialisation for the jQuery UI date picker plugin. */ |
||||
|
/* Written by Mohd Nawawi Mohamad Jamili (nawawi@ronggeng.net). */ |
||||
|
jQuery(function($){ |
||||
|
$.datepicker.regional['ms'] = { |
||||
|
closeText: 'Tutup', |
||||
|
prevText: '<Sebelum', |
||||
|
nextText: 'Selepas>', |
||||
|
currentText: 'hari ini', |
||||
|
monthNames: ['Januari','Februari','Mac','April','Mei','Jun', |
||||
|
'Julai','Ogos','September','Oktober','November','Disember'], |
||||
|
monthNamesShort: ['Jan','Feb','Mac','Apr','Mei','Jun', |
||||
|
'Jul','Ogo','Sep','Okt','Nov','Dis'], |
||||
|
dayNames: ['Ahad','Isnin','Selasa','Rabu','Khamis','Jumaat','Sabtu'], |
||||
|
dayNamesShort: ['Aha','Isn','Sel','Rab','kha','Jum','Sab'], |
||||
|
dayNamesMin: ['Ah','Is','Se','Ra','Kh','Ju','Sa'], |
||||
|
dateFormat: 'dd/mm/yy', firstDay: 0, |
||||
|
isRTL: false}; |
||||
|
$.datepicker.setDefaults($.datepicker.regional['ms']); |
||||
|
});/* Dutch (UTF-8) initialisation for the jQuery UI date picker plugin. */ |
||||
|
/* Written by Mathias Bynens <http://mathiasbynens.be/> */ |
||||
|
jQuery(function($){ |
||||
|
$.datepicker.regional.nl = { |
||||
|
closeText: 'Sluiten', |
||||
|
prevText: '←', |
||||
|
nextText: '→', |
||||
|
currentText: 'Vandaag', |
||||
|
monthNames: ['januari', 'februari', 'maart', 'april', 'mei', 'juni', |
||||
|
'juli', 'augustus', 'september', 'oktober', 'november', 'december'], |
||||
|
monthNamesShort: ['jan', 'feb', 'maa', 'apr', 'mei', 'jun', |
||||
|
'jul', 'aug', 'sep', 'okt', 'nov', 'dec'], |
||||
|
dayNames: ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag'], |
||||
|
dayNamesShort: ['zon', 'maa', 'din', 'woe', 'don', 'vri', 'zat'], |
||||
|
dayNamesMin: ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'], |
||||
|
dateFormat: 'dd/mm/yy', firstDay: 1, |
||||
|
isRTL: false}; |
||||
|
$.datepicker.setDefaults($.datepicker.regional.nl); |
||||
|
});/* Norwegian initialisation for the jQuery UI date picker plugin. */ |
||||
|
/* Written by Naimdjon Takhirov (naimdjon@gmail.com). */ |
||||
|
jQuery(function($){ |
||||
|
$.datepicker.regional['no'] = { |
||||
|
closeText: 'Lukk', |
||||
|
prevText: '«Forrige', |
||||
|
nextText: 'Neste»', |
||||
|
currentText: 'I dag', |
||||
|
monthNames: ['Januar','Februar','Mars','April','Mai','Juni', |
||||
|
'Juli','August','September','Oktober','November','Desember'], |
||||
|
monthNamesShort: ['Jan','Feb','Mar','Apr','Mai','Jun', |
||||
|
'Jul','Aug','Sep','Okt','Nov','Des'], |
||||
|
dayNamesShort: ['Søn','Man','Tir','Ons','Tor','Fre','Lør'], |
||||
|
dayNames: ['Søndag','Mandag','Tirsdag','Onsdag','Torsdag','Fredag','Lørdag'], |
||||
|
dayNamesMin: ['Sø','Ma','Ti','On','To','Fr','Lø'], |
||||
|
dateFormat: 'yy-mm-dd', firstDay: 0, |
||||
|
isRTL: false}; |
||||
|
$.datepicker.setDefaults($.datepicker.regional['no']); |
||||
|
}); |
||||
|
/* Polish initialisation for the jQuery UI date picker plugin. */ |
||||
|
/* Written by Jacek Wysocki (jacek.wysocki@gmail.com). */ |
||||
|
jQuery(function($){ |
||||
|
$.datepicker.regional['pl'] = { |
||||
|
closeText: 'Zamknij', |
||||
|
prevText: '<Poprzedni', |
||||
|
nextText: 'Następny>', |
||||
|
currentText: 'Dziś', |
||||
|
monthNames: ['Styczeń','Luty','Marzec','Kwiecień','Maj','Czerwiec', |
||||
|
'Lipiec','Sierpień','Wrzesień','Październik','Listopad','Grudzień'], |
||||
|
monthNamesShort: ['Sty','Lu','Mar','Kw','Maj','Cze', |
||||
|
'Lip','Sie','Wrz','Pa','Lis','Gru'], |
||||
|
dayNames: ['Niedziela','Poniedzialek','Wtorek','Środa','Czwartek','Piątek','Sobota'], |
||||
|
dayNamesShort: ['Nie','Pn','Wt','Śr','Czw','Pt','So'], |
||||
|
dayNamesMin: ['N','Pn','Wt','Śr','Cz','Pt','So'], |
||||
|
dateFormat: 'yy-mm-dd', firstDay: 1, |
||||
|
isRTL: false}; |
||||
|
$.datepicker.setDefaults($.datepicker.regional['pl']); |
||||
|
}); |
||||
|
/* Brazilian initialisation for the jQuery UI date picker plugin. */ |
||||
|
/* Written by Leonildo Costa Silva (leocsilva@gmail.com). */ |
||||
|
jQuery(function($){ |
||||
|
$.datepicker.regional['pt-BR'] = { |
||||
|
closeText: 'Fechar', |
||||
|
prevText: '<Anterior', |
||||
|
nextText: 'Próximo>', |
||||
|
currentText: 'Hoje', |
||||
|
monthNames: ['Janeiro','Fevereiro','Março','Abril','Maio','Junho', |
||||
|
'Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'], |
||||
|
monthNamesShort: ['Jan','Fev','Mar','Abr','Mai','Jun', |
||||
|
'Jul','Ago','Set','Out','Nov','Dez'], |
||||
|
dayNames: ['Domingo','Segunda-feira','Terça-feira','Quarta-feira','Quinta-feira','Sexta-feira','Sabado'], |
||||
|
dayNamesShort: ['Dom','Seg','Ter','Qua','Qui','Sex','Sab'], |
||||
|
dayNamesMin: ['Dom','Seg','Ter','Qua','Qui','Sex','Sab'], |
||||
|
dateFormat: 'dd/mm/yy', firstDay: 0, |
||||
|
isRTL: false}; |
||||
|
$.datepicker.setDefaults($.datepicker.regional['pt-BR']); |
||||
|
});/* Romanian initialisation for the jQuery UI date picker plugin. */ |
||||
|
/* Written by Edmond L. (ll_edmond@walla.com). */ |
||||
|
jQuery(function($){ |
||||
|
$.datepicker.regional['ro'] = { |
||||
|
closeText: 'Inchide', |
||||
|
prevText: '<Anterior', |
||||
|
nextText: 'Urmator>', |
||||
|
currentText: 'Azi', |
||||
|
monthNames: ['Ianuarie','Februarie','Martie','Aprilie','Mai','Junie', |
||||
|
'Julie','August','Septembrie','Octobrie','Noiembrie','Decembrie'], |
||||
|
monthNamesShort: ['Ian', 'Feb', 'Mar', 'Apr', 'Mai', 'Jun', |
||||
|
'Jul', 'Aug', 'Sep', 'Oct', 'Noi', 'Dec'], |
||||
|
dayNames: ['Duminica', 'Luni', 'Marti', 'Miercuri', 'Joi', 'Vineri', 'Sambata'], |
||||
|
dayNamesShort: ['Dum', 'Lun', 'Mar', 'Mie', 'Joi', 'Vin', 'Sam'], |
||||
|
dayNamesMin: ['Du','Lu','Ma','Mi','Jo','Vi','Sa'], |
||||
|
dateFormat: 'mm/dd/yy', firstDay: 0, |
||||
|
isRTL: false}; |
||||
|
$.datepicker.setDefaults($.datepicker.regional['ro']); |
||||
|
}); |
||||
|
/* Russian (UTF-8) initialisation for the jQuery UI date picker plugin. */ |
||||
|
/* Written by Andrew Stromnov (stromnov@gmail.com). */ |
||||
|
jQuery(function($){ |
||||
|
$.datepicker.regional['ru'] = { |
||||
|
closeText: 'Закрыть', |
||||
|
prevText: '<Пред', |
||||
|
nextText: 'След>', |
||||
|
currentText: 'Сегодня', |
||||
|
monthNames: ['Январь','Февраль','Март','Апрель','Май','Июнь', |
||||
|
'Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'], |
||||
|
monthNamesShort: ['Янв','Фев','Мар','Апр','Май','Июн', |
||||
|
'Июл','Авг','Сен','Окт','Ноя','Дек'], |
||||
|
dayNames: ['воскресенье','понедельник','вторник','среда','четверг','пятница','суббота'], |
||||
|
dayNamesShort: ['вск','пнд','втр','срд','чтв','птн','сбт'], |
||||
|
dayNamesMin: ['Вс','Пн','Вт','Ср','Чт','Пт','Сб'], |
||||
|
dateFormat: 'dd.mm.yy', firstDay: 1, |
||||
|
isRTL: false}; |
||||
|
$.datepicker.setDefaults($.datepicker.regional['ru']); |
||||
|
});/* Slovak initialisation for the jQuery UI date picker plugin. */ |
||||
|
/* Written by Vojtech Rinik (vojto@hmm.sk). */ |
||||
|
jQuery(function($){ |
||||
|
$.datepicker.regional['sk'] = { |
||||
|
closeText: 'Zavrieť', |
||||
|
prevText: '<Predchádzajúci', |
||||
|
nextText: 'Nasledujúci>', |
||||
|
currentText: 'Dnes', |
||||
|
monthNames: ['Január','Február','Marec','Apríl','Máj','Jún', |
||||
|
'Júl','August','September','Október','November','December'], |
||||
|
monthNamesShort: ['Jan','Feb','Mar','Apr','Máj','Jún', |
||||
|
'Júl','Aug','Sep','Okt','Nov','Dec'], |
||||
|
dayNames: ['Nedel\'a','Pondelok','Utorok','Streda','Štvrtok','Piatok','Sobota'], |
||||
|
dayNamesShort: ['Ned','Pon','Uto','Str','Štv','Pia','Sob'], |
||||
|
dayNamesMin: ['Ne','Po','Ut','St','Št','Pia','So'], |
||||
|
dateFormat: 'dd.mm.yy', firstDay: 0, |
||||
|
isRTL: false}; |
||||
|
$.datepicker.setDefaults($.datepicker.regional['sk']); |
||||
|
}); |
||||
|
/* Slovenian initialisation for the jQuery UI date picker plugin. */ |
||||
|
/* Written by Jaka Jancar (jaka@kubje.org). */ |
||||
|
/* c = č, s = š z = ž C = Č S = Š Z = Ž */ |
||||
|
jQuery(function($){ |
||||
|
$.datepicker.regional['sl'] = { |
||||
|
closeText: 'Zapri', |
||||
|
prevText: '<Prejšnji', |
||||
|
nextText: 'Naslednji>', |
||||
|
currentText: 'Trenutni', |
||||
|
monthNames: ['Januar','Februar','Marec','April','Maj','Junij', |
||||
|
'Julij','Avgust','September','Oktober','November','December'], |
||||
|
monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun', |
||||
|
'Jul','Avg','Sep','Okt','Nov','Dec'], |
||||
|
dayNames: ['Nedelja','Ponedeljek','Torek','Sreda','Četrtek','Petek','Sobota'], |
||||
|
dayNamesShort: ['Ned','Pon','Tor','Sre','Čet','Pet','Sob'], |
||||
|
dayNamesMin: ['Ne','Po','To','Sr','Če','Pe','So'], |
||||
|
dateFormat: 'dd.mm.yy', firstDay: 1, |
||||
|
isRTL: false}; |
||||
|
$.datepicker.setDefaults($.datepicker.regional['sl']); |
||||
|
}); |
||||
|
/* Albanian initialisation for the jQuery UI date picker plugin. */ |
||||
|
/* Written by Flakron Bytyqi (flakron@gmail.com). */ |
||||
|
jQuery(function($){ |
||||
|
$.datepicker.regional['sq'] = { |
||||
|
closeText: 'mbylle', |
||||
|
prevText: '<mbrapa', |
||||
|
nextText: 'Përpara>', |
||||
|
currentText: 'sot', |
||||
|
monthNames: ['Janar','Shkurt','Mars','Pril','Maj','Qershor', |
||||
|
'Korrik','Gusht','Shtator','Tetor','Nëntor','Dhjetor'], |
||||
|
monthNamesShort: ['Jan','Shk','Mar','Pri','Maj','Qer', |
||||
|
'Kor','Gus','Sht','Tet','Nën','Dhj'], |
||||
|
dayNames: ['E Diel','E Hënë','E Martë','E Mërkurë','E Enjte','E Premte','E Shtune'], |
||||
|
dayNamesShort: ['Di','Hë','Ma','Më','En','Pr','Sh'], |
||||
|
dayNamesMin: ['Di','Hë','Ma','Më','En','Pr','Sh'], |
||||
|
dateFormat: 'dd.mm.yy', firstDay: 1, |
||||
|
isRTL: false}; |
||||
|
$.datepicker.setDefaults($.datepicker.regional['sq']); |
||||
|
}); |
||||
|
/* Serbian i18n for the jQuery UI date picker plugin. */ |
||||
|
/* Written by Dejan Dimić. */ |
||||
|
jQuery(function($){ |
||||
|
$.datepicker.regional['sr-SR'] = { |
||||
|
closeText: 'Zatvori', |
||||
|
prevText: '<', |
||||
|
nextText: '>', |
||||
|
currentText: 'Danas', |
||||
|
monthNames: ['Januar','Februar','Mart','April','Maj','Jun', |
||||
|
'Jul','Avgust','Septembar','Oktobar','Novembar','Decembar'], |
||||
|
monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun', |
||||
|
'Jul','Avg','Sep','Okt','Nov','Dec'], |
||||
|
dayNames: ['Nedelja','Ponedeljak','Utorak','Sreda','Četvrtak','Petak','Subota'], |
||||
|
dayNamesShort: ['Ned','Pon','Uto','Sre','Čet','Pet','Sub'], |
||||
|
dayNamesMin: ['Ne','Po','Ut','Sr','Če','Pe','Su'], |
||||
|
dateFormat: 'dd/mm/yy', firstDay: 1, |
||||
|
isRTL: false}; |
||||
|
$.datepicker.setDefaults($.datepicker.regional['sr-SR']); |
||||
|
}); |
||||
|
/* Serbian i18n for the jQuery UI date picker plugin. */ |
||||
|
/* Written by Dejan Dimić. */ |
||||
|
jQuery(function($){ |
||||
|
$.datepicker.regional['sr'] = { |
||||
|
closeText: 'Затвори', |
||||
|
prevText: '<', |
||||
|
nextText: '>', |
||||
|
currentText: 'Данас', |
||||
|
monthNames: ['Јануар','Фебруар','Март','Април','Мај','Јун', |
||||
|
'Јул','Август','Септембар','Октобар','Новембар','Децембар'], |
||||
|
monthNamesShort: ['Јан','Феб','Мар','Апр','Мај','Јун', |
||||
|
'Јул','Авг','Сеп','Окт','Нов','Дец'], |
||||
|
dayNames: ['Недеља','Понедељак','Уторак','Среда','Четвртак','Петак','Субота'], |
||||
|
dayNamesShort: ['Нед','Пон','Уто','Сре','Чет','Пет','Суб'], |
||||
|
dayNamesMin: ['Не','По','Ут','Ср','Че','Пе','Су'], |
||||
|
dateFormat: 'dd/mm/yy', firstDay: 1, |
||||
|
isRTL: false}; |
||||
|
$.datepicker.setDefaults($.datepicker.regional['sr']); |
||||
|
}); |
||||
|
/* Swedish initialisation for the jQuery UI date picker plugin. */ |
||||
|
/* Written by Anders Ekdahl ( anders@nomadiz.se). */ |
||||
|
jQuery(function($){ |
||||
|
$.datepicker.regional['sv'] = { |
||||
|
closeText: 'Stäng', |
||||
|
prevText: '«Förra', |
||||
|
nextText: 'Nästa»', |
||||
|
currentText: 'Idag', |
||||
|
monthNames: ['Januari','Februari','Mars','April','Maj','Juni', |
||||
|
'Juli','Augusti','September','Oktober','November','December'], |
||||
|
monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun', |
||||
|
'Jul','Aug','Sep','Okt','Nov','Dec'], |
||||
|
dayNamesShort: ['Sön','Mån','Tis','Ons','Tor','Fre','Lör'], |
||||
|
dayNames: ['Söndag','Måndag','Tisdag','Onsdag','Torsdag','Fredag','Lördag'], |
||||
|
dayNamesMin: ['Sö','Må','Ti','On','To','Fr','Lö'], |
||||
|
dateFormat: 'yy-mm-dd', firstDay: 1, |
||||
|
isRTL: false}; |
||||
|
$.datepicker.setDefaults($.datepicker.regional['sv']); |
||||
|
}); |
||||
|
/* Thai initialisation for the jQuery UI date picker plugin. */ |
||||
|
/* Written by pipo (pipo@sixhead.com). */ |
||||
|
jQuery(function($){ |
||||
|
$.datepicker.regional['th'] = { |
||||
|
closeText: 'ปิด', |
||||
|
prevText: '« ย้อน', |
||||
|
nextText: 'ถัดไป »', |
||||
|
currentText: 'วันนี้', |
||||
|
monthNames: ['มกราคม','กุมภาพันธ์','มีนาคม','เมษายน','พฤษภาคม','มิถุนายน', |
||||
|
'กรกฏาคม','สิงหาคม','กันยายน','ตุลาคม','พฤศจิกายน','ธันวาคม'], |
||||
|
monthNamesShort: ['ม.ค.','ก.พ.','มี.ค.','เม.ย.','พ.ค.','มิ.ย.', |
||||
|
'ก.ค.','ส.ค.','ก.ย.','ต.ค.','พ.ย.','ธ.ค.'], |
||||
|
dayNames: ['อาทิตย์','จันทร์','อังคาร','พุธ','พฤหัสบดี','ศุกร์','เสาร์'], |
||||
|
dayNamesShort: ['อา.','จ.','อ.','พ.','พฤ.','ศ.','ส.'], |
||||
|
dayNamesMin: ['อา.','จ.','อ.','พ.','พฤ.','ศ.','ส.'], |
||||
|
dateFormat: 'dd/mm/yy', firstDay: 0, |
||||
|
isRTL: false}; |
||||
|
$.datepicker.setDefaults($.datepicker.regional['th']); |
||||
|
});/* Turkish initialisation for the jQuery UI date picker plugin. */ |
||||
|
/* Written by Izzet Emre Erkan (kara@karalamalar.net). */ |
||||
|
jQuery(function($){ |
||||
|
$.datepicker.regional['tr'] = { |
||||
|
closeText: 'kapat', |
||||
|
prevText: '<geri', |
||||
|
nextText: 'ileri>', |
||||
|
currentText: 'bugün', |
||||
|
monthNames: ['Ocak','Şubat','Mart','Nisan','Mayıs','Haziran', |
||||
|
'Temmuz','Ağustos','Eylül','Ekim','Kasım','Aralık'], |
||||
|
monthNamesShort: ['Oca','Şub','Mar','Nis','May','Haz', |
||||
|
'Tem','Ağu','Eyl','Eki','Kas','Ara'], |
||||
|
dayNames: ['Pazar','Pazartesi','Salı','Çarşamba','Perşembe','Cuma','Cumartesi'], |
||||
|
dayNamesShort: ['Pz','Pt','Sa','Ça','Pe','Cu','Ct'], |
||||
|
dayNamesMin: ['Pz','Pt','Sa','Ça','Pe','Cu','Ct'], |
||||
|
dateFormat: 'dd.mm.yy', firstDay: 1, |
||||
|
isRTL: false}; |
||||
|
$.datepicker.setDefaults($.datepicker.regional['tr']); |
||||
|
});/* Ukrainian (UTF-8) initialisation for the jQuery UI date picker plugin. */ |
||||
|
/* Written by Maxim Drogobitskiy (maxdao@gmail.com). */ |
||||
|
jQuery(function($){ |
||||
|
$.datepicker.regional['uk'] = { |
||||
|
closeText: 'Закрити', |
||||
|
prevText: '<', |
||||
|
nextText: '>', |
||||
|
currentText: 'Сьогодні', |
||||
|
monthNames: ['Січень','Лютий','Березень','Квітень','Травень','Червень', |
||||
|
'Липень','Серпень','Вересень','Жовтень','Листопад','Грудень'], |
||||
|
monthNamesShort: ['Січ','Лют','Бер','Кві','Тра','Чер', |
||||
|
'Лип','Сер','Вер','Жов','Лис','Гру'], |
||||
|
dayNames: ['неділя','понеділок','вівторок','середа','четвер','пятниця','суббота'], |
||||
|
dayNamesShort: ['нед','пнд','вів','срд','чтв','птн','сбт'], |
||||
|
dayNamesMin: ['Нд','Пн','Вт','Ср','Чт','Пт','Сб'], |
||||
|
dateFormat: 'dd.mm.yy', firstDay: 1, |
||||
|
isRTL: false}; |
||||
|
$.datepicker.setDefaults($.datepicker.regional['uk']); |
||||
|
});/* Chinese initialisation for the jQuery UI date picker plugin. */ |
||||
|
/* Written by Cloudream (cloudream@gmail.com). */ |
||||
|
jQuery(function($){ |
||||
|
$.datepicker.regional['zh-CN'] = { |
||||
|
closeText: '关闭', |
||||
|
prevText: '<上月', |
||||
|
nextText: '下月>', |
||||
|
currentText: '今天', |
||||
|
monthNames: ['一月','二月','三月','四月','五月','六月', |
||||
|
'七月','八月','九月','十月','十一月','十二月'], |
||||
|
monthNamesShort: ['一','二','三','四','五','六', |
||||
|
'七','八','九','十','十一','十二'], |
||||
|
dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'], |
||||
|
dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'], |
||||
|
dayNamesMin: ['日','一','二','三','四','五','六'], |
||||
|
dateFormat: 'yy-mm-dd', firstDay: 1, |
||||
|
isRTL: false}; |
||||
|
$.datepicker.setDefaults($.datepicker.regional['zh-CN']); |
||||
|
}); |
||||
|
/* Chinese initialisation for the jQuery UI date picker plugin. */ |
||||
|
/* Written by Ressol (ressol@gmail.com). */ |
||||
|
jQuery(function($){ |
||||
|
$.datepicker.regional['zh-TW'] = { |
||||
|
closeText: '關閉', |
||||
|
prevText: '<上月', |
||||
|
nextText: '下月>', |
||||
|
currentText: '今天', |
||||
|
monthNames: ['一月','二月','三月','四月','五月','六月', |
||||
|
'七月','八月','九月','十月','十一月','十二月'], |
||||
|
monthNamesShort: ['一','二','三','四','五','六', |
||||
|
'七','八','九','十','十一','十二'], |
||||
|
dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'], |
||||
|
dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'], |
||||
|
dayNamesMin: ['日','一','二','三','四','五','六'], |
||||
|
dateFormat: 'yy/mm/dd', firstDay: 1, |
||||
|
isRTL: false}; |
||||
|
$.datepicker.setDefaults($.datepicker.regional['zh-TW']); |
||||
|
}); |
||||
@ -0,0 +1,20 @@ |
|||||
|
/* Arabic Translation for jQuery UI date picker plugin. */ |
||||
|
/* Khaled Al Horani -- koko.dw@gmail.com */ |
||||
|
/* خالد الحوراني -- koko.dw@gmail.com */ |
||||
|
/* NOTE: monthNames are the original months names and they are the Arabic names, not the new months name فبراير - يناير and there isn't any Arabic roots for these months */ |
||||
|
jQuery(function($){ |
||||
|
$.datepicker.regional['ar'] = { |
||||
|
closeText: 'إغلاق', |
||||
|
prevText: '<السابق', |
||||
|
nextText: 'التالي>', |
||||
|
currentText: 'اليوم', |
||||
|
monthNames: ['كانون الثاني', 'شباط', 'آذار', 'نيسان', 'آذار', 'حزيران', |
||||
|
'تموز', 'آب', 'أيلول', 'تشرين الأول', 'تشرين الثاني', 'كانون الأول'], |
||||
|
monthNamesShort: ['1','2','3','4','5','6','7','8','9','10','11','12'], |
||||
|
dayNames: ['السبت', 'الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة'], |
||||
|
dayNamesShort: ['سبت', 'أحد', 'اثنين', 'ثلاثاء', 'أربعاء', 'خميس', 'جمعة'], |
||||
|
dayNamesMin: ['سبت', 'أحد', 'اثنين', 'ثلاثاء', 'أربعاء', 'خميس', 'جمعة'], |
||||
|
dateFormat: 'dd/mm/yy', firstDay: 0, |
||||
|
isRTL: true}; |
||||
|
$.datepicker.setDefaults($.datepicker.regional['ar']); |
||||
|
}); |
||||
@ -0,0 +1,20 @@ |
|||||
|
/* Bulgarian initialisation for the jQuery UI date picker plugin. */ |
||||
|
/* Written by Stoyan Kyosev (http://svest.org). */ |
||||
|
jQuery(function($){ |
||||
|
$.datepicker.regional['bg'] = { |
||||
|
closeText: 'затвори', |
||||
|
prevText: '<назад', |
||||
|
nextText: 'напред>', |
||||
|
nextBigText: '>>', |
||||
|
currentText: 'днес', |
||||
|
monthNames: ['Януари','Февруари','Март','Април','Май','Юни', |
||||
|
'Юли','Август','Септември','Октомври','Ноември','Декември'], |
||||
|
monthNamesShort: ['Яну','Фев','Мар','Апр','Май','Юни', |
||||
|
'Юли','Авг','Сеп','Окт','Нов','Дек'], |
||||
|
dayNames: ['Неделя','Понеделник','Вторник','Сряда','Четвъртък','Петък','Събота'], |
||||
|
dayNamesShort: ['Нед','Пон','Вто','Сря','Чет','Пет','Съб'], |
||||
|
dayNamesMin: ['Не','По','Вт','Ср','Че','Пе','Съ'], |
||||
|
dateFormat: 'dd.mm.yy', firstDay: 1, |
||||
|
isRTL: false}; |
||||
|
$.datepicker.setDefaults($.datepicker.regional['bg']); |
||||
|
}); |
||||
@ -0,0 +1,19 @@ |
|||||
|
/* Inicialitzaci� en catal� per a l'extenci� 'calendar' per jQuery. */ |
||||
|
/* Writers: (joan.leon@gmail.com). */ |
||||
|
jQuery(function($){ |
||||
|
$.datepicker.regional['ca'] = { |
||||
|
closeText: 'Tancar', |
||||
|
prevText: '<Ant', |
||||
|
nextText: 'Seg>', |
||||
|
currentText: 'Avui', |
||||
|
monthNames: ['Gener','Febrer','Març','Abril','Maig','Juny', |
||||
|
'Juliol','Agost','Setembre','Octubre','Novembre','Desembre'], |
||||
|
monthNamesShort: ['Gen','Feb','Mar','Abr','Mai','Jun', |
||||
|
'Jul','Ago','Set','Oct','Nov','Des'], |
||||
|
dayNames: ['Diumenge','Dilluns','Dimarts','Dimecres','Dijous','Divendres','Dissabte'], |
||||
|
dayNamesShort: ['Dug','Dln','Dmt','Dmc','Djs','Dvn','Dsb'], |
||||
|
dayNamesMin: ['Dg','Dl','Dt','Dc','Dj','Dv','Ds'], |
||||
|
dateFormat: 'mm/dd/yy', firstDay: 0, |
||||
|
isRTL: false}; |
||||
|
$.datepicker.setDefaults($.datepicker.regional['ca']); |
||||
|
}); |
||||
@ -0,0 +1,19 @@ |
|||||
|
/* Czech initialisation for the jQuery UI date picker plugin. */ |
||||
|
/* Written by Tomas Muller (tomas@tomas-muller.net). */ |
||||
|
jQuery(function($){ |
||||
|
$.datepicker.regional['cs'] = { |
||||
|
closeText: 'Zavřít', |
||||
|
prevText: '<Dříve', |
||||
|
nextText: 'Později>', |
||||
|
currentText: 'Nyní', |
||||
|
monthNames: ['leden','únor','březen','duben','květen','červen', |
||||
|
'červenec','srpen','září','říjen','listopad','prosinec'], |
||||
|
monthNamesShort: ['led','úno','bře','dub','kvě','čer', |
||||
|
'čvc','srp','zář','říj','lis','pro'], |
||||
|
dayNames: ['neděle', 'pondělí', 'úterý', 'středa', 'čtvrtek', 'pátek', 'sobota'], |
||||
|
dayNamesShort: ['ne', 'po', 'út', 'st', 'čt', 'pá', 'so'], |
||||
|
dayNamesMin: ['ne','po','út','st','čt','pá','so'], |
||||
|
dateFormat: 'dd.mm.yy', firstDay: 1, |
||||
|
isRTL: false}; |
||||
|
$.datepicker.setDefaults($.datepicker.regional['cs']); |
||||
|
}); |
||||
@ -0,0 +1,19 @@ |
|||||
|
/* Danish initialisation for the jQuery UI date picker plugin. */ |
||||
|
/* Written by Jan Christensen ( deletestuff@gmail.com). */ |
||||
|
jQuery(function($){ |
||||
|
$.datepicker.regional['da'] = { |
||||
|
closeText: 'Luk', |
||||
|
prevText: '<Forrige', |
||||
|
nextText: 'Næste>', |
||||
|
currentText: 'Idag', |
||||
|
monthNames: ['Januar','Februar','Marts','April','Maj','Juni', |
||||
|
'Juli','August','September','Oktober','November','December'], |
||||
|
monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun', |
||||
|
'Jul','Aug','Sep','Okt','Nov','Dec'], |
||||
|
dayNames: ['Søndag','Mandag','Tirsdag','Onsdag','Torsdag','Fredag','Lørdag'], |
||||
|
dayNamesShort: ['Søn','Man','Tir','Ons','Tor','Fre','Lør'], |
||||
|
dayNamesMin: ['Sø','Ma','Ti','On','To','Fr','Lø'], |
||||
|
dateFormat: 'dd-mm-yy', firstDay: 0, |
||||
|
isRTL: false}; |
||||
|
$.datepicker.setDefaults($.datepicker.regional['da']); |
||||
|
}); |
||||
@ -0,0 +1,19 @@ |
|||||
|
/* German initialisation for the jQuery UI date picker plugin. */ |
||||
|
/* Written by Milian Wolff (mail@milianw.de). */ |
||||
|
jQuery(function($){ |
||||
|
$.datepicker.regional['de'] = { |
||||
|
closeText: 'schließen', |
||||
|
prevText: '<zurück', |
||||
|
nextText: 'Vor>', |
||||
|
currentText: 'heute', |
||||
|
monthNames: ['Januar','Februar','März','April','Mai','Juni', |
||||
|
'Juli','August','September','Oktober','November','Dezember'], |
||||
|
monthNamesShort: ['Jan','Feb','Mär','Apr','Mai','Jun', |
||||
|
'Jul','Aug','Sep','Okt','Nov','Dez'], |
||||
|
dayNames: ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'], |
||||
|
dayNamesShort: ['So','Mo','Di','Mi','Do','Fr','Sa'], |
||||
|
dayNamesMin: ['So','Mo','Di','Mi','Do','Fr','Sa'], |
||||
|
dateFormat: 'dd.mm.yy', firstDay: 1, |
||||
|
isRTL: false}; |
||||
|
$.datepicker.setDefaults($.datepicker.regional['de']); |
||||
|
}); |
||||
@ -0,0 +1,19 @@ |
|||||
|
/* Greek (el) initialisation for the jQuery UI date picker plugin. */ |
||||
|
/* Written by Alex Cicovic (http://www.alexcicovic.com) */ |
||||
|
jQuery(function($){ |
||||
|
$.datepicker.regional['el'] = { |
||||
|
closeText: 'Κλείσιμο', |
||||
|
prevText: 'Προηγούμενος', |
||||
|
nextText: 'Επόμενος', |
||||
|
currentText: 'Τρέχων Μήνας', |
||||
|
monthNames: ['Ιανουάριος','Φεβρουάριος','Μάρτιος','Απρίλιος','Μάιος','Ιούνιος', |
||||
|
'Ιούλιος','Αύγουστος','Σεπτέμβριος','Οκτώβριος','Νοέμβριος','Δεκέμβριος'], |
||||
|
monthNamesShort: ['Ιαν','Φεβ','Μαρ','Απρ','Μαι','Ιουν', |
||||
|
'Ιουλ','Αυγ','Σεπ','Οκτ','Νοε','Δεκ'], |
||||
|
dayNames: ['Κυριακή','Δευτέρα','Τρίτη','Τετάρτη','Πέμπτη','Παρασκευή','Σάββατο'], |
||||
|
dayNamesShort: ['Κυρ','Δευ','Τρι','Τετ','Πεμ','Παρ','Σαβ'], |
||||
|
dayNamesMin: ['Κυ','Δε','Τρ','Τε','Πε','Πα','Σα'], |
||||
|
dateFormat: 'dd/mm/yy', firstDay: 1, |
||||
|
isRTL: false}; |
||||
|
$.datepicker.setDefaults($.datepicker.regional['el']); |
||||
|
}); |
||||
@ -0,0 +1,19 @@ |
|||||
|
/* Esperanto initialisation for the jQuery UI date picker plugin. */ |
||||
|
/* Written by Olivier M. (olivierweb@ifrance.com). */ |
||||
|
jQuery(function($){ |
||||
|
$.datepicker.regional['eo'] = { |
||||
|
closeText: 'Fermi', |
||||
|
prevText: '<Anta', |
||||
|
nextText: 'Sekv>', |
||||
|
currentText: 'Nuna', |
||||
|
monthNames: ['Januaro','Februaro','Marto','Aprilo','Majo','Junio', |
||||
|
'Julio','Aŭgusto','Septembro','Oktobro','Novembro','Decembro'], |
||||
|
monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun', |
||||
|
'Jul','Aŭg','Sep','Okt','Nov','Dec'], |
||||
|
dayNames: ['Dimanĉo','Lundo','Mardo','Merkredo','Ĵaŭdo','Vendredo','Sabato'], |
||||
|
dayNamesShort: ['Dim','Lun','Mar','Mer','Ĵaŭ','Ven','Sab'], |
||||
|
dayNamesMin: ['Di','Lu','Ma','Me','Ĵa','Ve','Sa'], |
||||
|
dateFormat: 'dd/mm/yy', firstDay: 0, |
||||
|
isRTL: false}; |
||||
|
$.datepicker.setDefaults($.datepicker.regional['eo']); |
||||
|
}); |
||||
@ -0,0 +1,19 @@ |
|||||
|
/* Inicializaci�n en espa�ol para la extensi�n 'UI date picker' para jQuery. */ |
||||
|
/* Traducido por Vester (xvester@gmail.com). */ |
||||
|
jQuery(function($){ |
||||
|
$.datepicker.regional['es'] = { |
||||
|
closeText: 'Cerrar', |
||||
|
prevText: '<Ant', |
||||
|
nextText: 'Sig>', |
||||
|
currentText: 'Hoy', |
||||
|
monthNames: ['Enero','Febrero','Marzo','Abril','Mayo','Junio', |
||||
|
'Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'], |
||||
|
monthNamesShort: ['Ene','Feb','Mar','Abr','May','Jun', |
||||
|
'Jul','Ago','Sep','Oct','Nov','Dic'], |
||||
|
dayNames: ['Domingo','Lunes','Martes','Miércoles','Jueves','Viernes','Sábado'], |
||||
|
dayNamesShort: ['Dom','Lun','Mar','Mié','Juv','Vie','Sáb'], |
||||
|
dayNamesMin: ['Do','Lu','Ma','Mi','Ju','Vi','Sá'], |
||||
|
dateFormat: 'dd/mm/yy', firstDay: 0, |
||||
|
isRTL: false}; |
||||
|
$.datepicker.setDefaults($.datepicker.regional['es']); |
||||
|
}); |
||||
@ -0,0 +1,19 @@ |
|||||
|
/* Persian (Farsi) Translation for the jQuery UI date picker plugin. */ |
||||
|
/* Javad Mowlanezhad -- jmowla@gmail.com */ |
||||
|
/* Jalali calendar should supported soon! (Its implemented but I have to test it) */ |
||||
|
jQuery(function($) { |
||||
|
$.datepicker.regional['fa'] = { |
||||
|
closeText: 'بستن', |
||||
|
prevText: '<قبلي', |
||||
|
nextText: 'بعدي>', |
||||
|
currentText: 'امروز', |
||||
|
monthNames: ['فروردين','ارديبهشت','خرداد','تير','مرداد','شهريور', |
||||
|
'مهر','آبان','آذر','دي','بهمن','اسفند'], |
||||
|
monthNamesShort: ['1','2','3','4','5','6','7','8','9','10','11','12'], |
||||
|
dayNames: ['يکشنبه','دوشنبه','سهشنبه','چهارشنبه','پنجشنبه','جمعه','شنبه'], |
||||
|
dayNamesShort: ['ي','د','س','چ','پ','ج', 'ش'], |
||||
|
dayNamesMin: ['ي','د','س','چ','پ','ج', 'ش'], |
||||
|
dateFormat: 'yy/mm/dd', firstDay: 6, |
||||
|
isRTL: true}; |
||||
|
$.datepicker.setDefaults($.datepicker.regional['fa']); |
||||
|
}); |
||||
@ -0,0 +1,19 @@ |
|||||
|
/* Finnish initialisation for the jQuery UI date picker plugin. */ |
||||
|
/* Written by Harri Kilpi� (harrikilpio@gmail.com). */ |
||||
|
jQuery(function($){ |
||||
|
$.datepicker.regional['fi'] = { |
||||
|
closeText: 'Sulje', |
||||
|
prevText: '«Edellinen', |
||||
|
nextText: 'Seuraava»', |
||||
|
currentText: 'Tänään', |
||||
|
monthNames: ['Tammikuu','Helmikuu','Maaliskuu','Huhtikuu','Toukokuu','Kesäkuu', |
||||
|
'Heinäkuu','Elokuu','Syyskuu','Lokakuu','Marraskuu','Joulukuu'], |
||||
|
monthNamesShort: ['Tammi','Helmi','Maalis','Huhti','Touko','Kesä', |
||||
|
'Heinä','Elo','Syys','Loka','Marras','Joulu'], |
||||
|
dayNamesShort: ['Su','Ma','Ti','Ke','To','Pe','Su'], |
||||
|
dayNames: ['Sunnuntai','Maanantai','Tiistai','Keskiviikko','Torstai','Perjantai','Lauantai'], |
||||
|
dayNamesMin: ['Su','Ma','Ti','Ke','To','Pe','La'], |
||||
|
dateFormat: 'dd.mm.yy', firstDay: 1, |
||||
|
isRTL: false}; |
||||
|
$.datepicker.setDefaults($.datepicker.regional['fi']); |
||||
|
}); |
||||
@ -0,0 +1,19 @@ |
|||||
|
/* French initialisation for the jQuery UI date picker plugin. */ |
||||
|
/* Written by Keith Wood (kbwood@virginbroadband.com.au) and Stéphane Nahmani (sholby@sholby.net). */ |
||||
|
jQuery(function($){ |
||||
|
$.datepicker.regional['fr'] = { |
||||
|
closeText: 'Fermer', |
||||
|
prevText: '<Préc', |
||||
|
nextText: 'Suiv>', |
||||
|
currentText: 'Courant', |
||||
|
monthNames: ['Janvier','Février','Mars','Avril','Mai','Juin', |
||||
|
'Juillet','Août','Septembre','Octobre','Novembre','Décembre'], |
||||
|
monthNamesShort: ['Jan','Fév','Mar','Avr','Mai','Jun', |
||||
|
'Jul','Aoû','Sep','Oct','Nov','Déc'], |
||||
|
dayNames: ['Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'], |
||||
|
dayNamesShort: ['Dim','Lun','Mar','Mer','Jeu','Ven','Sam'], |
||||
|
dayNamesMin: ['Di','Lu','Ma','Me','Je','Ve','Sa'], |
||||
|
dateFormat: 'dd/mm/yy', firstDay: 1, |
||||
|
isRTL: false}; |
||||
|
$.datepicker.setDefaults($.datepicker.regional['fr']); |
||||
|
}); |
||||
@ -0,0 +1,19 @@ |
|||||
|
/* Hebrew initialisation for the UI Datepicker extension. */ |
||||
|
/* Written by Amir Hardon (ahardon at gmail dot com). */ |
||||
|
jQuery(function($){ |
||||
|
$.datepicker.regional['he'] = { |
||||
|
closeText: 'סגור', |
||||
|
prevText: '<הקודם', |
||||
|
nextText: 'הבא>', |
||||
|
currentText: 'היום', |
||||
|
monthNames: ['ינואר','פברואר','מרץ','אפריל','מאי','יוני', |
||||
|
'יולי','אוגוסט','ספטמבר','אוקטובר','נובמבר','דצמבר'], |
||||
|
monthNamesShort: ['1','2','3','4','5','6', |
||||
|
'7','8','9','10','11','12'], |
||||
|
dayNames: ['ראשון','שני','שלישי','רביעי','חמישי','שישי','שבת'], |
||||
|
dayNamesShort: ['א\'','ב\'','ג\'','ד\'','ה\'','ו\'','שבת'], |
||||
|
dayNamesMin: ['א\'','ב\'','ג\'','ד\'','ה\'','ו\'','שבת'], |
||||
|
dateFormat: 'dd/mm/yy', firstDay: 0, |
||||
|
isRTL: true}; |
||||
|
$.datepicker.setDefaults($.datepicker.regional['he']); |
||||
|
}); |
||||
@ -0,0 +1,19 @@ |
|||||
|
/* Croatian i18n for the jQuery UI date picker plugin. */ |
||||
|
/* Written by Vjekoslav Nesek. */ |
||||
|
jQuery(function($){ |
||||
|
$.datepicker.regional['hr'] = { |
||||
|
closeText: 'Zatvori', |
||||
|
prevText: '<', |
||||
|
nextText: '>', |
||||
|
currentText: 'Danas', |
||||
|
monthNames: ['Siječanj','Veljača','Ožujak','Travanj','Svibanj','Lipani', |
||||
|
'Srpanj','Kolovoz','Rujan','Listopad','Studeni','Prosinac'], |
||||
|
monthNamesShort: ['Sij','Velj','Ožu','Tra','Svi','Lip', |
||||
|
'Srp','Kol','Ruj','Lis','Stu','Pro'], |
||||
|
dayNames: ['Nedjalja','Ponedjeljak','Utorak','Srijeda','Četvrtak','Petak','Subota'], |
||||
|
dayNamesShort: ['Ned','Pon','Uto','Sri','Čet','Pet','Sub'], |
||||
|
dayNamesMin: ['Ne','Po','Ut','Sr','Če','Pe','Su'], |
||||
|
dateFormat: 'dd.mm.yy.', firstDay: 1, |
||||
|
isRTL: false}; |
||||
|
$.datepicker.setDefaults($.datepicker.regional['hr']); |
||||
|
}); |
||||
@ -0,0 +1,19 @@ |
|||||
|
/* Hungarian initialisation for the jQuery UI date picker plugin. */ |
||||
|
/* Written by Istvan Karaszi (jquerycalendar@spam.raszi.hu). */ |
||||
|
jQuery(function($){ |
||||
|
$.datepicker.regional['hu'] = { |
||||
|
closeText: 'bezárás', |
||||
|
prevText: '« vissza', |
||||
|
nextText: 'előre »', |
||||
|
currentText: 'ma', |
||||
|
monthNames: ['Január', 'Február', 'Március', 'Április', 'Május', 'Június', |
||||
|
'Július', 'Augusztus', 'Szeptember', 'Október', 'November', 'December'], |
||||
|
monthNamesShort: ['Jan', 'Feb', 'Már', 'Ápr', 'Máj', 'Jún', |
||||
|
'Júl', 'Aug', 'Szep', 'Okt', 'Nov', 'Dec'], |
||||
|
dayNames: ['Vasámap', 'Hétfö', 'Kedd', 'Szerda', 'Csütörtök', 'Péntek', 'Szombat'], |
||||
|
dayNamesShort: ['Vas', 'Hét', 'Ked', 'Sze', 'Csü', 'Pén', 'Szo'], |
||||
|
dayNamesMin: ['V', 'H', 'K', 'Sze', 'Cs', 'P', 'Szo'], |
||||
|
dateFormat: 'yy-mm-dd', firstDay: 1, |
||||
|
isRTL: false}; |
||||
|
$.datepicker.setDefaults($.datepicker.regional['hu']); |
||||
|
}); |
||||
@ -0,0 +1,19 @@ |
|||||
|
/* Armenian(UTF-8) initialisation for the jQuery UI date picker plugin. */ |
||||
|
/* Written by Levon Zakaryan (levon.zakaryan@gmail.com)*/ |
||||
|
jQuery(function($){ |
||||
|
$.datepicker.regional['hy'] = { |
||||
|
closeText: 'Փակել', |
||||
|
prevText: '<Նախ.', |
||||
|
nextText: 'Հաջ.>', |
||||
|
currentText: 'Այսօր', |
||||
|
monthNames: ['Հունվար','Փետրվար','Մարտ','Ապրիլ','Մայիս','Հունիս', |
||||
|
'Հուլիս','Օգոստոս','Սեպտեմբեր','Հոկտեմբեր','Նոյեմբեր','Դեկտեմբեր'], |
||||
|
monthNamesShort: ['Հունվ','Փետր','Մարտ','Ապր','Մայիս','Հունիս', |
||||
|
'Հուլ','Օգս','Սեպ','Հոկ','Նոյ','Դեկ'], |
||||
|
dayNames: ['կիրակի','եկուշաբթի','երեքշաբթի','չորեքշաբթի','հինգշաբթի','ուրբաթ','շաբաթ'], |
||||
|
dayNamesShort: ['կիր','երկ','երք','չրք','հնգ','ուրբ','շբթ'], |
||||
|
dayNamesMin: ['կիր','երկ','երք','չրք','հնգ','ուրբ','շբթ'], |
||||
|
dateFormat: 'dd.mm.yy', firstDay: 1, |
||||
|
isRTL: false}; |
||||
|
$.datepicker.setDefaults($.datepicker.regional['hy']); |
||||
|
}); |
||||
@ -0,0 +1,19 @@ |
|||||
|
/* Indonesian initialisation for the jQuery UI date picker plugin. */ |
||||
|
/* Written by Deden Fathurahman (dedenf@gmail.com). */ |
||||
|
jQuery(function($){ |
||||
|
$.datepicker.regional['id'] = { |
||||
|
closeText: 'Tutup', |
||||
|
prevText: '<mundur', |
||||
|
nextText: 'maju>', |
||||
|
currentText: 'hari ini', |
||||
|
monthNames: ['Januari','Februari','Maret','April','Mei','Juni', |
||||
|
'Juli','Agustus','September','Oktober','Nopember','Desember'], |
||||
|
monthNamesShort: ['Jan','Feb','Mar','Apr','Mei','Jun', |
||||
|
'Jul','Agus','Sep','Okt','Nop','Des'], |
||||
|
dayNames: ['Minggu','Senin','Selasa','Rabu','Kamis','Jumat','Sabtu'], |
||||
|
dayNamesShort: ['Min','Sen','Sel','Rab','kam','Jum','Sab'], |
||||
|
dayNamesMin: ['Mg','Sn','Sl','Rb','Km','jm','Sb'], |
||||
|
dateFormat: 'dd/mm/yy', firstDay: 0, |
||||
|
isRTL: false}; |
||||
|
$.datepicker.setDefaults($.datepicker.regional['id']); |
||||
|
}); |
||||
Some files were not shown because too many files changed in this diff
Write
Preview
Loading…
Cancel
Save
Reference in new issue