Beispiel #1
0
    def _threadDoGETJob(self, request):

        share_key = request.hydrus_args['share_key']
        hash = request.hydrus_args['hash']

        local_booru_manager = HC.app.GetManager('local_booru')

        local_booru_manager.CheckFileAuthorised(share_key, hash)

        (name, text, timeout,
         media_result) = local_booru_manager.GetPageInfo(share_key, hash)

        body = '''<html>
    <head>'''

        if name == '':
            body += '''
        <title>hydrus network local booru share</title>'''
        else:
            body += '''
        <title>''' + name + '''</title>'''

        body += '''
        
        <link href="hydrus.ico" rel="shortcut icon" />
        <link href="style.css" rel="stylesheet" type="text/css" />'''

        body += '''
    </head>
    <body>'''

        body += '''
        <div class="timeout">This share ''' + HC.ConvertTimestampToPrettyExpires(
            timeout) + '''.</div>'''

        if name != '': body += '''
        <h3>''' + name + '''</h3>'''

        if text != '':

            newline = '''</p>
        <p>'''

            body += '''
        <p>''' + text.replace(os.linesep, newline).replace(
                '\n', newline) + '''</p>'''

        body += '''
        <div class="media">'''

        mime = media_result.GetMime()

        if mime in HC.IMAGES:

            (width, height) = media_result.GetResolution()

            body += '''
            <img width="''' + str(width) + '''" height="''' + str(
                height) + '''" src="file?share_key=''' + share_key.encode(
                    'hex') + '''&hash=''' + hash.encode('hex') + '''" />'''

        elif mime in HC.VIDEO:

            (width, height) = media_result.GetResolution()

            body += '''
            <video width="''' + str(width) + '''" height="''' + str(
                height
            ) + '''" controls="" loop="" autoplay="" src="file?share_key=''' + share_key.encode(
                'hex') + '''&hash=''' + hash.encode('hex') + '''" />
            <p><a href="file?share_key=''' + share_key.encode(
                    'hex') + '''&hash=''' + hash.encode(
                        'hex') + '''">link to ''' + HC.mime_string_lookup[
                            mime] + ''' file</a></p>'''

        elif mime == HC.APPLICATION_FLASH:

            (width, height) = media_result.GetResolution()

            body += '''
            <embed width="''' + str(width) + '''" height="''' + str(
                height) + '''" src="file?share_key=''' + share_key.encode(
                    'hex') + '''&hash=''' + hash.encode('hex') + '''" />
            <p><a href="file?share_key=''' + share_key.encode(
                        'hex') + '''&hash=''' + hash.encode(
                            'hex') + '''">link to ''' + HC.mime_string_lookup[
                                mime] + ''' file</a></p>'''

        else:

            body += '''
            <p><a href="file?share_key=''' + share_key.encode(
                'hex') + '''&hash=''' + hash.encode(
                    'hex') + '''">link to ''' + HC.mime_string_lookup[
                        mime] + ''' file</a></p>'''

        body += '''
        </div>
        <div class="footer"><a href="http://hydrusnetwork.github.io/hydrus/">hydrus network</a></div>
    </body>
</html>'''

        response_context = HC.ResponseContext(200,
                                              mime=HC.TEXT_HTML,
                                              body=body)

        return response_context
Beispiel #2
0
    def _threadDoGETJob(self, request):

        # in future, make this a standard frame with a search key that'll load xml or yaml AJAX stuff
        # with file info included, so the page can sort and whatever

        share_key = request.hydrus_args['share_key']

        local_booru_manager = HC.app.GetManager('local_booru')

        local_booru_manager.CheckShareAuthorised(share_key)

        (name, text, timeout,
         media_results) = local_booru_manager.GetGalleryInfo(share_key)

        body = '''<html>
    <head>'''

        if name == '':
            body += '''
        <title>hydrus network local booru share</title>'''
        else:
            body += '''
        <title>''' + name + '''</title>'''

        body += '''
        
        <link href="hydrus.ico" rel="shortcut icon" />
        <link href="style.css" rel="stylesheet" type="text/css" />'''

        (thumbnail_width,
         thumbnail_height) = HC.options['thumbnail_dimensions']

        body += '''
        <style>
            .thumbnail_container { width: ''' + str(
            thumbnail_width) + '''px; height: ''' + str(
                thumbnail_height) + '''px; }
        </style>'''

        body += '''
    </head>
    <body>'''

        body += '''
        <div class="timeout">This share ''' + HC.ConvertTimestampToPrettyExpires(
            timeout) + '''.</div>'''

        if name != '': body += '''
        <h3>''' + name + '''</h3>'''

        if text != '':

            newline = '''</p>
        <p>'''

            body += '''
        <p>''' + text.replace(os.linesep, newline).replace(
                '\n', newline) + '''</p>'''

        body += '''
        <div class="media">'''

        for media_result in media_results:

            hash = media_result.GetHash()
            mime = media_result.GetMime()

            # if mime in flash or pdf or whatever, get other thumbnail

            body += '''
            <span class="thumbnail">
                <span class="thumbnail_container">
                    <a href="page?share_key=''' + share_key.encode(
                'hex') + '''&hash=''' + hash.encode('hex') + '''">
                        <img src="thumbnail?share_key=''' + share_key.encode(
                    'hex') + '''&hash=''' + hash.encode('hex') + '''" />
                    </a>
                </span>
            </span>'''

        body += '''
        </div>
        <div class="footer"><a href="http://hydrusnetwork.github.io/hydrus/">hydrus network</a></div>
    </body>
</html>'''

        response_context = HC.ResponseContext(200,
                                              mime=HC.TEXT_HTML,
                                              body=body)

        return response_context