refactor: splatoon3ink api

Signed-off-by: moonleay <contact@moonleay.net>
This commit is contained in:
moonleay 2023-12-31 22:02:59 +01:00
parent d8753a8c1f
commit f3b28ac392
Signed by: moonleay
GPG key ID: 82667543CCD715FB
18 changed files with 39 additions and 37 deletions

View file

@ -16,9 +16,9 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
package net.moonleay.lilJudd.data.api package net.moonleay.lilJudd.data.api.splatoon3ink
import net.moonleay.lilJudd.data.api.entry.schedule.ModeData import net.moonleay.lilJudd.data.api.splatoon3ink.entry.schedule.ModeData
import net.moonleay.lilJudd.util.TimeUtil import net.moonleay.lilJudd.util.TimeUtil
object Splatoon3Api { object Splatoon3Api {

View file

@ -16,21 +16,21 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
package net.moonleay.lilJudd.data.api package net.moonleay.lilJudd.data.api.splatoon3ink
import io.ktor.http.* import io.ktor.http.*
import kotlinx.serialization.json.* import kotlinx.serialization.json.*
import net.moonleay.lilJudd.data.api.entry.coop.CoopGearData import net.moonleay.lilJudd.data.api.splatoon3ink.entry.coop.CoopGearData
import net.moonleay.lilJudd.data.api.entry.schedule.* import net.moonleay.lilJudd.data.api.splatoon3ink.entry.schedule.*
import net.moonleay.lilJudd.data.api.entry.splatfest.SplatfestColor import net.moonleay.lilJudd.data.api.splatoon3ink.entry.splatfest.SplatfestColor
import net.moonleay.lilJudd.data.api.entry.splatfest.SplatfestData import net.moonleay.lilJudd.data.api.splatoon3ink.entry.splatfest.SplatfestData
import net.moonleay.lilJudd.data.api.entry.splatfest.SplatfestTeamData import net.moonleay.lilJudd.data.api.splatoon3ink.entry.splatfest.SplatfestTeamData
import net.moonleay.lilJudd.data.api.entry.splatfest.SplatfestTeamResults import net.moonleay.lilJudd.data.api.splatoon3ink.entry.splatfest.SplatfestTeamResults
import net.moonleay.lilJudd.data.api.entry.splatnet.BrandData import net.moonleay.lilJudd.data.api.splatoon3ink.entry.splatnet.BrandData
import net.moonleay.lilJudd.data.api.entry.splatnet.GearAbilityData import net.moonleay.lilJudd.data.api.splatoon3ink.entry.splatnet.GearAbilityData
import net.moonleay.lilJudd.data.api.entry.splatnet.SplatnetItemData import net.moonleay.lilJudd.data.api.splatoon3ink.entry.splatnet.SplatnetItemData
import net.moonleay.lilJudd.data.api.type.ApiDataType import net.moonleay.lilJudd.data.api.splatoon3ink.type.ApiDataType
import net.moonleay.lilJudd.data.api.type.ApiRequestType import net.moonleay.lilJudd.data.api.splatoon3ink.type.ApiRequestType
import net.moonleay.lilJudd.util.Logger import net.moonleay.lilJudd.util.Logger
import net.moonleay.lilJudd.util.NetUtil import net.moonleay.lilJudd.util.NetUtil
import net.moonleay.liljudd.build.BuildConstants import net.moonleay.liljudd.build.BuildConstants
@ -49,13 +49,14 @@ object Splatoon3ApiCache {
internal var cachedChallengesData = mutableListOf<ChallengeModeData>() internal var cachedChallengesData = mutableListOf<ChallengeModeData>()
internal var cachedShiftData = mutableListOf<ShiftData>() internal var cachedShiftData = mutableListOf<ShiftData>()
internal var cachedBigRunShiftData = mutableListOf<ShiftData>() internal var cachedBigRunShiftData = mutableListOf<ShiftData>()
internal var cachedCoopRewardsData = mutableListOf<CoopGearData>() internal var cachedCoopRewardsData =
mutableListOf<CoopGearData>()
internal var cachedSplatnetItemData = mutableListOf<SplatnetItemData>() internal var cachedSplatnetItemData = mutableListOf<SplatnetItemData>()
internal var cachedSplatnetLimitedItemData = mutableListOf<SplatnetItemData>() internal var cachedSplatnetLimitedItemData = mutableListOf<SplatnetItemData>()
internal lateinit var splatnetShopBrandData: BrandData internal lateinit var splatnetShopBrandData: BrandData
internal lateinit var splatnetShopNextBrandData: BrandData internal lateinit var splatnetShopNextBrandData: BrandData
fun updateData(dataType: ApiDataType, requestType: ApiRequestType) { fun updateData(dataType: ApiDataType, requestType: ApiRequestType) {
Logger.out("Updating data for $dataType with USER-AGENT: $user_agent") Logger.out("Updating data for $dataType with USER-AGENT: ${user_agent}")
Logger.out("Reason for update: $requestType") Logger.out("Reason for update: $requestType")
when (dataType) { when (dataType) {
ApiDataType.SCHEDULES -> { ApiDataType.SCHEDULES -> {
@ -225,7 +226,8 @@ object Splatoon3ApiCache {
val obj = it as JsonObject val obj = it as JsonObject
val imageURL = Url(obj.jsonObject["originalImage"]!!.jsonObject["url"]!!.jsonPrimitive.content) val imageURL = Url(obj.jsonObject["originalImage"]!!.jsonObject["url"]!!.jsonPrimitive.content)
val id = obj.jsonObject["vsStageId"]!!.jsonPrimitive.int val id = obj.jsonObject["vsStageId"]!!.jsonPrimitive.int
cachedMapData[id] = MapData( cachedMapData[id] =
MapData(
id, id,
imageURL, imageURL,
it.jsonObject["name"]!!.jsonPrimitive.content it.jsonObject["name"]!!.jsonPrimitive.content

View file

@ -16,7 +16,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
package net.moonleay.lilJudd.data.api.entry.coop package net.moonleay.lilJudd.data.api.splatoon3ink.entry.coop
import io.ktor.http.* import io.ktor.http.*

View file

@ -16,7 +16,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
package net.moonleay.lilJudd.data.api.entry.schedule package net.moonleay.lilJudd.data.api.splatoon3ink.entry.schedule
data class ChallengeModeData( data class ChallengeModeData(
val leagueMatchEventId: String, val leagueMatchEventId: String,

View file

@ -16,7 +16,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
package net.moonleay.lilJudd.data.api.entry.schedule package net.moonleay.lilJudd.data.api.splatoon3ink.entry.schedule
import io.ktor.http.* import io.ktor.http.*

View file

@ -16,7 +16,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
package net.moonleay.lilJudd.data.api.entry.schedule package net.moonleay.lilJudd.data.api.splatoon3ink.entry.schedule
data class ModeData( data class ModeData(
val startTime: String, val startTime: String,

View file

@ -16,7 +16,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
package net.moonleay.lilJudd.data.api.entry.schedule package net.moonleay.lilJudd.data.api.splatoon3ink.entry.schedule
import io.ktor.http.* import io.ktor.http.*

View file

@ -16,7 +16,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
package net.moonleay.lilJudd.data.api.entry.schedule package net.moonleay.lilJudd.data.api.splatoon3ink.entry.schedule
data class TimePeriodData( data class TimePeriodData(
val startTime: String, val startTime: String,

View file

@ -16,7 +16,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
package net.moonleay.lilJudd.data.api.entry.schedule package net.moonleay.lilJudd.data.api.splatoon3ink.entry.schedule
import io.ktor.http.* import io.ktor.http.*

View file

@ -16,7 +16,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
package net.moonleay.lilJudd.data.api.entry.splatfest package net.moonleay.lilJudd.data.api.splatoon3ink.entry.splatfest
data class SplatfestColor( data class SplatfestColor(
val a: Int, val a: Int,

View file

@ -16,7 +16,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
package net.moonleay.lilJudd.data.api.entry.splatfest package net.moonleay.lilJudd.data.api.splatoon3ink.entry.splatfest
import io.ktor.http.* import io.ktor.http.*

View file

@ -16,7 +16,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
package net.moonleay.lilJudd.data.api.entry.splatfest package net.moonleay.lilJudd.data.api.splatoon3ink.entry.splatfest
data class SplatfestTeamData( data class SplatfestTeamData(
val teamName: String, val teamName: String,

View file

@ -16,7 +16,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
package net.moonleay.lilJudd.data.api.entry.splatfest package net.moonleay.lilJudd.data.api.splatoon3ink.entry.splatfest
data class SplatfestTeamResults( data class SplatfestTeamResults(
val isWinner: Boolean, val isWinner: Boolean,

View file

@ -16,7 +16,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
package net.moonleay.lilJudd.data.api.entry.splatnet package net.moonleay.lilJudd.data.api.splatoon3ink.entry.splatnet
import io.ktor.http.* import io.ktor.http.*

View file

@ -16,7 +16,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
package net.moonleay.lilJudd.data.api.entry.splatnet package net.moonleay.lilJudd.data.api.splatoon3ink.entry.splatnet
import io.ktor.http.* import io.ktor.http.*

View file

@ -16,7 +16,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
package net.moonleay.lilJudd.data.api.entry.splatnet package net.moonleay.lilJudd.data.api.splatoon3ink.entry.splatnet
import io.ktor.http.* import io.ktor.http.*

View file

@ -16,7 +16,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
package net.moonleay.lilJudd.data.api.type package net.moonleay.lilJudd.data.api.splatoon3ink.type
enum class ApiDataType { enum class ApiDataType {
SCHEDULES, SCHEDULES,

View file

@ -16,7 +16,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
package net.moonleay.lilJudd.data.api.type package net.moonleay.lilJudd.data.api.splatoon3ink.type
enum class ApiRequestType(val nameToDisplay: String) { enum class ApiRequestType(val nameToDisplay: String) {
AUTOMATIC_CACHE_UPDATE("automatic request to update the cache"), AUTOMATIC_CACHE_UPDATE("automatic request to update the cache"),