diff --git a/build.gradle.kts b/build.gradle.kts
index dfa82fd..34a89ad 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -32,7 +32,7 @@ dependencies {
compile("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
compile ("org.jetbrains.kotlinx:kotlinx-coroutines-core")
- compile("com.lightstreamer:ls-javase-client:3.1.1")
+ compile("com.lightstreamer:ls-javase-client:4.3.7")
compile("com.fasterxml.jackson.module:jackson-module-kotlin:2.10.2")
diff --git a/drivers/windows/chromedriver.exe b/drivers/windows/chromedriver.exe
index 14e61bc..0e49805 100644
Binary files a/drivers/windows/chromedriver.exe and b/drivers/windows/chromedriver.exe differ
diff --git a/pom.xml b/pom.xml
index 5487342..93897a2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -55,7 +55,7 @@
com.lightstreamer
ls-javase-client
- 3.1.1
+ 4.3.7
compile
diff --git a/src/main/kotlin/ok/work/etoroapi/client/EtoroHttpClient.kt b/src/main/kotlin/ok/work/etoroapi/client/EtoroHttpClient.kt
index feb81fd..7b0ce7c 100644
--- a/src/main/kotlin/ok/work/etoroapi/client/EtoroHttpClient.kt
+++ b/src/main/kotlin/ok/work/etoroapi/client/EtoroHttpClient.kt
@@ -25,6 +25,7 @@ import java.net.http.HttpClient
import java.net.http.HttpRequest
import java.net.http.HttpResponse
import javax.annotation.PostConstruct
+import kotlin.math.log
data class ViewContext(val ClientViewRate: Double)
@@ -116,7 +117,12 @@ class EtoroHttpClient {
if (!imageData.has("Uri")) {
continue;
}
- val image = Image(imageData.getInt("Width"), imageData.getInt("Height"), imageData.getString("Uri"))
+ val image = Image(0,0, "");
+ try {
+ val image = Image(imageData.getInt("Width"), imageData.getInt("Height"), imageData.getString("Uri"))
+ } catch (e: Exception) {
+
+ }
imageList.add(image)
}
var id: String
diff --git a/src/main/kotlin/ok/work/etoroapi/client/browser/EtoroBrowserContext.kt b/src/main/kotlin/ok/work/etoroapi/client/browser/EtoroBrowserContext.kt
index 3d06fca..7b5db66 100644
--- a/src/main/kotlin/ok/work/etoroapi/client/browser/EtoroBrowserContext.kt
+++ b/src/main/kotlin/ok/work/etoroapi/client/browser/EtoroBrowserContext.kt
@@ -40,7 +40,12 @@ class EtoroMetadataService(@Value("\${etoro.baseUrl}") val baseUrl: String, @Val
opts = ChromeOptions()
System.setProperty("webdriver.chrome.driver", pathToDriver)
- opts.addArguments("start-maximized")
+ opts.addArguments("--no-sandbox"); // Bypass OS security model
+ opts.addArguments("start-maximized"); // open Browser in maximized mode
+ opts.addArguments("disable-infobars"); // disabling infobars
+ opts.addArguments("--disable-extensions"); // disabling extensions
+ opts.addArguments("--disable-gpu"); // applicable to windows os only
+ opts.addArguments("--disable-dev-shm-usage"); // overcome limited resource problems
opts.addArguments("--disable-blink-features=AutomationControlled")
login()
}
diff --git a/src/main/kotlin/ok/work/etoroapi/client/websocket/listeners/EtoroListener.kt b/src/main/kotlin/ok/work/etoroapi/client/websocket/listeners/EtoroListener.kt
index 283c702..5bf6772 100644
--- a/src/main/kotlin/ok/work/etoroapi/client/websocket/listeners/EtoroListener.kt
+++ b/src/main/kotlin/ok/work/etoroapi/client/websocket/listeners/EtoroListener.kt
@@ -6,6 +6,10 @@ import com.lightstreamer.client.SubscriptionListener
open class EtoroListener : SubscriptionListener {
+ override fun onRealMaxFrequency(p0: String?) {
+ println("onRealMaxFrequency")
+ }
+
override fun onListenEnd(subscription: Subscription) {
println("onListenEnd")
}
diff --git a/src/main/kotlin/ok/work/etoroapi/client/websocket/listeners/EtoroPriceListener.kt b/src/main/kotlin/ok/work/etoroapi/client/websocket/listeners/EtoroPriceListener.kt
index 5180581..5487ea3 100644
--- a/src/main/kotlin/ok/work/etoroapi/client/websocket/listeners/EtoroPriceListener.kt
+++ b/src/main/kotlin/ok/work/etoroapi/client/websocket/listeners/EtoroPriceListener.kt
@@ -23,7 +23,7 @@ class EtoroPriceListener : EtoroListener() {
}
override fun onItemUpdate(itemUpdate: ItemUpdate) {
- val id = itemUpdate.itemName.replace("instrument:", "")
+ val id = itemUpdate.itemName!!.replace("instrument:", "")
if (watchlist.getById(id) !== null) {
watchlist.updatePrice(id, itemUpdate.getValue(2), itemUpdate.getValue(3))
@@ -36,7 +36,7 @@ class EtoroPriceListener : EtoroListener() {
val log = StringBuilder()
var update = HashMap()
for (i in 1..subscriptionFields.size) {
- update.put(subscriptionFields[i-1], itemUpdate.getValue(i))
+ update.put(subscriptionFields[i-1], itemUpdate.getValue(i).toString())
log.append("${itemUpdate.getValue(i)} | ")
}
println(log.toString())