58 lines
1.5 KiB
Python
58 lines
1.5 KiB
Python
import json
|
|
import os
|
|
import sys
|
|
|
|
# to import from a parent directory we need to add that directory to the system path
|
|
csd = os.path.dirname(os.path.realpath(__file__)) # get current script directory
|
|
parent = os.path.dirname(csd) # parent directory (should be the scrapers one)
|
|
sys.path.append(
|
|
parent
|
|
) # add parent dir to sys path so that we can import py_common from ther
|
|
|
|
try:
|
|
from py_common import graphql
|
|
from py_common import log
|
|
except ModuleNotFoundError:
|
|
print(
|
|
"You need to download the folder 'py_common' from the community repo! (CommunityScrapers/tree/master/scrapers/py_common)",
|
|
file=sys.stderr,
|
|
)
|
|
sys.exit()
|
|
|
|
REMOVE_EXT = False # remove file extension from title
|
|
|
|
|
|
def title_from_filename(js):
|
|
scene_id = js["id"]
|
|
scene_title = js["title"]
|
|
response = graphql.callGraphQL(
|
|
"""
|
|
query FilenameBySceneId($id: ID){
|
|
findScene(id: $id){
|
|
files {
|
|
path
|
|
}
|
|
}
|
|
}""",
|
|
{"id": scene_id},
|
|
)
|
|
assert response is not None
|
|
path = response["findScene"]["files"][0]["path"]
|
|
filename = os.path.basename(path)
|
|
if REMOVE_EXT:
|
|
filename = os.path.splitext(filename)[0]
|
|
if scene_title != filename:
|
|
log.info(
|
|
f"Scene {scene_id}: Title differs from filename: '{scene_title}' => '{filename}'"
|
|
)
|
|
return {"title": filename}
|
|
return {}
|
|
|
|
|
|
input = sys.stdin.read()
|
|
js = json.loads(input)
|
|
|
|
if sys.argv[1] == "title_from_filename":
|
|
ret = title_from_filename(js)
|
|
print(json.dumps(ret))
|