diff --git a/storage/yandex/src/main/scala/com/karasiq/shadowcloud/storage/yandex/YandexStoragePlugin.scala b/storage/yandex/src/main/scala/com/karasiq/shadowcloud/storage/yandex/YandexStoragePlugin.scala
index 2c876771..94e06f53 100644
--- a/storage/yandex/src/main/scala/com/karasiq/shadowcloud/storage/yandex/YandexStoragePlugin.scala
+++ b/storage/yandex/src/main/scala/com/karasiq/shadowcloud/storage/yandex/YandexStoragePlugin.scala
@@ -1,8 +1,5 @@
package com.karasiq.shadowcloud.storage.yandex
-import java.awt.Desktop
-import java.net.URI
-
import akka.Done
import akka.actor.{ActorContext, ActorRef}
import com.karasiq.shadowcloud.ShadowCloud
@@ -20,22 +17,15 @@ import scala.util.Try
class YandexStoragePlugin extends StoragePlugin {
override def createStorage(storageId: StorageId, props: StorageProps)(implicit context: ActorContext): ActorRef = {
import context.{dispatcher, system}
- val sc = ShadowCloud()
+ val sc = ShadowCloud()
val api = new YandexWebApi(solveCaptcha = { imageUrl ⇒
- Future {
- sc.ui.showNotification(s"Yandex captcha required for $storageId: $imageUrl")
- if (Desktop.isDesktopSupported) Desktop.getDesktop.browse(new URI(imageUrl))
- sc.ui.askPassword("Yandex captcha")
- }(sc.ui.executionContext)
+ sc.challenges
+ .create(s"Yandex captcha ($storageId)", s"""
""")
+ .map(_.utf8String)
}, passChallenge = { url ⇒
- Future {
- if (Desktop.isDesktopSupported) Desktop.getDesktop.browse(new URI(url))
- sc.ui.showNotification(
- s"Yandex verification required for $storageId: $url\n" +
- "Please complete the verification and then press OK"
- )
- Done
- }(sc.ui.executionContext)
+ sc.challenges
+ .create(s"Yandex verification ($storageId)", s"""Please complete the verification""")
+ .map(_ ⇒ Done)
})
implicit val session: YandexSession = {