Commit graph libervia-backend/src/plugins/plugin_xep_0060.py
Author SHA1 Message Date
Goffi
f829ef828b plugin XEP-0060: added setNodeAffiliations and its bridge method (psNodeAffiliationsSet) 2017-03-26 18:06:58 +02:00
Goffi
d3b9f16860 plugin XEP-0060: added affiliation handling:
New methods getAffiliations (for checking affiliation by any entity) and getNodeAffiliations (for checking the affiliations of a node, for the owner), and theirs corresponding bridge methods.
2017-03-23 21:01:51 +01:00
Goffi
425d342183 plugin groupblog, XEP-0060: added ACCESS_PUBLISHER_ROSTER and switched to it in groupblog 2017-03-23 09:11:25 +01:00
Goffi
34f6f89025 plugin XEP-0060: added setConfiguration/psNodeConfigurationSet + fix in tmp.wokkel.pubsub 2017-03-14 00:18:02 +01:00
Goffi
a022ae21af plugin XEP-0060: added getConfiguration ad psNodeConfigurationGet bridge method 2017-03-13 23:18:00 +01:00
Goffi
ba8534ee4f plugin XEP-0060: renamed psGet bridge method to psItemGet 2017-03-13 23:17:13 +01:00
Goffi
20ffb6d2eb plugin XEP-0060: added psGet bridge method 2017-03-12 23:28:04 +01:00
Goffi
3bc851abf2 core (memory/disco): getInfos now handle node + use client instead of profile in many methods 2017-02-12 20:43:20 +01:00
Goffi
ac7d587c49 core (plugins): added missing contants + use of new constants in PLUGIN_INFO 2017-02-12 18:59:10 +01:00
Goffi
97337202cb core, jp: component handling + client handling refactoring:
- SàT can now handle components
    - plugin have now a "modes" key in PLUGIN_INFO where they declare if they can be used with clients and or components. They default to be client only.
    - components are really similar to clients, but with some changes in behaviour:
        * component has "entry point", which is a special plugin with a componentStart method, which is called just after component is connected
        * trigger end with a different suffixes (e.g. profileConnected vs profileConnectedComponent), so a plugin which manage both clients and components can have different workflow
        * for clients, only triggers of plugins handling client mode are launched
        * for components, only triggers of plugins needed in dependencies are launched. They all must handle component mode.
        * component have a sendHistory attribute (False by default) which can be set to True to allow saving sent messages into history
        * for convenience, "client" is still used in method even if it can now be a component
        * a new "component" boolean attribute tells if we have a component or a client
        * components have to add themselve Message protocol
        * roster and presence protocols are not added for components
        * component default port is 5347 (which is Prosody's default port)
    - asyncCreateProfile has been renamed for profileCreate, both to follow new naming convention and to prepare the transition to fully asynchronous bridge
    - createProfile has a new "component" attribute. When used to create a component, it must be set to a component entry point
    - jp: added --component argument to profile/create
    - disconnect bridge method is now asynchronous, this way frontends can know when disconnection is finished
    - new PI_* constants for PLUGIN_INFO values (not used everywhere yet)
    - client/component connection workflow has been moved to their classes instead of being a host methods
    - host.messageSend is now client.sendMessage, and former client.sendMessage is now client.sendMessageData.
    - identities are now handled in client.identities list, so it can be updated dynamically by plugins (in the future, frontends should be able to update them too through bridge)
    - profileConnecting* profileConnected* profileDisconnected* and getHandler now all use client instead of profile
2017-02-12 17:55:43 +01:00
Goffi
6bbcbaf522 use of /usr/bin/env instead of /usr/bin/python in shebang 2016-04-17 14:45:26 +02:00
Goffi
27cd8412d5 plugin XEP-0060: fixed traceback if service was None 2016-03-10 17:50:17 +01:00
Goffi
c4ac825c8f plugin XEP-0060: service, node and uri are added to metadata when doing a getItems 2016-03-09 16:59:29 +01:00
Goffi
893aa7a595 plugin XEP-0277: service can be None in mbGet, resulting in a request on default pubsub service of profile (i.e. profile's PEP) 2016-03-01 01:47:32 +01:00
Goffi
413af63280 plugin XEP-0060: fixed bad xmpp: URI generation in getNodeURI 2016-02-25 16:21:17 +01:00
Goffi
0815ee1576 plugin XEP-0060, XEP-0277: added getNodeURI method 2016-01-23 19:53:16 +01:00
Goffi
65158b0f47 plugin XEP-0060: fixed extra mam filters parsing 2016-01-07 16:19:43 +01:00
Goffi
b3428838cc plugin XEP-0060: MAM integration:
- removed useless XEP-0059 recommendation
    - added XEP-0313 as a recommended plugin
    - parseExtra now manage mam_* keys (mam_filter_[name] to use a filter)
    - if a mam request is in 'mam' key of extra parameted in getItems, a MAM request is done, but the result is returned in the same way as for normal getItems, making like more easy for other plugins and for frontends
2016-01-05 23:20:22 +01:00
Goffi
cdac9644db plugin XEP-0060, tmp(wokkel.rsm): small refactoring:
- don't use getRSMResponse anymore: rsm.PubSubClient use a different signature which return items and RSMResponse, this is better than the previous method as if the requested don't call getRSMResponse, there is no memory leak anymore.
    - use RSMResponse directly instead of using ext_data, as other extension (like MAM) will be probably be managed with an other workflow
    - don't do a useless deep copy of pubsub.PubSubRequest._parameters on each instance anymore
    - RSMResponse.parse do now manage parsing of <set/> element directly
2016-01-05 23:20:22 +01:00
Goffi
348be27934 copyright update 2016-01-03 16:28:30 +01:00
Goffi
f8a8aa4b08 plugin XEP-0060: None is no more used in addManagedNode, but all nodes prefixed with a registered one are now triggered 2015-12-18 15:06:58 +01:00
souliane
7f1d5a9eca plugin XEP-0060: trap failure when subscription to a node is not possible 2015-11-25 16:59:13 +01:00
Goffi
341143445b core (disco): use of “profile” instead of “profile_key” in several disco methods 2015-11-02 22:02:41 +01:00
souliane
d42c6a1e77 plugin XEP-0060: fixes a one-line loop 2015-09-10 07:37:14 +02:00
Goffi
3080368825 plugin XEP-0060: implemented getFeatures, data has a "service" key if service is found for this profile 2015-08-21 17:09:43 +02:00
Goffi
b7409e0488 plugins xep-0060, xep-0163, xep-0277, groupblog: bloging improvments (huge patch, sorry):
/!\ not everything is working yet, and specially groupblogs are broken /!\
    - renamed bridge api to use prefixed methods (e.g. psSubscribeToMany instead of subscribeToMany in PubSub)
    - (xep-0060): try to find a default PubSub service, and put it in client.pubsub_service
    - (xep-0060): extra dictionary can be used in bridge method for RSM and other options
    - (xep-0060): XEP_0060.addManagedNode and XEP_0060.removeManagedNode allow to easily catch notifications for a specific node
    - (xep-0060): retractItem manage "notify" attribute
    - (xep-0060): new signal psEvent will be used to transmit notifications to frontends
    - (xep-0060, constants): added a bunch of useful constants
    - (xep-0163): removed personalEvent in favor of psEvent
    - (xep-0163): addPEPEvent now filter non PEP events for in_callback
    - (xep-0277): use of new XEP-0060 plugin's addManagedNode
    - (xep-0277): fixed author handling for incoming blogs: author is the human readable name, author_jid it jid, and author_jid_verified is set to True is the jid is checked
    - (xep-0277): reworked data2entry with Twisted instead of feed, item_id can now be specified, <content/> is changed to  <title/> if there is only content
    - (xep-0277): comments are now managed here (core removed from groupblog)
    - (xep-0277): (comments) node is created if needed, default pubsub service is used if available, else PEP
    - (xep-0277): retract is managed
2015-08-16 00:39:44 +02:00
Goffi
c3e34047b2 plugin xep-0060,xep-0277: added getFromMany using new RTDeferredSession mechanism 2015-08-15 22:22:34 +02:00
Goffi
7e83aaedb3 plugins xep-0060, xep-0277: added methods to serialise getItems result (before bridge transmission):
serItemsData is used for normal callbacks, and serItemsDataD for callbacks which return deferred. These methods simplifly the code by making the re-use of getItems more easy.
2015-08-15 22:20:56 +02:00
Goffi
d4008f22ec plugin XEP-0060: use of new RTDeferredSession to subscribe many nodes at once + subscribeToMany can now subscribe on separate services 2015-08-15 22:13:27 +02:00
Goffi
fd3e9ce044 plugins xep-0060, xep-0277: code simplification/cleaning/fix:
- plugin xep-0060: moved rsm data to a more general metadata dict, which will contain all data relative to the node/items set. RSM metadata are prefixed with "rsm_"
    - plugin xep-0060: minor docstring fixes
    - plugin xep-0060: removed cache to simplify code base
    - fixed broken getLastMicroblogs
    - added _getLastMicroblogs as wrapper to getLastMicroblogs, for bridge
    - removed lxml dependecy for this plugin, use native twisted instead
    - several improvments/fixes in item2mbdata
2015-08-15 22:13:27 +02:00
Goffi
9a3fd0c2b3 plugins groupblog, xep-0060: first pass of simplification 2015-04-22 20:21:55 +02:00
Goffi
fbec02d396 2015 copyright dates update 2015-03-30 10:26:26 +02:00
Goffi
6760c927d3 merged branch frontends_multi_profiles 2015-03-18 10:52:28 +01:00
Goffi
8ce5c1862b core, frontends: refactoring to base Libervia on QuickFrontend (big mixed commit):
/!\ not finished, everything is still instable !
    - bridge: DBus bridge has been modified to allow blocking call to be called in the same way as asynchronous calls
    - bridge: calls with a callback and no errback are now possible, default errback log the error
    - constants: removed hack to manage presence without OrderedDict, as an OrderedDict like class has been implemented in Libervia
    - core: getLastResource has been removed and replaced by getMainResource (there is a global better management of resources)
    - various style improvments: use of constants when possible, fixed variable overlaps, import of module instead of direct class import
    - frontends: printInfo and printMessage methods in (Quick)Chat are more generic (use of extra instead of timestamp)
    - frontends: bridge creation and option parsing (command line arguments) are now specified by the frontend in QuickApp __init__
    - frontends: ProfileManager manage a more complete plug sequence (some stuff formerly manage in contact_list have moved to ProfileManager)
    - quick_frontend (quick_widgets): QuickWidgetsManager is now iterable (all widgets are then returned), or can return an iterator on a specific class (return all widgets of this class) with getWidgets
    - frontends: tools.jid can now be used in Pyjamas, with some care
    - frontends (XMLUI): profile is now managed
    - core (memory): big improvment on entities cache management (and specially resource management)
    - core (params/exceptions): added PermissionError
    - various fixes and improvments, check diff for more details
2015-01-24 01:00:29 +01:00
souliane
85749f8a8b plugin XEP-0060: free SatPubSubClient instance on profile disconnection 2015-01-09 10:45:15 +01:00
souliane
f3b7bd1ec2 plugins XEP-0060, XEP-0277, groupblog: make use of RSM (XEP-0059) 2014-12-15 14:04:19 +01:00
souliane
bbcced67d1 plugins XEP-0059, XEP-0060: leave internal wokkel extensions to sat.tmp.wokkel 2014-12-15 14:03:13 +01:00
souliane
eaa0f83237 plugin XEP-0060: listNodes should not use SatPubSubClient.getDiscoItems but self.host.getDiscoItems, cf. revs 1217 (318eab3f93f8) and 1259 (633fcd13a7dc) 2014-11-24 17:20:51 +01:00
Goffi
fdb50be803 plugin pubsub: fixed redefinition of PubSubRequest 2014-11-21 16:36:24 +01:00
Goffi
ce8e1dcfc1 plugin pubsub: fixed a bug introducted in revision 318eab3f93f8: getDiscoItems handler method which is called on disco items request, was calling getDiscoItems from host, which do a request itself, resulting in an infinite items request loop. 2014-11-21 16:35:40 +01:00
souliane
fe06c14303 core, plugins: improve a bit some log messages 2014-10-18 16:28:37 +02:00
souliane
dd0c7fab68 plugins groupblogs: fixes the massive retrieval callback (loop variable was misused in a lambda callback) 2014-10-19 02:48:11 +02:00
souliane
0d80ce6cc2 plugin XEP-0060: fixes listing the nodes on the pubsub service 2014-10-18 20:23:12 +02:00
souliane
20c94f1fbc plugin XEP-0059: first draft, pubsub and jabber search do not exploit it yet 2014-09-22 22:25:44 +02:00
souliane
812e0660a2 plugin XEP-0060, groupblog: avoid unecessary pubsub errors while doing massive requests:
- don't try to retrieve items from non accessible nodes
    - don't try to subscribe to non accessible or already subscribed nodes
2014-09-22 20:49:13 +02:00
Goffi
501bc92528 core: use of the new core.log module:
/!\ this is a massive refactoring and was largely automated, it probably did bring some bugs /!\
2014-04-19 19:19:19 +02:00
Goffi
005ec59a8a core: use of Const for profile_key + replaced '@DEFAULT@' default profile_key by '@NONE@' 2014-03-21 16:27:09 +01:00
souliane
2b2fa9fd4a plugin XEP-0060, groupblog: added nodeIdentifiers attribute to getItems in order to retrieve items by ids 2014-02-25 17:49:15 +01:00
Goffi
2ca6efd8cc dates update 2014-02-04 18:32:49 +01:00
Goffi
5a00dc9503 core: i18n refactoring:
- _() is no more installed in __builtin__
    - instead, there is a new sat.core.i18n module
    - added D_() method for deferred translation
    - languageSwitch method allow to dynamically change translation language
    - import gettext is tested against ImportError, and dummy methods are used when not available (mainly useful for Libervia)
2013-12-29 17:06:01 +01:00