Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions namer/comparison_results.py
Original file line number Diff line number Diff line change
Expand Up @@ -236,6 +236,7 @@ def as_dict(self, config: NamerConfig):
'all_performer-sites': ', '.join(map(lambda p: p.name, filter(lambda p: p.alias, self.performers))) if self.performers else None,
'ext': self.original_parsed_filename.extension if self.original_parsed_filename else None,
'source_file_name': self.original_parsed_filename.source_file_name if self.original_parsed_filename else None,
'source_file_stem': self.original_parsed_filename.source_file_stem if self.original_parsed_filename else None,
'trans': self.original_parsed_filename.trans if self.original_parsed_filename else None,
'vr': vr,
'resolution': res_str,
Expand Down
9 changes: 8 additions & 1 deletion namer/fileinfo.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,10 @@ class FileInfo:
"""
What was originally parsed.
"""
source_file_stem: Optional[str] = None
"""
What was originally parsed without parsed extension.
"""
hashes: Optional[PerceptualHash] = None
"""
File hashes.
Expand All @@ -64,6 +68,7 @@ def __str__(self) -> str:
name: {self.name}
extension: {self.extension}
original full name: {self.source_file_name}
original full stem: {self.source_file_stem}
hashes: {self.hashes.to_dict() if self.hashes else None}
"""

Expand Down Expand Up @@ -130,8 +135,9 @@ def parse_file_name(filename: str, namer_config: NamerConfig) -> FileInfo:
"""
filename = replace_abbreviations(filename, namer_config)
regex = parser_config_to_regex(namer_config.name_parser)
path = PurePath(filename)
file_name_parts = FileInfo()
file_name_parts.extension = PurePath(filename).suffix[1:]
file_name_parts.extension = path.suffix[1:]
match = regex.search(filename)
if match:
if match.groupdict().get('year'):
Expand All @@ -150,6 +156,7 @@ def parse_file_name(filename: str, namer_config: NamerConfig) -> FileInfo:

file_name_parts.extension = match.group('ext')
file_name_parts.source_file_name = filename
file_name_parts.source_file_stem = path.stem
else:
logger.debug('Could not parse target name which may be a file (or directory) name depending on settings and input: {}', filename)

Expand Down
11 changes: 11 additions & 0 deletions namer/metadataapi.py
Original file line number Diff line number Diff line change
Expand Up @@ -603,6 +603,17 @@ def main(args_list: List[str]):
if results:
matched = results.get_match()
if matched:
if file_name.input_file.is_file():
ffprobe_results = config.ffmpeg.ffprobe(file_name.input_file)
if ffprobe_results:
matched.looked_up.resolution = ffprobe_results.get_resolution()

video = ffprobe_results.get_default_video_stream()
matched.looked_up.video_codec = video.codec_name if video else None

audio = ffprobe_results.get_default_audio_stream()
matched.looked_up.audio_codec = audio.codec_name if audio else None

name_template = get_inplace_name_template_by_type(config, matched.looked_up.type)

print(matched.looked_up.new_file_name(name_template, config))
Expand Down
1 change: 1 addition & 0 deletions namer/name_formatter.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ class PartialFormatter(string.Formatter):
'ext',
'trans',
'source_file_name',
'source_file_stem',
'uuid',
'vr',
'type',
Expand Down
1 change: 1 addition & 0 deletions namer/namer.cfg.default
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ name_parser = {_site}{_sep}{_optional_date}{_ts}{_name}{_dot}{_ext}
# * 'act' - an act, parsed from original file name, don't use.
# * 'ext' - original file's extension, you should keep this.
# * 'source_file_name' - original file name
# * 'source_file_stem' - What was originally parsed without parsed extension
# * 'video_codec' - video codec of file, like h264
# * 'audio_codec' - audio codec of file, like acc
# * 'trans' - 'TS', or 'ts' if detected in original file name.
Expand Down
30 changes: 15 additions & 15 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,42 +13,42 @@
},
"dependencies": {
"@popperjs/core": "^2.11.8",
"bootstrap": "^5.3.6",
"bootstrap": "^5.3.7",
"bootstrap-icons": "^1.13.1",
"datatables.net": "^2.3.1",
"datatables.net-bs5": "^2.3.1",
"datatables.net": "^2.3.2",
"datatables.net-bs5": "^2.3.2",
"datatables.net-buttons": "^3.2.3",
"datatables.net-buttons-bs5": "^3.2.3",
"datatables.net-colreorder": "^2.1.0",
"datatables.net-colreorder-bs5": "^2.1.0",
"datatables.net-fixedheader": "^4.0.2",
"datatables.net-fixedheader-bs5": "^4.0.2",
"datatables.net-colreorder": "^2.1.1",
"datatables.net-colreorder-bs5": "^2.1.1",
"datatables.net-fixedheader": "^4.0.3",
"datatables.net-fixedheader-bs5": "^4.0.3",
"datatables.net-responsive": "^3.0.4",
"datatables.net-responsive-bs5": "^3.0.4",
"jquery": "^3.7.1",
"lodash": "^4.17.21"
},
"devDependencies": {
"@babel/core": "^7.27.1",
"@babel/core": "^7.27.4",
"@babel/preset-env": "^7.27.2",
"@eslint/eslintrc": "^3.3.1",
"@eslint/js": "^9.27.0",
"@eslint/js": "^9.29.0",
"babel-loader": "^10.0.0",
"copy-webpack-plugin": "^13.0.0",
"css-loader": "^7.1.2",
"css-minimizer-webpack-plugin": "^7.0.2",
"eslint": "^9.27.0",
"eslint": "^9.29.0",
"eslint-config-standard": "^17.1.0",
"file-loader": "^6.2.0",
"globals": "^16.1.0",
"globals": "^16.2.0",
"html-minimizer-webpack-plugin": "^5.0.2",
"husky": "^9.1.7",
"lint-staged": "^16.0.0",
"lint-staged": "^16.1.2",
"mini-css-extract-plugin": "^2.9.2",
"postcss": "^8.5.3",
"postcss": "^8.5.6",
"postcss-loader": "^8.1.1",
"postcss-preset-env": "^10.1.6",
"sass": "^1.89.0",
"postcss-preset-env": "^10.2.3",
"sass": "^1.89.2",
"sass-loader": "^16.0.5",
"terser-webpack-plugin": "^5.3.14",
"webpack": "^5.99.9",
Expand Down
Loading