diff --git a/renamer.pl b/renamer.pl deleted file mode 100755 index facfd06..0000000 --- a/renamer.pl +++ /dev/null @@ -1,41 +0,0 @@ -#!/usr/bin/perl -# vi: set tabstop=4 shiftwidth=4 expandtab : # -# version: 2.20200726 -use strict; -use warnings; - -my @files = <*>; -my %new_files; - -foreach my $file (@files) { - if ($file =~ m#\.(jpe?g|png|gif)$#) { - my ($file_mtime) = (stat($file))[9]; - - my $new_file = "$file_mtime"; - my $suffix = 1; - while (exists $new_files{$new_file}) { - $new_file = "$file_mtime-$suffix"; - $suffix = $suffix + 1; - } - $new_files{$new_file} = $file; - } -} - -my @sorted_keys = sort(keys(%new_files)); -my $cc = 0; -foreach my $key (@sorted_keys) { - my $file = $new_files{$key}; - $file =~ m#\.(.+)$#; - my $ext = $1; - my $new_file = "$key.$ext"; - - if (not ($new_file eq $file)) { - print "$file -> $new_file\n"; - rename($file, $new_file) || die "Can't rename file '$file'! Cause: $!"; - $cc = $cc + 1; - } -} - -print "-------------------\n"; -print "rename $cc files\n"; - diff --git a/renamer.py b/renamer.py new file mode 100755 index 0000000..421c9e2 --- /dev/null +++ b/renamer.py @@ -0,0 +1,34 @@ +#!/usr/bin/python3 +# vi: set tabstop=4 shiftwidth=4 expandtab : # +# version: 3.20220218 + +import re +import os + +pattern = re.compile('^\d{10}$') +unique_names = set() +list_files = sorted(os.listdir(path = '.')) + +for filename in list_files: + if not os.path.isfile(filename): + continue + + (original_name, ext) = os.path.splitext(filename) + if not (ext in ['.jpg', '.jpeg', '.jfif', '.png', '.gif', '.webp', '.mp4', '.MP4', '.webm']): + continue + + if pattern.match(original_name) != None: + unique_names.add(original_name) + continue + + file_mtime = int(os.stat(filename).st_mtime) + new_name = file_mtime + suffix = 1 + while new_name in unique_names: + new_name = '%s-%d' % (file_mtime, suffix) + suffix = suffix + 1 + unique_names.add(new_name) + full_new_name = '%s%s' % (new_name, ext) + print('%s -> %s' % (filename, full_new_name)) + os.rename(filename, full_new_name) +