From c612d0601ec1ba2886019fe57d37065185240806 Mon Sep 17 00:00:00 2001 From: donlothario Date: Mon, 11 Aug 2025 13:23:51 +0200 Subject: [PATCH 1/2] Update tpdbMarkers.py --- plugins/TPDBMarkers/tpdbMarkers.py | 84 ++++++++++++++++++++---------- 1 file changed, 57 insertions(+), 27 deletions(-) diff --git a/plugins/TPDBMarkers/tpdbMarkers.py b/plugins/TPDBMarkers/tpdbMarkers.py index fb46d24b..8a18ce55 100644 --- a/plugins/TPDBMarkers/tpdbMarkers.py +++ b/plugins/TPDBMarkers/tpdbMarkers.py @@ -11,8 +11,18 @@ request_s = requests.Session() TPDB_ENDPOINT = "https://theporndb.net/graphql" +tags_cache = {} + + +def getTag(name): + if name not in tags_cache: + tag = stash.find_tag(name, create=True) + tags_cache[name] = tag.get("id") + return tags_cache[name] + def processScene(scene): + getTag("[TPDBMarker]") for sid in scene["stash_ids"]: if sid["endpoint"] == TPDB_ENDPOINT: log.debug("Scene has a TPDB stash id, looking up %s " % (sid["stash_id"],)) @@ -26,24 +36,35 @@ def processScene(scene): markers = [] for m in data["markers"]: log.debug(m) + marker = { "title": m["title"], - "primary_tag": m["title"], + "primary_tag": None, "tags": [], "seconds": m["start_time"], } + if settings["addTPDBMarkerTag"]: + marker["tags"].append(int(getTag("[TPDBMarker]"))) + + if settings["addTPDBMarkerTitle"]: + marker["title"] = f"[TPDBMarker] {m["title"]}" + markers.append(marker) if len(markers) > 0: log.info("Saving markers") - mp.import_scene_markers(stash, markers, scene["id"], 15) + if settings["overwriteMarkers"]: + stash.destroy_scene_markers(scene["id"]) + mp.import_scene_markers(stash, markers, scene["id"], 15) + elif (len(scene["scene_markers"]) == 0 or settings["mergeMarkers"]): + mp.import_scene_markers(stash, markers, scene["id"], 15) # skip if there is already a movie linked if settings["createMovieFromScene"] and len(scene.get("movies", [])) == 0: movies=[] for m in data["movies"]: - movie=processMovie(m) - if movie: - movies.append({"movie_id": movie["id"],"scene_index":None}) + movie=processMovie(m) + if movie: + movies.append({"movie_id": movie["id"],"scene_index":None}) log.debug(movies) if len(movies) > 0: stash.update_scene({'id':scene["id"],"movies":movies}) @@ -56,21 +77,23 @@ def processScene(scene): def processAll(): log.info("Getting scene count") skip_sync_tag_id = stash.find_tag("[TPDB: Skip Marker]", create=True).get("id") - count = stash.find_scenes( - f={ - "stash_id_endpoint": { - "endpoint": TPDB_ENDPOINT, - "modifier": "NOT_NULL", - "stash_id": "", - }, - "has_markers": "false", - "tags": { - "depth": 0, - "excludes": [skip_sync_tag_id], - "modifier": "INCLUDES_ALL", - "value": [], - }, + f = { + "stash_id_endpoint": { + "endpoint": TPDB_ENDPOINT, + "modifier": "NOT_NULL", + "stash_id": "", + }, + "tags": { + "depth": 0, + "excludes": [skip_sync_tag_id], + "modifier": "INCLUDES_ALL", + "value": [], }, + } + if not settings["runOnScenesWithMarkers"]: + f["has_markers"] = "false" + count = stash.find_scenes( + f, filter={"per_page": 1}, get_count=True, )[0] @@ -85,15 +108,17 @@ def processAll(): (i / count) * 100, ) ) - scenes = stash.find_scenes( - f={ - "stash_id_endpoint": { - "endpoint": TPDB_ENDPOINT, - "modifier": "NOT_NULL", - "stash_id": "", - }, - "has_markers": "false", + f = { + "stash_id_endpoint": { + "endpoint": TPDB_ENDPOINT, + "modifier": "NOT_NULL", + "stash_id": "", }, + } + if not settings["runOnScenesWithMarkers"]: + f["has_markers"] = "false" + scenes = stash.find_scenes( + f, filter={"page": r, "per_page": per_page}, ) for s in scenes: @@ -155,6 +180,11 @@ def processMovie(m): settings = { "disableSceneMarkerHook": False, "createMovieFromScene":True, + "addTPDBMarkerTag": False, + "addTPDBMarkerTitle": False, + "runOnScenesWithMarkers": False, + "overwriteMarkers": False, + "mergeMarkers": False, } if "tPdBmarkers" in config: settings.update(config["tPdBmarkers"]) From 6a4cb75ccaac0a662533b2fcb20f5b6623a1e446 Mon Sep 17 00:00:00 2001 From: donlothario Date: Mon, 11 Aug 2025 13:24:12 +0200 Subject: [PATCH 2/2] Update TPDBMarkers.yml --- plugins/TPDBMarkers/TPDBMarkers.yml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/plugins/TPDBMarkers/TPDBMarkers.yml b/plugins/TPDBMarkers/TPDBMarkers.yml index 568ed3d3..5561f3d1 100644 --- a/plugins/TPDBMarkers/TPDBMarkers.yml +++ b/plugins/TPDBMarkers/TPDBMarkers.yml @@ -21,6 +21,21 @@ settings: displayName: Create Movie from scene description: If there is a Movie linked to the scene in the timestamp.trade database automatically create a movie in stash with that info type: BOOLEAN + runOnScenesWithMarkers: + displayName: Run on scenes that already have markers. + type: BOOLEAN + addTPDBMarkerTag: + displayName: Add the [TPDBMarker] tag to created markers. + type: BOOLEAN + addTPDBMarkerTitle: + displayName: Add "[TPDBMarker]" to the start of generated marker titles. + type: BOOLEAN + overwriteMarkers: + displayName: Overwrite Markers + type: BOOLEAN + mergeMarkers: + displayName: Merge Markers + type: BOOLEAN tasks: - name: "Sync" description: Get markers for all scenes with a stashid from theporndb.net and no markers