From 4c5f7ad8deb1608c84dfbacbfc8c0518f60ac8af Mon Sep 17 00:00:00 2001 From: Matte23 Date: Mon, 16 Sep 2019 20:02:14 +0200 Subject: [PATCH] Parse date and title from circular string --- .../net/underdesk/circolapp/data/Circular.kt | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/net/underdesk/circolapp/data/Circular.kt b/app/src/main/java/net/underdesk/circolapp/data/Circular.kt index 52f70cc..a3bd7a6 100644 --- a/app/src/main/java/net/underdesk/circolapp/data/Circular.kt +++ b/app/src/main/java/net/underdesk/circolapp/data/Circular.kt @@ -20,12 +20,14 @@ package net.underdesk.circolapp.data import androidx.room.Entity import androidx.room.PrimaryKey +import java.util.regex.Pattern @Entity(tableName = "circulars") data class Circular( @PrimaryKey val id: Long, val name: String, val url: String, + val date: String, val attachmentsNames: MutableList = mutableListOf(), val attachmentsUrls: MutableList = mutableListOf() ) { @@ -33,7 +35,21 @@ data class Circular( fun generateFromString(string: String, url: String): Circular { val id = string.split(" ")[1] - return Circular(id.toLong(), string, url) + val dateRegex = """(\d{2}\/\d{2}\/\d{4})""" + val matcherDate = Pattern.compile(dateRegex).matcher(string) + + var title = string.removeSuffix("-signed") + + return if (matcherDate.find()) { + title = title.removeRange(0, matcherDate.end()) + .removePrefix(" ") + .removePrefix("_") + .removePrefix(" ") + + Circular(id.toLong(), title, url, matcherDate.group(1) ?: "") + } else { + Circular(id.toLong(), title, url, "") + } } } } \ No newline at end of file