def find_yammer_messages(self): root = self.request.root yammer_connectors = list(root.get_connectors(YAMMER_CONNECTOR_ID)) yammer_connector = yammer_connectors[0] if yammer_connectors else None access_token = yammer_connector.get_access_tokens(get_current()).get('access_token', None) \ if yammer_connector else None if yammer_connector and access_token: page = self.params('page') limit = self.params('limit') try: yammer = yampy.Yammer(access_token=access_token) messages = yammer.client.get( '/messages', older_than=page, threaded=True, limit=limit) if messages['messages']: current_ideas = [i.source_data[YAMMER_CONNECTOR_ID]['id'] for i in find_yammer_content([Iidea])] entries = [{'id': e['id'], 'text': html_to_text(e['body']['plain'][:150])+'...', 'imported': str(e['id']) in current_ideas} for e in messages['messages']] return { 'items': entries, 'total_count': len(messages['messages']), 'has_next': messages['meta']['older_available'], 'next_page': messages['messages'][-1]['id']} except Exception as error: log.warning(error) return {'items': [], 'total_count': 0}
def messages_choice(node, kw): request = node.bindings['request'] root = request.root yammer_connectors = list(root.get_connectors(YAMMER_CONNECTOR_ID)) yammer_connector = yammer_connectors[0] if yammer_connectors else None access_token = yammer_connector.get_access_tokens(get_current()).get('access_token', None) \ if yammer_connector else None values = [] page = '' limit = 10 ajax_url = None if yammer_connector and access_token: try: yammer = yampy.Yammer(access_token=access_token) messages = yammer.client.get('/messages', threaded=True, limit=limit) page = messages['messages'][-1]['id'] values = [(str(e['id']), html_to_text(e['body']['plain'][:150]) + '...') for e in messages['messages']] if messages['meta']['older_available']: ajax_url = request.resource_url( root, '@@yammerapi', query={'op': 'find_yammer_messages'}) except Exception as error: log.warning(error) return AjaxCheckBoxWidget( values=values, url=ajax_url, limit=limit, page=page, multiple=True, )
def get_message_data(request, message_or_id, access_token, include_topics=False, include_replies=False): yammer = yampy.Yammer(access_token=access_token) message = {} message_id = None if isinstance(message_or_id, dict): message = message_or_id message_id = message_or_id['id'] else: message_id = message_or_id message = yammer.messages.find(message_id=message_id) if message: # get author user_id = message['sender_id'] user_info = yammer.users.find(user_id) user_networks = user_info.get('network_domains') source_data = { 'app_name': YAMMER_CONNECTOR_ID, 'id': user_info.get('id'), 'network_domains': user_networks, 'access_token': None } user_data = { 'first_name': user_info.get('first_name'), 'last_name': user_info.get('last_name'), 'email': user_info.get('email') } user = get_or_create_user(request, { 'source_data': source_data, 'user_data': user_data, }, False) # get files attached_files = upload_files(yammer, message['attachments']) # get keywords keywords = [] thread_id = message['thread_id'] if include_topics and thread_id: thread = yammer.threads.find(thread_id) keywords = [t['name'] for t in thread['references'] if t['type'] == 'topic'] # get replies replies_result = {} if include_replies and thread_id: replies = yammer.messages.in_thread(thread_id) replies_result = _get_repleis( request, replies['messages'], message_id, access_token) content_body = html_to_text(message['body']['plain']) return { 'title': content_body[:50]+' ...', 'text': content_body, 'keywords': keywords, 'attached_files': attached_files, 'author': user }, replies_result return {}, {}
def get_notification_data(self, subject, user, request, alert): html_message = alert.render( 'notification', user, request) message = html_to_text(html_message) localizer = request.localizer return { 'title': localizer.translate(_('Administration')) + ': ' + localizer.translate( subject.get_title(user)), 'message': message, 'url': request.resource_url(subject, '@@index')}
def get_notification_data(self, subject, user, request, alert): html_message = alert.render( 'notification', user, request) message = html_to_text(html_message) localizer = request.localizer title = localizer.translate(_('New message in')) + ' ' + localizer.translate( subject.get_title(user)) channel = subject subject = channel.get_subject(user) if getattr(alert, 'comment_kind', '') == 'discuss': subject = channel.get_subject(subject) return { 'title': title, 'message': message, 'url': request.resource_url(subject, '@@index') + '#comment-' + str(getattr(alert, 'comment_oid', 'None'))}
def get_notification_data(self, subject, user, request, alert): html_message = alert.render( 'notification', user, request) message = html_to_text(html_message) localizer = request.localizer title = localizer.translate(_('New message in')) + ' ' + localizer.translate( subject.get_title(user)) channel = subject subject = channel.get_subject(user) if getattr(alert, 'comment_kind', '') == 'discuss': subject = channel.get_subject(subject) return { 'title': title, 'message': message, 'url': request.resource_url(subject, '@@index') + \ '#comment-' + str(getattr(alert, 'comment_oid', 'None'))}
def find_yammer_messages(self): root = self.request.root yammer_connectors = list(root.get_connectors(YAMMER_CONNECTOR_ID)) yammer_connector = yammer_connectors[0] if yammer_connectors else None access_token = yammer_connector.get_access_tokens(get_current()).get('access_token', None) \ if yammer_connector else None if yammer_connector and access_token: page = self.params('page') limit = self.params('limit') try: yammer = yampy.Yammer(access_token=access_token) messages = yammer.client.get('/messages', older_than=page, threaded=True, limit=limit) if messages['messages']: current_ideas = [ i.source_data[YAMMER_CONNECTOR_ID]['id'] for i in find_yammer_content([Iidea]) ] entries = [{ 'id': e['id'], 'text': html_to_text(e['body']['plain'][:150]) + '...', 'imported': str(e['id']) in current_ideas } for e in messages['messages']] return { 'items': entries, 'total_count': len(messages['messages']), 'has_next': messages['meta']['older_available'], 'next_page': messages['messages'][-1]['id'] } except Exception as error: log.warning(error) return {'items': [], 'total_count': 0}
def _init_presentation_text(self): self._presentation_text = html_to_text(getattr(self, 'text', ''))
def resolve_presentation_text(self, args, context, info): return html_to_text(self.presentation_text(300))
def _init_presentation_text(self): self._presentation_text = html_to_text( getattr(self, 'text', ''))