Python : Handle situations in which FASI is unable to access to a group chat;
SVG : Add Xabber; TOML : Add Xabber and update several descriptions; XHTML : Update note for Haiku.
This commit is contained in:
parent
40ad9bd58d
commit
644842ab6d
4 changed files with 1278 additions and 31 deletions
59
clients.toml
59
clients.toml
|
@ -31,7 +31,7 @@ features = ["chat", "console", "desktop"]
|
|||
#and a few enhancements.
|
||||
#"""
|
||||
#apple = "https://beagle.im/#about"
|
||||
#features = ["chat", "desktop", "graphical"]
|
||||
#features = ["chat", "desktop", "graphical", "omemo"]
|
||||
|
||||
[blabber]
|
||||
title = "blabber.im"
|
||||
|
@ -118,7 +118,7 @@ It is easy to use, reliable, battery friendly. With built-in support for \
|
|||
images, group chats and e2e encryption.
|
||||
"""
|
||||
divestos = "https://f-droid.org/packages/eu.siacs.conversations"
|
||||
features = ["chat", "fdroid", "graphical", "mobile", "omemo", "openpgp"]
|
||||
features = ["chat", "fdroid", "graphical", "mobile", "omemo", "openpgp", "pwa"]
|
||||
|
||||
[conversations-classic]
|
||||
title = "Conversations Classic"
|
||||
|
@ -194,8 +194,8 @@ home = "https://gajim.org"
|
|||
about = """
|
||||
Gajim aims to be an easy to use and fully-featured XMPP client.
|
||||
|
||||
Chat securely with End-to-End encryption with your friends or family; easily \
|
||||
share pictures and thoughts; or discuss the news with your groups.
|
||||
Chat securely, using End-to-End encryption, with your friends or family; \
|
||||
easily share pictures and thoughts; or discuss the news with your groups.
|
||||
|
||||
Gajim integrates well with your other devices: simply continue conversations \
|
||||
on your mobile device.
|
||||
|
@ -362,14 +362,14 @@ about = """
|
|||
Poezio is a free console XMPP client (the protocol on which the Jabber IM \
|
||||
network is built).
|
||||
|
||||
Its purpose is to let you connect very easily (no account creation needed) to \
|
||||
the network and join various chatrooms, immediately. It tries to look like the \
|
||||
most famous IRC clients (weechat, irssi, etc). Many commands are identical and \
|
||||
you will not be lost if you already know these clients. Configuration can be \
|
||||
made in a configuration file or directly from the client.
|
||||
It allows you to connect very easily (no account creation needed) to the \
|
||||
XMPP network, and join to various of chatrooms, immediately.
|
||||
|
||||
You will find the light, fast, geeky and anonymous spirit of IRC while using a \
|
||||
powerful, standard and open protocol.
|
||||
It mimics the appearance of the most famous IRC clients (weechat, irssi, etc), \
|
||||
and it includes many identical commands. You will be immediately familiar, if \
|
||||
you already know these clients. Configuration can be made in a configuration \
|
||||
file or directly from the client. You will find the light, fast, geeky and \
|
||||
anonymous spirit of IRC while using a powerful, standard and open protocol.
|
||||
"""
|
||||
haiku = "https://depot.haiku-os.org/poezio"
|
||||
posix = "https://poez.io/en/#download"
|
||||
|
@ -409,7 +409,7 @@ supported operating system.
|
|||
apple = "https://psi-im.org"
|
||||
linux = "https://psi-im.org"
|
||||
reactos = "https://psi-im.org"
|
||||
features = ["adhoc", "admin", "chat", "desktop", "graphical", "openpgp", "otr"]
|
||||
features = ["adhoc", "admin", "chat", "desktop", "graphical", "omemo", "openpgp", "otr"]
|
||||
|
||||
[psi-plus]
|
||||
title = "Psi+"
|
||||
|
@ -425,7 +425,7 @@ apple = "https://psi-plus.com/wiki/en:downloads#macos"
|
|||
haiku = "https://depot.haiku-os.org/psi_plus"
|
||||
linux = "https://psi-plus.com/wiki/en:downloads#linux"
|
||||
reactos = "https://psi-plus.com/wiki/en:downloads#ms_windows"
|
||||
features = ["adhoc", "admin", "chat", "desktop", "graphical", "haikudepot", "openpgp", "otr"]
|
||||
features = ["adhoc", "admin", "chat", "desktop", "graphical", "haikudepot", "omemo", "openpgp", "otr"]
|
||||
|
||||
[reeder]
|
||||
title = "Reeder"
|
||||
|
@ -532,19 +532,19 @@ features = ["chat", "desktop", "graphical"]
|
|||
title = "UWPX"
|
||||
home = "https://uwpx.org"
|
||||
about = """
|
||||
UWPX is a app for your UWP (Windows 10 and Windows 11) devices. It implements \
|
||||
the Extensible Messaging and Presence Protocol (XMPP). At the moment UWPX is \
|
||||
in BETA stage so expect unexpected behavior sometimes.
|
||||
UWPX is a Windows app for your UWP (Windows 10 and Windows 11) devices.
|
||||
|
||||
By default every connection between you and your server is encrypted via \
|
||||
TLS 1.2. This prevents attackers from reading your chat messages or metadata.
|
||||
At the moment, development on UWPX has stopped, and we are looking for a new \
|
||||
maintainer.
|
||||
|
||||
OMEMO support is actively being worked on. Once implemented, OMEMO will \
|
||||
provide a multi-client end-to-end encryption so not even your own server can \
|
||||
read your chat messages.
|
||||
There is support for a wide range of features link bookmarks, user avatars, \
|
||||
chat markers and experimental OMEMO support.
|
||||
|
||||
For a complete list of features, please refer to the project: \
|
||||
https://github.com/UWPX/UWPX-Client?tab=readme-ov-file#features
|
||||
"""
|
||||
reactos = "https://uwpx.org"
|
||||
features = ["chat", "desktop", "graphical", "mobile"]
|
||||
features = ["chat", "desktop", "graphical", "mobile", "omemo"]
|
||||
|
||||
[weechat]
|
||||
title = "WeeChat"
|
||||
|
@ -560,6 +560,21 @@ haiku = "https://depot.haiku-os.org/weechat"
|
|||
posix = "https://github.com/bqv/weechat-xmpp"
|
||||
features = ["chat", "console", "desktop", "omemo", "openpgp"]
|
||||
|
||||
[xabber]
|
||||
title = "Xabber"
|
||||
home = "https://xabber.com"
|
||||
about = """
|
||||
Open source Jabber (XMPP) client with multi-account support, and a clean \
|
||||
interface to provide you with a first-class chat experience.
|
||||
|
||||
Free (as in freedom!) and ad-free, Xabber looks and works great, and is built \
|
||||
to provide people with a simple, fast and secure messaging, based on \
|
||||
interoperable open standards.
|
||||
"""
|
||||
browser = "https://xabber.com"
|
||||
divestos = "https://xabber.com"
|
||||
features = ["chat", "desktop", "graphical", "omemo", "mobile"]
|
||||
|
||||
#[xmpp-web]
|
||||
#title = "XMPP Web"
|
||||
#home = "https://github.com/nioc/xmpp-web"
|
||||
|
|
26
fasi.py
26
fasi.py
|
@ -1,6 +1,7 @@
|
|||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from asyncio import TimeoutError
|
||||
from datetime import datetime
|
||||
from email.utils import parseaddr
|
||||
from fastapi import FastAPI, Form, HTTPException, Request, Response
|
||||
|
@ -681,6 +682,12 @@ class HttpInstance:
|
|||
title = 'Internal Server Error'
|
||||
return result_get(request, action, title)
|
||||
|
||||
@self.app.exception_handler(504)
|
||||
def time_out_exception_handler(request: Request, exc: HTTPException):
|
||||
action = 'Warning'
|
||||
title = 'Time Out'
|
||||
return result_get(request, action, title)
|
||||
|
||||
def result_get(request: Request, action: str, title: str):
|
||||
template_file = 'result.xhtml'
|
||||
template_dict = {
|
||||
|
@ -850,12 +857,17 @@ class FileUtilities:
|
|||
node_title = jid_info['condition']
|
||||
node_note = jid_info['text']
|
||||
services = services_sorted = None
|
||||
elif isinstance(room_info_muc, IqTimeout):
|
||||
elif isinstance(room_info_muc['iq'], TimeoutError):
|
||||
action = 'Warning'
|
||||
node_title = 'Timeout'
|
||||
node_note = 'Request timeout has reached'
|
||||
services = services_sorted = None
|
||||
elif isinstance(room_info_muc['iq'], IqTimeout):
|
||||
action = 'Warning'
|
||||
node_title = 'Timeout'
|
||||
node_note = 'Timeout error'
|
||||
services = services_sorted = None
|
||||
elif isinstance(room_info_muc, IqError):
|
||||
elif isinstance(room_info_muc['iq'], IqError):
|
||||
action = 'Warning'
|
||||
breakpoint()
|
||||
node_title = room_info_muc['condition']
|
||||
|
@ -1366,11 +1378,17 @@ class XmppXep0045:
|
|||
#presence_options = {"pfrom" : jid_from},
|
||||
#seconds=seconds,
|
||||
#since=since,
|
||||
#timeout=30
|
||||
timeout=5
|
||||
)
|
||||
except TimeoutError as e:
|
||||
#raise HTTPException(status_code=504, detail='request-timeout-reached')
|
||||
error = True
|
||||
iq = e
|
||||
condition = 'Request timeout reached'
|
||||
text = str(e)
|
||||
except (IqError, IqTimeout, PresenceError) as e:
|
||||
error = True
|
||||
iq = None
|
||||
iq = e
|
||||
condition = e.iq['error']['condition']
|
||||
text = e.iq['error']['text']
|
||||
result = {
|
||||
|
|
1213
img/xabber.svg
Normal file
1213
img/xabber.svg
Normal file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 128 KiB |
|
@ -60,8 +60,9 @@
|
|||
<img src="/img/haiku.svg" />
|
||||
</a>
|
||||
<span>
|
||||
Please refer to <a href="/download/haiku">this page</a>, if
|
||||
you are using the Haiku operating system.
|
||||
Please refer to the section <a href="/download/haiku">XMPP
|
||||
Clients For Haiku</a>, if you are using the Haiku operating
|
||||
system.
|
||||
</span>
|
||||
</span>
|
||||
</div>
|
||||
|
@ -124,7 +125,7 @@
|
|||
</a>
|
||||
<span>
|
||||
Please refer to <a href="/download/posix">this page</a>, if
|
||||
you are prefer text based (i.e. console) interface.
|
||||
you prefer software with text based (i.e. console) interface.
|
||||
</span>
|
||||
</span>
|
||||
</div>
|
||||
|
@ -183,8 +184,8 @@
|
|||
XMPP is the decentralized, free, open, and private messaging
|
||||
and publishing protocol that drives the world's top-tier and
|
||||
largest open IM network which allows for end-to-end
|
||||
encrypted messaging, group chats, voice calls, video calls
|
||||
and more. Join to the community! (est. 1999)
|
||||
encrypted messaging, group chats, voice calls, video
|
||||
conferences and more. Join to the community! (est. 1999)
|
||||
</span>
|
||||
<span>
|
||||
<img class="wide" src="/img/xmpp.svg" />
|
||||
|
|
Loading…
Reference in a new issue