Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-HyperKitty for 
openSUSE:Factory checked in at 2023-11-06 21:13:48
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-HyperKitty (Old)
 and      /work/SRC/openSUSE:Factory/.python-HyperKitty.new.17445 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-HyperKitty"

Mon Nov  6 21:13:48 2023 rev:23 rq:1123589 version:1.3.8

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-HyperKitty/python-HyperKitty.changes      
2023-10-06 21:16:33.844452361 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-HyperKitty.new.17445/python-HyperKitty.changes
   2023-11-06 21:13:56.526522063 +0100
@@ -1,0 +2,45 @@
+Mon Nov  6 12:05:07 UTC 2023 - Marcus Rueckert <mrueck...@suse.de>
+
+- forgot to use 2 defined variables:
+  %{django_haystack_min_version} 
+  %{django_extensions_min_version}
+
+-------------------------------------------------------------------
+Mon Nov  6 11:47:26 UTC 2023 - Marcus Rueckert <mrueck...@suse.de>
+
+- make it easy to run a build without testsuite
+  osc build --without=testsuite
+
+-------------------------------------------------------------------
+Mon Nov  6 01:20:05 UTC 2023 - Marcus Rueckert <mrueck...@suse.de>
+
+- ensure that we can create the user and group
+
+-------------------------------------------------------------------
+Mon Nov  6 01:10:25 UTC 2023 - Marcus Rueckert <mrueck...@suse.de>
+
+- make user and group creation verbose so we actually see errors
+
+-------------------------------------------------------------------
+Mon Nov  6 00:05:35 UTC 2023 - Marcus Rueckert <mrueck...@suse.de>
+
+- make it easier to notice to keep buildrequires and runtime
+  requires version limits in sync. This will also help us to notice
+  early when the version of other libraries do not match the
+  requires encoded in the source code.
+
+-------------------------------------------------------------------
+Sun Nov  5 23:32:56 UTC 2023 - Marcus Rueckert <mrueck...@suse.de>
+
+- refresh gl-mr300-add-opengraph-metadata.patch for version update
+
+-------------------------------------------------------------------
+Thu Nov  2 09:27:37 UTC 2023 - Andreas Schneider <a...@cryptomilk.org>
+
+- Update to version 1.3.8
+  * See https://gitlab.com/mailman/hyperkitty/-/blob/v1.3.8/doc/news.rst
+    or the file news.ret included in this package
+- Removed fix-elasticsearch8.patch
+- Updated mistune3.patch
+
+-------------------------------------------------------------------
@@ -4,0 +50,8 @@
+
+-------------------------------------------------------------------
+Sun Jul 30 03:50:42 UTC 2023 - Georg Pfuetzenreuter 
<georg.pfuetzenreu...@suse.com>
+
+- Add upstream patch gl-mr300-add-opengraph-metadata.patch:
+  * Add OpenGraph Metadata 
(https://gitlab.com/mailman/hyperkitty/-/merge_requests/300)
+- Add upstream patch gl-mr470-introduce-feed-filtering.patch:
+  * Introduce feed filtering 
(https://gitlab.com/mailman/hyperkitty/-/merge_requests/470)

Old:
----
  HyperKitty-1.3.7.tar.gz
  fix-elasticsearch8.patch

New:
----
  HyperKitty-1.3.8.tar.gz
  gl-mr300-add-opengraph-metadata.patch
  gl-mr470-introduce-feed-filtering.patch

BETA DEBUG BEGIN:
  Old:    or the file news.ret included in this package
- Removed fix-elasticsearch8.patch
- Updated mistune3.patch
BETA DEBUG END:

BETA DEBUG BEGIN:
  New:
- refresh gl-mr300-add-opengraph-metadata.patch for version update
  New:  * Add OpenGraph Metadata 
(https://gitlab.com/mailman/hyperkitty/-/merge_requests/300)
- Add upstream patch gl-mr470-introduce-feed-filtering.patch:
  * Introduce feed filtering 
(https://gitlab.com/mailman/hyperkitty/-/merge_requests/470)
BETA DEBUG END:

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-HyperKitty.spec ++++++
--- /var/tmp/diff_new_pack.VJag3Y/_old  2023-11-06 21:13:57.418554899 +0100
+++ /var/tmp/diff_new_pack.VJag3Y/_new  2023-11-06 21:13:57.418554899 +0100
@@ -15,6 +15,26 @@
 # Please submit bugfixes or comments via https://bugs.opensuse.org/
 #
 
+%bcond_without testsuite
+
+# keep in sync with setup.py
+%global django_min_version 3.2
+%global django_max_version 4.3
+%global django_mailman3_min_version 1.3.10
+%global django_gravatar2_min_version 1.0.6
+%global djangorestframework_min_version 3.0.0
+%global robot_detection_min_version 0.3
+%global pytz_min_version 2012
+%global django_compressor_min_version 1.3
+%global mailmanclient_min_version 3.3.3
+# original this was >= 2.0.0, < 3.0 but overwritten by mistune3.patch
+%global mistune_min_version 3.0
+%global python_dateutil_min_version  2.0
+%global networkx_min_version 2.0
+%global django_haystack_min_version 2.8.0
+%global django_extensions_min_version 1.3.7
+%global flufl_lock_min_version 4.0
+%global django_q_min_version 1.0.0
 
 %{?sle15_python_module_pythons}
 %global webapps_dir /srv/www/webapps
@@ -32,6 +52,7 @@
 
 %global hyperkitty_services hyperkitty-qcluster.service 
hyperkitty-runjob-daily.service hyperkitty-runjob-daily.timer 
hyperkitty-runjob-hourly.service hyperkitty-runjob-hourly.timer 
hyperkitty-runjob-minutely.service hyperkitty-runjob-minutely.timer 
hyperkitty-runjob-monthly.service hyperkitty-runjob-monthly.timer 
hyperkitty-runjob-quarter-hourly.service hyperkitty-runjob-quarter-hourly.timer 
hyperkitty-runjob-weekly.service hyperkitty-runjob-weekly.timer 
hyperkitty-runjob-yearly.service hyperkitty-runjob-yearly.timer
 
+# keep in sync with python-mailman-web/python-postorious
 %if 0%{?suse_version} >= 1550
 # Newest python supported by mailman is Python 3.11
 %define pythons python311
@@ -47,7 +68,7 @@
 %endif
 
 Name:           python-HyperKitty
-Version:        1.3.7
+Version:        1.3.8
 Release:        0
 Summary:        A web interface to access GNU Mailman v3 archives
 License:        GPL-3.0-only
@@ -68,20 +89,23 @@
 # PATCH-FIX-OPENSUSE hyperkitty-settings.patch mc...@suse.com
 # hard-code locations of configuration files
 Patch0:         hyperkitty-settings.patch
-# PATCH-FIX-UPSTREAM fix-elasticsearch8.patch gl#mailman/hyperkitty#468
-Patch1:         fix-elasticsearch8.patch
 # PATCH-FIX-UPSTREAM mistune3.patch gl#mailman/hyperkitty#541
 Patch2:         mistune3.patch
 #
-BuildRequires:  %{python_module django-compressor >= 1.3}
+# PATCH-FIX-UPSTREAM gl-mr300-add-opengraph-metadata.patch 
gl#mailman/hyperkitty#300
+Patch98:         gl-mr300-add-opengraph-metadata.patch
+# PATCH-FIX-UPSTREAM gl-mr470-introduce-feed-filtering.patch 
gl#mailman/hyperkitty#470
+Patch99:         gl-mr470-introduce-feed-filtering.patch
+#
+BuildRequires:  %{python_module Django >= %{django_min_version} with 
%python-Django < %{django_max_version}}
+BuildRequires:  %{python_module django-compressor >= 
%{django_compressor_min_version}}
 BuildRequires:  %{python_module Whoosh}
 BuildRequires:  %{python_module django-debug-toolbar >= 2.2}
-BuildRequires:  %{python_module django-extensions >= 1.3.7}
-BuildRequires:  %{python_module django-gravatar2 >= 1.0.6}
+BuildRequires:  %{python_module django-extensions >= 
%{django_extensions_min_version}}
+BuildRequires:  %{python_module django-gravatar2 >= 
%{django_gravatar2_min_version}}
 BuildRequires:  %{python_module isort}
-BuildRequires:  %{python_module libsass}
-BuildRequires:  %{python_module mailmanclient >= 3.3.2}
-BuildRequires:  %{python_module mistune >= 2.0}
+BuildRequires:  %{python_module mailmanclient >= %{mailmanclient_min_version}}
+BuildRequires:  %{python_module mistune >= %{mistune_min_version}}
 BuildRequires:  %{python_module setuptools}
 BuildRequires:  %{python_module xapian-haystack >= 2.1.0}
 BuildRequires:  acl
@@ -97,23 +121,22 @@
 BuildRequires:  python3-packaging
 %endif
 # SECTION test requirements
-BuildRequires:  %{python_module Django >= 1.11}
 BuildRequires:  %{python_module Whoosh >= 2.5.7}
 BuildRequires:  %{python_module beautifulsoup4 >= 4.3.2}
-BuildRequires:  %{python_module django-haystack >= 2.8.0}
-BuildRequires:  %{python_module django-mailman3 >= 1.3.8}
-BuildRequires:  %{python_module django-q >= 1.3.9}
-BuildRequires:  %{python_module djangorestframework >= 3.0.0}
+BuildRequires:  %{python_module django-haystack >= 
%{django_haystack_min_version}}
+BuildRequires:  %{python_module django-mailman3 >= 
%{django_mailman3_min_version}}
+BuildRequires:  %{python_module django-q >= %{django_q_min_version}}
+BuildRequires:  %{python_module djangorestframework >= 
%{djangorestframework_min_version}}
 BuildRequires:  %{python_module elasticsearch}
-BuildRequires:  %{python_module flufl.lock}
+BuildRequires:  %{python_module flufl.lock >= %{flufl_lock_min_version}}
 BuildRequires:  %{python_module lxml}
-BuildRequires:  %{python_module mistune}
-BuildRequires:  %{python_module networkx >= 1.9.1}
+BuildRequires:  %{python_module mistune >= %{mistune_min_version}}
+BuildRequires:  %{python_module networkx >= %{networkx_min_version}}
 BuildRequires:  %{python_module pytest-django}
 BuildRequires:  %{python_module pytest}
-BuildRequires:  %{python_module python-dateutil >= 2.0}
-BuildRequires:  %{python_module pytz >= 2012}
-BuildRequires:  %{python_module robot-detection >= 0.3}
+BuildRequires:  %{python_module python-dateutil >= 
%{python_dateutil_min_version}}
+BuildRequires:  %{python_module pytz >= %{pytz_min_version}}
+BuildRequires:  %{python_module robot-detection >= 
%{robot_detection_min_version}}
 # /SECTION
 
 %description
@@ -121,25 +144,24 @@
 
 %package -n %{hyperkitty_pkgname}
 Summary:        A web interface to access GNU Mailman v3 archives
-Requires:       %{mypython}-Django >= 1.11
-Requires:       %{mypython}-Whoosh
-Requires:       %{mypython}-django-compressor >= 1.3
+# important sync with
+Requires:       (%{mypython}-Django >= %{django_min_version} with 
%{mypython}-Django < %{django_max_version})
+Requires:       %{mypython}-django-compressor >= 
%{django_compressor_min_version}
 Requires:       %{mypython}-django-debug-toolbar >= 2.2
-Requires:       %{mypython}-django-extensions >= 1.3.7
-Requires:       %{mypython}-django-gravatar2 >= 1.0.6
+Requires:       %{mypython}-django-extensions >= 
%{django_extensions_min_version}
+Requires:       %{mypython}-django-gravatar2 >= %{django_gravatar2_min_version}
 Requires:       %{mypython}-django-haystack >= 2.8.0
-Requires:       %{mypython}-django-mailman3 >= 1.3.7
-Requires:       %{mypython}-django-q >= 1.3.9
-Requires:       %{mypython}-djangorestframework >= 3.0.0
-Requires:       %{mypython}-flufl.lock
-Requires:       %{mypython}-libsass
-Requires:       %{mypython}-mailmanclient >= 3.3.2
-Requires:       %{mypython}-mistune
-Requires:       %{mypython}-networkx >= 1.9.1
-Requires:       %{mypython}-python-dateutil >= 2.0
-Requires:       %{mypython}-pytz >= 2012
-Requires:       %{mypython}-robot-detection >= 0.3
-Requires:       %{mypython}-xapian-haystack >= 2.1.0
+Requires:       %{mypython}-django-mailman3 >= %{django_mailman3_min_version}
+Requires:       %{mypython}-django-q >= %{django_q_min_version}
+Requires:       %{mypython}-djangorestframework >= 
%{djangorestframework_min_version}
+Requires:       %{mypython}-flufl.lock >= %{flufl_lock_min_version} 
+Requires:       %{mypython}-mailmanclient >= %{mailmanclient_min_version}
+Requires:       %{mypython}-mistune >= %{mistune_min_version}
+Requires:       %{mypython}-networkx >= %{networkx_min_version}
+Requires:       %{mypython}-python-dateutil >= %{python_dateutil_min_version}
+Requires:       %{mypython}-pytz >= %{pytz_min_version}
+Requires:       %{mypython}-robot-detection >= %{robot_detection_min_version}
+Requires:       %{mypython}-xapian-haystack >= %{django_haystack_min_version}
 %if "%{expand:%%%{mypython}_provides}" == "python3"
 Provides:       python3-%{hyperkitty_pkgname} = %{version}-%{release}
 %endif
@@ -159,6 +181,8 @@
 Requires:       acl
 Requires:       openssl
 Requires:       sudo
+Requires(pre):  /usr/sbin/groupadd
+Requires(pre):  /usr/sbin/useradd
 
 %description -n %{hyperkitty_pkgname}-web
 A web user interface for GNU Mailman.
@@ -291,14 +315,16 @@
     sed -i "s#@HYPERKITTY_RUNJOB@#${hyperkitty_runjob_name}#g" 
%{buildroot}%{_unitdir}/hyperkitty-runjob-${job}.timer
 done
 
+%if %{with testuite}
 %check
 export PYTHONPATH="$(pwd)"
 export LANG=C.UTF-8
 %pytest
+%endif
 
 %pre -n %{hyperkitty_pkgname}-web
-/usr/sbin/groupadd -r hyperkitty &>/dev/null || :
-/usr/sbin/useradd  -g hyperkitty -s /bin/false -r -c "HyperKitty" -d 
%{hyperkitty_basedir} hyperkitty &>/dev/null || :
+/usr/sbin/groupadd -r hyperkitty  || :
+/usr/sbin/useradd  -g hyperkitty -s /bin/false -r -c "HyperKitty" -d 
%{hyperkitty_basedir} hyperkitty  || :
 
 %service_add_pre %{hyperkitty_services}
 

++++++ HyperKitty-1.3.7.tar.gz -> HyperKitty-1.3.8.tar.gz ++++++
++++ 148886 lines of diff (skipped)

++++++ gl-mr300-add-opengraph-metadata.patch ++++++
# Rewritten from upstream .patch to avoid fuzzing
Index: HyperKitty-1.3.8/hyperkitty/templates/hyperkitty/base.html
===================================================================
--- HyperKitty-1.3.8.orig/hyperkitty/templates/hyperkitty/base.html
+++ HyperKitty-1.3.8/hyperkitty/templates/hyperkitty/base.html
@@ -24,6 +24,11 @@
         {% block additional_stylesheets %} {% endblock %}
         {% block head_feed %}{% endblock %}
         {% include 'hyperkitty/headers.html' %}
+        <meta property="og:site_name" content="{{ site_name }}">
+        {% block additional_og %}{% endblock %}
+        <meta property="og:url" content="{{ request.get_full_path }}">
+        <meta name="twitter:card" content="summary">
+        <meta name="twitter:url" content="{{ request.get_full_path }}">
     </head>
 
     <body>
Index: 
HyperKitty-1.3.8/hyperkitty/templates/hyperkitty/errors/notimplemented.html
===================================================================
--- 
HyperKitty-1.3.8.orig/hyperkitty/templates/hyperkitty/errors/notimplemented.html
+++ HyperKitty-1.3.8/hyperkitty/templates/hyperkitty/errors/notimplemented.html
@@ -7,6 +7,11 @@
 {% trans "Not implemented yet" %} - {{ block.super }}
 {% endblock %}
 
+{% block additional_og %}
+<meta property="og:title" content="{% trans "Not implemented yet" %}">
+<meta name="twitter:title" content="{% trans "Not implemented yet" %}">
+{% endblock %}
+
 {% block content %}
 
 <h1>{% trans "Not implemented" %}</h1>
Index: HyperKitty-1.3.8/hyperkitty/templates/hyperkitty/errors/private.html
===================================================================
--- HyperKitty-1.3.8.orig/hyperkitty/templates/hyperkitty/errors/private.html
+++ HyperKitty-1.3.8/hyperkitty/templates/hyperkitty/errors/private.html
@@ -7,6 +7,11 @@
 {% trans "Error: private list" %} - {{ mlist.display_name|default:mlist.name 
}} - {{ block.super }}
 {% endblock %}
 
+{% block additional_og %}
+<meta property="og:title" content="{% trans "Error: private list" %} - {{ 
mlist.display_name|default:mlist.name }}">
+<meta name="twitter:title" content="{% trans "Error: private list" %} - {{ 
mlist.display_name|default:mlist.name }}">
+{% endblock %}
+
 {% block content %}
 
 <div class="row">
Index: HyperKitty-1.3.8/hyperkitty/templates/hyperkitty/index.html
===================================================================
--- HyperKitty-1.3.8.orig/hyperkitty/templates/hyperkitty/index.html
+++ HyperKitty-1.3.8/hyperkitty/templates/hyperkitty/index.html
@@ -9,6 +9,11 @@
 {% trans 'Available lists' %} - {{ block.super }}
 {% endblock %}
 
+{% block additional_og %}
+<meta property="og:title" content="{% trans 'Available lists' %}">
+<meta name="twitter:title" content="{% trans 'Available lists' %}">
+{% endblock %}
+
 {% block content %}
 
 <div class="all-lists">
Index: HyperKitty-1.3.8/hyperkitty/templates/hyperkitty/message.html
===================================================================
--- HyperKitty-1.3.8.orig/hyperkitty/templates/hyperkitty/message.html
+++ HyperKitty-1.3.8/hyperkitty/templates/hyperkitty/message.html
@@ -1,12 +1,29 @@
 {% extends "hyperkitty/base.html" %}
 {% load i18n %}
 {% load hk_generic %}
+{% load gravatar %}
 
 
 {% block head_title %}
 {{ message.subject }} - {{ mlist.display_name|default:mlist.name }} - {{ 
block.super }}
 {% endblock %}
 
+{% block additional_og %}
+<meta property="og:title" content="{{ message.subject }} - {{ 
mlist.display_name|default:mlist.name }}">
+<meta property="og:type" content="article">
+<meta property="og:image" content="{% gravatar_url message.sender.address 200 
%}">
+<meta property="og:description" content="{{ 
message.content|escapeemail|truncatechars:199 }}…">
+<meta property="og:article:author" content="{{ 
message.sender_name|default:message.sender.address|escapeemail }}">
+<meta property="og:article:published_time" content="{{ message.date|date:'c' 
}}">
+<meta property="og:article:section" content="{{ 
mlist.display_name|default:mlist.name }}">
+{% for tag in message.thread.tags.distinct %}
+<meta property="og:article:tag" content="{{ tag.name }}">
+{% endfor %}
+<meta name="twitter:title" content="{{ message.subject }} - {{ 
mlist.display_name|default:mlist.name }}">
+<meta name="twitter:description" content="{{ 
message.content|escapeemail|truncatechars:199 }}…">
+<meta name="twitter:image" content="{% gravatar_url message.sender.address 200 
%}">
+{% endblock %}
+
 {% block content %}
 
 <div class="row">
Index: HyperKitty-1.3.8/hyperkitty/templates/hyperkitty/message_new.html
===================================================================
--- HyperKitty-1.3.8.orig/hyperkitty/templates/hyperkitty/message_new.html
+++ HyperKitty-1.3.8/hyperkitty/templates/hyperkitty/message_new.html
@@ -8,6 +8,11 @@
 {% trans "Create a new thread" %} - {{ mlist.display_name|default:mlist.name 
}} - {{ block.super }}
 {% endblock %}
 
+{% block additional_og %}
+<meta property="og:title" content="{% trans "Create a new thread" %} - {{ 
mlist.display_name|default:mlist.name }}">
+<meta name="twitter:title" content="{% trans "Create a new thread" %} - {{ 
mlist.display_name|default:mlist.name }}">
+{% endblock %}
+
 {% block content %}
 
 <div class="row">
Index: HyperKitty-1.3.8/hyperkitty/templates/hyperkitty/overview.html
===================================================================
--- HyperKitty-1.3.8.orig/hyperkitty/templates/hyperkitty/overview.html
+++ HyperKitty-1.3.8/hyperkitty/templates/hyperkitty/overview.html
@@ -4,6 +4,13 @@
 {% load static %}
 {% load cache %}
 
+{% block additional_og %}
+<meta property="og:title" content="{{ mlist.display_name|default:mlist.name 
}}">
+<meta property="og:description" content="{{ 
mlist.description|default_if_none:''|truncatechars:199 }}…">
+<meta name="twitter:title" content="{{ mlist.display_name|default:mlist.name 
}}">
+<meta name="twitter:description" content="{{ 
mlist.description|default_if_none:''|truncatechars:199 }}…">
+{% endblock %}
+
 {% block head_title %}
     {{ mlist.display_name|default:mlist.name }} - {{ block.super }}
 {% endblock %}
Index: HyperKitty-1.3.8/hyperkitty/templates/hyperkitty/reattach.html
===================================================================
--- HyperKitty-1.3.8.orig/hyperkitty/templates/hyperkitty/reattach.html
+++ HyperKitty-1.3.8/hyperkitty/templates/hyperkitty/reattach.html
@@ -9,6 +9,11 @@
 {% trans "Reattach a thread" %} - {{ mlist.display_name|default:mlist.name }} 
- {{ block.super }}
 {% endblock %}
 
+{% block additional_og %}
+<meta property="og:title" content="{% trans "Reattach a thread" %} - {{ 
mlist.display_name|default:mlist.name }}">
+<meta name="twitter:title" content="{% trans "Reattach a thread" %} - {{ 
mlist.display_name|default:mlist.name }}">
+{% endblock %}
+
 {% block content %}
 
 <div class="row reattach-thread">
Index: HyperKitty-1.3.8/hyperkitty/templates/hyperkitty/search_results.html
===================================================================
--- HyperKitty-1.3.8.orig/hyperkitty/templates/hyperkitty/search_results.html
+++ HyperKitty-1.3.8/hyperkitty/templates/hyperkitty/search_results.html
@@ -8,6 +8,11 @@
 {% trans "Search results for" %} "{{ query }}"{% if mlist %} - {{ 
mlist.display_name|default:mlist.name }} {% endif %} - {{ block.super }}
 {% endblock %}
 
+{% block additional_og %}
+<meta property="og:title" content="{% trans "Search results for" %} "{{ query 
}}"{% if mlist %} - {{ mlist.display_name|default:mlist.name }} {% endif %}">
+<meta name="twitter:title" content="{% trans "Search results for" %} "{{ query 
}}"{% if mlist %} - {{ mlist.display_name|default:mlist.name }} {% endif %}">
+{% endblock %}
+
 {% block content %}
 
 <div class="row">
Index: HyperKitty-1.3.8/hyperkitty/templates/hyperkitty/thread.html
===================================================================
--- HyperKitty-1.3.8.orig/hyperkitty/templates/hyperkitty/thread.html
+++ HyperKitty-1.3.8/hyperkitty/templates/hyperkitty/thread.html
@@ -3,12 +3,29 @@
 {% load i18n %}
 {% load hk_generic %}
 {% load static %}
+{% load gravatar %}
 
 
 {% block head_title %}
 {{ subject }} - {{ mlist.display_name|default:mlist.name }} - {{ block.super }}
 {% endblock %}
 
+{% block additional_og %}
+<meta property="og:title" content="{{ subject }} - {{ 
mlist.display_name|default:mlist.name }}">
+<meta property="og:type" content="article">
+<meta property="og:image" content="{% gravatar_url 
starting_email.sender.address 200 %}">
+<meta property="og:description" content="{{ 
starting_email.content|escapeemail|truncatechars:199 }}…">
+<meta property="og:article:author" content="{{ 
starting_email.sender_name|default:starting_email.sender.address|escapeemail 
}}">
+<meta property="og:article:published_time" content="{{ 
starting_email.date|date:'c' }}">
+<meta property="og:article:section" content="{{ 
mlist.display_name|default:mlist.name }}">
+{% for tag in thread.tags.distinct %}
+<meta property="og:article:tag" content="{{ tag.name }}">
+{% endfor %}
+<meta name="twitter:title" content="{{ subject }} - {{ 
mlist.display_name|default:mlist.name }}">
+<meta name="twitter:description" content="{{ 
starting_email.content|escapeemail|truncatechars:199 }}…">
+<meta name="twitter:image" content="{% gravatar_url 
starting_email.sender.address 200 %}">
+{% endblock %}
+
 {% block content %}
 
 <div class="row view-thread d-flex">
Index: HyperKitty-1.3.8/hyperkitty/templates/hyperkitty/thread_list.html
===================================================================
--- HyperKitty-1.3.8.orig/hyperkitty/templates/hyperkitty/thread_list.html
+++ HyperKitty-1.3.8/hyperkitty/templates/hyperkitty/thread_list.html
@@ -13,6 +13,13 @@
 <link rel="alternate" type="application/rss+xml" title="{{ mlist.display_name 
}}" href="{% url 'hk_list_feed' mlist_fqdn=mlist.name %}"/>
 {% endblock %}
 
+{% block additional_og %}
+<meta property="og:title" content="{{ list_title }} - {{ 
mlist.display_name|default:mlist.name }}">
+<meta property="og:description" content="{{ 
mlist.description|default_if_none:''|truncatechars:199 }}…">
+<meta name="twitter:title" content="{{ list_title }} - {{ 
mlist.display_name|default:mlist.name }}">
+<meta name="twitter:description" content="{{ 
mlist.description|default_if_none:''|truncatechars:199 }}…">
+{% endblock %}
+
 {% block content %}
 
 <div class="row">
Index: HyperKitty-1.3.8/hyperkitty/templates/hyperkitty/user_posts.html
===================================================================
--- HyperKitty-1.3.8.orig/hyperkitty/templates/hyperkitty/user_posts.html
+++ HyperKitty-1.3.8/hyperkitty/templates/hyperkitty/user_posts.html
@@ -8,6 +8,11 @@
 {% trans "Messages by" %} {{ fullname }}{% if mlist %} - {{ 
mlist.display_name|default:mlist.name }} {% endif %} - {{ block.super }}
 {% endblock %}
 
+{% block additional_og %}
+<meta property="og:title" content="{% trans "Messages by" %} {{ fullname }}{% 
if mlist %} - {{ mlist.display_name|default:mlist.name }} {% endif %}">
+<meta name="twitter:title" content="{% trans "Messages by" %} {{ fullname }}{% 
if mlist %} - {{ mlist.display_name|default:mlist.name }} {% endif %}">
+{% endblock %}
+
 {% block content %}
 
 <div class="row">
Index: HyperKitty-1.3.8/hyperkitty/templates/hyperkitty/user_profile/base.html
===================================================================
--- HyperKitty-1.3.8.orig/hyperkitty/templates/hyperkitty/user_profile/base.html
+++ HyperKitty-1.3.8/hyperkitty/templates/hyperkitty/user_profile/base.html
@@ -5,6 +5,11 @@
 {% trans "User posting activity" %} - {{ block.super }}
 {% endblock %}
 
+{% block additional_og %}
+<meta property="og:title" content="{% trans "User posting activity" %}">
+<meta name="twitter:title" content="{% trans "User posting activity" %}">
+{% endblock %}
+
 {% block content %}
 
 <div class="user-profile">
Index: HyperKitty-1.3.8/hyperkitty/templates/hyperkitty/user_public_profile.html
===================================================================
--- 
HyperKitty-1.3.8.orig/hyperkitty/templates/hyperkitty/user_public_profile.html
+++ HyperKitty-1.3.8/hyperkitty/templates/hyperkitty/user_public_profile.html
@@ -1,12 +1,20 @@
 {% extends "hyperkitty/base.html" %}
 {% load i18n %}
 {% load hk_generic %}
+{% load gravatar %}
 
 
 {% block head_title %}
 {% trans 'User Profile' %} {% trans "for" %} {{ fullname }} - {{ block.super }}
 {% endblock %}
 
+{% block additional_og %}
+<meta property="og:title" content="{% trans 'User Profile' %} {% trans "for" 
%} {{ fullname }}">
+<meta property="og:image" content="{% gravatar_url addresses.0 200 %}">
+<meta name="twitter:title" content="{% trans 'User Profile' %} {% trans "for" 
%} {{ fullname }}">
+<meta name="twitter:image" content="{% gravatar_url addresses.0 200 %}">
+{% endblock %}
+
 {% block content %}
 
 <div class="user-profile user-public-profile">
Index: HyperKitty-1.3.8/hyperkitty/tests/views/test_accounts.py
===================================================================
--- HyperKitty-1.3.8.orig/hyperkitty/tests/views/test_accounts.py
+++ HyperKitty-1.3.8/hyperkitty/tests/views/test_accounts.py
@@ -197,7 +197,7 @@ class AccountViewsTestCase(TestCase):
             "?list=l...@example.com")
         self.assertEqual(response.status_code, 200)
         self.assertContains(response, "Dummy content", count=1, html=False)
-        self.assertContains(response, "Dummy Sender", count=5, html=False)
+        self.assertContains(response, "Dummy Sender", count=7, html=False)
         self.assertContains(
             response,
             '<a name="{}" href="{}">Dummy message</a>'.format(
Index: HyperKitty-1.3.8/hyperkitty/tests/views/test_message.py
===================================================================
--- HyperKitty-1.3.8.orig/hyperkitty/tests/views/test_message.py
+++ HyperKitty-1.3.8/hyperkitty/tests/views/test_message.py
@@ -124,8 +124,8 @@ class MessageViewsTestCase(TestCase):
                 response = self.client.get(url)
         self.assertEqual(response.status_code, 200)
         self.assertContains(response, "Dummy message")
-        self.assertContains(response, "Dummy Sender", count=1)
-        self.assertContains(response, "Dummy Subject", count=2)
+        self.assertContains(response, "Dummy Sender", count=2)
+        self.assertContains(response, "Dummy Subject", count=4)
         self.assertNotContains(response, "du...@example.com")
         self.assertContains(
             response,

++++++ gl-mr470-introduce-feed-filtering.patch ++++++
diff --git a/hyperkitty/feed.py b/hyperkitty/feed.py
index 
8242662c2158be7b34527cf933565588892ce25f..a9bd9ae546aa51f717b07b6c270b769e9e8c775f
 100644
--- a/hyperkitty/feed.py
+++ b/hyperkitty/feed.py
@@ -16,7 +16,7 @@
 # You should have received a copy of the GNU General Public License along with
 # HyperKitty.  If not, see <http://www.gnu.org/licenses/>.
 #
-# Author: Stasiek Michalski <stas...@michalski.cc>
+# Author: Jacob Michalskie <ja...@michalskie.cc>
 #
 import re
 
@@ -43,20 +43,32 @@ def sanitize(x):
 class MailingListFeed(Feed):
 
     def get_object(self, request, mlist_fqdn):
-        return get_object_or_404(MailingList, name=mlist_fqdn)
+        return {'mlist': get_object_or_404(MailingList, name=mlist_fqdn),
+                'params': request.GET}
 
     def title(self, obj):
-        return sanitize(obj.display_name)
+        return sanitize(obj['mlist'].display_name)
 
     def link(self, obj):
-        return reverse("hk_list_overview", kwargs={"mlist_fqdn": obj.name})
+        return reverse("hk_list_overview",
+                       kwargs={"mlist_fqdn": obj['mlist'].name})
 
     def description(self, obj):
-        return sanitize(obj.description)
+        return sanitize(obj['mlist'].description)
 
     def items(self, obj):
         len = getattr(settings, 'HYPERKITTY_MLIST_FEED_LENGTH', 30)
-        return Email.objects.filter(mailinglist=obj).order_by('-date')[:len]
+        emails = Email.objects.filter(mailinglist=obj['mlist'])
+        if 'subject' in obj['params']:
+            emails = emails.filter(subject__regex=obj['params']['subject'])
+        if 'sender' in obj['params']:
+            emails = emails.filter(sender_name__regex=obj['params']['email'])
+        if 'threads' in obj['params']:
+            emails = emails.filter(thread_depth=0)
+        if 'limit' in obj['params']:
+            if int(obj['params']['limit']) < len:
+                len = int(obj['params']['limit'])
+        return emails.order_by('-date')[:len]
 
     def item_title(self, item):
         return sanitize(item.subject)

++++++ mistune3.patch ++++++
++++ 616 lines (skipped)
++++ between /work/SRC/openSUSE:Factory/python-HyperKitty/mistune3.patch
++++ and /work/SRC/openSUSE:Factory/.python-HyperKitty.new.17445/mistune3.patch

Reply via email to