Exemplo n.º 1
0
    def _prepareData(self, req, words=""):
        obj = prepare_node_data(self, req)
        if obj["deleted"]:
            # no more processing needed if this object version has been deleted
            # rendering has been delegated to current version
            return obj

        # user must have data access for video playback
        if self.has_data_access():
            video = self.files.filter_by(filetype=u"video").scalar()
            obj["video_url"] = u"/file/{}/{}".format(
                self.id, video.base_name) if video is not None else None
            if not self.isActiveVersion():
                obj['video_url'] += "?v=" + self.tag
        else:
            obj["video_url"] = None

        captions_info = getCaptionInfoDict(self)
        if captions_info:
            logg.debug(
                "video: '%s' (%s): captions: dictionary 'captions_info': %s" %
                (self.name, str(self.id), str(captions_info)))

        obj["captions_info"] = json.dumps(captions_info)
        return obj
Exemplo n.º 2
0
    def _prepareData(self, req):
        obj = prepare_node_data(self, req)
        if obj["deleted"]:
            # no more processing needed if this object version has been deleted
            # rendering has been delegated to current version
            return obj

        node = self

        # adapted from video.py
        # user must have data access for audio playback
        if self.has_data_access():
            audio_file = self.files.filter_by(filetype=u"audio").scalar()
            obj["audio_url"] = u"/file/{}/{}".format(self.id, audio_file.base_name) if audio_file is not None else None
            versions = self.tagged_versions.all()
            obj['tag'] = versions[-1].tag if len(versions) > 1 else None
            if not self.isActiveVersion():
                obj['audio_url'] += "?v=" + self.tag

            if node.isActiveVersion():
                if node.system_attrs.get('origname') == "1":
                    obj['audiodownload'] = u'/download/{}/{}'.format(node.id, node.name)
                else:
                    obj['audiodownload'] = u'/download/{}/{}.mp3'.format(node.id, node.id)
            else:
                    obj['audiodownload'] += "?v=" + node.tag

        else:
            obj["audio_url"] = None

        return obj
Exemplo n.º 3
0
    def _prepareData(self, req):
        obj = prepare_node_data(self, req)
        if obj["deleted"]:
            # no more processing needed if this object version has been deleted
            # rendering has been delegated to current version
            return obj

        node = self

        # adapted from video.py
        # user must have data access for audio playback
        if self.has_data_access():
            audio_file = self.files.filter_by(filetype=u"audio").scalar()
            obj["audio_url"] = u"/file/{}/{}".format(self.id, audio_file.base_name) if audio_file is not None else None
            versions = self.tagged_versions.all()
            obj['tag'] = versions[-1].tag if len(versions) > 1 else None
            if not self.isActiveVersion():
                obj['audio_url'] += "?v=" + self.tag

            if node.isActiveVersion():
                if node.system_attrs.get('origname') == "1":
                    obj['audiodownload'] = u'/download/{}/{}'.format(node.id, node.name)
                else:
                    obj['audiodownload'] = u'/download/{}/{}.mp3'.format(node.id, node.id)
            else:
                    obj['audiodownload'] += "?v=" + node.tag

        else:
            obj["audio_url"] = None

        return obj
Exemplo n.º 4
0
def _prepare_document_data(node, req, words=""):
    obj = prepare_node_data(node, req)
    if obj["deleted"]:
        # no more processing needed if this object version has been deleted
        # rendering has been delegated to current version
        return obj

    files, sum_size = filebrowser(node, req)

    obj['attachment'] = files
    obj['sum_size'] = sum_size
    obj['bibtex'] = False

    if node.getMask(u"bibtex"):
        obj['bibtex'] = True

    if node.has_object():
        obj['canseeoriginal'] = node.has_data_access()
        if node.system_attrs.get('origname') == "1":
            obj['documentlink'] = u'/doc/{}/{}'.format(node.id, node.name)
            obj['documentdownload'] = u'/download/{}/{}'.format(
                node.id, node.name)
        else:
            obj['documentlink'] = u'/doc/{}/{}.pdf'.format(node.id, node.id)
            obj['documentdownload'] = u'/download/{}/{}.pdf'.format(
                node.id, node.id)

            if not node.isActiveVersion():
                version_id = unicode(version_id_from_req(req))
                obj['documentlink'] += "?v=" + version_id
                obj['documentdownload'] += "?v=" + version_id

    else:
        obj['canseeoriginal'] = False

    obj['documentthumb'] = u'/thumb2/{}'.format(node.id)
    if not node.isActiveVersion():
        version_id = unicode(version_id_from_req(req))
        obj['documentthumb'] += "?v=" + version_id
        obj['tag'] = version_id

    # XXX: do we really need this spider filtering?
    user_agent = req.get_header("user-agent") or ""
    is_spider = "oogle" in user_agent or "aidu" in user_agent

    if is_spider:
        # don't confuse search engines with the PDF link
        obj['documentdownload'] = None

    full_style = req.args.get("style", "full_standard")
    if full_style:
        obj['style'] = full_style

    return obj
Exemplo n.º 5
0
def _prepare_document_data(node, req, words=""):
    obj = prepare_node_data(node, req)
    if obj["deleted"]:
        # no more processing needed if this object version has been deleted
        # rendering has been delegated to current version
        return obj

    files, sum_size = filebrowser(node, req)

    obj['attachment'] = files
    obj['sum_size'] = sum_size
    obj['bibtex'] = False

    if node.getMask(u"bibtex"):
        obj['bibtex'] = True

    if node.has_object():
        obj['canseeoriginal'] = node.has_data_access()
        if node.system_attrs.get('origname') == "1":
            obj['documentlink'] = u'/doc/{}/{}'.format(node.id, node.name)
            obj['documentdownload'] = u'/download/{}/{}'.format(node.id, node.name)
        else:
            obj['documentlink'] = u'/doc/{}/{}.pdf'.format(node.id, node.id)
            obj['documentdownload'] = u'/download/{}/{}.pdf'.format(node.id, node.id)

            if not node.isActiveVersion():
                version_id = unicode(version_id_from_req(req))
                obj['documentlink'] += "?v=" + version_id
                obj['documentdownload'] += "?v=" + version_id

    else:
        obj['canseeoriginal'] = False

    obj['documentthumb'] = u'/thumb2/{}'.format(node.id)
    if not node.isActiveVersion():
        version_id = unicode(version_id_from_req(req))
        obj['documentthumb'] += "?v=" + version_id
        obj['tag'] = version_id

    # XXX: do we really need this spider filtering?
    user_agent = req.get_header("user-agent") or ""
    is_spider = "oogle" in user_agent or "aidu" in user_agent
    
    if is_spider:
        # don't confuse search engines with the PDF link
        obj['documentdownload'] = None

    full_style = req.args.get("style", "full_standard")
    if full_style:
        obj['style'] = full_style

    return obj
Exemplo n.º 6
0
    def _prepareData(self, req):
        obj = prepare_node_data(self, req)
        if obj["deleted"]:
            # no more processing needed if this object version has been deleted
            # rendering has been delegated to current version
            return obj

        obj["highres_url"] = None

        can_see_original = self.has_data_access()

        use_flash_zoom = config.getboolean("image.use_flash_zoom",
                                           True) and self.should_use_zoom
        image_url = '/fullsize?id=%d' % self.id if use_flash_zoom else '/image/%d' % self.id
        image_url = self._add_version_tag_to_url(image_url)

        archive = get_archive_for_node(self)
        if archive:
            if can_see_original:
                obj['highres_url'] = u"/file/{nid}/{nid}.tif".format(
                    nid=self.id)
                archive_state = archive.get_file_state(self)
                if archive_state == Archive.NOT_PRESENT:
                    obj['archive_fetch_url'] = u"/archive/{}".format(self.id)
                elif archive_state == Archive.PENDING:
                    obj['archive_fetch_url'] = u"pending"
                elif archive_state == Archive.PRESENT:
                    obj['archive_fetch_url'] = None

        files, sum_size = filebrowser(self, req)

        obj['canseeoriginal'] = can_see_original
        obj['preferred_image_url'] = self.preferred_image_url
        obj["image_formats"] = self.get_image_formats()
        obj['zoom'] = self.zoom_available
        obj['image_url'] = image_url
        obj['attachment'] = files
        obj['sum_size'] = sum_size
        obj['presentation_url'] = self.presentation_url
        obj['fullsize'] = str(self.id)
        if not self.isActiveVersion():
            obj['tag'] = self.tag
            obj['fullsize'] += "&v=" + self.tag
        obj['fullsize'] = '"' + obj['fullsize'] + '"'

        full_style = req.args.get(u"style", u"full_standard")
        if full_style:
            obj['style'] = full_style

        return obj
Exemplo n.º 7
0
    def _prepareData(self, req):
        obj = prepare_node_data(self, req)
        if obj["deleted"]:
            # no more processing needed if this object version has been deleted
            # rendering has been delegated to current version
            return obj

        obj["highres_url"] = None

        can_see_original = self.has_data_access()

        use_flash_zoom = config.getboolean("image.use_flash_zoom", True) and self.should_use_zoom
        image_url = '/fullsize?id=%d' % self.id if use_flash_zoom else '/image/%d' % self.id
        image_url = self._add_version_tag_to_url(image_url)

        archive = get_archive_for_node(self)
        if archive:
            if can_see_original:
                obj['highres_url'] = u"/file/{nid}/{nid}.tif".format(nid=self.id)
                archive_state = archive.get_file_state(self)
                if archive_state == Archive.NOT_PRESENT:
                    obj['archive_fetch_url'] = u"/archive/{}".format(self.id)
                elif archive_state == Archive.PENDING:
                    obj['archive_fetch_url'] = u"pending"
                elif archive_state == Archive.PRESENT:
                    obj['archive_fetch_url'] = None

        files, sum_size = filebrowser(self, req)

        obj['canseeoriginal'] = can_see_original
        obj['preferred_image_url'] = self.preferred_image_url
        obj["image_formats"] = self.get_image_formats()
        obj['zoom'] = self.zoom_available
        obj['image_url'] = image_url
        obj['attachment'] = files
        obj['sum_size'] = sum_size
        obj['presentation_url'] = self.presentation_url
        obj['fullsize'] = str(self.id)
        if not self.isActiveVersion():
            obj['tag'] = self.tag
            obj['fullsize'] += "&v=" + self.tag
        obj['fullsize'] = '"' + obj['fullsize'] + '"'

        full_style = req.args.get(u"style", u"full_standard")
        if full_style:
            obj['style'] = full_style

        return obj
Exemplo n.º 8
0
    def _prepareData(self, req, words=""):
        obj = prepare_node_data(self, req)
        if obj["deleted"]:
            # no more processing needed if this object version has been deleted
            # rendering has been delegated to current version
            return obj

        # user must have data access for video playback
        if self.has_data_access():
            video = self.files.filter_by(filetype=u"video").scalar()
            obj["video_url"] = u"/file/{}/{}".format(self.id, video.base_name) if video is not None else None
            if not self.isActiveVersion():
                obj['video_url'] += "?v=" + self.tag
        else:
            obj["video_url"] = None

        captions_info = getCaptionInfoDict(self)
        if captions_info:
            logg.debug("video: '%s' (%s): captions: dictionary 'captions_info': %s" % (self.name, str(self.id), str(captions_info)))

        obj["captions_info"] = json.dumps(captions_info)
        return obj