Clickable usernames and hashtags

Should work well enough. Report edge cases.
This commit is contained in:
Cadence Fish
2020-02-04 03:30:19 +13:00
parent 1fcdfce868
commit 0ea95d1943
9 changed files with 105 additions and 7 deletions

View File

@@ -2,6 +2,7 @@ const constants = require("../constants")
const {proxyImage, proxyExtendedOwner} = require("../utils/proxyurl")
const {compile} = require("pug")
const collectors = require("../collectors")
const {structure} = require("../utils/structuretext")
const TimelineBaseMethods = require("./TimelineBaseMethods")
const TimelineChild = require("./TimelineChild")
require("../testimports")(collectors, TimelineChild, TimelineBaseMethods)
@@ -87,6 +88,12 @@ class TimelineEntry extends TimelineBaseMethods {
else return edge.node.text.replace(/\u2063/g, "") // I don't know why U+2063 INVISIBLE SEPARATOR is in here, but it is, and it causes rendering issues with certain fonts, so let's just remove it.
}
getStructuredCaption() {
const caption = this.getCaption()
if (!caption) return null // no caption
else return structure(caption)
}
/**
* Try to get the first meaningful line or sentence from the caption.
*/

View File

@@ -1,5 +1,6 @@
const constants = require("../constants")
const {proxyImage} = require("../utils/proxyurl")
const {structure} = require("../utils/structuretext")
const Timeline = require("./Timeline")
require("../testimports")(constants, Timeline)
@@ -17,6 +18,11 @@ class User {
this.proxyProfilePicture = proxyImage(this.data.profile_pic_url)
}
getStructuredBio() {
if (!this.data.biography) return null
return structure(this.data.biography)
}
getTtl(scale = 1) {
const expiresAt = this.cachedAt + constants.caching.resource_cache_time
const ttl = expiresAt - Date.now()