1+ import stashapi .log as log
12from stashapi .stashapp import StashInterface
23import sys
34import json
45
56def processAll ():
7+ exclusion_marker_tag_id = None
8+ if settings ["excludeImageWithTag" ] != "" :
9+ exclussion_marker_tag = stash .find_tag (settings ["excludeImageWithTag" ])
10+ if exclussion_marker_tag is not None :
11+ exclusion_marker_tag_id = exclussion_marker_tag ['id' ]
12+
613 query = {
714 "tags" : {
815 "modifier" : "NOT_NULL" ,
@@ -12,25 +19,50 @@ def processAll():
1219 "value" : 0 ,
1320 },
1421 }
15- performersTotal = stash .find_performers (f = query , get_count = True )[0 ]
22+ performersTotal = stash .find_performers (f = query , filter = { "page" : 0 , "per_page" : 0 }, get_count = True )[0 ]
1623 i = 0
17- tags = []
18- images = []
1924 while i < performersTotal :
2025 perf = stash .find_performers (f = query , filter = {"page" : i , "per_page" : 1 })
21- for tag in perf [0 ]["tags" ]:
22- tags .append (tag ["id" ])
23- for image in perf [0 ]["images" ]:
24- images .append (image ["id" ])
25- stash .update_images (
26- {
27- "ids" : images ,
28- "tag_ids" : {"mode" : "ADD" , "ids" : tags },
26+
27+ performer_tags_ids = []
28+ performer_tags_names = []
29+ for performer_tag in perf [0 ]["tags" ]:
30+ performer_tags_ids .append (performer_tag ["id" ])
31+ performer_tags_names .append (performer_tag ["name" ])
32+
33+ image_query = {
34+ "performers" : {
35+ "value" : [perf [0 ]["id" ]],
36+ "modifier" : "INCLUDES_ALL"
2937 }
30- )
38+ }
39+ if settings ['excludeImageOrganized' ]:
40+ image_query ["organized" ] = False
41+ if exclusion_marker_tag_id is not None :
42+ image_query ["tags" ] = {
43+ "value" : [exclusion_marker_tag_id ],
44+ "modifier" : "EXCLUDES"
45+ }
46+
47+ performer_image_count = stash .find_images (f = image_query , filter = {"page" : 0 , "per_page" : 0 }, get_count = True )[0 ]
48+
49+ log .info (f"updating { performer_image_count } images of performer \" { perf [0 ]['name' ]} \" with tags { performer_tags_names } " )
50+
51+ performer_image_page_size = 100
52+ performer_image_page = 0
53+ while performer_image_page * performer_image_page_size < performer_image_count :
54+ performer_images = stash .find_images (f = image_query , filter = {"page" : performer_image_page , "per_page" : performer_image_page_size }, fragment = 'id' )
55+ performer_image_ids = [performer_image ['id' ] for performer_image in performer_images ]
56+
57+ stash .update_images (
58+ {
59+ "ids" : performer_image_ids ,
60+ "tag_ids" : {"mode" : "ADD" , "ids" : performer_tags_ids },
61+ }
62+ )
63+ performer_image_page += 1
64+
3165 i = i + 1
32- tags = []
33- images = []
3466
3567
3668def processImage (image ):
0 commit comments