mirror of
https://github.com/blw1138/Zordon.git
synced 2025-12-17 08:48:13 +00:00
get_project_info gets comp names from .aepx files now
This commit is contained in:
@@ -2,14 +2,14 @@ import glob
|
|||||||
import logging
|
import logging
|
||||||
import subprocess
|
import subprocess
|
||||||
|
|
||||||
from src.engines.core.base_engine import BaseRenderEngine, SUBPROCESS_TIMEOUT
|
from src.engines.core.base_engine import BaseRenderEngine
|
||||||
|
|
||||||
logger = logging.getLogger()
|
logger = logging.getLogger()
|
||||||
|
|
||||||
|
|
||||||
class AERender(BaseRenderEngine):
|
class AERender(BaseRenderEngine):
|
||||||
|
|
||||||
file_extensions = ['aep']
|
file_extensions = ['aepx']
|
||||||
|
|
||||||
def version(self):
|
def version(self):
|
||||||
version = None
|
version = None
|
||||||
@@ -29,8 +29,30 @@ class AERender(BaseRenderEngine):
|
|||||||
logger.warning('Multiple After Effects installations detected')
|
logger.warning('Multiple After Effects installations detected')
|
||||||
elif not paths:
|
elif not paths:
|
||||||
logger.error('After Effects installation not found')
|
logger.error('After Effects installation not found')
|
||||||
else:
|
return paths[0]
|
||||||
return paths[0]
|
|
||||||
|
def get_project_info(self, project_path, timeout=10):
|
||||||
|
scene_info = {}
|
||||||
|
try:
|
||||||
|
import xml.etree.ElementTree as ET
|
||||||
|
|
||||||
|
tree = ET.parse(project_path)
|
||||||
|
root = tree.getroot()
|
||||||
|
namespace = {'ae': 'http://www.adobe.com/products/aftereffects'}
|
||||||
|
|
||||||
|
comp_names = []
|
||||||
|
for item in root.findall(".//ae:Item", namespace):
|
||||||
|
if item.find("ae:Layr", namespace) is not None:
|
||||||
|
for string in item.findall("./ae:string", namespace):
|
||||||
|
comp_names.append(string.text)
|
||||||
|
scene_info['comp_names'] = comp_names
|
||||||
|
except Exception as e:
|
||||||
|
logger.error(f'Error getting file details for .aepx file: {e}')
|
||||||
|
return scene_info
|
||||||
|
|
||||||
|
def run_javascript(self, script_path, project_path, timeout=None):
|
||||||
|
# todo: implement
|
||||||
|
pass
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_output_formats(cls):
|
def get_output_formats(cls):
|
||||||
@@ -39,5 +61,5 @@ class AERender(BaseRenderEngine):
|
|||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
x = AERender().supported_extensions()
|
x = AERender().get_project_info('/Users/brett/ae_testing/project.aepx')
|
||||||
print(x)
|
print(x)
|
||||||
|
|||||||
Reference in New Issue
Block a user