mirror of
https://git.ondrovo.com/MightyPork/group-actor.git
synced 2024-11-25 01:21:02 +00:00
hashtag bug fix
This commit is contained in:
parent
6ff0e3653d
commit
5fb5f087d6
2 changed files with 15 additions and 6 deletions
11
CHANGELOG.md
11
CHANGELOG.md
|
@ -1,10 +1,17 @@
|
||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## v0.4.2
|
||||||
|
- Fix URL fragment detected as hashtag
|
||||||
|
|
||||||
## v0.4.1
|
## v0.4.1
|
||||||
- Add a translation system using the `locales` folder and `messages.json`
|
- "en" translation fixes
|
||||||
- Add more trace logging
|
- add `messages.json`
|
||||||
- Config files are now parsed as JSON5 = comments are allowed
|
- Config files are now parsed as JSON5 = comments are allowed
|
||||||
|
|
||||||
|
## v0.4.0
|
||||||
|
- Add a translation system using the `locales` folder
|
||||||
|
- Add more trace logging
|
||||||
|
|
||||||
## v0.3.0
|
## v0.3.0
|
||||||
- Changed config/storage format to directory-based, removed shared config mutex
|
- Changed config/storage format to directory-based, removed shared config mutex
|
||||||
- Made more options configurable (timeouts, catch-up limits, etc)
|
- Made more options configurable (timeouts, catch-up limits, etc)
|
||||||
|
|
|
@ -135,13 +135,13 @@ static RE_PING: once_cell::sync::Lazy<Regex> = Lazy::new(|| command!(r"ping"));
|
||||||
static RE_ANNOUNCE: once_cell::sync::Lazy<Regex> =
|
static RE_ANNOUNCE: once_cell::sync::Lazy<Regex> =
|
||||||
Lazy::new(|| Regex::new(r"(?:^|\s|>|\n)[\\/]announce\s+(.*)$").unwrap());
|
Lazy::new(|| Regex::new(r"(?:^|\s|>|\n)[\\/]announce\s+(.*)$").unwrap());
|
||||||
|
|
||||||
static RE_A_HASHTAG: once_cell::sync::Lazy<Regex> = Lazy::new(|| Regex::new(r"(?:^|\b|\s|>|\n)#(\w+)").unwrap());
|
static RE_A_HASHTAG: once_cell::sync::Lazy<Regex> = Lazy::new(|| Regex::new(r"(?:^|\s|>|\n)#(\w+)").unwrap());
|
||||||
|
|
||||||
pub static RE_NOBOT_TAG: once_cell::sync::Lazy<Regex> =
|
pub static RE_NOBOT_TAG: once_cell::sync::Lazy<Regex> =
|
||||||
Lazy::new(|| Regex::new(r"(?:^|\b|\s|>|\n)#nobot(?:\b|$)").unwrap());
|
Lazy::new(|| Regex::new(r"(?:^|\s|>|\n)#nobot(?:\b|$)").unwrap());
|
||||||
|
|
||||||
pub static RE_HASHTAG_TRIGGERING_PLEROMA_BUG: once_cell::sync::Lazy<Regex> =
|
pub static RE_HASHTAG_TRIGGERING_PLEROMA_BUG: once_cell::sync::Lazy<Regex> =
|
||||||
Lazy::new(|| Regex::new(r"(?:^|\b|\s|>|\n)#\w+[^\s]*$").unwrap());
|
Lazy::new(|| Regex::new(r"(?:^|\s|>|\n)#\w+[^\s]*$").unwrap());
|
||||||
|
|
||||||
pub fn parse_status_tags(content: &str) -> Vec<String> {
|
pub fn parse_status_tags(content: &str) -> Vec<String> {
|
||||||
debug!("Raw content: {}", content);
|
debug!("Raw content: {}", content);
|
||||||
|
@ -563,6 +563,8 @@ mod test {
|
||||||
assert!(RE_A_HASHTAG.is_match("#городДляЛюдей"));
|
assert!(RE_A_HASHTAG.is_match("#городДляЛюдей"));
|
||||||
assert!(RE_A_HASHTAG.is_match("foo #banana gfdfgd"));
|
assert!(RE_A_HASHTAG.is_match("foo #banana gfdfgd"));
|
||||||
assert!(RE_A_HASHTAG.is_match("foo #городДляЛюдей aaa"));
|
assert!(RE_A_HASHTAG.is_match("foo #городДляЛюдей aaa"));
|
||||||
|
assert!(!RE_A_HASHTAG.is_match("foo https://google.com/#banana gfdfgd"));
|
||||||
|
assert!(!RE_A_HASHTAG.is_match("foo https://google.com/?foo#banana gfdfgd"));
|
||||||
|
|
||||||
for (i, c) in RE_A_HASHTAG.captures_iter("foo #banana #χαλβάς #ласточка").enumerate() {
|
for (i, c) in RE_A_HASHTAG.captures_iter("foo #banana #χαλβάς #ласточка").enumerate() {
|
||||||
if i == 0 {
|
if i == 0 {
|
||||||
|
@ -590,7 +592,7 @@ mod test {
|
||||||
assert!(!RE_NOBOT_TAG.is_match("banana #tag sdfsd"));
|
assert!(!RE_NOBOT_TAG.is_match("banana #tag sdfsd"));
|
||||||
assert!(!RE_NOBOT_TAG.is_match("banana #nobotanicals sdfsd"));
|
assert!(!RE_NOBOT_TAG.is_match("banana #nobotanicals sdfsd"));
|
||||||
assert!(RE_NOBOT_TAG.is_match("#nobot"));
|
assert!(RE_NOBOT_TAG.is_match("#nobot"));
|
||||||
assert!(RE_NOBOT_TAG.is_match("aaa#nobot"));
|
assert!(RE_NOBOT_TAG.is_match("aaa\n#nobot"));
|
||||||
assert!(RE_NOBOT_TAG.is_match("aaa #nobot"));
|
assert!(RE_NOBOT_TAG.is_match("aaa #nobot"));
|
||||||
assert!(RE_NOBOT_TAG.is_match("#nobot xxx"));
|
assert!(RE_NOBOT_TAG.is_match("#nobot xxx"));
|
||||||
assert!(RE_NOBOT_TAG.is_match("#nobot\nxxx"));
|
assert!(RE_NOBOT_TAG.is_match("#nobot\nxxx"));
|
||||||
|
|
Loading…
Reference in a new issue