mirror of
https://github.com/librecaptcha/lc-core.git
synced 2025-04-19 10:07:21 -04:00
Added thread support
Added scheduleThreadPoolExecutor to run the thread periodically
This commit is contained in:
parent
77bc4c6ccf
commit
e52b87d72e
@ -12,6 +12,7 @@ import org.json4s.JsonDSL._
|
|||||||
import java.util.Base64
|
import java.util.Base64
|
||||||
import org.json4s.jackson.Serialization
|
import org.json4s.jackson.Serialization
|
||||||
import org.json4s.jackson.Serialization.{read, write}
|
import org.json4s.jackson.Serialization.{read, write}
|
||||||
|
import java.util.concurrent._
|
||||||
import scala.Array
|
import scala.Array
|
||||||
|
|
||||||
trait ChallengeProvider {
|
trait ChallengeProvider {
|
||||||
@ -66,6 +67,27 @@ class Captcha {
|
|||||||
id
|
id
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val task = new Runnable {
|
||||||
|
val provider = new FilterChallenge
|
||||||
|
def run(): Unit = {
|
||||||
|
val (image, secret) = provider.returnChallenge()
|
||||||
|
val blob = convertImage(image)
|
||||||
|
val token = scala.util.Random.nextInt(10000).toString
|
||||||
|
val id = Id(token)
|
||||||
|
insertPstmt.setString(1, token)
|
||||||
|
insertPstmt.setString(2, provider.id)
|
||||||
|
insertPstmt.setString(3, secret)
|
||||||
|
insertPstmt.setObject(4, provider)
|
||||||
|
insertPstmt.setBlob(5, blob)
|
||||||
|
insertPstmt.executeUpdate()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
def beginThread(delay: Int) : Unit = {
|
||||||
|
val ex = new ScheduledThreadPoolExecutor(1)
|
||||||
|
val thread = ex.scheduleAtFixedRate(task, 1, delay, TimeUnit.SECONDS)
|
||||||
|
}
|
||||||
|
|
||||||
def getAnswer(answer: Answer): Boolean = {
|
def getAnswer(answer: Answer): Boolean = {
|
||||||
selectPstmt.setString(1, answer.id)
|
selectPstmt.setString(1, answer.id)
|
||||||
val rs: ResultSet = selectPstmt.executeQuery()
|
val rs: ResultSet = selectPstmt.executeQuery()
|
||||||
@ -83,7 +105,7 @@ class Captcha {
|
|||||||
val id = rs.getString("id")
|
val id = rs.getString("id")
|
||||||
val secret = rs.getString("secret")
|
val secret = rs.getString("secret")
|
||||||
val image = rs.getString("image")
|
val image = rs.getString("image")
|
||||||
println(s"${token}\t\t${id}\t\t${secret}\t\t${image}")
|
println(s"${token}\t\t${id}\t\t${secret}\t\t")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -143,9 +165,11 @@ class Server(port: Int){
|
|||||||
|
|
||||||
object LCFramework{
|
object LCFramework{
|
||||||
def main(args: scala.Array[String]) {
|
def main(args: scala.Array[String]) {
|
||||||
|
val captcha = new Captcha()
|
||||||
val server = new Server(8888)
|
val server = new Server(8888)
|
||||||
server.start()
|
server.start()
|
||||||
|
captcha.beginThread(2)
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user