Fix npub mention bugs, fix slowness when parsing large posts

Switch the post parser to use the same code as the content parser. This
was causing many issues, including performance issues.

Changelog-Fixed: Fix lag when creating large posts
Changelog-Fixed: Fix npub mentions failing to parse in some cases
Changelog-Added: Add r tag when mentioning a url
Changelog-Removed: Remove old @ and & hex key mentions
This commit is contained in:
William Casarin
2023-07-11 09:05:45 -07:00
parent dc21b6139c
commit db2ec0a00a
11 changed files with 127 additions and 342 deletions

View File

@@ -39,15 +39,37 @@ final class HashtagTests: XCTestCase {
}
func testHashtagWithEmoji() {
let parsed = parse_mentions(content: "some hashtag #bitcoin☕ cool", tags: []).blocks
let content = "some hashtag #bitcoin☕ cool"
let parsed = parse_mentions(content: content, tags: []).blocks
let post_blocks = parse_post_blocks(content: content)
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 3)
XCTAssertEqual(parsed[0].is_text, "some hashtag ")
XCTAssertEqual(parsed[1].is_hashtag, "bitcoin☕")
XCTAssertEqual(parsed[2].is_text, " cool")
XCTAssertEqual(post_blocks.count, 3)
XCTAssertEqual(post_blocks[0].is_text, "some hashtag ")
XCTAssertEqual(post_blocks[1].is_hashtag, "bitcoin☕")
XCTAssertEqual(post_blocks[2].is_text, " cool")
}
func testPowHashtag() {
let content = "pow! #ぽわ〜"
let parsed = parse_mentions(content: content, tags: []).blocks
let post_blocks = parse_post_blocks(content: content)
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 2)
XCTAssertEqual(parsed[0].is_text, "pow! ")
XCTAssertEqual(parsed[1].is_hashtag, "ぽわ〜")
XCTAssertEqual(post_blocks.count, 2)
XCTAssertEqual(post_blocks[0].is_text, "pow! ")
XCTAssertEqual(post_blocks[1].is_hashtag, "ぽわ〜")
}
func testHashtagWithAccents() {
let parsed = parse_mentions(content: "hello from #türkiye", tags: []).blocks