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

Commit

Permalink
working on new server style
Browse files Browse the repository at this point in the history
  • Loading branch information
fulton committed Jan 2, 2020
1 parent 0c421d1 commit a68c9ad
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 87 deletions.
94 changes: 7 additions & 87 deletions src/main/java/com/andromeda/araserver/Run.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,16 @@ package com.andromeda.araserver

import com.andromeda.araserver.iot.Main
import com.andromeda.araserver.iot.NewDevice
import com.andromeda.araserver.iot.Status
import com.andromeda.araserver.pages.ApiStart
import com.andromeda.araserver.pages.GetSkillData
import com.andromeda.araserver.pages.RssMain.rssMain1
import com.andromeda.araserver.pages.Update
import com.andromeda.araserver.skills.*
import com.andromeda.araserver.pages.RssMain
import com.andromeda.araserver.skills.GetInfo
import com.andromeda.araserver.skills.Hello
import com.andromeda.araserver.skills.Locdec
import com.andromeda.araserver.skills.Weather
import com.andromeda.araserver.util.KeyWord
import com.rometools.rome.feed.synd.SyndFeed
import com.rometools.rome.io.FeedException
import com.rometools.rome.io.SyndFeedOutput
import fi.iki.elonen.NanoHTTPD
import io.ktor.application.Application
import io.ktor.application.ApplicationCallPipeline
import io.ktor.application.call
import io.ktor.request.queryString
import io.ktor.request.uri
import io.ktor.response.respondText
import io.ktor.routing.get
Expand All @@ -26,90 +21,14 @@ import io.ktor.server.netty.Netty
import opennlp.tools.parser.Parser
import opennlp.tools.parser.ParserFactory
import opennlp.tools.parser.ParserModel
import java.io.IOException
import java.net.URL
import java.sql.SQLException
import java.util.*

object Run {
private var keyWord: KeyWord? = null
private var model: ParserModel? = null
private var parser: Parser? = null
//If connected to
fun serve(session: NanoHTTPD.IHTTPSession) {
val tag: Int
//URI passed from client
val sessionUri = session.uri
//Feed if any
var syndFeed: SyndFeed? = null
//Text to be outputted
var main2: String? = "err"
//Functions related to the search api
//Start API function
when {
sessionUri.startsWith("/api") -> main2 =
ApiStart().apiMain(sessionUri, keyWord, parser)
sessionUri.startsWith("/hi") -> main2 =
Hello().hello()
sessionUri.startsWith("/yelpclient") -> main2 =
Locdec().main(sessionUri, keyWord, parser)
sessionUri.startsWith("/weath") -> main2 =
Weather().mainPart(sessionUri, keyWord!!, parser!!)
sessionUri.startsWith("/devices/") -> main2 =
Main().main(sessionUri)
sessionUri.startsWith("/deviceinfo/") -> main2 =
Status().main(sessionUri)
sessionUri.startsWith("/search") -> {
main2 = GetInfo().main(sessionUri)
}
sessionUri.startsWith("/newdevice/") -> {
main2 = ""
NewDevice().main(sessionUri)
}
sessionUri.startsWith("/math") -> main2 =
Equations().main(sessionUri)
sessionUri.startsWith("/skillsdata/") -> main2 =
GetSkillData().main(sessionUri)
sessionUri.startsWith("/update") -> main2 =
Update().update(sessionUri)
sessionUri.startsWith("/what") -> main2 =
SocialSkills().doYouLike(sessionUri.replace("/what/", ""))
sessionUri.startsWith("/store") -> {
try {
main2 = com.andromeda.araserver.store.Main().GetStoreContent()
} catch (e: SQLException) {
e.printStackTrace()
}
}
else -> { // if getting RSS info set tag value this will be used to get the correct feed
tag = when (sessionUri) {
"/world" -> 1
"/us" -> 2
"/tech" -> 3
"/money" -> 4
else -> 0
}
try { // get Rss feed from RssMain.kt
syndFeed = rssMain1(tag)
} catch (e: IOException) { // if any issues
e.printStackTrace()
} catch (e: FeedException) {
e.printStackTrace()
}
// turn feed content in to XML text
try {
assert(syndFeed != null)
main2 = SyndFeedOutput().outputString(syndFeed)
} catch (e: FeedException) {
e.printStackTrace()
}
}
}
println(sessionUri)
//Output response

}
fun serverCode(a:Application) {
private fun serverCode(a:Application) {
a.routing {
println("")
get("/api/{param?}") {
Expand All @@ -135,6 +54,7 @@ object Run {
}
get("/weath/{param?}"){call.respondText(Weather().mainPart(call.request.uri.replace("%20", " "), keyWord!!, parser!!)!!)}
get("/yelpclient/{param?}"){call.respondText(Locdec().main(call.request.uri.replace("%20", " "), keyWord, parser))}
get("/{param?}"){call.respondText { RssMain.inString(call.request.uri.replace("%20", " ")) }}
}
}
// Static function, to be run on start.
Expand Down
27 changes: 27 additions & 0 deletions src/main/java/com/andromeda/araserver/pages/RssMain.kt
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import com.rometools.rome.feed.synd.SyndFeed
import com.rometools.rome.feed.synd.SyndFeedImpl
import com.rometools.rome.io.FeedException
import com.rometools.rome.io.SyndFeedInput
import com.rometools.rome.io.SyndFeedOutput
import com.rometools.rome.io.XmlReader


Expand Down Expand Up @@ -114,4 +115,30 @@ object RssMain {
//return the value
return feed
}
fun inString(url: String): String {
val tag = when (url) {
"/world" -> 1
"/us" -> 2
"/tech" -> 3
"/money" -> 4
else -> 0
}
var main2 = ""
var syndFeed:SyndFeed? = null
try { // get Rss feed from RssMain.kt
syndFeed = rssMain1(tag)
} catch (e: IOException) { // if any issues
e.printStackTrace()
} catch (e: FeedException) {
e.printStackTrace()
}
// turn feed content in to XML text
try {
assert(syndFeed != null)
main2 = SyndFeedOutput().outputString(syndFeed)
} catch (e: FeedException) {
e.printStackTrace()
}
return main2
}
}

0 comments on commit a68c9ad

Please sign in to comment.