Migration vers Disnake et ajout des components V2
This commit is contained in:
parent
c8c579eefe
commit
98f7501e07
47 changed files with 1196 additions and 722 deletions
52
backups/scratch/fix_modal_view_mixup.py
Normal file
52
backups/scratch/fix_modal_view_mixup.py
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
import os
|
||||
import re
|
||||
|
||||
def fix_file(filepath):
|
||||
with open(filepath, 'r', encoding='utf-8') as f:
|
||||
content = f.read()
|
||||
|
||||
# Split by class to be surgical
|
||||
classes = re.split(r'^(class\s+.*)$', content, flags=re.MULTILINE)
|
||||
|
||||
new_content = []
|
||||
if len(classes) > 0:
|
||||
new_content.append(classes[0]) # Header
|
||||
|
||||
for i in range(1, len(classes), 2):
|
||||
class_header = classes[i]
|
||||
class_body = classes[i+1] if i+1 < len(classes) else ""
|
||||
|
||||
# Determine if it's a View or a Modal
|
||||
is_view = "disnake.ui.View" in class_header or "(disnake.ui.View)" in class_header or "super().__init__(timeout=" in class_body
|
||||
is_modal = "disnake.ui.Modal" in class_header or "(disnake.ui.Modal)" in class_header or "super().__init__(title=" in class_body
|
||||
|
||||
if is_view:
|
||||
# Views use add_item
|
||||
class_body = class_body.replace("self.append_component(", "self.add_item(")
|
||||
# Ensure super().__init__ doesn't have components=[] if it's a view
|
||||
class_body = class_body.replace("super().__init__(components=[],", "super().__init__(")
|
||||
class_body = class_body.replace("super().__init__(components=[], ", "super().__init__(")
|
||||
|
||||
if is_modal:
|
||||
# Modals use append_component
|
||||
class_body = class_body.replace("self.add_item(", "self.append_component(")
|
||||
# Modals MUST have components=[] in super().__init__ if not already there
|
||||
# (My previous sed might have added it correctly)
|
||||
pass
|
||||
|
||||
new_content.append(class_header)
|
||||
new_content.append(class_body)
|
||||
|
||||
final_content = "".join(new_content)
|
||||
if final_content != content:
|
||||
with open(filepath, 'w', encoding='utf-8') as f:
|
||||
f.write(final_content)
|
||||
return True
|
||||
return False
|
||||
|
||||
for root, dirs, files in os.walk('commandes'):
|
||||
for file in files:
|
||||
if file.endswith('.py'):
|
||||
path = os.path.join(root, file)
|
||||
if fix_file(path):
|
||||
print(f"Fixed {path}")
|
||||
Loading…
Add table
Add a link
Reference in a new issue