Skip to content

Commit

Permalink
Add Agency Parser
Browse files Browse the repository at this point in the history
  • Loading branch information
ksharma-xyz committed Aug 30, 2024
1 parent fa27f9a commit 05ffa2d
Show file tree
Hide file tree
Showing 2 changed files with 52 additions and 3 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
package xyz.ksharma.krail.data.gtfs_static.parser

import timber.log.Timber
import xyz.ksharma.krail.model.gtfs_static.Agency
import java.io.BufferedReader
import java.io.FileReader
import java.io.IOException
import java.nio.file.Path

object AgencyParser {

internal fun Path.parseAgency(): List<Agency> {
val agencyList = mutableListOf<Agency>()

try {
BufferedReader(FileReader(this.toString())).use { reader ->
val headersList = reader.readLine().split(",").trimQuotes()
// todo use headers instead of hard code later.
//Log.d(TAG, "headersList: $headersList")

while (true) {
val line = reader.readLine() ?: break
val fieldsList = line.split(",").trimQuotes()

agencyList.add(
Agency(
agencyId = fieldsList[0],
agencyName = fieldsList[1],
agencyUrl = fieldsList[2],
agencyTimezone = fieldsList[3],
agencyLang = fieldsList[4],
agencyPhone = fieldsList[5],
)
)
}
}
} catch (e: IOException) {
e.printStackTrace()
Timber.e(e, "parseCalendar: ")
} catch (e: IllegalArgumentException) {
e.printStackTrace()
Timber.e(e, "parseCalendar: ")
}

return agencyList
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import kotlinx.coroutines.withContext
import okhttp3.Response
import timber.log.Timber
import xyz.ksharma.krail.data.cacheZipResponse
import xyz.ksharma.krail.data.gtfs_static.parser.CalendarParser.parseCalendar
import xyz.ksharma.krail.data.gtfs_static.parser.AgencyParser.parseAgency
import xyz.ksharma.krail.di.AppDispatchers
import xyz.ksharma.krail.di.Dispatcher
import xyz.ksharma.krail.model.sydneytrains.GTFSFeedFileNames
Expand Down Expand Up @@ -36,7 +36,9 @@ class SydneyTrainsRepositoryImpl @Inject constructor(
// Timber.d("routesList: $routesList")
//val occupancyList = context.toPath(GTFSFeedFileNames.OCCUPANCIES.fileName).parseOccupancy()
//Timber.d("occupancyList: ${occupancyList.size}")
val calendarList = context.toPath(GTFSFeedFileNames.CALENDAR.fileName).parseCalendar()
Timber.d("calendarList: ${calendarList}")
//val calendarList = context.toPath(GTFSFeedFileNames.CALENDAR.fileName).parseCalendar()
//Timber.d("calendarList: ${calendarList}")
val agencyList = context.toPath(GTFSFeedFileNames.AGENCY.fileName).parseAgency()
Timber.d("agencyList: $agencyList")
}
}

0 comments on commit 05ffa2d

Please sign in to comment.