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')
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)
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)
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