Skip to content
This repository has been archived by the owner on Oct 3, 2020. It is now read-only.

Commit

Permalink
added day of the week detection
Browse files Browse the repository at this point in the history
  • Loading branch information
fulton committed Nov 30, 2019
1 parent 169553a commit 1d77d2a
Show file tree
Hide file tree
Showing 2 changed files with 64 additions and 29 deletions.
89 changes: 63 additions & 26 deletions src/main/java/com/andromeda/araserver/skills/Weather.kt
Original file line number Diff line number Diff line change
@@ -1,12 +1,8 @@
package com.andromeda.araserver.skills

import com.andromeda.araserver.util.KeyWord
import com.andromeda.araserver.util.LocLatTime
import com.andromeda.araserver.util.OutputModel
import com.andromeda.araserver.util.SortWords
import com.andromeda.araserver.util.*
import com.google.gson.Gson
import com.google.gson.JsonParser
import opennlp.tools.parser.Parse
import opennlp.tools.parser.Parser
import java.net.URL
import java.util.*
Expand All @@ -16,7 +12,7 @@ class Weather {
private var log: String? = null
private var lat: String? = null
private var term: String? = null
fun getWeatherNow(url:String): String {
fun getWeatherNow(url: String): String {
//get api params
val pairs =
ArrayList(listOf(*url.split("&".toRegex()).dropLastWhile { it.isEmpty() }.toTypedArray()))
Expand All @@ -37,11 +33,12 @@ class Weather {
val foreCast = dataSet.asJsonObject.get("summary").asString
val title = "$temp and $foreCast"

val toReturn = OutputModel(title,"", "", "", title, "");
val toReturn = OutputModel(title, "", "", "", title, "");
return Gson().toJson(toReturn)


}

fun mainPart(url: String, key: KeyWord, parse: Parser): String? {
val pairs =
ArrayList(listOf(*url.split("&".toRegex()).dropLastWhile { it.isEmpty() }.toTypedArray()))
Expand All @@ -55,13 +52,12 @@ class Weather {
}
}
try {
val loc = term?.let { getLocAndTime(it, key, parse) }
val loc = term?.let { getLocAndTime(it, key, parse) }
if (loc != null) {
log = loc.loc
lat = loc.lat
}
}
catch (e:Exception){
} catch (e: Exception) {
e.printStackTrace()
}
val urlGrid = URL("https://api.darksky.net/forecast/7b7fd158d8733db19ddac66bb71132b2/$lat,$log")
Expand All @@ -74,49 +70,90 @@ class Weather {
val foreCast = dataSet.asJsonObject.get("summary").asString
val title = "$temp and $foreCast"

val toReturn = OutputModel(title,"", "", "", title, "");
val toReturn = OutputModel(title, "", "", "", title, "");
return Gson().toJson(toReturn)


}
fun getLocAndTime(term:String, key:KeyWord, parse:Parser): LocLatTime {

private fun getLocAndTime(term: String, key: KeyWord, parse: Parser): LocLatTime {
println("Start NLP pls")
val toSort = SortWords(key, term).getTopicsPhrase(parse)
val dateArray =ArrayList<String>()
var time = "123456789"
dateArray.add( "tomorrow")
val dateArray = ArrayList<String>()
var time = ""
dateArray.add("tomorrow")
dateArray.add("monday")
//work on this
for (i in dateArray){
for (i2 in toSort){
for (i in dateArray) {
for (i2 in toSort) {
if (i == i2.word) time = i2.word

}
}
println(time)
var text = ""
for (i in toSort){
if (i.type == "NN" && i.word != time && i.word != "weather"){
for (i in toSort) {
if (i.type == "NN" && i.word != time && i.word != "weather") {
text += i.word + "%20"
}
}
val urlSearch = URL("https://atlas.microsoft.com/search/address/json?subscription-key=fB86F9IVmt2S20DMe5rlo3kJOpNkaUp1Py5txnPQt-I&api-version=1.0&query=$text")
val urlSearch =
URL("https://atlas.microsoft.com/search/address/json?subscription-key=fB86F9IVmt2S20DMe5rlo3kJOpNkaUp1Py5txnPQt-I&api-version=1.0&query=$text")
val jsonRawText = urlSearch.readText()
val jArray = JsonParser().parse(jsonRawText).asJsonObject.getAsJsonArray("results")
val lat = jArray[0].asJsonObject.getAsJsonObject("position").get("lat").asString
val log = jArray[0].asJsonObject.getAsJsonObject("position").get("lon").asString
return LocLatTime(log, lat, dateWord(time, log, lat,key, parse))
return LocLatTime(log, lat, dateWord(term, time, log, lat, key, parse))

}
private fun dateWord(mainVal:String, log:String, lat:String,key:KeyWord, parse: Parser): Int {
val url = URL("http://api.timezonedb.com/v2.1/get-time-zone?key=54K85TD0SUQQ&format=json&by=position&lat=$lat&lng=$log")

private fun dateWord(
mainVal: String,
timeWord: String,
log: String,
lat: String,
key: KeyWord,
parse: Parser
): Int {
val url =
URL("http://api.timezonedb.com/v2.1/get-time-zone?key=54K85TD0SUQQ&format=json&by=position&lat=$lat&lng=$log")
val rawJson = url.readText()
val time = JsonParser().parse(rawJson).asJsonObject.get("timestamp").asLong
var returnVal = 0
val phrase = ArrayList<WordGraph>()
val time = JsonParser().parse(rawJson).asJsonObject.get("timestamp").asLong
println(time)
val date = Date(time * 1000)
val c = Calendar.getInstance()
c.time = date
val dayOfWeek = c[Calendar.DAY_OF_WEEK] - 1



println(date)
val phrase = SortWords(key, mainVal).getComplexDate(parse)
if (timeWord == "" && timeWord != "tomorrow") phrase.addAll(SortWords(key, mainVal).getComplexDate(parse))
else if (timeWord == "tomorrow") returnVal = 1
else returnVal = timeMap(timeWord)?.let { getTime(dayOfWeek, it) }!!

return returnVal
}

return 0
private fun timeMap(mainVal: String): Int? {
val mainMap = mapOf(
"sunday" to 0,
"monday" to 1,
"tuesday" to 2,
"wednesday" to 3,
"thursday" to 4,
"friday" to 5,
"saturday" to 6
)
return mainMap[mainVal]

}
private fun getTime(currentTime:Int, nextTime:Int): Int {
val firstResult = currentTime - nextTime
return if (firstResult <= 0) firstResult + 7
else firstResult
}

}
4 changes: 1 addition & 3 deletions src/main/java/com/andromeda/araserver/util/SortWords.kt
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,12 @@ package com.andromeda.araserver.util
import opennlp.tools.parser.Parse
import opennlp.tools.parser.Parser
import java.util.ArrayList
import kotlin.AssertionError as AssertionError1

class SortWords(keyWord: KeyWord, mainVal: String) {

private val key = keyWord
private val mainText = mainVal
fun getTopics(parse: Parser): ArrayList<WordGraph> {
System.out.println("go")
println("go")
val toReturn = ArrayList<WordGraph>()
print("start")

Expand Down

0 comments on commit 1d77d2a

Please sign in to comment.