コード例 #1
0
ファイル: nserve.py プロジェクト: pediapress/mwlib
    def do_render(self, collection_id, post_data, is_new=False):
        params = self._get_params(post_data, collection_id=collection_id)
        metabook_data = params.metabook_data
        base_url = params.base_url
        writer = params.writer

        if writer not in name2writer:
            return self.error_response("unknown writer %r" % writer)

        if is_new and not metabook_data:
            return self.error_response('POST argument metabook or collection_id required')
        if not is_new and metabook_data:
            return self.error_response('Specify either metabook or collection_id, not both')

        if base_url and not self.is_good_baseurl(base_url):
            log.bad("bad base_url: %r" % (base_url, ))
            return self.error_response(
                "bad base_url %r. check your $wgServer and $wgScriptPath variables. localhost, 192.168.*.* and 127.0.*.* are not allowed." % (base_url, ))

        log.info('render %s %s' % (collection_id, writer))

        response = {
            'collection_id': collection_id,
            'writer': writer,
            'is_cached': False,
        }

        self.qserve.qadd(channel="makezip", payload=dict(params=params.__dict__),
                         jobid="%s:makezip" % (collection_id, ), timeout=20 * 60)

        self.qserve.qadd(channel="render", payload=dict(params=params.__dict__),
                         jobid="%s:render-%s" % (collection_id, writer), timeout=20 * 60)

        return response
コード例 #2
0
    def do_render(self, collection_id, post_data, is_new=False):
        params = self._get_params(post_data,  collection_id=collection_id)
        metabook_data = params.metabook_data
        base_url = params.base_url
        writer = params.writer

        if writer not in name2writer:
            return self.error_response("unknown writer %r" % writer)

        if is_new and not metabook_data:
            return self.error_response('POST argument metabook or collection_id required')
        if not is_new and metabook_data:
            return self.error_response('Specify either metabook or collection_id, not both')

        if base_url and not self.is_good_baseurl(base_url):
            log.bad("bad base_url: %r" % (base_url, ))
            return self.error_response("bad base_url %r. check your $wgServer and $wgScriptPath variables" % (base_url, ))

        log.info('render %s %s' % (collection_id, writer))

        response = {
            'collection_id': collection_id,
            'writer': writer,
            'is_cached': False,
        }

        self.qserve.qadd(channel="makezip", payload=dict(params=params.__dict__), jobid="%s:makezip" % (collection_id, ), timeout=20 * 60)

        self.qserve.qadd(channel="render", payload=dict(params=params.__dict__),
                         jobid="%s:render-%s" % (collection_id, writer),  timeout=20 * 60)

        return response
コード例 #3
0
ファイル: serve.py プロジェクト: aarddict/mwlib
 @json_response
 def do_render(self, collection_id, post_data, is_new=False):
     metabook_data = post_data.get('metabook')
     if is_new and not metabook_data:
         return self.error_response('POST argument metabook or collection_id required')
     if not is_new and metabook_data:
         return self.error_response('Specify either metabook or collection_id, not both')
     try:
         writer = post_data.get('writer', self.default_writer)
     except KeyError, exc:
         return self.error_response('POST argument required: %s' % exc)
     
     base_url = post_data.get('base_url')
     
     if base_url and not self.is_good_baseurl(base_url):
         log.bad("bad base_url: %r" % (base_url, ))
         return self.error_response("bad base_url %r. check your $wgServer and $wgScriptPath variables" % (base_url, ))
     
     writer_options = post_data.get('writer_options', '')
     template_blacklist = post_data.get('template_blacklist', '')
     template_exclusion_category = post_data.get('template_exclusion_category', '')
     print_template_prefix = post_data.get('print_template_prefix', '')
     print_template_pattern = post_data.get('print_template_pattern', '')
     login_credentials = post_data.get('login_credentials', '')
     force_render = bool(post_data.get('force_render'))
     script_extension = post_data.get('script_extension', '')
     language = post_data.get('language', '')
     
     log.info('render %s %s' % (collection_id, writer))
     
     response = {