allow any length language and default to empty string

pull/579/head
Christof Dorner 2023-06-06 19:51:01 +02:00
rodzic 1a11a1810e
commit 710b7b4caa
5 zmienionych plików z 20 dodań i 11 usunięć

Wyświetl plik

@ -13,6 +13,6 @@ class Migration(migrations.Migration):
migrations.AddField(
model_name="post",
name="language",
field=models.CharField(max_length=50, null=True),
field=models.CharField(default=""),
),
]

Wyświetl plik

@ -254,7 +254,7 @@ class Post(StatorModel):
content = models.TextField()
# The language of the content
language = models.CharField(max_length=50, null=True)
language = models.CharField(default="")
type = models.CharField(
max_length=20,
@ -497,7 +497,7 @@ class Post(StatorModel):
sorted([tag[: Hashtag.MAXIMUM_LENGTH] for tag in parser.hashtags])
or None
)
if language is None:
if language is None or language == "":
language = author.config_identity.preferred_posting_language
# Make the Post object
@ -548,7 +548,7 @@ class Post(StatorModel):
self.summary = summary or None
self.sensitive = bool(summary) if sensitive is None else sensitive
self.visibility = visibility
if language is None:
if language is None or language == "":
language = self.author.config_identity.preferred_posting_language
self.language = language
self.edited = timezone.now()
@ -662,7 +662,7 @@ class Post(StatorModel):
"tag": [],
"attachment": [],
}
if self.language is not None:
if self.language != "":
value["contentMap"] = {
self.language: value["content"],
}
@ -889,7 +889,7 @@ class Post(StatorModel):
post.published = parse_ld_date(data.get("published"))
post.edited = parse_ld_date(data.get("updated"))
post.in_reply_to = data.get("inReplyTo")
post.language = get_language(data)
post.language = get_language(data) or ""
# Mentions and hashtags
post.hashtags = []
for tag in get_list(data, "tag"):
@ -1124,13 +1124,16 @@ class Post(StatorModel):
self.Visibilities.mentioned: "direct",
self.Visibilities.local_only: "public",
}
language = self.language
if self.language == "":
language = None
value = {
"id": self.pk,
"uri": self.object_uri,
"created_at": format_ld_date(self.published),
"account": self.author.to_mastodon_json(include_counts=False),
"content": self.safe_content_remote(),
"language": self.language,
"language": language,
"visibility": visibility_mapping[self.visibility],
"sensitive": self.sensitive,
"spoiler_text": self.summary or "",

Wyświetl plik

@ -422,13 +422,19 @@ class Preferences(Schema):
activities_models.Post.Visibilities.mentioned: "direct",
activities_models.Post.Visibilities.local_only: "public",
}
preferred_posting_language = None
if identity.config_identity.preferred_posting_language != "":
preferred_posting_language = (
identity.config_identity.preferred_posting_language
)
return cls.parse_obj(
{
"posting:default:visibility": visibility_mapping[
identity.config_identity.default_post_visibility
],
"posting:default:sensitive": False,
"posting:default:language": identity.config_identity.preferred_posting_language,
"posting:default:language": preferred_posting_language,
"reading:expand:media": "default",
"reading:expand:spoilers": identity.config_identity.expand_content_warnings,
}

Wyświetl plik

@ -286,7 +286,7 @@ class Config(models.Model):
visible_reaction_counts: bool = True
expand_content_warnings: bool = False
boosts_on_profile: bool = True
preferred_posting_language: str | None = None
preferred_posting_language: str = ""
class DomainOptions(pydantic.BaseModel):
site_name: str = ""

Wyświetl plik

@ -259,7 +259,7 @@ def test_content_map(remote_identity):
create=True,
)
assert post.content == "Hi World"
assert post.language is None
assert post.language == ""
post2 = Post.by_ap(
data={
@ -272,7 +272,7 @@ def test_content_map(remote_identity):
create=True,
)
assert post2.content == "Hey World"
assert post2.language is None
assert post2.language == ""
post3 = Post.by_ap(
data={