Exemple #1
0
def make_thumb(photo):
    filename = os.path.join('../pictures', photo)
    try:
        thumbnail = get_thumbnail(filename, '200x200', crop='center')
    except FileNotFoundError:
        generic = os.path.join('../pictures', '_generic.jpg')
        thumbnail = get_thumbnail(generic, '200x200', crop='center')
    return thumbnail
def text_filter(regex_base, value):
    """
    A text-filter helper, used in ``markdown_thumbnails``-filter and ``html_thumbnails``-filter.
    It can be used to build custom thumbnail text-filters.

    :param regex_base: A string with a regex that contains ``%(captions)s`` and ``%(image)s`` where
                       the caption and image should be.
    :param value: String of text in which the source URLs can be found.
    :return: A string ready to be put in a template.
    """
    from thumbnails import get_thumbnail
    regex = regex_base % {
        'caption': '[a-zA-Z0-9\.\,:;/_ \(\)\-\!\?\"]+',
        'image': '[a-zA-Z0-9\.:/_\-\% ]+'
    }
    images = re.findall(regex, value)

    for i in images:
        image_url = i[1]
        image = get_thumbnail(
            image_url,
            **settings.THUMBNAIL_FILTER_OPTIONS
        )
        value = value.replace(i[1], image.url)

    return value
Exemple #3
0
def get_thumb(uniqueid):
    upload_folder = myapp.config['UPLOAD_FOLDER']
    try:
        file = File.query.filter_by(unique_id=uniqueid).first()
        path = os.path.join(upload_folder, file.unique_id, file.name)
        thmbnail = get_thumbnail(path, "200")
        return send_file(thmbnail.path)
    except Exception:
        return
def thumbnail(filename):
    path = rootpath + "/%s" % filename
    # print(path)
    thumbnail_filename = get_thumbnail(path,
                                       '200x200',
                                       crop='center',
                                       force=True).url
    resp = Response(open(thumbnail_filename, 'rb'), mimetype="image/jpeg")
    return resp
 def test_get_thumbnail(self, mock_get_thumbnail, mock_save, mock_cache_set):
     thumbnail = get_thumbnail('http://puppies.lkng.me/400x600/', '200')
     self.assertTrue(mock_get_thumbnail.called)
     self.assertTrue(mock_cache_set.called)
     self.assertTrue(mock_save.called)
     mock_save.assert_has_calls([
         mock.call(thumbnail.path, b''),
         mock.call(thumbnail.alternative_resolution_path(2), b''),
     ])
     self.assertIsInstance(thumbnail, Thumbnail)
Exemple #6
0
 def test_get_thumbnail(self, mock_get_thumbnail, mock_save,
                        mock_cache_set):
     thumbnail = get_thumbnail('http://puppies.lkng.me/400x600/', '200')
     self.assertTrue(mock_get_thumbnail.called)
     self.assertTrue(mock_cache_set.called)
     self.assertTrue(mock_save.called)
     mock_save.assert_has_calls([
         mock.call(thumbnail.path, b''),
         mock.call(thumbnail.alternative_resolution_path(2), b''),
     ])
     self.assertIsInstance(thumbnail, Thumbnail)
def play_images(data):
    i = 1
    for img in data["images"]:
        if not utils.show_real_thumbnails():
            add_page("%s %d" % (utils.translate(30017), i), img,
                     thumbnails.get_thumbnail(str(i)))
        else:
            add_page("%s %d" % (utils.translate(30017), i), img, img)

        i = 1 if i == 100 else i + 1

    xbmc.executebuiltin("Container.SetViewMode(500)")
Exemple #8
0
 def test_force(self, mock_get_thumbnail, mock_save, mock_cache_set):
     get_thumbnail('http://puppies.lkng.me/400x600/', '200', force=True)
     get_thumbnail('http://puppies.lkng.me/400x600/', '200', force=True)
     get_thumbnail('http://puppies.lkng.me/400x600/', '200')
     self.assertEqual(len(mock_get_thumbnail.call_args_list), 4)
     self.assertEqual(len(mock_save.call_args_list), 4)
     self.assertEqual(len(mock_cache_set.call_args_list), 2)
 def test_force(self, mock_get_thumbnail, mock_save, mock_cache_set):
     get_thumbnail('http://puppies.lkng.me/400x600/', '200', force=True)
     get_thumbnail('http://puppies.lkng.me/400x600/', '200', force=True)
     get_thumbnail('http://puppies.lkng.me/400x600/', '200')
     self.assertEqual(len(mock_get_thumbnail.call_args_list), 4)
     self.assertEqual(len(mock_save.call_args_list), 4)
     self.assertEqual(len(mock_cache_set.call_args_list), 2)
Exemple #10
0
 def generate_thumbnail(self, obj, thumbnail=None):
     if not thumbnail:
         return {}
     #TODO: support multiple thumbnail sizes
     thumbnail_size = thumbnail.pop('size')
     obj_path = obj['path']
     thumbnail_file_path = get_thumbnail(obj_path, thumbnail_size,
                                         **thumbnail).path
     _, extension = os.path.splitext(obj_path)
     thumbnail_path = os.path.join(
         obj['obj_dir'], 'thumbnail{extension}'.format(extension=extension))
     shutil.copyfile(thumbnail_file_path, thumbnail_path)
     return {'thumbnail': self.form_obj_url(thumbnail_path)}
    def render(self, context):
        from thumbnails import get_thumbnail  # imported inline in order for mocking to work
        if self.original and self.size:
            original = self.original.resolve(context)
            size = self.size.resolve(context)
            options = {}
            for key in self.options:
                options[key] = self.options[key].resolve(context)

            context[self.variable_name] = get_thumbnail(original, size, **options)
        else:
            raise TemplateSyntaxError()

        return ''
Exemple #12
0
    def get(self, request):
        reqsize = request.GET.get("size", "f")
        size = self._size_map.get(reqsize, None)

        _id = os.path.basename(request.path_info)
        pic = Picture.objects.get(id=_id)
        picpath = path_withroot(pic.path)

        if size != None:
            thumbnail = get_thumbnail(path_withroot(pic.path), size)
            picpath = thumbnail.path

        with open(path_withroot(picpath), "rb") as pic_file:
            return HttpResponse(pic_file.read(), content_type="image/jpeg")
Exemple #13
0
    def render(self, context):
        from thumbnails import get_thumbnail  # imported inline in order for mocking to work
        if self.original and self.size:
            original = self.original.resolve(context)
            size = self.size.resolve(context)
            options = {}
            for key in self.options:
                options[key] = self.options[key].resolve(context)

            context[self.variable_name] = get_thumbnail(
                original, size, **options)
        else:
            raise TemplateSyntaxError()

        return ''
Exemple #14
0
def get_photo(img):
    photos_dir = current_app.config.get("UPLOADED_PHOTOS_DEST")
    use_thumb = request.args.get("thumb")
    img_path = os.path.join(photos_dir, img)

    if os.path.exists(img_path):
        if use_thumb:
            try:
                thumb = get_thumbnail(os.path.join(img_path), "x40")
                return send_from_directory("/", thumb.path.lstrip('/'))
            except IOError:  # images with alpha channels can't be converted by python-thumbnails
                pass
        else:
            return send_from_directory(photos_dir, img)

    return send_from_directory(photos_dir, "unknown_thumb.png" if use_thumb else "unknown.png")
def makeWebhookResult(req):
    if req.get("result").get("action") != "login":
        return {}
    result = req.get("result")
    parameters = result.get("parameters")

    speech = get_thumbnail(
        'data:image/jpeg;base64,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QSRuLXN5H8iOsdiytqhbHln2M5wU1pm5UecaeRmiqitcWdZokjPgdx71w7OF2QlzVM58sOcXuJCpwG+rSy/s4MtvK1k8PP1rY5cnsj5r85RNbopYzsLNc5oawdzRz9ytPCpyfNazKvClJ7mzUaiofI9z3uL3ONyTzXbrrjCPLE6UIRgtI/NZmYoUkBh17HHFQooBQooBQpIUVCihdigFQooUUKKFJUuxUKITYFCihRUMiQCoVMUMhQbFQpIU+kMiQooDDL2ONsUKKhRQChRQChSULsUKKAULsVCihdihUKFJCihRCgFDLYoUUBIUVDLYoUUAqFJC7PpDIkBhl7HGFC7FCioUUAoUUAoUlC7FCigFC7FQooVMULsUKSFFCiFCihdihRQpIBUMtihRQCoUkLsUGzDAr2OQKAULsUKKhRQChRQChSULsUKIQChUxUKKFQoZbFASFQoUQVCihRQooUkAqGWxQooBUKSAwy9jkCEAoUUKhQoqFFAKFFAKFJQooUUAoVCoUUKKGQoCQqFCiCoUUKKFFASFFQy2KFFASAw69TkEhRCAUKKFQoUVCigFCihRQEoUUKKAUKhUKKFFDIUBIVMUKIKhRQqFCigJCioZIUKSAw69TjihSQohCigEIVChRQoqAUKKFFAShUKFFAKFFQooUUMhQEhdihRChRQqFCigJCioZIkKYdexxxUBIUUKIQChRCFFCihRUAoUQgFCkoVChRCAUKKhRQooZCEBIXYoUQoBQqFDIUBIUUBh16nKJQChRCFEIBQohCihRQoqAkKIQChRUKhQohAKFFQooUkMhCAUAhDJCFCigQoZEEAhCigP/9k=',
        '300x300',
        crop='center')

    print("Response:")
    print(speech)

    return {
        "speech": speech,
        "displayText": speech,
        #"data": {},
        # "contextOut": [],
        "source": "apiai-onlinestore-shipping"
    }
Exemple #16
0
def text_filter(regex_base, value):
    """
    A text-filter helper, used in ``markdown_thumbnails``-filter and ``html_thumbnails``-filter.
    It can be used to build custom thumbnail text-filters.

    :param regex_base: A string with a regex that contains ``%(captions)s`` and ``%(image)s`` where
                       the caption and image should be.
    :param value: String of text in which the source URLs can be found.
    :return: A string ready to be put in a template.
    """
    from thumbnails import get_thumbnail
    regex = regex_base % {
        'caption': '[a-zA-Z0-9\.\,:;/_ \(\)\-\!\?\"]+',
        'image': '[a-zA-Z0-9\.:/_\-\% ]+'
    }
    images = re.findall(regex, value)

    for i in images:
        image_url = i[1]
        image = get_thumbnail(image_url, **settings.THUMBNAIL_FILTER_OPTIONS)
        value = value.replace(i[1], image.url)

    return value
Exemple #17
0
# -*- coding: utf-8 -*-
import thumbnails
from tests import data
from thumbnails.conf import settings

URL = 'https://unsplash.imgix.net/photo-1422405153578-4bd676b19036?q=75&fm=jpg&' \
      's=5ecc4c704ea97d85ea550f84a1499228'

print(settings.THUMBNAIL_PATH)

print(thumbnails.get_thumbnail(URL, '800x800').url)
print(thumbnails.get_thumbnail(URL, '800').url)
print(thumbnails.get_thumbnail(URL, 'x800').url)
print(thumbnails.get_thumbnail(URL, '400x400', crop='center').url)
print(thumbnails.get_thumbnail(URL, '400x400', crop='top').url)
print(thumbnails.get_thumbnail(URL, '400x400', crop='left').url)
print(thumbnails.get_thumbnail(data.BASE64_STRING_OF_IMAGE, '200x200', crop='center').url)
Exemple #18
0
 def preview(self):
     return get_thumbnail(os.path.join(settings.MEDIA_ROOT, self.file.name), '1400')
Exemple #19
0
 def thumbnail(self):
     return get_thumbnail(os.path.join(settings.MEDIA_ROOT, self.file.name), '300')
 def test_dummy(self):
     with override_settings(THUMBNAIL_DUMMY=True):
         self.assertEqual(
             get_thumbnail('t.jpg', '200x200').url,
             'http://puppies.lkng.me/200x200'
         )
Exemple #21
0
#
# thumbnails
# 
import os
from thumbnails import get_thumbnail

SIZE="450x300"

img = get_thumbnail(os.path.abspath('./static/images/post_photos/IMG_2625.jpg'), '300x300', crop='center')
print(img.path)
img = get_thumbnail(os.path.abspath('./static/images/post_photos/IMG_2649.jpg'), '300x300', crop='center')
print(img.path)
img = get_thumbnail(os.path.abspath('./static/images/post_photos/IMG_3582.jpg'), '300x300', crop='center')
print(img)
print(dir(img))
print(img.name)
print(img.path)
 def test_thumbnail(self):
     # path = os.path.abspath('public/media/elmar.jpg')
     path = '/Volumes/Work/Projects/ElmarHinzDjango/public/media/Coursera' \
      '-Bioinformatics-Finding-Hidden-Messages-in-DNA.pdf'
     tn = get_thumbnail(path, '300x300', crop='center')
     x = 1
Exemple #23
0
 def test_dummy(self):
     with override_settings(THUMBNAIL_DUMMY=True):
         self.assertEqual(
             get_thumbnail('t.jpg', '200x200').url,
             'http://puppies.lkng.me/200x200')
Exemple #24
0
def readTitleList(baseUrl, dataBody, pageParam, rePattern, funcUrl, funcHtml, funcImg, funcName, funcDate):
    try: 
        baseUrl = baseUrl.strip()
        dataBody = dataBody.strip()
        count = 0
        lastcount = 0
        results = []
        print ("------------------------------- start -------------------------")
        
        md = hashlib.md5()
        md.update(baseUrl.encode('utf-8') + dataBody.encode('utf-8'))
        urlmd5 = md.hexdigest()
        for i in range(0, 1):
            page = baseUrl.format(page=pageParam(i))
            body = dataBody.format(page=pageParam(i))
            header={'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko'}   
           
            print ("--------------------------------------------------------------")
            print (page, body)

            if (body == ""):
                req = urllib.request.Request(url=page,headers=header) 
                response = urllib.request.urlopen(req, timeout=120)
                
            else:
                req = urllib.request.Request(url=page, data=body.encode(encoding="utf-8",errors="ignore"), headers=header,method='POST') 
                response = urllib.request.urlopen(req, timeout=120)       
     
            html =  funcHtml(response.read())
            if html.strip() == "":
                break
            else:
                datamd5 = str(i)
                logpath = './logs/{0}_{1}.html'.format(urlmd5, datamd5)
                print("write to path : {0}".format(logpath))
                try:
                    f = codecs.open(logpath,'w','utf-8')
                    s = f.write ("----------------------------url-----------------------\n")
                    s = f.write (page)
                    s = f.write ("\n\n----------------------------header-----------------------\n")
                    s = f.write (str(header))
                    s = f.write ("\n\n----------------------------body-----------------------\n")
                    s = f.write (body)
                    s = f.write ("\n\n----------------------------html-----------------------\n")
                    s = f.write (html)
                    f.close()
                except:
                    print ("write to path {0} failed".format(logpath))
                    traceback.print_exc()

            lastcount = count
            print ("{0} bytes".format(len(html)))
            print ("--------------------------------------------------------------")
            for m in re.finditer(rePattern, html):
                name=m.group("name")
                url=m.group("url")
                img=m.group("img")
                date=m.group("date")
                
                count = count + 1
                url = funcUrl (url, page)
                img = funcImg(img, page)
                name = funcName(name)
                date = funcDate(date)
                
                thumbnails_path = ""
                if img != "":
                    try:
                        #print("trying image: {0} for {1}".format(repr(img), repr(name)))
                        thumbnails_path = thumbnails.get_thumbnail(img, "234x182", crop="center", scale_up=True).path
                        thumbnails_path = thumbnails_path.replace(thumbnails.settings.defaults["THUMBNAIL_PATH"], "http://vpower.crpower.com.cn:19000/public/thumbnails")
                    except:
                        #print("invalid image: {0} for {1} ".format(img, name))
                        pass
                
                results.append({"id":count, "name":name, "url":url, "img":img, "date":date, 
                    "thumbnails": thumbnails_path})
                print ("#{0}".format(count))
                #print("[{0}] url={2},img={3},date={4},thumbnails={5}".format(count, name, url, img, date,thumbnails_path))

            if lastcount == count or count > 300:
                break
    except:
        traceback.print_exc()
        
    return results
Exemple #25
0
 def test_get_thumbnail_cached(self):
     self.assertTrue(get_thumbnail('', '200'))
Exemple #26
0
 def _get_thumbnail(self, size="200x200", crop="center"):
     if self.image:
         try:
             return get_thumbnail(self.image.file.name, size, crop=crop)
         except Exception as e:
             logger.error(e)
 def test_get_thumbnail_cached(self):
     self.assertTrue(get_thumbnail('', '200'))
Exemple #28
0
 def thumbnail(self, obj):
     img = get_thumbnail(obj.imagem, size="150x150", crop="center")
     return '<img src="{0}"/>'.format(img.url)