This is an automated email from the ASF dual-hosted git repository.
aradzinski pushed a commit to branch NLPCRAFT-156
in repository https://gitbox.apache.org/repos/asf/incubator-nlpcraft.git
The following commit(s) were added to refs/heads/NLPCRAFT-156 by this push:
new ec74be5 Fix for NLPCRAFT-156 and NLPCRAFT-157.
ec74be5 is described below
commit ec74be5065d624291644ff935500ee9188fc45d9
Author: Aaron Radzinski <[email protected]>
AuthorDate: Fri Oct 16 01:08:01 2020 -0700
Fix for NLPCRAFT-156 and NLPCRAFT-157.
---
.../org/apache/nlpcraft/common/util/NCUtils.scala | 36 ++++++++++++++++++++++
.../nlpcraft/model/tools/cmdline/NCCli.scala | 18 ++++++++---
.../org/apache/nlpcraft/probe/NCProbeBoot.scala | 2 +-
.../org/apache/nlpcraft/server/NCServer.scala | 2 +-
.../nlpcraft/server/rest/NCBasicRestApi.scala | 12 ++++----
5 files changed, 58 insertions(+), 12 deletions(-)
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/util/NCUtils.scala
b/nlpcraft/src/main/scala/org/apache/nlpcraft/common/util/NCUtils.scala
index 7890583..15a5c38 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/util/NCUtils.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/common/util/NCUtils.scala
@@ -48,9 +48,13 @@ import org.apache.commons.io.IOUtils
import org.apache.nlpcraft.common._
import org.apache.nlpcraft.common.ansi.NCAnsi._
import org.apache.nlpcraft.common.blowfish.NCBlowfishHasher
+import org.apache.nlpcraft.common.version.NCVersion
import org.jsoup.Jsoup
import org.jsoup.nodes.Document
import resource._
+import java.net.http.HttpClient
+import java.net.http.HttpRequest
+import java.net.http.HttpResponse
import scala.annotation.tailrec
import scala.collection.JavaConverters._
@@ -1265,6 +1269,38 @@ object NCUtils extends LazyLogging {
Option(scala.util.Try { Jsoup.connect(url).get() } getOrElse null)
/**
+ * Records GA screen view event. Ignores any errors.
+ *
+ * @param cd Content description for GA measurement protocol.
+ */
+ def gaScreenView(cd: String): Unit =
+ try
+ HttpClient.newHttpClient.send(
+ HttpRequest.newBuilder()
+ .uri(
+ URI.create("http://www.google-analytics.com/collect")
+ )
+ .POST(
+ HttpRequest.BodyPublishers.ofString(
+ s"v=1&" +
+ s"t=screenview&" +
+ s"tid=UA-180663034-1&" + //
'nlpcraft.apache.org' web property.
+ s"cid=555&" + // Hide any user information
(anonymous user).
+ s"aip=&" + // Hide user IP (anonymization).
+ s"an=nlpcraft&" +
+ s"av=${NCVersion.getCurrent.version}&" +
+ s"aid=org.apache.nlpcraft&" +
+ s"cd=$cd"
+ )
+ )
+ .build(),
+ HttpResponse.BodyHandlers.ofString()
+ )
+ catch {
+ case _: Exception ⇒ () // Ignore.
+ }
+
+ /**
* Formats given double number with provided precision.
*
* @param num Number to format.
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/tools/cmdline/NCCli.scala
b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/tools/cmdline/NCCli.scala
index 856e21a..a39434d 100644
---
a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/tools/cmdline/NCCli.scala
+++
b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/tools/cmdline/NCCli.scala
@@ -1885,8 +1885,19 @@ object NCCli extends App {
if (state.accessToken.nonEmpty)
error("Already signed in.")
else {
- val email = args.find(_.parameter.id ==
"email").getOrElse("[email protected]")
- val passwd = args.find(_.parameter.id ==
"passwd").getOrElse("admin")
+ val email = args.find(_.parameter.id ==
"email").flatMap(_.value).getOrElse("[email protected]")
+ val passwd = args.find(_.parameter.id ==
"passwd").flatMap(_.value).getOrElse("admin")
+
+ httpRest(
+ cmd,
+ "signin",
+ s"""
+ |{
+ |"email": "$email",
+ |"passwd": "$passwd"
+ |}
+ |""".stripMargin
+ )
}
}
@@ -2635,10 +2646,9 @@ object NCCli extends App {
* @param args
*/
private def boot(args: Array[String]): Unit = {
- // Check version.
new Thread() {
override def run(): Unit = {
-
System.out.println(U.getUrlDocument("https://nlpcraft.apache.org/vercheck/cli.html"))
+ U.gaScreenView("cli")
}
}
.start()
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/NCProbeBoot.scala
b/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/NCProbeBoot.scala
index e5d10c7..2de029f 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/NCProbeBoot.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/NCProbeBoot.scala
@@ -171,7 +171,7 @@ private [probe] object NCProbeBoot extends LazyLogging with
NCOpenCensusTrace {
private def start0(cfg: ProbeConfig, fut: CompletableFuture[Integer]):
Unit = {
// Check version.
new Thread() {
- override def run(): Unit =
U.getUrlDocument("https://nlpcraft.apache.org/vercheck/probe.html")
+ override def run(): Unit = U.gaScreenView("probe")
}
.start()
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/server/NCServer.scala
b/nlpcraft/src/main/scala/org/apache/nlpcraft/server/NCServer.scala
index f47fd13..99b231d 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/server/NCServer.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/server/NCServer.scala
@@ -352,7 +352,7 @@ object NCServer extends App with NCIgniteInstance with
LazyLogging with NCOpenCe
// Check version.
new Thread() {
- override def run(): Unit =
U.getUrlDocument("https://nlpcraft.apache.org/vercheck/server.html")
+ override def run(): Unit = U.gaScreenView("server")
}
.start()
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/server/rest/NCBasicRestApi.scala
b/nlpcraft/src/main/scala/org/apache/nlpcraft/server/rest/NCBasicRestApi.scala
index 126b25a..0f8416a 100644
---
a/nlpcraft/src/main/scala/org/apache/nlpcraft/server/rest/NCBasicRestApi.scala
+++
b/nlpcraft/src/main/scala/org/apache/nlpcraft/server/rest/NCBasicRestApi.scala
@@ -68,17 +68,17 @@ class NCBasicRestApi extends NCRestApi with LazyLogging
with NCOpenCensusTrace w
* General control exception.
* Note that these classes must be public because scala 2.11 internal
errors (compilations problems).
*/
- case class AccessTokenFailure(acsTkn: String) extends NCE(s"Unknown access
token: $acsTkn")
- case class SignInFailure(email: String) extends NCE(s"Invalid or unknown
user credentials: $email")
+ case class AccessTokenFailure(acsTkn: String) extends NCE(s"Unknown or
expired access token: $acsTkn")
+ case class SignInFailure(email: String) extends NCE(s"Invalid or unknown
user email: $email")
case class AdminRequired(email: String) extends NCE(s"Admin privileges
required: $email")
case class InvalidOperation(email: String) extends NCE(s"Invalid
operation.")
case class NotImplemented() extends NCE("Not implemented.")
class InvalidArguments(msg: String) extends NCE(msg)
- case class OutOfRangeField(fn: String, from: Number, to: Number) extends
InvalidArguments(s"API field ($fn) value is out of range ($from, $to).")
- case class TooLargeField(fn: String, max: Int) extends
InvalidArguments(s"API field ($fn) value exceeded max length of $max.")
- case class InvalidField(fn: String) extends InvalidArguments(s"API field
invalid: $fn")
- case class EmptyField(fn: String) extends InvalidArguments(s"API field
cannot be empty: $fn")
+ case class OutOfRangeField(fn: String, from: Number, to: Number) extends
InvalidArguments(s"Parameter ($fn) value is out of range ($from, $to).")
+ case class TooLargeField(fn: String, max: Int) extends
InvalidArguments(s"Parameter ($fn) value exceeded max length of $max.")
+ case class InvalidField(fn: String) extends InvalidArguments(s"Parameter
invalid: $fn")
+ case class EmptyField(fn: String) extends InvalidArguments(s"Parameter
cannot be empty: $fn")
case class InvalidExternalUserId(usrExtId: String) extends
InvalidArguments(s"External user ID is invalid or unknown: $usrExtId")
case class InvalidUserId(id: Long) extends InvalidArguments(s"User ID is
invalid or unknown: $id")
case class InvalidModelId(id: String) extends InvalidArguments(s"Unknown
model ID: $id")