wbnews 1.49.10__tar.gz → 1.59.6rc0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. {wbnews-1.49.10 → wbnews-1.59.6rc0}/.gitignore +0 -1
  2. {wbnews-1.49.10 → wbnews-1.59.6rc0}/PKG-INFO +1 -2
  3. {wbnews-1.49.10 → wbnews-1.59.6rc0}/pyproject.toml +0 -1
  4. {wbnews-1.49.10 → wbnews-1.59.6rc0}/wbnews/filters/news.py +3 -1
  5. {wbnews-1.49.10 → wbnews-1.59.6rc0}/wbnews/import_export/handlers/news.py +7 -0
  6. {wbnews-1.49.10 → wbnews-1.59.6rc0}/wbnews/import_export/parsers/emails/news.py +0 -9
  7. {wbnews-1.49.10 → wbnews-1.59.6rc0}/wbnews/import_export/parsers/emails/utils.py +2 -2
  8. {wbnews-1.49.10 → wbnews-1.59.6rc0}/wbnews/import_export/parsers/rss/news.py +0 -7
  9. wbnews-1.59.6rc0/wbnews/locale/de/LC_MESSAGES/django.mo +0 -0
  10. wbnews-1.59.6rc0/wbnews/locale/de/LC_MESSAGES/django.po +166 -0
  11. wbnews-1.59.6rc0/wbnews/locale/de/LC_MESSAGES/django.po.translated +173 -0
  12. wbnews-1.59.6rc0/wbnews/locale/en/LC_MESSAGES/django.mo +0 -0
  13. wbnews-1.59.6rc0/wbnews/locale/en/LC_MESSAGES/django.po +159 -0
  14. wbnews-1.59.6rc0/wbnews/locale/fr/LC_MESSAGES/django.mo +0 -0
  15. wbnews-1.59.6rc0/wbnews/locale/fr/LC_MESSAGES/django.po +162 -0
  16. wbnews-1.59.6rc0/wbnews/migrations/0014_newsrelationship_unique_news_relationship.py +27 -0
  17. {wbnews-1.49.10 → wbnews-1.59.6rc0}/wbnews/models/llm/cleaned_news.py +26 -23
  18. {wbnews-1.49.10 → wbnews-1.59.6rc0}/wbnews/models/news.py +4 -2
  19. {wbnews-1.49.10 → wbnews-1.59.6rc0}/wbnews/models/relationships.py +3 -0
  20. {wbnews-1.49.10 → wbnews-1.59.6rc0}/wbnews/tasks.py +2 -1
  21. {wbnews-1.49.10 → wbnews-1.59.6rc0}/wbnews/tests/parsers/test_emails.py +6 -6
  22. {wbnews-1.49.10 → wbnews-1.59.6rc0}/wbnews/tests/test_models.py +22 -12
  23. {wbnews-1.49.10 → wbnews-1.59.6rc0}/wbnews/utils.py +1 -1
  24. {wbnews-1.49.10 → wbnews-1.59.6rc0}/wbnews/viewsets/display.py +2 -0
  25. {wbnews-1.49.10 → wbnews-1.59.6rc0}/wbnews/viewsets/endpoints.py +3 -10
  26. wbnews-1.49.10/wbnews/locale/de/LC_MESSAGES/django.po +0 -112
  27. {wbnews-1.49.10 → wbnews-1.59.6rc0}/wbnews/.coveragerc +0 -0
  28. {wbnews-1.49.10 → wbnews-1.59.6rc0}/wbnews/__init__.py +0 -0
  29. {wbnews-1.49.10 → wbnews-1.59.6rc0}/wbnews/admin.py +0 -0
  30. {wbnews-1.49.10 → wbnews-1.59.6rc0}/wbnews/apps.py +0 -0
  31. {wbnews-1.49.10 → wbnews-1.59.6rc0}/wbnews/factories.py +0 -0
  32. {wbnews-1.49.10 → wbnews-1.59.6rc0}/wbnews/filters/__init__.py +0 -0
  33. {wbnews-1.49.10 → wbnews-1.59.6rc0}/wbnews/fixtures/wbnews.yaml +0 -0
  34. {wbnews-1.49.10 → wbnews-1.59.6rc0}/wbnews/import_export/__init__.py +0 -0
  35. {wbnews-1.49.10 → wbnews-1.59.6rc0}/wbnews/import_export/backends/__init__.py +0 -0
  36. {wbnews-1.49.10 → wbnews-1.59.6rc0}/wbnews/import_export/backends/news.py +0 -0
  37. {wbnews-1.49.10 → wbnews-1.59.6rc0}/wbnews/import_export/handlers/__init__.py +0 -0
  38. {wbnews-1.49.10 → wbnews-1.59.6rc0}/wbnews/import_export/parsers/__init__.py +0 -0
  39. {wbnews-1.49.10 → wbnews-1.59.6rc0}/wbnews/import_export/parsers/emails/__init__.py +0 -0
  40. {wbnews-1.49.10 → wbnews-1.59.6rc0}/wbnews/import_export/parsers/rss/__init__.py +0 -0
  41. {wbnews-1.49.10 → wbnews-1.59.6rc0}/wbnews/migrations/0001_initial_squashed_0005_alter_news_import_source.py +0 -0
  42. {wbnews-1.49.10 → wbnews-1.59.6rc0}/wbnews/migrations/0006_alter_news_language.py +0 -0
  43. {wbnews-1.49.10 → wbnews-1.59.6rc0}/wbnews/migrations/0007_auto_20240103_0955.py +0 -0
  44. {wbnews-1.49.10 → wbnews-1.59.6rc0}/wbnews/migrations/0008_alter_news_language.py +0 -0
  45. {wbnews-1.49.10 → wbnews-1.59.6rc0}/wbnews/migrations/0009_newsrelationship_analysis_newsrelationship_sentiment.py +0 -0
  46. {wbnews-1.49.10 → wbnews-1.59.6rc0}/wbnews/migrations/0010_newsrelationship_important.py +0 -0
  47. {wbnews-1.49.10 → wbnews-1.59.6rc0}/wbnews/migrations/0011_newsrelationship_content_object_repr.py +0 -0
  48. {wbnews-1.49.10 → wbnews-1.59.6rc0}/wbnews/migrations/0012_alter_news_unique_together_news_identifier_and_more.py +0 -0
  49. {wbnews-1.49.10 → wbnews-1.59.6rc0}/wbnews/migrations/0013_alter_news_datetime.py +0 -0
  50. {wbnews-1.49.10 → wbnews-1.59.6rc0}/wbnews/migrations/__init__.py +0 -0
  51. {wbnews-1.49.10 → wbnews-1.59.6rc0}/wbnews/models/__init__.py +0 -0
  52. {wbnews-1.49.10 → wbnews-1.59.6rc0}/wbnews/models/sources.py +0 -0
  53. {wbnews-1.49.10 → wbnews-1.59.6rc0}/wbnews/models/utils.py +0 -0
  54. {wbnews-1.49.10 → wbnews-1.59.6rc0}/wbnews/serializers.py +0 -0
  55. {wbnews-1.49.10 → wbnews-1.59.6rc0}/wbnews/signals.py +0 -0
  56. {wbnews-1.49.10 → wbnews-1.59.6rc0}/wbnews/tests/__init__.py +0 -0
  57. {wbnews-1.49.10 → wbnews-1.59.6rc0}/wbnews/tests/conftest.py +0 -0
  58. {wbnews-1.49.10 → wbnews-1.59.6rc0}/wbnews/tests/parsers/__init__.py +0 -0
  59. {wbnews-1.49.10 → wbnews-1.59.6rc0}/wbnews/tests/test_utils.py +0 -0
  60. {wbnews-1.49.10 → wbnews-1.59.6rc0}/wbnews/tests/tests.py +0 -0
  61. {wbnews-1.49.10 → wbnews-1.59.6rc0}/wbnews/urls.py +0 -0
  62. {wbnews-1.49.10 → wbnews-1.59.6rc0}/wbnews/viewsets/__init__.py +0 -0
  63. {wbnews-1.49.10 → wbnews-1.59.6rc0}/wbnews/viewsets/buttons.py +0 -0
  64. {wbnews-1.49.10 → wbnews-1.59.6rc0}/wbnews/viewsets/menu.py +0 -0
  65. {wbnews-1.49.10 → wbnews-1.59.6rc0}/wbnews/viewsets/titles.py +0 -0
  66. {wbnews-1.49.10 → wbnews-1.59.6rc0}/wbnews/viewsets/views.py +0 -0
@@ -71,7 +71,6 @@ report.xml
71
71
  */report.xml
72
72
 
73
73
  # Translations
74
- *.mo
75
74
  *.pot
76
75
 
77
76
  # Django stuff:
@@ -1,8 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: wbnews
3
- Version: 1.49.10
3
+ Version: 1.59.6rc0
4
4
  Summary: A workbench module for managing news.
5
5
  Author-email: Christopher Wittlinger <c.wittlinger@stainly.com>
6
6
  Requires-Dist: feedparser==6.*
7
- Requires-Dist: langdetect==1.*
8
7
  Requires-Dist: wbcore
@@ -7,7 +7,6 @@ dynamic = ["version"]
7
7
  dependencies = [
8
8
  "wbcore",
9
9
  "feedparser == 6.*",
10
- "langdetect == 1.*",
11
10
  ]
12
11
 
13
12
  [tool.uv.sources]
@@ -4,7 +4,7 @@ from wbnews.models import News, NewsRelationship, NewsSource
4
4
 
5
5
 
6
6
  class NewsFilterSet(wb_filters.FilterSet):
7
- datetime = wb_filters.DateTimeRangeFilter(method=wb_filters.DateRangeFilter.base_date_range_filter_method)
7
+ datetime = wb_filters.DateTimeRangeFilter()
8
8
 
9
9
  class Meta:
10
10
  model = News
@@ -24,6 +24,8 @@ class NewsRelationshipFilterSet(wb_filters.FilterSet):
24
24
  label_key=NewsSource.get_representation_label_key(),
25
25
  method="filter_source",
26
26
  )
27
+ content_type = wb_filters.CharFilter(method="fake_filter", hidden=True)
28
+ object_id = wb_filters.CharFilter(method="fake_filter", hidden=True)
27
29
 
28
30
  def filter_datetime(self, queryset, name, value):
29
31
  if value:
@@ -31,6 +31,13 @@ class NewsImportHandler(ImportExportHandler):
31
31
  else:
32
32
  data["guid"] = data["default_guid"]
33
33
 
34
+ # constrained fields to the max allowed size
35
+ if "title" in data:
36
+ data["title"] = data["title"][:500]
37
+
38
+ if "link" in data:
39
+ data["link"] = data["link"][:1024]
40
+
34
41
  def _get_instance(self, data: Dict[str, Any], history: Optional[models.QuerySet] = None, **kwargs) -> models.Model:
35
42
  default_guid = data.pop("default_guid")
36
43
  instance = None
@@ -3,7 +3,6 @@ from contextlib import suppress
3
3
  from datetime import datetime
4
4
 
5
5
  from django.conf.global_settings import LANGUAGES
6
- from langdetect import detect, lang_detect_exception
7
6
  from wbcore.utils.importlib import import_from_dotted_path
8
7
 
9
8
  from .utils import EmlContentParser
@@ -37,12 +36,4 @@ def parse(import_source):
37
36
  "source": parser.source,
38
37
  }
39
38
 
40
- # Language
41
- try:
42
- language = detect(data["description"])
43
- if language in languages_dict:
44
- data["language"] = language
45
- except lang_detect_exception.LangDetectException:
46
- pass
47
-
48
39
  return {"data": [data]}
@@ -22,10 +22,10 @@ class EmlContentParser:
22
22
  html = self.get_html(self.message)
23
23
  return html.decode(self.encoding) if html else None
24
24
 
25
- def get_html(cls, parsed: message.Message) -> bytes | None:
25
+ def get_html(self, parsed: message.Message) -> bytes | None:
26
26
  if parsed.is_multipart():
27
27
  for item in parsed.get_payload(): # type:message.Message
28
- if html := cls.get_html(item):
28
+ if html := self.get_html(item):
29
29
  return html
30
30
  elif parsed.get_content_type() == "text/html":
31
31
  return parsed.get_payload(decode=True)
@@ -4,7 +4,6 @@ from time import mktime
4
4
 
5
5
  from django.conf.global_settings import LANGUAGES
6
6
  from django.utils.html import strip_tags
7
- from langdetect import detect, lang_detect_exception
8
7
 
9
8
  languages_dict = dict(LANGUAGES)
10
9
 
@@ -43,12 +42,6 @@ def parse(import_source):
43
42
  "link": entry.get("link", None),
44
43
  "guid": entry.get("id", None),
45
44
  }
46
- try:
47
- language = detect(entry["summary"])
48
- if language in languages_dict:
49
- res["language"] = language
50
- except lang_detect_exception.LangDetectException:
51
- pass
52
45
  if published_parsed := entry.get("published_parsed", None):
53
46
  updated = datetime.fromtimestamp(mktime(tuple(published_parsed)))
54
47
  res["datetime"] = updated.strftime("%Y-%m-%dT%H:%M:%S")
@@ -0,0 +1,166 @@
1
+ # SOME DESCRIPTIVE TITLE.
2
+ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3
+ # This file is distributed under the same license as the PACKAGE package.
4
+ # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5
+ #
6
+ # Translators:
7
+ # Kevin Decoster, 2025
8
+ #
9
+ #, fuzzy
10
+ msgid ""
11
+ msgstr ""
12
+ "Project-Id-Version: PACKAGE VERSION\n"
13
+ "Report-Msgid-Bugs-To: \n"
14
+ "POT-Creation-Date: 2025-05-30 11:37+0200\n"
15
+ "PO-Revision-Date: 2025-05-30 09:40+0000\n"
16
+ "Last-Translator: Kevin Decoster, 2025\n"
17
+ "Language-Team: German (https://app.transifex.com/stainly/teams/171242/de/)\n"
18
+ "MIME-Version: 1.0\n"
19
+ "Content-Type: text/plain; charset=UTF-8\n"
20
+ "Content-Transfer-Encoding: 8bit\n"
21
+ "Language: de\n"
22
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
23
+
24
+ #: models/news.py:51 viewsets/display.py:54 viewsets/display.py:100
25
+ #: viewsets/display.py:141
26
+ msgid "Datetime"
27
+ msgstr "Zeitpunkt"
28
+
29
+ #: models/news.py:52 serializers.py:21 serializers.py:76
30
+ #: viewsets/display.py:20 viewsets/display.py:55 viewsets/display.py:102
31
+ #: viewsets/display.py:142
32
+ msgid "Title"
33
+ msgstr "Titel"
34
+
35
+ #: models/news.py:54 serializers.py:24 serializers.py:77
36
+ #: viewsets/display.py:23 viewsets/display.py:57 viewsets/display.py:104
37
+ #: viewsets/display.py:143
38
+ msgid "Description"
39
+ msgstr "Beschreibung"
40
+
41
+ #: models/news.py:55 serializers.py:78 viewsets/display.py:56
42
+ #: viewsets/display.py:103
43
+ msgid "Summary"
44
+ msgstr "Zusammenfassung"
45
+
46
+ #: models/news.py:56 viewsets/display.py:60 viewsets/display.py:144
47
+ msgid "Language"
48
+ msgstr "Sprache"
49
+
50
+ #: models/news.py:57
51
+ msgid "Link"
52
+ msgstr "Link"
53
+
54
+ #: models/news.py:61 viewsets/display.py:59 viewsets/display.py:106
55
+ msgid "Source"
56
+ msgstr "Quelle"
57
+
58
+ #: models/news.py:64
59
+ msgid "Mark as duplicate"
60
+ msgstr ""
61
+
62
+ #: models/relationships.py:9
63
+ msgid "Positive"
64
+ msgstr ""
65
+
66
+ #: models/relationships.py:10
67
+ msgid "Slightly Positive"
68
+ msgstr ""
69
+
70
+ #: models/relationships.py:11
71
+ msgid "Slightly Negative"
72
+ msgstr ""
73
+
74
+ #: models/relationships.py:12
75
+ msgid "Negative"
76
+ msgstr ""
77
+
78
+ #: serializers.py:22
79
+ msgid "Identifier"
80
+ msgstr "Identifikator"
81
+
82
+ #: serializers.py:25 viewsets/display.py:22
83
+ msgid "Author"
84
+ msgstr "Autor*in"
85
+
86
+ #: serializers.py:26
87
+ msgid "Updated"
88
+ msgstr "Geändert"
89
+
90
+ #: serializers.py:79
91
+ msgid "Date"
92
+ msgstr ""
93
+
94
+ #: serializers.py:92 viewsets/menu.py:6 viewsets/titles.py:24
95
+ msgid "News"
96
+ msgstr "Neuigkeiten"
97
+
98
+ #: viewsets/buttons.py:14
99
+ msgid "Open News"
100
+ msgstr "Neuigkeiten Öffnen"
101
+
102
+ #: viewsets/buttons.py:21 viewsets/buttons.py:22 viewsets/buttons.py:24
103
+ msgid "Reset relationships"
104
+ msgstr ""
105
+
106
+ #: viewsets/display.py:21
107
+ msgid "RSS feed"
108
+ msgstr "RSS Feed"
109
+
110
+ #: viewsets/display.py:24
111
+ msgid "Last Update"
112
+ msgstr "Letztes Aktualisierung"
113
+
114
+ #: viewsets/display.py:61
115
+ msgid "Image"
116
+ msgstr "Bild"
117
+
118
+ #: viewsets/display.py:93
119
+ msgid "Linked Object"
120
+ msgstr ""
121
+
122
+ #: viewsets/display.py:101
123
+ msgid "Analysis"
124
+ msgstr ""
125
+
126
+ #: viewsets/display.py:105
127
+ msgid "Important"
128
+ msgstr ""
129
+
130
+ #: viewsets/menu.py:11
131
+ msgid "News Relationships"
132
+ msgstr ""
133
+
134
+ #: viewsets/menu.py:17 viewsets/titles.py:9
135
+ msgid "Sources"
136
+ msgstr "Quellen"
137
+
138
+ #: viewsets/menu.py:23
139
+ msgid "Create Source"
140
+ msgstr "Quelle Erstellen"
141
+
142
+ #: viewsets/titles.py:13
143
+ #, python-brace-format
144
+ msgid "Source: {source}"
145
+ msgstr "Quelle: {source}"
146
+
147
+ #: viewsets/titles.py:14
148
+ msgid "News Source"
149
+ msgstr ""
150
+
151
+ #: viewsets/titles.py:19
152
+ msgid "News Flow"
153
+ msgstr "Nachrichtenfluss"
154
+
155
+ #: viewsets/titles.py:30
156
+ #, python-brace-format
157
+ msgid "News from {source}"
158
+ msgstr "Neuigkeiten von {source}"
159
+
160
+ #: viewsets/titles.py:36
161
+ msgid "News Article for {}"
162
+ msgstr ""
163
+
164
+ #: viewsets/titles.py:37 viewsets/titles.py:44
165
+ msgid "News Article"
166
+ msgstr ""
@@ -0,0 +1,173 @@
1
+ # SOME DESCRIPTIVE TITLE.
2
+ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3
+ # This file is distributed under the same license as the PACKAGE package.
4
+ # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5
+ #
6
+ msgid ""
7
+ msgstr ""
8
+ "Project-Id-Version: \n"
9
+ "Report-Msgid-Bugs-To: \n"
10
+ "POT-Creation-Date: 2025-05-29 13:33+0200\n"
11
+ "PO-Revision-Date: 2022-10-17 14:51+0200\n"
12
+ "Last-Translator: \n"
13
+ "Language-Team: \n"
14
+ "Language: de\n"
15
+ "MIME-Version: 1.0\n"
16
+ "Content-Type: text/plain; charset=UTF-8\n"
17
+ "Content-Transfer-Encoding: 8bit\n"
18
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
19
+ "X-Generator: Poedit 3.1.1\n"
20
+
21
+ #: wbnews/models/news.py:51 wbnews/viewsets/display.py:54
22
+ #: wbnews/viewsets/display.py:100 wbnews/viewsets/display.py:141
23
+ msgid "Datetime"
24
+ msgstr "Zeitpunkt"
25
+
26
+ #: wbnews/models/news.py:52 wbnews/serializers.py:21 wbnews/serializers.py:76
27
+ #: wbnews/viewsets/display.py:20 wbnews/viewsets/display.py:55
28
+ #: wbnews/viewsets/display.py:102 wbnews/viewsets/display.py:142
29
+ msgid "Title"
30
+ msgstr "Titel"
31
+
32
+ #: wbnews/models/news.py:54 wbnews/serializers.py:24 wbnews/serializers.py:77
33
+ #: wbnews/viewsets/display.py:23 wbnews/viewsets/display.py:57
34
+ #: wbnews/viewsets/display.py:104 wbnews/viewsets/display.py:143
35
+ msgid "Description"
36
+ msgstr "Beschreibung"
37
+
38
+ #: wbnews/models/news.py:55 wbnews/serializers.py:78
39
+ #: wbnews/viewsets/display.py:56 wbnews/viewsets/display.py:103
40
+ msgid "Summary"
41
+ msgstr "Zusammenfassung"
42
+
43
+ #: wbnews/models/news.py:56 wbnews/viewsets/display.py:60
44
+ #: wbnews/viewsets/display.py:144
45
+ msgid "Language"
46
+ msgstr "Sprache"
47
+
48
+ #: wbnews/models/news.py:57
49
+ msgid "Link"
50
+ msgstr "Link"
51
+
52
+ #: wbnews/models/news.py:61 wbnews/viewsets/display.py:59
53
+ #: wbnews/viewsets/display.py:106
54
+ msgid "Source"
55
+ msgstr "Quelle"
56
+
57
+ #: wbnews/models/news.py:64
58
+ msgid "Mark as duplicate"
59
+ msgstr ""
60
+
61
+ #: wbnews/models/relationships.py:9
62
+ msgid "Positive"
63
+ msgstr ""
64
+
65
+ #: wbnews/models/relationships.py:10
66
+ msgid "Slightly Positive"
67
+ msgstr ""
68
+
69
+ #: wbnews/models/relationships.py:11
70
+ msgid "Slightly Negative"
71
+ msgstr ""
72
+
73
+ #: wbnews/models/relationships.py:12
74
+ msgid "Negative"
75
+ msgstr ""
76
+
77
+ #: wbnews/serializers.py:22
78
+ msgid "Identifier"
79
+ msgstr "Identifikator"
80
+
81
+ #: wbnews/serializers.py:25 wbnews/viewsets/display.py:22
82
+ msgid "Author"
83
+ msgstr "Autor*in"
84
+
85
+ #: wbnews/serializers.py:26
86
+ msgid "Updated"
87
+ msgstr "Geändert"
88
+
89
+ #: wbnews/serializers.py:79
90
+ #, fuzzy
91
+ #| msgid "Datetime"
92
+ msgid "Date"
93
+ msgstr "Zeitpunkt"
94
+
95
+ #: wbnews/serializers.py:92 wbnews/viewsets/menu.py:6
96
+ #: wbnews/viewsets/titles.py:24 wbnews_config/menu.py:5
97
+ msgid "News"
98
+ msgstr "Neuigkeiten"
99
+
100
+ #: wbnews/viewsets/buttons.py:14
101
+ msgid "Open News"
102
+ msgstr "Neuigkeiten Öffnen"
103
+
104
+ #: wbnews/viewsets/buttons.py:21 wbnews/viewsets/buttons.py:22
105
+ #: wbnews/viewsets/buttons.py:24
106
+ msgid "Reset relationships"
107
+ msgstr ""
108
+
109
+ #: wbnews/viewsets/display.py:21
110
+ msgid "RSS feed"
111
+ msgstr "RSS Feed"
112
+
113
+ #: wbnews/viewsets/display.py:24
114
+ msgid "Last Update"
115
+ msgstr "Letztes Aktualisierung"
116
+
117
+ #: wbnews/viewsets/display.py:61
118
+ msgid "Image"
119
+ msgstr "Bild"
120
+
121
+ #: wbnews/viewsets/display.py:93
122
+ msgid "Linked Object"
123
+ msgstr ""
124
+
125
+ #: wbnews/viewsets/display.py:101
126
+ msgid "Analysis"
127
+ msgstr ""
128
+
129
+ #: wbnews/viewsets/display.py:105
130
+ msgid "Important"
131
+ msgstr ""
132
+
133
+ #: wbnews/viewsets/menu.py:11
134
+ msgid "News Relationships"
135
+ msgstr ""
136
+
137
+ #: wbnews/viewsets/menu.py:17 wbnews/viewsets/titles.py:9
138
+ msgid "Sources"
139
+ msgstr "Quellen"
140
+
141
+ #: wbnews/viewsets/menu.py:23
142
+ msgid "Create Source"
143
+ msgstr "Quelle Erstellen"
144
+
145
+ #: wbnews/viewsets/titles.py:13
146
+ #, python-brace-format
147
+ msgid "Source: {source}"
148
+ msgstr "Quelle: {source}"
149
+
150
+ #: wbnews/viewsets/titles.py:14
151
+ #, fuzzy
152
+ #| msgid "Source"
153
+ msgid "News Source"
154
+ msgstr "Quelle"
155
+
156
+ #: wbnews/viewsets/titles.py:19
157
+ msgid "News Flow"
158
+ msgstr "Nachrichtenfluss"
159
+
160
+ #: wbnews/viewsets/titles.py:30
161
+ #, python-brace-format
162
+ msgid "News from {source}"
163
+ msgstr "Neuigkeiten von {source}"
164
+
165
+ #: wbnews/viewsets/titles.py:36
166
+ msgid "News Article for {}"
167
+ msgstr ""
168
+
169
+ #: wbnews/viewsets/titles.py:37 wbnews/viewsets/titles.py:44
170
+ #, fuzzy
171
+ #| msgid "Source"
172
+ msgid "News Article"
173
+ msgstr "Quelle"
@@ -0,0 +1,159 @@
1
+ # SOME DESCRIPTIVE TITLE.
2
+ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3
+ # This file is distributed under the same license as the PACKAGE package.
4
+ # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5
+ #
6
+ msgid ""
7
+ msgstr ""
8
+ "Project-Id-Version: PACKAGE VERSION\n"
9
+ "Report-Msgid-Bugs-To: \n"
10
+ "POT-Creation-Date: 2025-05-30 11:37+0200\n"
11
+ "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
12
+ "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13
+ "Language-Team: LANGUAGE <LL@li.org>\n"
14
+ "Language: \n"
15
+ "MIME-Version: 1.0\n"
16
+ "Content-Type: text/plain; charset=UTF-8\n"
17
+ "Content-Transfer-Encoding: 8bit\n"
18
+
19
+ #: models/news.py:51 viewsets/display.py:54 viewsets/display.py:100
20
+ #: viewsets/display.py:141
21
+ msgid "Datetime"
22
+ msgstr ""
23
+
24
+ #: models/news.py:52 serializers.py:21 serializers.py:76 viewsets/display.py:20
25
+ #: viewsets/display.py:55 viewsets/display.py:102 viewsets/display.py:142
26
+ msgid "Title"
27
+ msgstr ""
28
+
29
+ #: models/news.py:54 serializers.py:24 serializers.py:77 viewsets/display.py:23
30
+ #: viewsets/display.py:57 viewsets/display.py:104 viewsets/display.py:143
31
+ msgid "Description"
32
+ msgstr ""
33
+
34
+ #: models/news.py:55 serializers.py:78 viewsets/display.py:56
35
+ #: viewsets/display.py:103
36
+ msgid "Summary"
37
+ msgstr ""
38
+
39
+ #: models/news.py:56 viewsets/display.py:60 viewsets/display.py:144
40
+ msgid "Language"
41
+ msgstr ""
42
+
43
+ #: models/news.py:57
44
+ msgid "Link"
45
+ msgstr ""
46
+
47
+ #: models/news.py:61 viewsets/display.py:59 viewsets/display.py:106
48
+ msgid "Source"
49
+ msgstr ""
50
+
51
+ #: models/news.py:64
52
+ msgid "Mark as duplicate"
53
+ msgstr ""
54
+
55
+ #: models/relationships.py:9
56
+ msgid "Positive"
57
+ msgstr ""
58
+
59
+ #: models/relationships.py:10
60
+ msgid "Slightly Positive"
61
+ msgstr ""
62
+
63
+ #: models/relationships.py:11
64
+ msgid "Slightly Negative"
65
+ msgstr ""
66
+
67
+ #: models/relationships.py:12
68
+ msgid "Negative"
69
+ msgstr ""
70
+
71
+ #: serializers.py:22
72
+ msgid "Identifier"
73
+ msgstr ""
74
+
75
+ #: serializers.py:25 viewsets/display.py:22
76
+ msgid "Author"
77
+ msgstr ""
78
+
79
+ #: serializers.py:26
80
+ msgid "Updated"
81
+ msgstr ""
82
+
83
+ #: serializers.py:79
84
+ msgid "Date"
85
+ msgstr ""
86
+
87
+ #: serializers.py:92 viewsets/menu.py:6 viewsets/titles.py:24
88
+ msgid "News"
89
+ msgstr ""
90
+
91
+ #: viewsets/buttons.py:14
92
+ msgid "Open News"
93
+ msgstr ""
94
+
95
+ #: viewsets/buttons.py:21 viewsets/buttons.py:22 viewsets/buttons.py:24
96
+ msgid "Reset relationships"
97
+ msgstr ""
98
+
99
+ #: viewsets/display.py:21
100
+ msgid "RSS feed"
101
+ msgstr ""
102
+
103
+ #: viewsets/display.py:24
104
+ msgid "Last Update"
105
+ msgstr ""
106
+
107
+ #: viewsets/display.py:61
108
+ msgid "Image"
109
+ msgstr ""
110
+
111
+ #: viewsets/display.py:93
112
+ msgid "Linked Object"
113
+ msgstr ""
114
+
115
+ #: viewsets/display.py:101
116
+ msgid "Analysis"
117
+ msgstr ""
118
+
119
+ #: viewsets/display.py:105
120
+ msgid "Important"
121
+ msgstr ""
122
+
123
+ #: viewsets/menu.py:11
124
+ msgid "News Relationships"
125
+ msgstr ""
126
+
127
+ #: viewsets/menu.py:17 viewsets/titles.py:9
128
+ msgid "Sources"
129
+ msgstr ""
130
+
131
+ #: viewsets/menu.py:23
132
+ msgid "Create Source"
133
+ msgstr ""
134
+
135
+ #: viewsets/titles.py:13
136
+ #, python-brace-format
137
+ msgid "Source: {source}"
138
+ msgstr ""
139
+
140
+ #: viewsets/titles.py:14
141
+ msgid "News Source"
142
+ msgstr ""
143
+
144
+ #: viewsets/titles.py:19
145
+ msgid "News Flow"
146
+ msgstr ""
147
+
148
+ #: viewsets/titles.py:30
149
+ #, python-brace-format
150
+ msgid "News from {source}"
151
+ msgstr ""
152
+
153
+ #: viewsets/titles.py:36
154
+ msgid "News Article for {}"
155
+ msgstr ""
156
+
157
+ #: viewsets/titles.py:37 viewsets/titles.py:44
158
+ msgid "News Article"
159
+ msgstr ""