From 47d206666b63e2a95c8adba8a017d5afc67a9ab6 Mon Sep 17 00:00:00 2001 From: Alessio Date: Sun, 27 Aug 2023 15:46:57 -0300 Subject: [PATCH] Add entity recognition in user bios as well --- internal/webserver/server_test.go | 16 ++++++++++++++- internal/webserver/static/styles.css | 8 ++++---- .../tpl/tweet_page_includes/single_tweet.tpl | 20 ++----------------- internal/webserver/tpl/user_feed.tpl | 2 +- 4 files changed, 22 insertions(+), 24 deletions(-) diff --git a/internal/webserver/server_test.go b/internal/webserver/server_test.go index 5eb7709..573f3ee 100644 --- a/internal/webserver/server_test.go +++ b/internal/webserver/server_test.go @@ -87,6 +87,20 @@ func TestUserFeed(t *testing.T) { assert.Len(including_quote_tweets, 10) } +func TestUserFeedWithEntityInBio(t *testing.T) { + assert := assert.New(t) + require := require.New(t) + + resp := do_request(httptest.NewRequest("GET", "/michaelmalice", nil)) + require.Equal(resp.StatusCode, 200) + + root, err := html.Parse(resp.Body) + require.NoError(err) + bio_entities := cascadia.QueryAll(root, selector(".user-bio .entity")) + require.Len(bio_entities, 1) + assert.Equal(bio_entities[0].FirstChild.Data, "@SheathUnderwear") +} + func TestUserFeedMissing(t *testing.T) { require := require.New(t) @@ -344,7 +358,7 @@ func TestLongTweet(t *testing.T) { require.Equal(resp.StatusCode, 200) root, err := html.Parse(resp.Body) require.NoError(err) - paragraphs := cascadia.QueryAll(root, selector(".tweet-text")) + paragraphs := cascadia.QueryAll(root, selector(".tweet .text")) assert.Len(paragraphs, 22) twt, err := profile.GetTweetById(scraper.TweetID(1695110851324256692)) diff --git a/internal/webserver/static/styles.css b/internal/webserver/static/styles.css index 14762ad..5c074d8 100644 --- a/internal/webserver/static/styles.css +++ b/internal/webserver/static/styles.css @@ -100,7 +100,7 @@ ul.inline-dotted-list li:last-child:after { line-height: 0; } -.author-info, .tweet-text { +.author-info, .tweet .text { cursor: default; } @@ -147,15 +147,15 @@ a.entity { color: var(--color-twitter-blue); } -.tweet-text { +.tweet .text { display: block; margin-bottom: 0.4em; margin-top: 0; } -.focused-tweet .tweet-text { +.focused-tweet .text { font-size: 1.4em; } -.focused-tweet .quoted-tweet .tweet-text { +.focused-tweet .quoted-tweet .text { font-size: unset; } .tweet-content video { diff --git a/internal/webserver/tpl/tweet_page_includes/single_tweet.tpl b/internal/webserver/tpl/tweet_page_includes/single_tweet.tpl index c645940..fa712ef 100644 --- a/internal/webserver/tpl/tweet_page_includes/single_tweet.tpl +++ b/internal/webserver/tpl/tweet_page_includes/single_tweet.tpl @@ -4,7 +4,7 @@
- {{range (splitList "\n" $main_tweet.Text)}} -

- {{range (get_entities .)}} - {{if (eq .EntityType 1)}} - - @{{.Contents}} - {{else if (eq .EntityType 2)}} - - #{{.Contents}} - {{else}} - - {{.Contents}} - {{end}} - {{end}} -

- {{end}} - + {{template "text-with-entities" $main_tweet.Text}} {{range $main_tweet.Images}} {{end}} diff --git a/internal/webserver/tpl/user_feed.tpl b/internal/webserver/tpl/user_feed.tpl index 18e3791..6466c8b 100644 --- a/internal/webserver/tpl/user_feed.tpl +++ b/internal/webserver/tpl/user_feed.tpl @@ -13,7 +13,7 @@ {{template "following-button" $user}}
- {{$user.Bio}} + {{template "text-with-entities" $user.Bio}}
{{if $user.Location}}