Mercurial > libervia-backend
annotate sat/plugins/plugin_misc_static_blog.py @ 3008:c8c68a3b0a79
plugins XEP-0045, XEP-0198: rejoin MUC rooms while a hot reconnection is done:
when resuming is not possible with stream management, a hot reconnection is done
(reconnecting without restarting every plugin). This was causing trouble for joined MUC
rooms, which were not accessible anymore (because they were not re-joined).
This patch fixes it by clearing rooms first (to avoid considering the room joined and
broadcasting the initial presence to them), then re-joining them.
fix 322
author | Goffi <goffi@goffi.org> |
---|---|
date | Tue, 16 Jul 2019 21:59:30 +0200 |
parents | 56f94936df1e |
children | ab2696e34d29 |
rev | line source |
---|---|
1934
2daf7b4c6756
use of /usr/bin/env instead of /usr/bin/python in shebang
Goffi <goffi@goffi.org>
parents:
1715
diff
changeset
|
1 #!/usr/bin/env python2 |
890
10bb8574ab11
plugin blog_banner: added temporary plugin with a user parameter to set a blog banner
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
2 # -*- coding: utf-8 -*- |
10bb8574ab11
plugin blog_banner: added temporary plugin with a user parameter to set a blog banner
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
3 |
1020
adbde4a3a52f
plugin misc_static_blog: renamed from tmp_blog_banner, now also with page's title, meta keywords and description
souliane <souliane@mailoo.org>
parents:
890
diff
changeset
|
4 # SAT plugin for static blogs |
890
10bb8574ab11
plugin blog_banner: added temporary plugin with a user parameter to set a blog banner
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
5 # Copyright (C) 2014 Adrien Cossa (souliane@mailoo.org) |
10bb8574ab11
plugin blog_banner: added temporary plugin with a user parameter to set a blog banner
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
6 |
10bb8574ab11
plugin blog_banner: added temporary plugin with a user parameter to set a blog banner
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
7 # This program is free software: you can redistribute it and/or modify |
10bb8574ab11
plugin blog_banner: added temporary plugin with a user parameter to set a blog banner
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
8 # it under the terms of the GNU Affero General Public License as published by |
10bb8574ab11
plugin blog_banner: added temporary plugin with a user parameter to set a blog banner
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
9 # the Free Software Foundation, either version 3 of the License, or |
10bb8574ab11
plugin blog_banner: added temporary plugin with a user parameter to set a blog banner
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
10 # (at your option) any later version. |
10bb8574ab11
plugin blog_banner: added temporary plugin with a user parameter to set a blog banner
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
11 |
10bb8574ab11
plugin blog_banner: added temporary plugin with a user parameter to set a blog banner
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
12 # This program is distributed in the hope that it will be useful, |
10bb8574ab11
plugin blog_banner: added temporary plugin with a user parameter to set a blog banner
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
10bb8574ab11
plugin blog_banner: added temporary plugin with a user parameter to set a blog banner
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
10bb8574ab11
plugin blog_banner: added temporary plugin with a user parameter to set a blog banner
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
15 # GNU Affero General Public License for more details. |
10bb8574ab11
plugin blog_banner: added temporary plugin with a user parameter to set a blog banner
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
16 |
10bb8574ab11
plugin blog_banner: added temporary plugin with a user parameter to set a blog banner
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
17 # You should have received a copy of the GNU Affero General Public License |
10bb8574ab11
plugin blog_banner: added temporary plugin with a user parameter to set a blog banner
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
18 # along with this program. If not, see <http://www.gnu.org/licenses/>. |
10bb8574ab11
plugin blog_banner: added temporary plugin with a user parameter to set a blog banner
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
19 |
1102
4c48e2549592
plugin misc_static_blog: add a menu for displaying a user static blog
souliane <souliane@mailoo.org>
parents:
1020
diff
changeset
|
20 from sat.core.log import getLogger |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
21 |
1102
4c48e2549592
plugin misc_static_blog: add a menu for displaying a user static blog
souliane <souliane@mailoo.org>
parents:
1020
diff
changeset
|
22 log = getLogger(__name__) |
890
10bb8574ab11
plugin blog_banner: added temporary plugin with a user parameter to set a blog banner
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
23 |
10bb8574ab11
plugin blog_banner: added temporary plugin with a user parameter to set a blog banner
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
24 from sat.core.i18n import _, D_ |
1020
adbde4a3a52f
plugin misc_static_blog: renamed from tmp_blog_banner, now also with page's title, meta keywords and description
souliane <souliane@mailoo.org>
parents:
890
diff
changeset
|
25 from sat.core.constants import Const as C |
1102
4c48e2549592
plugin misc_static_blog: add a menu for displaying a user static blog
souliane <souliane@mailoo.org>
parents:
1020
diff
changeset
|
26 from sat.core import exceptions |
4c48e2549592
plugin misc_static_blog: add a menu for displaying a user static blog
souliane <souliane@mailoo.org>
parents:
1020
diff
changeset
|
27 from sat.tools import xml_tools |
4c48e2549592
plugin misc_static_blog: add a menu for displaying a user static blog
souliane <souliane@mailoo.org>
parents:
1020
diff
changeset
|
28 |
4c48e2549592
plugin misc_static_blog: add a menu for displaying a user static blog
souliane <souliane@mailoo.org>
parents:
1020
diff
changeset
|
29 from twisted.internet import defer |
4c48e2549592
plugin misc_static_blog: add a menu for displaying a user static blog
souliane <souliane@mailoo.org>
parents:
1020
diff
changeset
|
30 from twisted.words.protocols.jabber import jid |
1020
adbde4a3a52f
plugin misc_static_blog: renamed from tmp_blog_banner, now also with page's title, meta keywords and description
souliane <souliane@mailoo.org>
parents:
890
diff
changeset
|
31 |
890
10bb8574ab11
plugin blog_banner: added temporary plugin with a user parameter to set a blog banner
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
32 |
10bb8574ab11
plugin blog_banner: added temporary plugin with a user parameter to set a blog banner
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
33 PLUGIN_INFO = { |
2145
33c8c4973743
core (plugins): added missing contants + use of new constants in PLUGIN_INFO
Goffi <goffi@goffi.org>
parents:
1934
diff
changeset
|
34 C.PI_NAME: "Static Blog Plugin", |
33c8c4973743
core (plugins): added missing contants + use of new constants in PLUGIN_INFO
Goffi <goffi@goffi.org>
parents:
1934
diff
changeset
|
35 C.PI_IMPORT_NAME: "STATIC-BLOG", |
33c8c4973743
core (plugins): added missing contants + use of new constants in PLUGIN_INFO
Goffi <goffi@goffi.org>
parents:
1934
diff
changeset
|
36 C.PI_TYPE: "MISC", |
33c8c4973743
core (plugins): added missing contants + use of new constants in PLUGIN_INFO
Goffi <goffi@goffi.org>
parents:
1934
diff
changeset
|
37 C.PI_PROTOCOLS: [], |
33c8c4973743
core (plugins): added missing contants + use of new constants in PLUGIN_INFO
Goffi <goffi@goffi.org>
parents:
1934
diff
changeset
|
38 C.PI_DEPENDENCIES: [], |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
39 C.PI_RECOMMENDATIONS: [ |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
40 "MISC-ACCOUNT" |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
41 ], # TODO: remove when all blogs can be retrieved |
2145
33c8c4973743
core (plugins): added missing contants + use of new constants in PLUGIN_INFO
Goffi <goffi@goffi.org>
parents:
1934
diff
changeset
|
42 C.PI_MAIN: "StaticBlog", |
33c8c4973743
core (plugins): added missing contants + use of new constants in PLUGIN_INFO
Goffi <goffi@goffi.org>
parents:
1934
diff
changeset
|
43 C.PI_HANDLER: "no", |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
44 C.PI_DESCRIPTION: _("""Plugin for static blogs"""), |
890
10bb8574ab11
plugin blog_banner: added temporary plugin with a user parameter to set a blog banner
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
45 } |
10bb8574ab11
plugin blog_banner: added temporary plugin with a user parameter to set a blog banner
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
46 |
10bb8574ab11
plugin blog_banner: added temporary plugin with a user parameter to set a blog banner
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
47 |
1020
adbde4a3a52f
plugin misc_static_blog: renamed from tmp_blog_banner, now also with page's title, meta keywords and description
souliane <souliane@mailoo.org>
parents:
890
diff
changeset
|
48 class StaticBlog(object): |
890
10bb8574ab11
plugin blog_banner: added temporary plugin with a user parameter to set a blog banner
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
49 |
2479
0d6c53e6c591
plugin blog static: added background parameter, to set an image
Goffi <goffi@goffi.org>
parents:
2145
diff
changeset
|
50 params = u""" |
890
10bb8574ab11
plugin blog_banner: added temporary plugin with a user parameter to set a blog banner
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
51 <params> |
10bb8574ab11
plugin blog_banner: added temporary plugin with a user parameter to set a blog banner
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
52 <individual> |
2479
0d6c53e6c591
plugin blog static: added background parameter, to set an image
Goffi <goffi@goffi.org>
parents:
2145
diff
changeset
|
53 <category name="{category_name}" label="{category_label}"> |
0d6c53e6c591
plugin blog static: added background parameter, to set an image
Goffi <goffi@goffi.org>
parents:
2145
diff
changeset
|
54 <param name="{title_name}" label="{title_label}" value="" type="string" security="0"/> |
0d6c53e6c591
plugin blog static: added background parameter, to set an image
Goffi <goffi@goffi.org>
parents:
2145
diff
changeset
|
55 <param name="{banner_name}" label="{banner_label}" value="" type="string" security="0"/> |
0d6c53e6c591
plugin blog static: added background parameter, to set an image
Goffi <goffi@goffi.org>
parents:
2145
diff
changeset
|
56 <param name="{background_name}" label="{background_label}" value ="" type="string" security="0"/> |
0d6c53e6c591
plugin blog static: added background parameter, to set an image
Goffi <goffi@goffi.org>
parents:
2145
diff
changeset
|
57 <param name="{keywords_name}" label="{keywords_label}" value="" type="string" security="0"/> |
0d6c53e6c591
plugin blog static: added background parameter, to set an image
Goffi <goffi@goffi.org>
parents:
2145
diff
changeset
|
58 <param name="{description_name}" label="{description_label}" value="" type="string" security="0"/> |
890
10bb8574ab11
plugin blog_banner: added temporary plugin with a user parameter to set a blog banner
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
59 </category> |
10bb8574ab11
plugin blog_banner: added temporary plugin with a user parameter to set a blog banner
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
60 </individual> |
10bb8574ab11
plugin blog_banner: added temporary plugin with a user parameter to set a blog banner
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
61 </params> |
2479
0d6c53e6c591
plugin blog static: added background parameter, to set an image
Goffi <goffi@goffi.org>
parents:
2145
diff
changeset
|
62 """.format( |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
63 category_name=C.STATIC_BLOG_KEY, |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
64 category_label=D_(C.STATIC_BLOG_KEY), |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
65 title_name=C.STATIC_BLOG_PARAM_TITLE, |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
66 title_label=D_("Page title"), |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
67 banner_name=C.STATIC_BLOG_PARAM_BANNER, |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
68 banner_label=D_("Banner URL"), |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
69 background_name=u"Background", |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
70 background_label=D_(u"Background image URL"), |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
71 keywords_name=C.STATIC_BLOG_PARAM_KEYWORDS, |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
72 keywords_label=D_("Keywords"), |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
73 description_name=C.STATIC_BLOG_PARAM_DESCRIPTION, |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
74 description_label=D_("Description"), |
2479
0d6c53e6c591
plugin blog static: added background parameter, to set an image
Goffi <goffi@goffi.org>
parents:
2145
diff
changeset
|
75 ) |
890
10bb8574ab11
plugin blog_banner: added temporary plugin with a user parameter to set a blog banner
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
76 |
10bb8574ab11
plugin blog_banner: added temporary plugin with a user parameter to set a blog banner
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
77 def __init__(self, host): |
1102
4c48e2549592
plugin misc_static_blog: add a menu for displaying a user static blog
souliane <souliane@mailoo.org>
parents:
1020
diff
changeset
|
78 try: # TODO: remove this attribute when all blogs can be retrieved |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
79 self.domain = host.plugins["MISC-ACCOUNT"].getNewAccountDomain() |
1102
4c48e2549592
plugin misc_static_blog: add a menu for displaying a user static blog
souliane <souliane@mailoo.org>
parents:
1020
diff
changeset
|
80 except KeyError: |
4c48e2549592
plugin misc_static_blog: add a menu for displaying a user static blog
souliane <souliane@mailoo.org>
parents:
1020
diff
changeset
|
81 self.domain = None |
890
10bb8574ab11
plugin blog_banner: added temporary plugin with a user parameter to set a blog banner
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
82 host.memory.updateParams(self.params) |
1715
b505b01195f0
plugin static blog: temporarily deactivated public blog menu
Goffi <goffi@goffi.org>
parents:
1468
diff
changeset
|
83 # host.importMenu((D_("User"), D_("Public blog")), self._displayPublicBlog, security_limit=1, help_string=D_("Display public blog page"), type_=C.MENU_JID_CONTEXT) |
1102
4c48e2549592
plugin misc_static_blog: add a menu for displaying a user static blog
souliane <souliane@mailoo.org>
parents:
1020
diff
changeset
|
84 |
4c48e2549592
plugin misc_static_blog: add a menu for displaying a user static blog
souliane <souliane@mailoo.org>
parents:
1020
diff
changeset
|
85 def _displayPublicBlog(self, menu_data, profile): |
4c48e2549592
plugin misc_static_blog: add a menu for displaying a user static blog
souliane <souliane@mailoo.org>
parents:
1020
diff
changeset
|
86 """Check if the blog can be displayed and answer the frontend. |
4c48e2549592
plugin misc_static_blog: add a menu for displaying a user static blog
souliane <souliane@mailoo.org>
parents:
1020
diff
changeset
|
87 |
4c48e2549592
plugin misc_static_blog: add a menu for displaying a user static blog
souliane <souliane@mailoo.org>
parents:
1020
diff
changeset
|
88 @param menu_data: %(menu_data)s |
4c48e2549592
plugin misc_static_blog: add a menu for displaying a user static blog
souliane <souliane@mailoo.org>
parents:
1020
diff
changeset
|
89 @param profile: %(doc_profile)s |
4c48e2549592
plugin misc_static_blog: add a menu for displaying a user static blog
souliane <souliane@mailoo.org>
parents:
1020
diff
changeset
|
90 @return: dict |
4c48e2549592
plugin misc_static_blog: add a menu for displaying a user static blog
souliane <souliane@mailoo.org>
parents:
1020
diff
changeset
|
91 """ |
1468
731fbed0b9cf
quick_frontend, primitivus: handling of actionNew signal
Goffi <goffi@goffi.org>
parents:
1102
diff
changeset
|
92 # FIXME: "public_blog" key has been removed |
731fbed0b9cf
quick_frontend, primitivus: handling of actionNew signal
Goffi <goffi@goffi.org>
parents:
1102
diff
changeset
|
93 # TODO: replace this with a more generic widget call with URIs |
1102
4c48e2549592
plugin misc_static_blog: add a menu for displaying a user static blog
souliane <souliane@mailoo.org>
parents:
1020
diff
changeset
|
94 try: |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
95 user_jid = jid.JID(menu_data["jid"]) |
1102
4c48e2549592
plugin misc_static_blog: add a menu for displaying a user static blog
souliane <souliane@mailoo.org>
parents:
1020
diff
changeset
|
96 except KeyError: |
4c48e2549592
plugin misc_static_blog: add a menu for displaying a user static blog
souliane <souliane@mailoo.org>
parents:
1020
diff
changeset
|
97 log.error(_("jid key is not present !")) |
4c48e2549592
plugin misc_static_blog: add a menu for displaying a user static blog
souliane <souliane@mailoo.org>
parents:
1020
diff
changeset
|
98 return defer.fail(exceptions.DataError) |
4c48e2549592
plugin misc_static_blog: add a menu for displaying a user static blog
souliane <souliane@mailoo.org>
parents:
1020
diff
changeset
|
99 |
4c48e2549592
plugin misc_static_blog: add a menu for displaying a user static blog
souliane <souliane@mailoo.org>
parents:
1020
diff
changeset
|
100 # TODO: remove this check when all blogs can be retrieved |
4c48e2549592
plugin misc_static_blog: add a menu for displaying a user static blog
souliane <souliane@mailoo.org>
parents:
1020
diff
changeset
|
101 if self.domain and user_jid.host != self.domain: |
4c48e2549592
plugin misc_static_blog: add a menu for displaying a user static blog
souliane <souliane@mailoo.org>
parents:
1020
diff
changeset
|
102 info_ui = xml_tools.XMLUI("popup", title=D_("Not available")) |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
103 info_ui.addText( |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
104 D_("Retrieving a blog from an external domain is not implemented yet.") |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
105 ) |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
106 return {"xmlui": info_ui.toXml()} |
1102
4c48e2549592
plugin misc_static_blog: add a menu for displaying a user static blog
souliane <souliane@mailoo.org>
parents:
1020
diff
changeset
|
107 |
4c48e2549592
plugin misc_static_blog: add a menu for displaying a user static blog
souliane <souliane@mailoo.org>
parents:
1020
diff
changeset
|
108 return {"public_blog": user_jid.userhost()} |