diff --git a/folder-linker-v1.0.py b/folder-linker-v1.0.py new file mode 100644 index 0000000..5f732df --- /dev/null +++ b/folder-linker-v1.0.py @@ -0,0 +1,58 @@ +# ================================================================ +# AMPP Framelight X — Dragon-Wind Folder Linker +# v1.0 +# +# Replaces folder-organizer-v3.5.py. +# +# Dragon-Wind pre-creates all AMPP folder paths at upload time and +# stores the resulting folder:id. This script simply looks up that +# folder:id by filename and links the freshly-ingested asset to it. +# +# Result: zero folder creation logic here — no prefix parsing, +# no hierarchy walks, no duplicate-folder edge cases. +# +# Requirements: +# - WILD_DRAGON_API must be reachable from the AMPP node. +# - Asset must have been uploaded through Dragon-Wind (if not, +# the 404 path is handled gracefully — asset is skipped). +# +# Configuration: +# Set WILD_DRAGON_API to your Dragon-Wind MAM API base URL. +# ================================================================ +import json +import urllib.parse + +WILD_DRAGON_API = "https://wild-dragon.wilddragon.net" # update if needed + +asset_id = str(asset.Id) +asset_name = str(job.AssetName) + +try: + encoded_name = urllib.parse.quote(asset_name, safe="") + + resp = httpClient.sendAsync( + "GET", + WILD_DRAGON_API + "/api/v1/ampp/folder-for/" + encoded_name + ) + + if not isinstance(resp, dict): + raise ValueError("Unexpected response type from Dragon-Wind: " + str(type(resp))) + + folder_id = str(resp.get("folder_id", "")).strip() + + if not folder_id: + # Asset was not uploaded through Dragon-Wind — skip gracefully. + # To handle legacy assets still using filename prefixes, you can + # re-enable folder-organizer-v3.5.py here as a fallback. + pass + else: + link_body = json.dumps( + {"folder:id": folder_id, "asset:id": asset_id}, + separators=(',', ':') + ) + httpClient.sendAsync("POST", "api/v1/store/folder/references", link_body) + +except Exception as ex: + raise Exception( + "Dragon-Wind folder link failed for '" + asset_name + "': " + str(ex) + )