Example #1
0
def convert(directory, delete=False):
    print 'Converting icons in %s' % directory

    pks = []
    k = 0
    for path, names, filenames in walk_storage(directory):
        for filename in filenames:
            old = os.path.join(path, filename)
            pre, ext = os.path.splitext(old)
            if (pre[-3:] in size_suffixes or ext not in extensions):
                continue

            if not storage.size(old):
                print 'Icon %s is empty, ignoring.' % old
                continue

            for size, size_suffix in zip(sizes, size_suffixes):
                new = '%s%s%s' % (pre, size_suffix, '.png')
                if os.path.exists(new):
                    continue
                resize_image(old, new, (size, size), remove_src=False)

            if ext != '.png':
                pks.append(os.path.basename(pre))

            if delete:
                storage.delete(old)

            k += 1
            if not k % 1000:
                print "... converted %s" % k

    for chunk in chunked(pks, 100):
        Addon.objects.filter(pk__in=chunk).update(icon_type='image/png')
Example #2
0
def test_storage_walk():
    tmp = tempfile.mkdtemp()
    jn = partial(os.path.join, tmp)
    try:
        storage.save(jn('file1.txt'), ContentFile(''))
        storage.save(jn('one/file1.txt'), ContentFile(''))
        storage.save(jn('one/file2.txt'), ContentFile(''))
        storage.save(jn('one/two/file1.txt'), ContentFile(''))
        storage.save(jn('one/three/file1.txt'), ContentFile(''))
        storage.save(jn('four/five/file1.txt'), ContentFile(''))
        storage.save(jn(u'four/kristi\u2603/kristi\u2603.txt'),
                     ContentFile(''))

        results = [(dir, set(subdirs), set(files))
                   for dir, subdirs, files in sorted(walk_storage(tmp))]

        yield (eq_, results.pop(0), (tmp, set(['four',
                                               'one']), set(['file1.txt'])))
        yield (eq_, results.pop(0), (jn('four'),
                                     set(['five',
                                          'kristi\xe2\x98\x83']), set([])))
        yield (eq_, results.pop(0), (jn('four/five'), set([]),
                                     set(['file1.txt'])))
        yield (eq_, results.pop(0), (jn('four/kristi\xe2\x98\x83'), set([]),
                                     set(['kristi\xe2\x98\x83.txt'])))
        yield (eq_, results.pop(0), (jn('one'), set(['three', 'two']),
                                     set(['file1.txt', 'file2.txt'])))
        yield (eq_, results.pop(0), (jn('one/three'), set([]),
                                     set(['file1.txt'])))
        yield (eq_, results.pop(0), (jn('one/two'), set([]), set(['file1.txt'
                                                                  ])))
        yield (eq_, len(results), 0)
    finally:
        rm_local_tmp_dir(tmp)
Example #3
0
def convert(directory, delete=False):
    print 'Converting icons in %s' % directory

    pks = []
    k = 0
    for path, names, filenames in walk_storage(directory):
        for filename in filenames:
            old = os.path.join(path, filename)
            pre, ext = os.path.splitext(old)
            if (pre[-3:] in size_suffixes or ext not in extensions):
                continue

            if not storage.size(old):
                print 'Icon %s is empty, ignoring.' % old
                continue

            for size, size_suffix in zip(sizes, size_suffixes):
                new = '%s%s%s' % (pre, size_suffix, '.png')
                if os.path.exists(new):
                    continue
                resize_image(old, new, (size, size), remove_src=False)

            if ext != '.png':
                pks.append(os.path.basename(pre))

            if delete:
                storage.delete(old)

            k += 1
            if not k % 1000:
                print "... converted %s" % k

    for chunk in chunked(pks, 100):
        Addon.objects.filter(pk__in=chunk).update(icon_type='image/png')
Example #4
0
def test_storage_walk():
    tmp = tempfile.mkdtemp()
    jn = partial(os.path.join, tmp)
    try:
        storage.save(jn('file1.txt'), ContentFile(''))
        storage.save(jn('one/file1.txt'), ContentFile(''))
        storage.save(jn('one/file2.txt'), ContentFile(''))
        storage.save(jn('one/two/file1.txt'), ContentFile(''))
        storage.save(jn('one/three/file1.txt'), ContentFile(''))
        storage.save(jn('four/five/file1.txt'), ContentFile(''))
        storage.save(jn(u'four/kristi\u2603/kristi\u2603.txt'),
                     ContentFile(''))

        results = [(dir, set(subdirs), set(files))
                   for dir, subdirs, files in sorted(walk_storage(tmp))]

        yield (eq_, results.pop(0),
               (tmp, set(['four', 'one']), set(['file1.txt'])))
        yield (eq_, results.pop(0),
               (jn('four'), set(['five', 'kristi\xe2\x98\x83']), set([])))
        yield (eq_, results.pop(0),
               (jn('four/five'), set([]), set(['file1.txt'])))
        yield (eq_, results.pop(0), (jn('four/kristi\xe2\x98\x83'), set([]),
                                     set(['kristi\xe2\x98\x83.txt'])))
        yield (eq_, results.pop(0), (jn('one'), set(['three', 'two']),
                                     set(['file1.txt', 'file2.txt'])))
        yield (eq_, results.pop(0),
               (jn('one/three'), set([]), set(['file1.txt'])))
        yield (eq_, results.pop(0),
               (jn('one/two'), set([]), set(['file1.txt'])))
        yield (eq_, len(results), 0)
    finally:
        rm_local_tmp_dir(tmp)
Example #5
0
    def handle(self, *args, **options):
        count = 0
        for root, folders, files in walk_storage(_root):
            if not root.startswith(_subs):
                continue

            for fname in files:
                fname = os.path.join(root, fname)
                if fname.endswith(_exts):
                    data = storage.open(fname).read()
                    found = False
                    for match in _loc_re.finditer(data):
                        if not found:
                            found = True
                            print fname
                            print '-' * len(fname)
                        print match.string[match.start():match.end()]
                        count += 1

                    if found:
                        print

        print 'Strings found:', count
Example #6
0
    def handle(self, *args, **options):
        count = 0
        for root, folders, files in walk_storage(_root):
            if not root.startswith(_subs):
                continue

            for fname in files:
                fname = os.path.join(root, fname)
                if fname.endswith(_exts):
                    data = storage.open(fname).read()
                    found = False
                    for match in _loc_re.finditer(data):
                        if not found:
                            found = True
                            print fname
                            print '-' * len(fname)
                        print match.string[match.start():match.end()]
                        count += 1

                    if found:
                        print

        print 'Strings found:', count