Allow dashes in nicknames

main
bashrc 2026-08-21 10:35:34 +01:00
parent 913325a1b4
commit 02b1df6f73
2 changed files with 31 additions and 2 deletions

View File

@ -5376,6 +5376,24 @@ def _test_valid_nick():
nickname = 'abc.def' nickname = 'abc.def'
assert valid_nickname(domain, nickname) assert valid_nickname(domain, nickname)
nickname = '.abc.def'
assert not valid_nickname(domain, nickname)
nickname = 'abc..def'
assert not valid_nickname(domain, nickname)
nickname = 'abc-def'
assert valid_nickname(domain, nickname)
nickname = 'abc--def'
assert not valid_nickname(domain, nickname)
nickname = '-abc-def-'
assert not valid_nickname(domain, nickname)
nickname = 'abc_def'
assert valid_nickname(domain, nickname)
def _test_guess_tag_category() -> None: def _test_guess_tag_category() -> None:
print('test_guess_hashtag_category') print('test_guess_hashtag_category')

View File

@ -2538,7 +2538,18 @@ def _is_valid_language(text: str) -> bool:
} }
for char in text: for char in text:
# allowed characters # allowed characters
if char.isdigit() or char == '_' or char == '.': if char.isdigit() or char == '_':
if '__' not in text:
continue
char_allowed = False
for check_char in ('.', '-'):
if char == check_char and \
not text.startswith(check_char) and \
not text.endswith(check_char):
if check_char + check_char not in text:
char_allowed = True
break
if char_allowed:
continue continue
# character should exist in at least one language # character should exist in at least one language
char_found = False char_found = False
@ -3294,7 +3305,7 @@ def valid_hash_tag(hashtag: str) -> bool:
if len(hashtag) >= 32: if len(hashtag) >= 32:
return False return False
# numbers are not permitted to be hashtags # numbers are not permitted to be hashtags
if hashtag.isdigit() or '.' in hashtag: if hashtag.isdigit() or '.' in hashtag or '-' in hashtag:
return False return False
if set(hashtag).issubset(VALID_HASHTAG_CHARS): if set(hashtag).issubset(VALID_HASHTAG_CHARS):
return True return True