def format(self, original_article, subscriber, codes=None, encoding="us-ascii"): article = deepcopy(original_article) self._populate_metadata(article) global tz if tz is None: # first time this method is launched # we set timezone and NTB specific filter tz = pytz.timezone(superdesk.app.config['DEFAULT_TIMEZONE']) try: if article.get('body_html'): article['body_html'] = article['body_html'].replace('<br>', '<br />') pub_seq_num = superdesk.get_resource_service('subscribers').generate_sequence_number(subscriber) nitf = self.get_nitf(article, subscriber, pub_seq_num) try: nitf.attrib['baselang'] = _get_language(article) except KeyError: pass encoded = etree.tostring(nitf, encoding=ENCODING, xml_declaration=False, pretty_print=True) return [{'published_seq_num': pub_seq_num, # formatted_item can be used for preview, so we keep unicode version there 'formatted_item': self.XML_DECLARATION + '\n' + etree.tostring(nitf, encoding="unicode"), 'encoded_item': (self.XML_DECLARATION + '\n').encode(ENCODING) + encoded}] except Exception as ex: app.sentry.captureException() raise FormatterError.nitfFormatterError(ex, subscriber)
def format(self, article, subscriber, codes=None): try: pub_seq_num = superdesk.get_resource_service('subscribers').generate_sequence_number(subscriber) nitf = self.get_nitf(article, subscriber, pub_seq_num) return [(pub_seq_num, self.XML_ROOT + etree.tostring(nitf).decode('utf-8'))] except Exception as ex: raise FormatterError.nitfFormatterError(ex, subscriber)
def format(self, article, subscriber): try: pub_seq_num = superdesk.get_resource_service('subscribers').generate_sequence_number(subscriber) nitf = self.get_nitf(article, subscriber, pub_seq_num) return [(pub_seq_num, self.XML_ROOT + etree.tostring(nitf).decode('utf-8'))] except Exception as ex: raise FormatterError.nitfFormatterError(ex, subscriber)
def format(self, article, destination, selector_codes=None): try: pub_seq_num = superdesk.get_resource_service('output_channels').generate_sequence_number(destination) nitf = self.get_nitf(article, destination, pub_seq_num) return pub_seq_num, self.XML_ROOT + etree.tostring(nitf).decode('utf-8') except Exception as ex: raise FormatterError.nitfFormatterError(ex, destination)
def format(self, article, subscriber, codes=None): try: pub_seq_num = superdesk.get_resource_service('subscribers').generate_sequence_number(subscriber) nitf = self.get_nitf(article, subscriber, pub_seq_num) return [{'published_seq_num': pub_seq_num, 'formatted_item': etree.tostring(nitf, encoding='ascii').decode('ascii'), 'item_encoding': 'ascii'}] except Exception as ex: raise FormatterError.nitfFormatterError(ex, subscriber)
def format(self, article, subscriber, codes=None): try: pub_seq_num = superdesk.get_resource_service('subscribers').generate_sequence_number(subscriber) nitf = self.get_nitf(article, subscriber, pub_seq_num) return [(pub_seq_num, self.XML_ROOT + etree.tostring( nitf, pretty_print=True, encoding=self.ENCODING ).decode(self.ENCODING))] except Exception as ex: raise FormatterError.nitfFormatterError(ex, subscriber)
def format(self, article, subscriber, codes=None): try: pub_seq_num = superdesk.get_resource_service('subscribers').generate_sequence_number(subscriber) nitf = self.get_nitf(article, subscriber, pub_seq_num) strip_elements(nitf, 'body.end') nitf_string = etree.tostring(nitf, encoding='utf-8').decode() headers = ['<?xml version=\"1.0\" encoding=\"UTF-8\"?>', '<!-- <!DOCTYPE nitf SYSTEM \"./nitf-3-3.dtd\"> -->'] return [{ 'published_seq_num': pub_seq_num, 'formatted_item': '{}\r\n{}'.format("\r\n".join(headers), nitf_string). replace(' \n', self.line_ender)}] except Exception as ex: raise FormatterError.nitfFormatterError(ex, subscriber)
def format(self, article, destination): try: nitf = etree.Element("nitf") head = SubElement(nitf, "head") body = SubElement(nitf, "body") body_head = SubElement(body, "body.head") body_content = SubElement(body, "body.content") body_content.text = article['body_html'] body_end = SubElement(body, "body.end") etree.Element('doc-id', attrib={'id-string': article['guid']}) self.__format_head(article, head) self.__format_body_head(article, body_head) self.__format_body_end(article, body_end) return self.XML_ROOT + str(etree.tostring(nitf)) except Exception as ex: raise FormatterError.nitfFormatterError(ex, destination)
def format(self, article, destination, selector_codes=None): try: pub_seq_num = superdesk.get_resource_service('output_channels').generate_sequence_number(destination) nitf = etree.Element("nitf") head = SubElement(nitf, "head") body = SubElement(nitf, "body") body_head = SubElement(body, "body.head") body_content = SubElement(body, "body.content") body_content.text = article['body_html'] body_end = SubElement(body, "body.end") etree.Element('doc-id', attrib={'id-string': article['guid']}) self.__append_meta(article, head, destination, pub_seq_num) self.__format_head(article, head) self.__format_body_head(article, body_head) self.__format_body_end(article, body_end) return pub_seq_num, self.XML_ROOT + str(etree.tostring(nitf)) except Exception as ex: raise FormatterError.nitfFormatterError(ex, destination)
def format(self, article, destination): try: pub_seq_num = self.generate_sequence_number(destination) nitf = etree.Element("nitf") head = SubElement(nitf, "head") body = SubElement(nitf, "body") body_head = SubElement(body, "body.head") body_content = SubElement(body, "body.content") body_content.text = article['body_html'] body_end = SubElement(body, "body.end") etree.Element('doc-id', attrib={'id-string': article['guid']}) self.__append_meta(article, head, destination, pub_seq_num) self.__format_head(article, head) self.__format_body_head(article, body_head) self.__format_body_end(article, body_end) return pub_seq_num, self.XML_ROOT + str(etree.tostring(nitf)) except Exception as ex: raise FormatterError.nitfFormatterError(ex, destination)