コード例 #1
0
ファイル: ntb_nitf.py プロジェクト: ride90/superdesk-ntb
    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)
コード例 #2
0
    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)
コード例 #3
0
    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)
コード例 #4
0
    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)
コード例 #5
0
    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)
コード例 #6
0
    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)
コード例 #7
0
    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)
コード例 #8
0
 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('&#13;\n', self.line_ender)}]
     except Exception as ex:
         raise FormatterError.nitfFormatterError(ex, subscriber)
コード例 #9
0
ファイル: nitf_formatter.py プロジェクト: girgen79/superdesk
 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)
コード例 #10
0
ファイル: nitf_formatter.py プロジェクト: jey07ro/superdesk
    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)
コード例 #11
0
ファイル: nitf_formatter.py プロジェクト: biddyweb/superdesk
    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)