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())