summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzhanghongqing <[email protected]>2020-08-27 09:37:41 +0800
committerzhanghongqing <[email protected]>2020-08-27 09:37:41 +0800
commit7d1d3bca54782678f24be46d48bd6a8c1ca5c519 (patch)
tree1ed749fdcc632cb37c3cbd67c90903abb20bfc2e
parent1dc4fe2de9e33c4b61917138a0230f2aa38d63ad (diff)
提交nexus 配置
-rw-r--r--pom.xml39
-rw-r--r--readme.md36
-rw-r--r--src/main/java/com/mesalab/ua/ClientParser.java1
-rw-r--r--src/main/java/com/mesalab/ua/OSParser.java7
-rw-r--r--src/test/java/com/mesalab/ua/Test.java46
-rw-r--r--src/test/java/com/mesalab/ua/UaTest.java2
6 files changed, 85 insertions, 46 deletions
diff --git a/pom.xml b/pom.xml
index 67303e2..f8d24a5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,11 +4,12 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
- <groupId>com.github.ua-parser</groupId>
- <artifactId>uap-java</artifactId>
+ <groupId>com.zdjizhi</groupId>
+ <artifactId>galaxy-ua-parser</artifactId>
<packaging>jar</packaging>
- <version>1.4.4-SNAPSHOT</version>
- <name>User Agent Parser for Java</name>
+ <name>galaxy</name>
+ <version>1.0.0</version>
+ <url>http://www.zdjizhi.com/galaxy-ua-parser</url>
<description>
Java implementation of the UA Parser library. Derives operating system, browser and device
@@ -32,25 +33,35 @@
</developer>
</developers>
- <url>https://github.com/ua-parser/uap-java</url>
-
<scm>
<connection>scm:git:git://github.com/ua-parser/uap-java.git</connection>
<developerConnection>scm:git:ssh://github.com:ua-parser/uap-java.git</developerConnection>
<url>http://github.com/ua-parser/uap-java/tree/master</url>
</scm>
-
+ <contributors>
+ <contributor>
+ <name>XX</name>
+ <url>https://</url>
+ </contributor>
+ </contributors>
+ <repositories>
+ <repository>
+ <id>nexu</id>
+ <name>Team Nexus Repository</name>
+ <url>http://192.168.40.125:8099/content/repositories/galaxy-ua-parser</url>
+ </repository>
+
+ </repositories>
<distributionManagement>
- <snapshotRepository>
- <id>ossrh</id>
- <url>https://oss.sonatype.org/content/repositories/snapshots</url>
- </snapshotRepository>
<repository>
- <id>ossrh</id>
- <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
+ <id>nexus</id>
+ <name>releases</name>
+ <url>http://192.168.40.125:8099/content/repositories/galaxy-ua-parser</url>
+ <uniqueVersion>true</uniqueVersion>
</repository>
</distributionManagement>
-
+
+
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
diff --git a/readme.md b/readme.md
index b0d7c28..0949947 100644
--- a/readme.md
+++ b/readme.md
@@ -20,8 +20,18 @@ you will then have the following folder `uap-java/uap-core` which contains the c
To build the project, execute
```
mvn package
+
```
+maven:
+--------
+```
+ <dependency>
+ <groupId>com.zdjizhi</groupId>
+ <artifactId>galaxy-ua-parser</artifactId>
+ <version>1.0.0</version>
+ </dependency>
+```
Usage:
--------
```java
@@ -29,20 +39,24 @@ Usage:
...
- String uaString = "Mozilla/5.0 (iPhone; CPU iPhone OS 5_1_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B206 Safari/7534.48.3";
+ String uaString = "Mozilla/5.0 (Linux; U; android 2.3.7; en-us; Nexus One Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1";
Parser uaParser = new Parser();
- Client c = uaParser.parse(uaString);
+ UserAgent u = uaParser.parse(uaString);
- System.out.println(c.client.family); // => "Mobile Safari"
- System.out.println(c.client.major); // => "5"
- System.out.println(c.client.minor); // => "1"
+ System.out.println(u.client.name); // => "Safari"
+ System.out.println(u.client.type); // => "Browser"
+ System.out.println(u.client.engine); // => "WebKit"
+ System.out.println(u.client.engineVersion); // => "533.1"
- System.out.println(c.os.family); // => "iOS"
- System.out.println(c.os.major); // => "5"
- System.out.println(c.os.minor); // => "1"
+ System.out.println(c.os.name); // => "Android"
+ System.out.println(c.os.version); // => "2"
+ System.out.println(c.os.platform); // => "HTC Nexus One"
- System.out.println(c.device.family); // => "iPhone"
+ System.out.println(c.device.name); // => "HTC Nexus One"
+ System.out.println(c.device.brand); // => "HTC"
+ System.out.println(c.device.model); // => "Nexus One"
+ System.out.println(c.device.type); // => "MOBILE"
```
## Publish to Sonatype OSSRH and Maven Central Repository
@@ -99,6 +113,4 @@ Changelog can be found [here](https://github.com/ua-parser/uap-java/wiki#changel
Author:
-------
- * Steve Jiang [@sjiang](https://twitter.com/sjiang)
-
- Based on the python implementation by Lindsey Simon and using agent data from BrowserScope
+ * Steve Jiang [@zdjz](http://www.zdjizhi.com/)
diff --git a/src/main/java/com/mesalab/ua/ClientParser.java b/src/main/java/com/mesalab/ua/ClientParser.java
index 24292b2..1f6126b 100644
--- a/src/main/java/com/mesalab/ua/ClientParser.java
+++ b/src/main/java/com/mesalab/ua/ClientParser.java
@@ -127,7 +127,6 @@ public class ClientParser {
type = "Other";
}
- System.out.println("client: " + pattern);
return name == null ? null : new Client(name, version, type, engine, engineVersion);
}
diff --git a/src/main/java/com/mesalab/ua/OSParser.java b/src/main/java/com/mesalab/ua/OSParser.java
index 849d534..3813fa3 100644
--- a/src/main/java/com/mesalab/ua/OSParser.java
+++ b/src/main/java/com/mesalab/ua/OSParser.java
@@ -105,22 +105,25 @@ public class OSParser {
}
} else if (groupCount >= 1) {
name = matcher.group(1);
+ } else {
+ name = "Other";
}
if (versionReplacement != null) {
version = getReplacement(matcher, versionReplacement);
} else if (groupCount >= 2) {
version = matcher.group(2);
+ } else {
+ version = "Other";
}
-
-
if (platformReplacement != null) {
platform = getReplacement(matcher, platformReplacement);
} else {
platform = "Other";
}
+// System.out.println("oa : "+pattern);
return name == null ? null : new OS(name, version, platform);
}
diff --git a/src/test/java/com/mesalab/ua/Test.java b/src/test/java/com/mesalab/ua/Test.java
index c9db7a1..1775c00 100644
--- a/src/test/java/com/mesalab/ua/Test.java
+++ b/src/test/java/com/mesalab/ua/Test.java
@@ -1,12 +1,10 @@
package com.mesalab.ua;
-import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.mesalab.ua.dto.UserAgent;
-import eu.bitwalker.useragentutils.Browser;
-import nl.basjes.parse.useragent.UserAgentAnalyzer;
import org.springframework.http.HttpEntity;
import org.springframework.util.LinkedMultiValueMap;
+import org.springframework.util.StopWatch;
import org.springframework.web.client.RestTemplate;
import java.io.BufferedWriter;
@@ -48,7 +46,7 @@ public class Test {
//构建参数
Map<String, Object> deleteParamMap = getDeleteSource();
String url = "http://" + "192.168.40.193:8123";
- deleteParamMap.put("query", "SELECT DISTINCT (user_agent) FROM k18_ods.tbs_ods_ntc_http_log_local where notEmpty(user_agent) LIMIT 100 FORMAT JSON;");
+ deleteParamMap.put("query", "SELECT DISTINCT (user_agent) FROM k18_ods.tbs_ods_ntc_http_log_local where notEmpty(user_agent) LIMIT 100000 FORMAT JSON;");
// 发送请求解析结果
String result = restTemplate.postForObject(getUrlWithParams(url, deleteParamMap), httpEntity, String.class);
@@ -61,30 +59,46 @@ public class Test {
Collections.sort(uaList);
String filePath = "C:\\Users\\Administrator\\Desktop\\data\\2.2.0\\uap.txt";
- UserAgentAnalyzer uaa = UserAgentAnalyzer
- .newBuilder()
- .hideMatcherLoadStats()
- .withCache(10000)
- .build();
+// UserAgentAnalyzer uaa = UserAgentAnalyzer
+// .newBuilder()
+// .hideMatcherLoadStats()
+// .withCache(10000)
+// .build();
//输出到文件
try(BufferedWriter fos = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(filePath)))){
Parser parser = new Parser();
- int num =0;
- for ( String ua : uaList) {
- num++;
+ double num =0;
+ double num2 =0;
+ StopWatch sw = new StopWatch();
+ sw.start();
+ System.err.println("***********开始解析***********");
+ for ( String ua : uaList) {
+
UserAgent parse = parser.parse(ua);
// eu.bitwalker.useragentutils.UserAgent userAgent = eu.bitwalker.useragentutils.UserAgent.parseUserAgentString(ua);
- Browser browser = Browser.parseUserAgentString(ua);
+// Browser browser = Browser.parseUserAgentString(ua);
// System.err.println(JSON.toJSONString(operatingSystem));
// System.err.println(JSON.toJSONString(userAgent));
// System.err.println(JSON.toJSONString(browser));
- nl.basjes.parse.useragent.UserAgent.ImmutableUserAgent agent = uaa.parse(ua);
+// nl.basjes.parse.useragent.UserAgent.ImmutableUserAgent agent = uaa.parse(ua);
// System.err.println(ua);
- System.err.println("\n"+num+": "+"\n"+JSON.toJSONString( parse.client ,true)+"\n"+"browser: "+browser+"\n"+"DeviceClass:"+agent);
+// System.err.println("\n"+num+": "+"\n"+JSON.toJSONString( parse.os ,true)+ "\n"+"DeviceClass:"+agent);
+ if ("Other".equals(parse.os.name)||"Other".equals(parse.os.version)||"Other".equals(parse.os.platform)){
+ num++;
+ }
+
+ if ("Other".equals(parse.device.name)||"Other".equals(parse.device.type)||"Other".equals(parse.device.brand)||"Other".equals(parse.device.model)){
+ num2++;
+ }
// fos.write(JSON.toJSONString( parser.parse(ua)));
// fos.newLine();
}
- };
+ sw.stop();
+ System.out.println("解析ua 用时:"+ sw.getTotalTimeSeconds()+" S");
+ System.out.println("总共ua os条数:"+ uaList.size()+", 未解出条数:"+num+" , 解析率为:"+String.format("%.2f %%",((uaList.size()-num)/uaList.size())*100));
+ System.out.println("总共ua device条数:"+ uaList.size()+", 未解出条数:"+num2+" , 解析率为:"+String.format("%.2f %%",(((uaList.size()-num2)/uaList.size())*100)));
+ System.err.println("***********结束解析***********");
+ }
}
diff --git a/src/test/java/com/mesalab/ua/UaTest.java b/src/test/java/com/mesalab/ua/UaTest.java
index fe80af4..7e2143d 100644
--- a/src/test/java/com/mesalab/ua/UaTest.java
+++ b/src/test/java/com/mesalab/ua/UaTest.java
@@ -16,7 +16,7 @@ public class UaTest {
try {
Parser uaParser = new Parser();
UserAgent c = uaParser.parse(uaString);
- System.err.println(c.client);
+ System.err.println(c);
System.out.println("=============================================");
System.out.println("=============================================");