plugin XEP-0277: removed mbGetAtom which has not reason to be in the backend, as it is highly dependant of (web) frontend elements. The code will be moved to Libervia:
/!\ this break Libervia static blog temporarily, the time to commit the changes
This commit is contained in:
parent
edeaa0f9bc
commit
3890a108f4
1 changed files with 1 additions and 64 deletions
|
|
@ -17,7 +17,7 @@
|
|||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
from sat.core.i18n import _, D_
|
||||
from sat.core.i18n import _
|
||||
from sat.core.constants import Const as C
|
||||
from sat.core.log import getLogger
|
||||
log = getLogger(__name__)
|
||||
|
|
@ -39,7 +39,6 @@ except ImportError:
|
|||
import uuid
|
||||
import time
|
||||
import urlparse
|
||||
import urllib
|
||||
|
||||
NS_MICROBLOG = 'urn:xmpp:microblog:0'
|
||||
NS_ATOM = 'http://www.w3.org/2005/Atom'
|
||||
|
|
@ -102,8 +101,6 @@ class XEP_0277(object):
|
|||
method=self._mbGetFromManyWithCommentsRTResult, async=True)
|
||||
host.bridge.addMethod("mbGetFromManyWithComments", ".plugin", in_sign='sasiia{ss}a{ss}s', out_sign='s',
|
||||
method=self._mbGetFromManyWithComments)
|
||||
host.bridge.addMethod("mbGetAtom", ".plugin", in_sign='ssiasa{ss}s', out_sign='s',
|
||||
method=self._mbGetAtom, async=True)
|
||||
|
||||
def _checkFeaturesCb(self, available):
|
||||
return {'available': C.BOOL_TRUE}
|
||||
|
|
@ -913,63 +910,3 @@ class XEP_0277(object):
|
|||
d.addErrback(lambda failure: (unicode(failure.value), ([],{})))
|
||||
|
||||
return self.rt_sessions.newSession(deferreds, client.profile)
|
||||
|
||||
# atom feed
|
||||
|
||||
def _mbGetAtom(self, service_jid_s, node="", max_items=10, item_ids=None, extra_dict=None, profile_key=C.PROF_KEY_NONE):
|
||||
"""Get the atom feed of the last published microblogs
|
||||
|
||||
@param service_jid(jid.JID): jid of the publisher
|
||||
@param node(unicode, None): node to get (or microblog node if None)
|
||||
@param max_items(int): maximum number of item to get, C.NO_LIMIT for no limit
|
||||
@param item_ids (list[unicode]): list of item IDs
|
||||
@param rsm_request (rsm.RSMRequest): RSM request data
|
||||
@param extra (dict): extra data
|
||||
@param profile_key: %(doc_profile_key)s
|
||||
@return: a deferred unicode (atom XML feed)
|
||||
"""
|
||||
max_items = None if max_items == C.NO_LIMIT else max_items
|
||||
extra = self._p.parseExtra(extra_dict)
|
||||
return self.mbGetAtom(jid.JID(service_jid_s), node or None, max_items or None, item_ids, extra.rsm_request, extra.extra, profile_key)
|
||||
|
||||
@defer.inlineCallbacks
|
||||
def mbGetAtom(self, service_jid, node=None, max_items=None, item_ids=None, rsm_request=None, extra=None, profile_key=C.PROF_KEY_NONE):
|
||||
"""Get the atom feed of the last published microblogs
|
||||
|
||||
@param service_jid(jid.JID): jid of the publisher
|
||||
@param node(unicode, None): node to get (or microblog node if None)
|
||||
@param max_items(int): maximum number of item to get, C.NO_LIMIT for no limit
|
||||
@param item_ids (list[unicode]): list of item IDs
|
||||
@param rsm_request (rsm.RSMRequest): RSM request data
|
||||
@param extra (dict): extra data
|
||||
@param profile_key: %(doc_profile_key)s
|
||||
|
||||
@return: a deferred couple with the list of items and metadatas.
|
||||
"""
|
||||
if node is None:
|
||||
node = NS_MICROBLOG
|
||||
|
||||
feed_elt = domish.Element((NS_ATOM, 'feed'))
|
||||
title = D_(u"{user}'s blogposts").format(user=service_jid.user)
|
||||
feed_elt.addElement('title', content=title)
|
||||
link_feed_elt = feed_elt.addElement('link')
|
||||
link_feed_elt['href'] = 'http://{host}/blog/{user}/atom.xml'.format(
|
||||
host=urllib.quote(service_jid.host.encode('utf-8'),''),
|
||||
user=urllib.quote(service_jid.user.encode('utf-8'),''))
|
||||
link_feed_elt['rel'] = 'self'
|
||||
link_blog_elt = feed_elt.addElement('link')
|
||||
link_blog_elt['href'] = 'http://{host}/blog/{user}'.format(
|
||||
host=urllib.quote(service_jid.host.encode('utf-8'),''),
|
||||
user=urllib.quote(service_jid.user.encode('utf-8'),''))
|
||||
feed_elt.addElement('id', content=node)
|
||||
feed_elt.addElement('updated', rfc3339.timestamp_from_tf(rfc3339.tf_utc()))
|
||||
|
||||
# FIXME: no cleaning is done here
|
||||
# FIXME: no check is done neither, we have to be sure that we get microblogs
|
||||
items, metadata = yield self._p.getItems(service_jid, node, max_items=max_items, item_ids=item_ids, rsm_request=rsm_request, extra=extra, profile_key=profile_key)
|
||||
|
||||
for item in items:
|
||||
entry_elt = item.elements(NS_ATOM, 'entry').next()
|
||||
feed_elt.addChild(entry_elt)
|
||||
|
||||
defer.returnValue(u'<?xml version="1.0" encoding="utf-8"?>'+feed_elt.toXml())
|
||||
|
|
|
|||
Loading…
Reference in a new issue