72
72
SearchMode ,
73
73
)
74
74
from src .core .library .alchemy .fields import _FieldID
75
- from src .core .library .alchemy .library import LibraryStatus
75
+ from src .core .library .alchemy .library import Entry , Library , LibraryStatus
76
76
from src .core .media_types import MediaCategories
77
77
from src .core .ts_core import TagStudioCore
78
78
from src .core .utils .refresh_dir import RefreshDirTracker
@@ -129,6 +129,7 @@ class QtDriver(DriverMixin, QObject):
129
129
SIGTERM = Signal ()
130
130
131
131
preview_panel : PreviewPanel
132
+ lib : Library
132
133
133
134
def __init__ (self , backend , args ):
134
135
super ().__init__ ()
@@ -786,9 +787,9 @@ def run_macros(self, name: MacroID, grid_idx: list[int]):
786
787
787
788
def run_macro (self , name : MacroID , grid_idx : int ):
788
789
"""Run a specific Macro on an Entry given a Macro name."""
789
- entry = self .frame_content [grid_idx ]
790
- ful_path = self .lib .library_dir / entry .path
791
- source = entry .path .parts [0 ]
790
+ entry : Entry = self .frame_content [grid_idx ]
791
+ full_path = self .lib .library_dir / entry .path
792
+ source = "" if entry .path .parent == Path ( "." ) else entry . path . parts [0 ]. lower ()
792
793
793
794
logger .info (
794
795
"running macro" ,
@@ -805,7 +806,7 @@ def run_macro(self, name: MacroID, grid_idx: int):
805
806
self .run_macro (macro_id , entry .id )
806
807
807
808
elif name == MacroID .SIDECAR :
808
- parsed_items = TagStudioCore .get_gdl_sidecar (ful_path , source )
809
+ parsed_items = TagStudioCore .get_gdl_sidecar (full_path , source )
809
810
for field_id , value in parsed_items .items ():
810
811
self .lib .add_entry_field_type (
811
812
entry .id ,
@@ -814,7 +815,7 @@ def run_macro(self, name: MacroID, grid_idx: int):
814
815
)
815
816
816
817
elif name == MacroID .BUILD_URL :
817
- url = TagStudioCore .build_url (entry . id , source )
818
+ url = TagStudioCore .build_url (entry , source )
818
819
self .lib .add_entry_field_type (entry .id , field_id = _FieldID .SOURCE , value = url )
819
820
elif name == MacroID .MATCH :
820
821
TagStudioCore .match_conditions (self .lib , entry .id )
0 commit comments