Commit graph libervia-backend/src/core
Author SHA1 Message Date
Goffi
55357178ef core, bridge, frontends: removed deprecated bridge method askConfirmation, confirmationAnswer, actionResult, actionResultExt and getWaitingConf 2016-08-28 19:23:58 +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
cc160e03d7 plugin XEP-0085, quick_frontends, primitivus: chat states are working again 2016-07-17 16:47:33 +02:00
Goffi
04515e5013 plugin XEP-0045, quick_frontend + primitivus (chat): cleaning of XEP-0045 (first pass):
- bridge methods/signals now all start with "muc" to follow new convention
    - internal method use client instead of profile to follow new convention
    - removed excetpions from plugin XEP-0045 in favor of core.exceptions, NotReady added
    - cleaned/simplified several part of the code. checkClient removed as it is not needed anymore
    - self.clients map removed, muc data are now stored directly in client
    - getRoomEntityNick and getRoomNicksOfUsers are removed as they don't look sane.
        /!\ This break all room game plugins for the moment
    - use of uuid4 instead of uuid1 for getUniqueName, as host ID and current time are used for uuid1
2016-06-27 21:45:11 +02:00
Goffi
a7de473107 backend, frontends: message refactoring (huge commit):
/!\ several features are temporarily disabled, like notifications in frontends

next step in refactoring, with the following changes:
    - jp: updated jp message to follow changes in backend/bridge
    - jp: added --lang, --subject, --subject_lang, and --type options to jp message + fixed unicode handling for jid
    - quick_frontend (QuickApp, QuickChat):
        - follow backend changes
        - refactored chat, message are now handled in OrderedDict and uid are kept so they can be updated
        - Message and Occupant classes handle metadata, so frontend just have to display them
    - Primitivus (Chat):
        - follow backend/QuickFrontend changes
        - info & standard messages are handled in the same MessageWidget class
        - improved/simplified handling of messages, removed update() method
        - user joined/left messages are merged when next to each other
        - a separator is shown when message is received while widget is out of focus, so user can quickly see the new messages
        - affiliation/role are shown (in a basic way for now) in occupants panel
        - removed "/me" messages handling, as it will be done by a backend plugin
        - message language is displayed when available (only one language per message for now)
        - fixed :history and :search commands
    - core (constants): new constants for messages type, XML namespace, entity type
    - core: *Message methods renamed to follow new code sytle (e.g. sendMessageToBridge => messageSendToBridge)
    - core (messages handling): fixed handling of language
    - core (messages handling): mes_data['from'] and ['to'] are now jid.JID
    - core (core.xmpp): reorganised message methods, added getNick() method to client.roster
    - plugin text commands: fixed plugin and adapted to new messages behaviour. client is now used in arguments instead of profile
    - plugins: added information for cancellation reason in CancelError calls
    - plugin XEP-0045: various improvments, but this plugin still need work:
        - trigger is used to avoid message already handled by the plugin to be handled a second time
        - changed the way to handle history, the last message from DB is checked and we request only messages since this one, in seconds (thanks Poezio folks :))
        - subject reception is waited before sending the roomJoined signal, this way we are sure that everything including history is ready
        - cmd_* method now follow the new convention with client instead of profile
        - roomUserJoined and roomUserLeft messages are removed, the events are now handled with info message with a "ROOM_USER_JOINED" info subtype
    - probably other forgotten stuffs :p
2016-06-20 18:41:53 +02:00
Goffi
6d67db84ea core: changed versioning schema:
before the "D" was meaning "version + modifications", so 0.6.0D was meaning "after the version 0.6.0".
    Now SàT will follow a more traditional way, so it move to 0.7.0D to say "it's the preparation of the version 0.7.0".
2016-06-19 22:22:04 +02:00
Goffi
f12803fa65 backend, frontend: messages refactoring (huge commit, not finished):
/!\ database schema has been modified, do a backup before updating

    message have been refactored, here are the main changes:

    - languages are now handled
    - all messages have an uid (internal to SàT)
    - message updating is anticipated
    - subject is now first class
    - new naming scheme is used newMessage => messageNew, getHistory => historyGet, sendMessage => messageSend
    - minimal compatibility refactoring in quick_frontend/Primitivus, better refactoring should follow
    - threads handling
    - delayed messages are saved into history
    - info messages may also be saved in history (e.g. to keep track of people joining/leaving a room)
    - duplicate messages should be avoided
    - historyGet return messages in right order, no need to sort again
    - plugins have been updated to follow new features, some of them need to be reworked (e.g. OTR)
    - XEP-0203 (Delayed Delivery) is now fully handled in core, the plugin just handle disco and creation of a delay element
    - /!\ jp and Libervia are currently broken, as some features of Primitivus

    It has been put in one huge commit to avoid breaking messaging between changes.
    This is the main part of message refactoring, other commits will follow to take profit of the new features/behaviour.
2016-05-24 22:11:04 +02:00
Goffi
1e05785e83 core (logs): taints:
log taints can be specified using log_levels_taints_dict in sat.conf, where key is a level name, and value is a list of color or code names. For instance, the following conf would taint INFO level in bold/green and DEBUG in default color:

    log_levels_taints_dict = {"debug": [], "info": ["green", "bold"]}

Unknown names are copied as raw strings.
2016-04-18 18:35:17 +02:00
Goffi
864520086a core (logs): use tools.config to handle sat.conf 2016-04-18 18:33:59 +02:00
Goffi
304b1eb34b core (logs): log color location can now be specified with %(color_start)s and %(color_end)s 2016-04-18 18:33:59 +02:00
Goffi
6bbcbaf522 use of /usr/bin/env instead of /usr/bin/python in shebang 2016-04-17 14:45:26 +02:00
Goffi
c43362ab3f plugin blog import dotclear: this plugin import Dotclear 2 backups 2016-01-22 20:24:17 +01:00
Goffi
c641953ebf plugin blog import: this plugin is the base handling blog importers:
- blog importers are plugin which register to this one with the "register" method
    - blog import manage uploading the given blog data to a PubSub server
    - filters can be used.
    - current filters fixe the <img> src without host, and upload images to XMPP server
2016-01-22 20:24:17 +01:00
Goffi
dff93495b3 plugin XEP-0277: moved NS_XHTML namespace to constants + adapted parsing to new behaviour of ElementParser 2016-01-22 20:24:17 +01:00
Goffi
098e66c4a2 plugin syntax dc_wiki: first draft:
handle dotclear wiki syntax
    /!\ only dc_wiki -> XHTML is handled for now
2016-01-17 20:39:20 +01:00
Goffi
c5320bb949 plugin XEP-0313: cleaning and improvments:
- moved common namespaces to core.constants
    - removed useless dependencies and recommendations
    - removed all bride methods as they where there only for testing purpose
    - don't use a plugin dict to store MAM clients, put them in profiles' clients instead
    - removed message trigger in favor of an observer which is triggered only when specific queryid is used
    - new getArchives method which grab all result and return them all at once
2016-01-05 23:20:22 +01:00
Goffi
348be27934 copyright update 2016-01-03 16:28:30 +01:00
souliane
ab7ae07a83 plugin XEP-0203, core (xmpp): leave the management of delay element to XEP-0203 (fix bug 59):
- this patch reveals a bug in primitivus Chat.printMessage relative to MUC history (the test to discard duplicates is wrong)
2015-12-11 11:25:29 +01:00
souliane
f3a5cb2a96 core, plugin misc_account: set XMPP connection max retries to 0 when checking if an external account exists 2015-12-07 19:56:12 +01:00
Goffi
942fdc7fa1 core (client): fixed maximum connection tries to 3 2015-12-07 13:10:44 +01:00
Goffi
73aa1d1f79 we are in dev version again 2015-12-07 13:10:44 +01:00
Goffi
db77e3358a update version to 0.6.0 2015-12-02 13:05:54 +01:00
Goffi
1bf3950ce6 core (memory): profile is checked in startSession (an error is raised if it doesn't exist) 2015-11-27 16:50:29 +01:00
Goffi
a8cc331dd5 core: fixed cache check on presence unavailable 2015-11-27 10:15:23 +01:00
Goffi
c0f53629e5 core: avoid to send presence unavailable signal when it's not necessary 2015-11-25 23:19:36 +01:00
Goffi
8e9ef84243 quick frontend (blog): fixed group blog panels (displaying only, sending is not working yet) 2015-11-23 16:21:32 +01:00
Goffi
8002971b77 core: fixed session cleaning after actionNew timeout 2015-11-22 21:23:14 +01:00
Goffi
55c75bc304 core, plugins file, XEP-0234, bridge: progression api enhancement:
- progressStarted have a new metadata parameter, useful to know the kind of progression, direction, etc. Check bridge doc
    - progressGetAllMetadata can be used to retrieve this data and discover on currently running progressions
    - progressFinished also have a new metadata parameter, used to e.g. indicate that hash is checked
    - core: fixed progressGetAll
    - file, XEP-0234: implemented the API modifications,  hash is returned on progressFinished
    - file: SatFile.checkSize allows to check size independently of close (be sure that all the data have been transfered though)
2015-11-19 18:13:26 +01:00
Goffi
ad973c6a2c core: fixed launchAction:
- getClient now raise a NotFound error if client is not available
    - errors ConnectedProfileError, NotConnectedProfileError anf ProfileKeyUnknownError renamed for consistency (all profile error must prefixed by Profile)
    - launchAction fixed, the case where client is not available is handled
    - kept actions are actuall1y removed on launchAction
2015-11-18 11:06:24 +01:00
Goffi
a42452ff57 core, bridge: actionsGet:
- added a new mechanism to keep actions until they are answered (or timeout-ed)
    - keep_id must be explicitly used on actionNew
    - actionsGet is used to retrive these actions
    - the mechanism is used in deferXMLUI
2015-11-17 21:28:58 +01:00
Goffi
0c5bf88da0 core: added callback_id in DataError message of launchCallback 2015-11-15 23:11:41 +01:00
Goffi
fbbb081425 backend, bridge, frontends: actionNew has now a security_limit argument + added some docstring to explain data argument 2015-11-14 19:21:56 +01:00
Goffi
2c8b91ee6c core, plugin file: fixed progress id + data is now returned by getProgress, instead of being an argument to fill 2015-11-14 19:20:33 +01:00
Goffi
182f192703 core, bridge: added a profileSetDefault method 2015-11-14 19:18:10 +01:00
Goffi
d620805fc7 bridge: new core method profileStartSession to start a session without connecting the profile 2015-11-14 19:18:10 +01:00
Goffi
e0a28858a8 core: profile session starting and connection are now separated. Moved profile session starting/authentication to memory module 2015-11-14 19:18:10 +01:00
Goffi
ce4e717ea8 core, bridge (params): added asyncGetParamsValuesFromCategory (yes that's a long name!) method to retrive params names and values for a given category 2015-11-14 19:18:10 +01:00
Goffi
bfd143b1e4 bridge, core(params): removed obsolete methods:
- getParams and getParamsForCategory are removed from bridge: XMLUI is now used in place of the old params XML
    - getParamsForCategory has also been removed internaly, as it is now unused, getParams is still used to construct the XMLUI
2015-11-14 19:18:07 +01:00
Goffi
aaa3c32378 plugins XEP-0096, XEP-0260, file: sendFile method is managed by file plugin, which choose the best available method + progress_id fix 2015-11-14 19:18:05 +01:00
Goffi
f61c88f784 plugin XEP-0065: session cleaning and timeout + log choosed candidate when using SI File Transfer 2015-11-13 16:46:32 +01:00
Goffi
f21c94b205 core (client): added a sendError method to easily build error response from <IQ\> stanza 2015-11-11 14:56:05 +01:00
Goffi
2c0d0fc8db core (xmpp.py): fixed bad import 2015-11-06 17:09:42 +01:00
Goffi
083f426b24 core (client): add IQ method to easily create an IQ stanza with the current xmlstream, and manage result with a Deferred. 2015-11-02 22:02:41 +01:00
Goffi
aca7307452 core: plugin unload:
Call unload() if it exists on all loaded plugin instances when leaving SàT. This method will probably be used later for hot (un)loading
2015-11-02 22:02:41 +01:00
Goffi
2e70b01b28 core: more robust plugins loading:
- avoid stopping loading remaining plugins when a plugin raise an error
    - new error exceptions.MissingModule allows to detect a missing third party module, and to give instructions to get it
    - error during instanciation are catched too
2015-09-29 17:54:23 +02:00
Goffi
68ae6a407e core: removed forgotten breakpoint 2015-09-29 17:54:21 +02:00
Goffi
66ad169227 core: progression handling improvments:
- getProgress has been renamed to progressGet to follown new naming convention
    - new signals: progressStarted, progressFinished and progressError to indicate state of progressing events
    - new method progressGetAll to get all progressing events of all profile (or only one profile)
2015-09-25 19:19:12 +02:00
Goffi
ea2a3e584d core (contants): added PROF_KEY_ALL en PLUG_TYPE_* constants 2015-09-25 19:19:12 +02:00
Goffi
8deee28320 core (plugins): detect import_name conflicts 2015-08-27 17:59:15 +02:00
Goffi
9895ceb32f core (disco): added checkFeatures to check several features at once + identities are now managed with a tuple in findFeaturesSet and checkFeatures 2015-08-25 16:05:01 +02:00