aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/kotlin/com/pitchedapps/frost/parsers/MessageParser.kt
diff options
context:
space:
mode:
authorAllan Wang <me@allanwang.ca>2017-12-29 19:39:04 -0500
committerGitHub <noreply@github.com>2017-12-29 19:39:04 -0500
commit32e6b5be0e662bbac22806bcc87259fd1a2e2ed0 (patch)
treec97f7ef11b60231bbe7337f5960413b95da0a8c2 /app/src/main/kotlin/com/pitchedapps/frost/parsers/MessageParser.kt
parent8fee0629c27edee847358efc82309118f3a9a3a5 (diff)
downloadfrost-32e6b5be0e662bbac22806bcc87259fd1a2e2ed0.tar.gz
frost-32e6b5be0e662bbac22806bcc87259fd1a2e2ed0.tar.bz2
frost-32e6b5be0e662bbac22806bcc87259fd1a2e2ed0.zip
Feature/native notifs (#579)
* Improve parser and add zip test * Remove ActivityOptionsCompat, resolves #555 * Create native notifs * Add animations * Add image rounder * Improve glide transformations * Add request service * Fix parser * Fix parser * Add thumbnail and fix notification text * Update parsers and regex * Auto mark as read * Add request implementation in pending intent * Remove unnecessary return data * Simplify command retrieval * Use name keys instead * Revamp all bundle calls * Fix up thumbnail layout
Diffstat (limited to 'app/src/main/kotlin/com/pitchedapps/frost/parsers/MessageParser.kt')
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/parsers/MessageParser.kt23
1 files changed, 15 insertions, 8 deletions
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/parsers/MessageParser.kt b/app/src/main/kotlin/com/pitchedapps/frost/parsers/MessageParser.kt
index 9d4a2193..02c6f189 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/parsers/MessageParser.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/parsers/MessageParser.kt
@@ -16,7 +16,11 @@ import org.jsoup.nodes.Element
* We can parse out the content we want directly and load it ourselves
*
*/
-object MessageParser : FrostParser<FrostMessages> by MessageParserImpl()
+object MessageParser : FrostParser<FrostMessages> by MessageParserImpl() {
+
+ fun queryUser(cookie: String?, name: String) = parseFromUrl(cookie, "${FbItem.MESSAGES.url}/?q=$name")
+
+}
data class FrostMessages(val threads: List<FrostThread>,
val seeMore: FrostLink?,
@@ -35,7 +39,7 @@ data class FrostMessages(val threads: List<FrostThread>,
with(it) {
NotificationContent(
data = data,
- notifId = Math.abs(id.toInt()),
+ id = id,
href = url,
title = title,
text = content ?: "",
@@ -55,12 +59,13 @@ data class FrostMessages(val threads: List<FrostThread>,
* [content] optional string for thread
*/
data class FrostThread(val id: Long,
- val img: String,
+ val img: String?,
val title: String,
val time: Long,
val url: String,
val unread: Boolean,
- val content: String?)
+ val content: String?,
+ val contentImgUrl: String?)
private class MessageParserImpl : FrostParserBase<FrostMessages>(true) {
@@ -99,10 +104,11 @@ private class MessageParserImpl : FrostParserBase<FrostMessages>(true) {
val epoch = FB_EPOCH_MATCHER.find(abbr.attr("data-store"))[1]?.toLongOrNull() ?: -1L
//fetch id
val id = FB_MESSAGE_NOTIF_ID_MATCHER.find(element.id())[1]?.toLongOrNull()
- ?: System.currentTimeMillis()
- val content = element.select("span.snippet").firstOrNull()?.text()?.trim()
+ ?: System.currentTimeMillis() % FALLBACK_TIME_MOD
+ val snippet = element.select("span.snippet").firstOrNull()
+ val content = snippet?.text()?.trim()
+ val contentImg = snippet?.select("i[style*=url]")?.getStyleUrl()
val img = element.getInnerImgStyle()
- L.v("url", a.attr("href"))
return FrostThread(
id = id,
img = img,
@@ -110,7 +116,8 @@ private class MessageParserImpl : FrostParserBase<FrostMessages>(true) {
time = epoch,
url = a.attr("href").formattedFbUrl,
unread = !element.hasClass("acw"),
- content = content
+ content = content,
+ contentImgUrl = contentImg
)
}