Commit graph libervia-backend/src
Author SHA1 Message Date
Goffi
4eaf5d626f plugin XEP-0054, quick frontend(app): various improvments:
- memory.cache is now used
    - getAvatar and setAvatar has been renamed to avatarGet and avatarSet to follow new convention
    - getAvatar now return (optionally) full path, and may request vCard or only return avatar in cache
    - getAvatarFile has been removed as it is not needed anymore (avatarGet can return full path)
    - getCard has been removed from bridge as it was only used to request avatar
    - new internal method getBareOfFull return jid to use depending of the jid being part of a MUC or not
    - cache is now set per profile in client, instead of a general one for all profiles
    - thanks to the use of memory.cache, correct extension is now used in saved file, according to MIME type
    - fixed and better cache handling
    - a warning message is shown if given avatar hash differs from computed one
    - empty hash value is now in a constant, and ignored if received
    - QuickApp has been updated to follow new behaviour
    - Primitivus has been fixed (it was not declaring not using avatars correclty)
    - jp has been updated to follow new methods name
2017-01-15 17:51:37 +01:00
Goffi
6fa84527ae bridge (constructor/embedded): fixed warning on unregistered callback 2017-01-15 16:00:40 +01:00
Goffi
1db9ff572e plugin XEP-0277: fixed mbSetAccess double registration 2017-01-15 16:00:40 +01:00
Goffi
3958c9eb97 core (memory/cache): geFilePath now return None when uid is empty 2017-01-15 16:00:40 +01:00
Goffi
50194cde01 core: added sessionGetInfos bridge method to retrieve various data on current profile session + client.started keep start time 2017-01-05 22:22:13 +01:00
Goffi
e744c29963 plugin text commands: added /whoami command which return current full jid 2017-01-05 20:29:19 +01:00
Goffi
d0c56aaadb plugin XEP-0231: Bits of Binary first draft:
The current implementation only retrieve data from Bits of Binary, it's not used yet for sending.
When an XHTML-IM message is received (XEP-0071), all <img> are checked and if a cid scheme is found in src attribute the file is retrieved and the src is changed with cached file.
2017-01-05 20:29:05 +01:00
Goffi
6872df4fd3 core (memory/cache): file caching handling, first draft:
instead of having file caching handled individually by plugins, a generic module has been added in memory.

    - Cache can be global or associated to a profile. In the later case, client.cache can be used.
    - Cache are managed with unique ids (which can be any unique unicode, hash uuid, or something else).
    - To know if a file is in cache, getFilePath is used: if the file is in cache, its absolute path is returned, else None is returned.
    - To cache a file, cacheData is used with at list the source of cache (most of time plugin import name), and unique id. The method return file opened in binary writing mode (so cacheData can - and should - be used with "with" statement).
    - 2 files will be created: a metadata file (named after the unique id), and the actual file.
    - each file has a end of life time, after it, the cache is invalidated and the file must be requested again.
2017-01-05 20:23:38 +01:00
Goffi
791be3a4ad core (xml_tools): fixed findAll
- names and namespases arguments haven been inverted to be in the same order as for domish.Element.elements
    - fixed bad copy of elements in recursions
    - check if childrens are IElements
    - namespaces and names can now be basestrings instead of iterables
2017-01-03 18:51:50 +01:00
Goffi
46ced6d74e plugin text syntaxes: log error on cleanXHTML failure 2017-01-01 16:38:32 +01:00
Goffi
a37b57e7ad core(constants): added a constant for profile extension (PLUGIN_EXT):
this constant may be modified if needed, which is the case on Android (it's modified by Cagou service's main.py), so platform detection is not needed anymore in sat_main.py.
2016-12-25 16:43:56 +01:00
Goffi
6782bb9a3b plugin android: first draft:
- the plugin cancel its own import if it's not launched on Android platform
    - this plugin show a notification when a non MUC message is received when Cagou is not active
    - the device also optionally vibrate on notification
2016-12-19 23:49:37 +01:00
Goffi
32036a4044 plugin XEP-0280: Message Carbons first draft 2016-12-18 20:21:31 +01:00
Goffi
0a5fd6f3f4 primitivus, jp: dynamic bridge + fixed D-Bus bridge:
Primitivus and jp can now load the bridge specified in sat.conf, but they are only working with D-Bus so far (need to change all sync calls to async).
    Exit code 3 is used for Bridge init error.
2016-12-18 16:28:51 +01:00
Goffi
1b7290aa70 core (memory/disco): recover getItems on bridge's discoItems method if an item is empty 2016-12-18 16:28:44 +01:00
Goffi
ced2c16721 xep-0184: delivery receipts are now activated by default 2016-12-18 10:17:32 +01:00
Goffi
9a9ac75b20 xep-0070: fixed use of byte string instead of unicode 2016-12-18 10:16:47 +01:00
Goffi
90440303ea bridbe(pb): Perspective Broker bridge, first draft 2016-12-13 22:27:49 +01:00
Goffi
34cec8fe14 bridge, quick_frontend: preparation for async bridge
bridge can currently have sync and async methods. This commit prepare the transition to fully async bridges:
    - a new bridgeConnect method must be called to prepare the bridge
    - quick app, quick profile manager: changed sync calls to async ones
    - quick app: bridgeConnect can be called automatically or manually depending on connect_bridge parameter of QuickApp
2016-12-13 22:27:48 +01:00
Goffi
58795c675c core(stdui/profile manager): fixed authentication cancellation 2016-12-04 21:35:23 +01:00
Goffi
2618d48e7b core, quick_frontends: android compatibility hacks:
a couple of hacks have been used so backend can be launched on android using kivy
    - config file (sat.conf) is been read on a specific dir, using a detection of Cagou domains in constants.py
    - fixed crash when using sys.stdout.isatty in log_config.py
    - Q&D fix for logging encoding issue on android
    - when android is detected, the path/pattern to load plugins is modified
    - SRV is not working at the moment on android. If the platform is detected, the host is used directly with default port. A hosts_dir configuration can be used in [android] section to map a specific ip to a host
    - getRepositoryData in tools/utils return constant string on android. Proper repository data need to be copied during package building.
    - [quick app] more robust failure handling on asyncConnect error
    - [quick chat] default to utf-8 when getlocale doesn't return the actual locale.
2016-12-04 18:16:48 +01:00
Goffi
9ce91cf534 core: bridge can now be changed in conf
by default DBus bridge is used, but this can be changed in sat.conf's DEFAULT section using "bridge" option.
    bridge can be "dbus" (or equivalent "dbus_bridge") or embedded at the moment.
    Bridge name used is saved in SAT.bridge_name, and load_bridge method can be used by frontends.
2016-12-04 18:16:37 +01:00
Goffi
6ad826bb0d bridge (constructor): embedded bridge generator:
"embedded" is used to have backend and frontend together in the same process (frontend call backend as a module).
2016-10-05 22:07:51 +02:00
Goffi
372f54ec2a bridge (D-Bus): bad design fixes:
- renamed outputed module to dbus_bridge (to avoid uppercase and conflict with dbus module)
    - class name is now Bridge for both frontend and core (make discovery/import more easy)
    - register renamed to register_method in core, and register_signal in frontend
2016-10-03 21:15:39 +02:00
Goffi
fc04d33fac bridge (constructor): refactoring:
- constructors are now in separate modules
    - constructors are discovered dynamically
    - factorised generation code from D-Bus in base Constructor.
    - A generic generation method is now available in base Constructor, using python formatting.
    - removed bridge/bridge.py in core as it was useless, may come back in the future if needed
2016-10-02 22:44:33 +02:00
Goffi
df1b19bd66 bridge(constructor): constructor now uses argparse instead of optparse 2016-10-02 15:56:20 +02:00
Goffi
001834b760 bridge(D-Bus): minotr argument name fix 2016-10-02 15:51:42 +02:00
Goffi
9bb6c74771 plugin XEP-0071: fixed rich and xhtml sending + add simple text body if not present 2016-09-25 19:17:38 +02:00
Goffi
3337750def core (tools/common): added getSubDict method in data_format to get sub dictionary from serialised one 2016-09-25 19:16:25 +02:00
Goffi
6395a46e87 plugin XEP-0054(XEP-0153): added a getAvatar:
getAvatar can be used to do the whole process to get avatar file (or empty string if not avatar is found) : it first look in cache and request vCard if nothing is found.
2016-09-13 22:02:52 +02:00
Goffi
44933e1a60 core (stdui): fixed cancellation of ContactList forms 2016-09-11 23:17:31 +02:00
Goffi
d4d4f6534b plugin XEP-0054(XEP-0153): ignore image formats other than gif, jpeg and png, and empty BINVAL 2016-09-10 18:03:24 +02:00
Goffi
42167b6ae9 plugin XEP-0045, quick frontend (app,chat): various chat improvments:
- (XEP-0045): join defered is now fired when room is full joined and history is available
    - (XEP-0045): mucJOIN signature has changed, it now returns the same arguments as mucRoomJoined and a boolean which is True if the room was alread joined
    - quick frontend (app, chat): adapted code to new changes
2016-09-09 23:54:33 +02:00
Goffi
4f26367e7a plugin XEP-0054: fix use of full jid for room occupants 2016-09-09 23:54:33 +02:00
Goffi
b97038f281 plugin XEP-0054: renamed isInRoom to isRoom as the method only tell if the entity belong to a MUC 2016-09-09 23:54:33 +02:00
Goffi
d80d9ae0d4 plugin XEP-0045: minor docstring fix 2016-09-09 23:54:32 +02:00
Goffi
eb1dd1d177 plugin XEP-0245: removed plugin XEP-0245:
at the end it adds complications to handle XEP-0245 in backend (because edge cases must be handled: info type with group chat, history when message is info but for a group chat, etc) while it's trivial to handle it in frontend.
    So /me detection is handled in QuickFrontend and cmd_me is back into plugin_misc_text_commands, it is the choice of the frontend to display or not the "/me" (for frontends based on QuickFrontend it remains automatic).
2016-08-28 21:00:53 +02:00
Goffi
f378675f78 bridge (bridge_template.ini): minor doc fix 2016-08-28 20:24:25 +02:00
Goffi
7ad14f2252 core: line feed (\n) are now forbidden in profile names 2016-08-28 20:09:09 +02:00
Goffi
55357178ef core, bridge, frontends: removed deprecated bridge method askConfirmation, confirmationAnswer, actionResult, actionResultExt and getWaitingConf 2016-08-28 19:23:58 +02:00
Goffi
0de4df1051 plugin XEP-0045, XEP-0054, XEP-0096: deprecated bridge method are not used anymore 2016-08-28 18:20:55 +02:00
Goffi
faf645d589 plugin XEP-0249: some modernisation, don't use anymore deprecated methods, invite bridge method use a single param for room jid 2016-08-28 18:18:10 +02:00
Goffi
527e561a3e core (xmlui): added a quickNote method to easily send notes 2016-08-28 18:16:03 +02:00
Goffi
3142e4fee6 plugin debug: first draft:
this plugin implement some helper tools/bridge method to make development and debugging easier.
The first implemented bridge method, debugFakeSignal, allow to send a signal from the backend, simulating some events in the frontends.
2016-08-21 12:23:09 +02:00
Goffi
a1d5ee167c core (constants): added XMLUI_DATA_LVLS constants which group all available levels 2016-08-21 12:03:34 +02:00
Goffi
ae50946479 plugin XEP-0045: fixed options parameter handling in bridge callback 2016-08-08 00:50:01 +02:00
Geoffrey POUZET
3f5a26f273 plugin XEP-0184: Implementation of XEP-0184 (Message Delivery Receipts) 2016-07-28 19:11:31 +02:00
Goffi
b148722b4d plugin XEP-0045: added bridge method to change subject 2016-07-24 18:59:02 +02:00
Goffi
60c8f2fc3d quick_frontend(chat): better handling of cached signals when initialising widget 2016-07-24 18:02:34 +02:00
Geoffrey POUZET
7eb6d363d9 plugin XEP-0070: change message popup to be more user-friendly 2016-07-19 21:25:22 +02:00