Refresh and added usage tracking

This commit is contained in:
Hannes
2026-04-24 00:47:51 +02:00
parent 8519d9f62e
commit 477b1bf985
45 changed files with 726 additions and 166 deletions
+84 -24
View File
@@ -1,27 +1,87 @@
#!/bin/bash
#!/usr/bin/env python3
import os
import sys
import glob
# Check if scheme is provided
if [ -z "$1" ]; then
echo "Usage: rename_filtered <scheme> [folder]"
echo
echo "Example:"
echo " Files in folder:"
echo " myfile_E123.txt"
echo " myfile_E456.txt"
echo " myfile_E789.txt"
echo " myfile_E2468.txt"
echo
echo " Run:"
echo " rename_filtered \"????????E!!!\" ./"
echo
echo " Result:"
echo " myfile_E123.txt → 123.txt"
echo " myfile_E456.txt → 456.txt"
echo " myfile_E789.txt → 789.txt"
echo " myfile_E2468.txt → myfile_2468.txt"
def process_files(files, scheme):
scheme_len = len(scheme)
exit 1
fi
for filename in files:
print(f"Processing file: {filename}")
print(f"Against scheme: {scheme}")
# Call the Python script with scheme and optional folder argument
python3 /home/honney/.bin/rename_filtered.py "$@"
# Get the actual filename without the directory path
base = os.path.basename(filename)
name, ext = os.path.splitext(base)
if scheme_len == len(name):
new_name = ""
for i in range(scheme_len):
current_letter = scheme[i]
if current_letter == "?":
pass
elif current_letter == "!":
new_name += name[i]
elif current_letter == name[i]:
new_name += current_letter
else:
print(f"Mismatch at position {i}, skipping {filename}")
new_name = None
break
if new_name:
rename_file(filename, new_name, ext)
else:
print("No new name Generated. It is not supposed to do that")
return
def rename_file(file, new_name, ext):
dirname = os.path.dirname(file) # correct: preserve folder
old_base = os.path.basename(file)
if old_base != new_name:
new_filepath = os.path.join(dirname, new_name + ext)
os.rename(file, new_filepath)
print(f"Renamed '{old_base}' → '{new_name + ext}'")
else:
print(f"No renaming needed for '{old_base}'.")
def main():
if len(sys.argv) < 2:
print("Usage: scheme.py <scheme> [folder]")
sys.exit(1)
else:
print("Usage: rename_filtered <scheme> [folder]")
print()
print("Example:")
print(" Files in folder:")
print(" myfile_E123.txt")
print(" myfile_E456.txt")
print(" myfile_E789.txt")
print(" myfile_E2468.txt")
print()
print(" Run:")
print(" rename_filtered \"????????E!!!\" ./")
print()
print(" Result:")
print(" myfile_E123.txt → 123.txt")
print(" myfile_E456.txt → 456.txt")
print(" myfile_E789.txt → 789.txt")
print(" myfile_E2468.txt → myfile_2468.txt")
sys.exit(1)
import subprocess
subprocess.run(["python", "/home/honney/.bin/tracker.py", "add", "rename_filtered"])
scheme = sys.argv[1]
folder = sys.argv[2] if len(sys.argv) > 2 else "."
# Get all files in the folder (assuming files are in the current directory by default)
files = glob.glob(os.path.join(folder, "*"))
# Run the renaming logic
process_files(files, scheme)
if __name__ == "__main__":
main()