I'm getting a GraphQL Result of time="2023-01-14 03:55:37" level=error msg="[Plugin / Upscale Performer images] result:{'performerUpdate': {'id': '8417'}}" Should I change the mutation " mutation performerUpdate($performer\_update\_input: PerformerUpdateInput!){
 performerUpdate(input: $performer\_update\_input){
 id
 }
 }" to "mutation performerUpdate($performer\_update\_input: PerformerUpdateInput!){
 performerUpdate(input: $performer\_update\_input){
 id
 image\_path
 }
 }"

Also the following code is supposed to get all tags by performer in tags\_remove\_check. tags\_to\_remove, is the tag to be removed. tags\_id\_keep is to keep tags.
The logic is for each tag in tags\_remove\_check. if the tag\_to\_remove is not in tag\_keep, then update the tag\_ids\_keep with the tag\_keep\_id. Then update via GraphQl mutation an appending list of tag ids to keep
 tags\_remove\_check = self.findPerformersTagsbyID(performer\_id)
 self.error("tags\_remove: "+str(tags\_remove\_check))

 tag\_to\_remove = "Upscale " + tag
 self.error("tag\_to\_remove: "+tag\_to\_remove)
 tag\_ids\_keep = []

 for tag\_keep in tags\_remove\_check:
 tag\_keep\_id = self.findTagIdWithName(tag\_keep)
 self.error("tag\_keep: "+tag\_keep)
 self.error("tag\_keep\_id: "+tag\_keep\_id)

 if tag\_to\_remove not in tag\_keep:
 tag\_ids\_keep.append(tag\_keep\_id)
 self.error("tag\_ids\_keep: "+str(tag\_ids\_keep))
 else:
 pass # The else block does nothing

 upscaled\_name = "Upscaled: Performer Image"
 upscaled = self.findTagIdWithName(upscaled\_name)
 tag\_ids\_keep.append(upscaled)
 # remove the marker value
 self.error("tag\_ids\_keep + upscaled: "+str(tag\_ids\_keep))
 self.updatePerformerIDTagsWithID(performer\_id, tag\_ids\_keep). This is more of my code. def listTags(self):
 query = """
 query {
 allTags {
 id
 name
 }
 }"""

 result = self.\_\_callGraphQL(query)
 return result["allTags"]

 def delete\_file\_with\_permissions\_check(self, file\_path):
 if os.path.exists(file\_path):
 if os.access(file\_path, os.W\_OK):
 # The user has write permissions, so we can delete the file
 os.remove(file\_path)
 else:
 # The user does not have write permissions, raise an error or log the issue
 print("You do not have write permissions for this file.")
 log.error(
 "You do not have write permissions for this file: "+file\_path)

 def findTagIdWithName(self, tag\_names):
 query = """
 query {
 allTags {
 id
 name
 }
 }
 """
 result = self.\_\_callGraphQL(query)
 for tag in result["allTags"]:
 if tag["name"] in tag\_names:
 return tag["id"]
 return None

 def createTagWithName(self, name):
 query = """
mutation tagCreate($input:TagCreateInput!) {
 tagCreate(input: $input){
 id 
 }
}
"""
 variables = {'input': {
 'name': name
 }}

 result = self.\_\_callGraphQL(query, variables)
 return result["tagCreate"]["id"]

 def removeTagWithID(self, id):
 query = """
mutation tagDestroy($input: TagDestroyInput!) {
 tagDestroy(input: $input)
}
"""
 variables = {'input': {
 'id': id
 }}
 self.\_\_callGraphQL(query, variables)

 def updateTagImage(self, tag\_id, base64\_data):
 query = """
mutation tagUpdate($input: TagUpdateInput!){
 tagUpdate(input: $input){
 id
 image\_path
 }
 
}
"""
 variables = {'input': {
 'id': tag\_id,
 'image': base64\_data
 }}
 self.\_\_callGraphQL(query, variables)

 def updatePerformerIDTagsWithID(self, id, tag\_ids):
 query = """
mutation performerUpdates($input: PerformerUpdateInput!){
 performerUpdate(input: $input)
 {
 id
 tags{
 id
 }
 }
}
"""
 variables = {'input': {
 'id': id,
 'tag\_ids': tag\_ids
 }}
 self.\_\_callGraphQL(query, variables)

 def findPerformersByTag(self, id):
 query = """query performer\_images($performer\_filter: PerformerFilterType!) {
 findPerformers(performer\_filter: $performer\_filter filter: {per\_page: -1}){

 performers{
 id
 name
 image\_path
 tags{
 name
 }
 }
}
}"""
 variables = {'performer\_filter': {
 'tags': {
 'value': id, 'modifier': 'INCLUDES', 'depth': 1

 }
 }}
 result = self.\_\_callGraphQL(query, variables)
 performers = result["findPerformers"]["performers"]
 image\_paths\_tags = [(performer["image\_path"], performer["id"],
 performer["name"]) for performer in performers]
 return image\_paths\_tags

 def findPerformersTagsbyID(self, id):
 query = """query findPerformer($id: ID!){
 findPerformer(id: $id){
 tags{
 name
 }
 }
 }"""
 variables = {'id': id}
 result = self.\_\_callGraphQL(query, variables)
 performers\_tags = result["findPerformer"]["tags"]
 performers\_tags\_names = [performer["name"]
 for performer in performers\_tags]
 return performers\_tags\_names
GraphQL 결과 time="2023-01-14 03:55:37" level=error msg="[플러그인/업스케일 퍼포머 이미지] 결과:{'performerUpdate': {'id': '8417'}}"가 발생합니다. 변형을 변경해야 하나요?" 변형을 변경해야 하나요? performerUpdate($performer\_update\_input: PerformerUpdateInput!){
 performerUpdate(입력: $performer\_update\_input){
 id
 }
 }"를 "변이 performerUpdate($performer\_update\_input: PerformerUpdateInput!){
 performerUpdate(입력: $performer\_update\_input){
 id
 이미지\_경로
 }
 }"

또한 다음 코드는 tags\_remove\_check에서 performer별로 모든 태그를 가져오는 코드입니다. tags\_to\_remove는 제거할 태그이고, tags\_id\_keep은 태그를 보관하는 것입니다.
로직은 태그\_remove\_check의 각 태그에 대한 것입니다. 태그\_to\_remove가 태그\_keep에 없으면 태그\_ids\_keep을 태그\_keep\_id로 업데이트합니다. 그런 다음 GraphQl 변형을 통해 유지할 태그 ID의 추가 목록을 업데이트합니다.
 tags\_remove\_check = self.findPerformersTagsbyID(performer\_id)
 self.error("tags\_remove: "+str(tags\_remove\_check))

 태그\_to\_remove = "업스케일" + 태그
 self.error("tag\_to\_remove:"+tag\_to\_remove)
 tag\_ids\_keep = []

 태그\_유지\_유지 태그\_제거\_확인에 대해:
 tag\_keep\_id = self.findTagIdWithName(tag\_keep)
 self.error("태그\_유지:"+태그\_유지)
 self.error("태그\_유지\_id:"+태그\_유지\_id)

 태그\_to\_remove가 태그\_키워드에 없는 경우:
 tag\_ids\_keep.append(tag\_keep\_id)
 self.error("tag\_ids\_keep: "+str(tag\_ids\_keep))
 else:
 전달 # else 블록은 아무것도 하지 않습니다.

 upscaled\_name = "업스케일: 출연자 이미지"
 업스케일링 = self.findTagIdWithName(업스케일링\_이름)
 tag\_ids\_keep.append(upscaled)
 # 마커 값 제거
 self.error("tag\_ids\_keep + upscaled: "+str(tag\_ids\_keep))
 self.updatePerformerIDTagsWithID(performer\_id, tag\_ids\_keep). 다음은 제 코드입니다. def listTags(self):
 query = """
 query {
 allTags {
 id
 name
 }
 }"""

 result = self.\_\_callGraphQL(query)
 return result["allTags"]

 def delete\_file\_with\_permissions\_check(self, file\_path):
 if os.path.exists(file\_path):
 if os.access(file\_path, os.W\_OK):
 # 사용자에게 쓰기 권한이 있으므로 파일을 삭제할 수 있습니다.
 os.remove(file\_path)
 else:
 # 사용자에게 쓰기 권한이 없으므로 오류를 발생시키거나 문제를 기록합니다.
 print("이 파일에 대한 쓰기 권한이 없습니다.")
 log.error(
 "이 파일에 대한 쓰기 권한이 없습니다: "+파일\_경로)

 def findTagIdWithName(self, tag\_names):
 query = """
 query {
 allTags {
 id
 name
 }
 }
 """
 result = self.\_\_callGraphQL(query)
 for tag in result["allTags"]:
 if tag["name"] in tag\_names:
 return tag["id"]
 return None

 def createTagWithName(self, name):
 query = """
변이 tagCreate($input:TagCreateInput!) {
 tagCreate(input: $input){
 id 
 }
}
"""
 변수 = {'입력': {
 'name': 이름
 }}

 result = self.\_\_callGraphQL(쿼리, 변수)
 return result["tagCreate"]["id"]

 def removeTagWithID(self, id):
 query = """
mutation tagDestroy($input: TagDestroyInput!) {
 tagDestroy(입력: $input)
}
"""
 변수 = {'입력': {
 'id': id
 }}
 self.\_\_callGraphQL(쿼리, 변수)

 def updateTagImage(self, tag\_id, base64\_data):
 query = """
mutation tagUpdate($input: TagUpdateInput!){{
 tagUpdate(입력: $input){
 id
 이미지\_경로
 }
 
}
"""
 변수 = {'입력': {
 'id': tag\_id,
 '이미지': base64\_data
 }}
 self.\_\_callGraphQL(쿼리, 변수)

 def updatePerformerIDTagsWithID(self, id, tag\_ids):
 query = """
mutation performerUpdates($input: PerformerUpdateInput!){{
 performerUpdate(입력: $input)
 {
 id
 tags{
 id
 }
 }
}
"""
 변수 = {'입력': {
 'id': id,
 '태그\_ids': 태그\_ids
 }}
 self.\_\_callGraphQL(쿼리, 변수)

 def findPerformersByTag(self, id):
 query = """query performer\_images($performer\_filter: PerformerFilterType!) {
 findPerformers(performer\_filter: $performer\_filter filter: {per\_page: -1}){

 performers{
 id
 name
 이미지\_경로
 tags{
 name
 }
 }
}
}"""
 variables = {'performer\_filter': {
 'tags': {
 'value': id, 'modifier': 'INCLUDES', 'depth': 1

 }
 }}
 result = self.\_\_callGraphQL(쿼리, 변수)
 performers = result["findPerformers"]["performers"]
 image\_paths\_tags = [(performer["image\_path"], performer["id"],
 performer["name"]) 퍼포머의 퍼포머에 대해]
 반환 이미지\_경로\_tags

 def findPerformersTagsbyID(self, id):
 query = """query findPerformer($id: ID!){
 findPerformer(id: $id){
 tags{
 name
 }
 }
 }"""
 variables = {'id': id}
 result = self.\_\_callGraphQL(쿼리, 변수)
 performers\_tags = result["findPerformer"]["tags"]
 performers\_tags\_names = [performer["name"]
 performers\_tags의 performer에 대해]
 performers\_tags\_names 반환