develop core Hooks, remain hooks is defined but not develop
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
import csv
|
||||
import re
|
||||
|
||||
csv_path = '/home/x79/sisvietnamvn_01/Design/List of all WP action hooks and filters -- Adam Brown, BYU Political Science.csv'
|
||||
java_path = '/home/x79/sisvietnamvn_01/sisvietnamvn_main/src/main/java/com/sisvietnamvn/web/hook/WpHooks.java'
|
||||
|
||||
def sanitize_constant_name(hook_name):
|
||||
# Convert {$plugin} to PLUGIN
|
||||
name = re.sub(r'\{\$([a-zA-Z0-9_]+)\}', r'\1', hook_name)
|
||||
name = re.sub(r'[^a-zA-Z0-9_]', '_', name).upper()
|
||||
|
||||
# Handle multiple underscores or leading numbers
|
||||
name = re.sub(r'_+', '_', name)
|
||||
name = name.strip('_')
|
||||
|
||||
if name and name[0].isdigit():
|
||||
name = "HOOK_" + name
|
||||
|
||||
return name
|
||||
|
||||
with open(csv_path, 'r', encoding='utf-8-sig') as f:
|
||||
reader = csv.reader(f)
|
||||
next(reader) # Skip header
|
||||
|
||||
hooks = set()
|
||||
for row in reader:
|
||||
if len(row) > 1 and row[1].strip():
|
||||
hooks.add(row[1].strip())
|
||||
|
||||
with open(java_path, 'w', encoding='utf-8') as f:
|
||||
f.write("package com.sisvietnamvn.web.hook;\n\n")
|
||||
f.write("/**\n")
|
||||
f.write(" * Automatically generated dictionary of all WordPress Hooks.\n")
|
||||
f.write(" * Contains " + str(len(hooks)) + " constants.\n")
|
||||
f.write(" */\n")
|
||||
f.write("public final class WpHooks {\n\n")
|
||||
f.write(" private WpHooks() {}\n\n")
|
||||
|
||||
# Track written constants to avoid duplicates
|
||||
written = set()
|
||||
|
||||
for hook in sorted(list(hooks)):
|
||||
const_name = sanitize_constant_name(hook)
|
||||
if not const_name:
|
||||
continue
|
||||
|
||||
if const_name in written:
|
||||
const_name = const_name + "_2" # Simple deduplication
|
||||
|
||||
written.add(const_name)
|
||||
|
||||
# Add comment with original hook name
|
||||
f.write(f' /**\n')
|
||||
f.write(f' * Original hook name: {hook}\n')
|
||||
f.write(f' */\n')
|
||||
f.write(f' public static final String {const_name} = "{hook}";\n\n')
|
||||
|
||||
f.write("}\n")
|
||||
print(f"Generated {len(written)} hook constants in WpHooks.java")
|
||||
|
||||
Reference in New Issue
Block a user