This commit is contained in:
parent
294ded0621
commit
cddc09b336
2 changed files with 334 additions and 0 deletions
15
lxc3/namer.yml
Normal file
15
lxc3/namer.yml
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
services:
|
||||
namer1:
|
||||
container_name: namer1
|
||||
image: ghcr.io/theporndatabase/namer:latest
|
||||
environment:
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
- NAMER_CONFIG=/config/namer.cfg
|
||||
volumes:
|
||||
- /docker/namer:/config
|
||||
- /pool/other/namer/failed:/mnt/sorting/failed
|
||||
- /pool/other/namer/renamed:/mnt/sorting/tagged
|
||||
- /pool/other/namer/watch:/mnt/sorting/watch
|
||||
- /pool/other/namer/work:/mnt/sorting/work
|
||||
restart: always
|
||||
319
lxc3/namer/namer.cfg
Normal file
319
lxc3/namer/namer.cfg
Normal file
|
|
@ -0,0 +1,319 @@
|
|||
[namer]
|
||||
|
||||
# token to access porndb.
|
||||
# sign up here: https://theporndb.net/register
|
||||
porndb_token = uzmdtpIZpGtZG0G5J2pU8Aifk0ldtTRrSD8ZlxMndd4755f9
|
||||
|
||||
# You should likely never edit this, unless you know regex really well and wont ask for help when you mess up.
|
||||
# Seriously don't edit it.
|
||||
name_parser = {_site}{_sep}{_optional_date}{_ts}{_name}{_dot}{_ext}
|
||||
|
||||
# How to write output file name. When namer.py is run this is applied in place
|
||||
# (next to the file to be processed).
|
||||
# If you are running watchdog see new_relative_path_name in the watchdog section.
|
||||
#
|
||||
# Supports stand python 3 formatting, as well as:
|
||||
# * a prefix:
|
||||
# {site: 1p} - in this case put one space in front of the 'site', so ' Vixen'
|
||||
# * a suffix:
|
||||
# {date:_1s} - in this case put one underscore after the 'date', so '2020-01-01_'
|
||||
# * an infix:
|
||||
# {date:_2i} - in this case put two underscore before and after the 'date', so '__2020-01-01__'
|
||||
#
|
||||
# Examples:
|
||||
# * {site} - {date} - {scene}.{ext}
|
||||
# * {site}/{date}.{scene}.{ext}
|
||||
#
|
||||
# Missing values will be ignored.
|
||||
#
|
||||
# Allowed replacements:
|
||||
#
|
||||
# * 'date' - in the format of YYYY-MM-DD.
|
||||
# * 'year' - just the year of the scene/movie.
|
||||
# * 'description' - too long, don't use in a name.
|
||||
# * 'name' - the scene/movie name
|
||||
# * 'site' - the site or studio name, BrazzersExxtra, AllHerLuv, Deeper, etc with spaces removed.
|
||||
# * 'full_site' - the full site/studio name from porndb, unmodified, i.e: Brazzers Exxtra, All Her Luv, etc.
|
||||
# * 'parent' - the parent site/studio name from porndb, unmodified, i.e: Brazzers, etc.
|
||||
# * 'full_parent' - the parent full site/studio name from porndb, unmodified, i.e: Brazzers, Vixen, etc.
|
||||
# * 'network' - the network site or studio name, MindGeek, Vixen, etc with spaces removed.
|
||||
# * 'full_network' - the network full site/studio name from porndb, unmodified, i.e: Mind Geek, Vixen, etc.
|
||||
# * 'performers' - comma seperated list of female performers
|
||||
# * 'all_performers' - comma seperated list of all performers
|
||||
# * 'performer-sites' - comma seperated list of female performer-sites
|
||||
# * 'all_performer-sites' - comma seperated list of all performer-sites
|
||||
# * '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.
|
||||
# * 'type' - "movie" or "scene" depending on tpdb api used to find the metadata (/scenes or /movies)
|
||||
# * 'resolution' - 480p, 720p, 1080p, 4k, or any other integer
|
||||
# * 'vr', is the studio is a known vr studio, 'vr', else '', can be used for folder names, like ../adult{vr}/..
|
||||
#
|
||||
# This should not contain paths, as files will be processed in place when called on the command line from namer.
|
||||
#
|
||||
# Also note that jinja2 filters are support:
|
||||
# https://jinja.palletsprojects.com/en/3.1.x/templates/#list-of-builtin-filters
|
||||
# Like {site:|lower} or {name:|title|replace(' ', '.'))}
|
||||
inplace_name={full_site} - {date} - {name} [WEBDL-{resolution}].{ext}
|
||||
|
||||
#inplace_name_scene=
|
||||
#inplace_name_movie=
|
||||
#inplace_name_jav=
|
||||
|
||||
# If a directory name is to be preferred over a file name.
|
||||
# Directories are calculated by taking the first part of a relative path
|
||||
# to the watch_dir location, or as input to namer via -d parameter.
|
||||
prefer_dir_name_if_available = True
|
||||
|
||||
# minimum file size to process in MB, ignored if a file is to be processed
|
||||
min_file_size = 1
|
||||
|
||||
# Should namer's comparison log be written next to successfully moved videos.
|
||||
write_namer_log = False
|
||||
|
||||
# Should namer's comparison log be written next to failed videos.
|
||||
write_namer_failed_log = True
|
||||
|
||||
# Comma separated list of extensions for namer to process (in order of preference in case multiple types exist in a target directory)
|
||||
# Case insensitive, Only mp4 supports tagging.
|
||||
target_extensions = mp4,mkv,avi,mov,flv,wmv,mpg,mpeg,ts,webm,3gp,f4v,f4a,f4b,f4p,m4a,m4v
|
||||
|
||||
# Should new and moved files have permissions and ownership set.
|
||||
update_permissions_ownership = False
|
||||
|
||||
# Settings for new/moved files/dirs.
|
||||
set_dir_permissions = 775
|
||||
set_file_permissions = 664
|
||||
|
||||
# Setting uid and groupid for new and moved files.
|
||||
# Use the id numbers, not names. Defaults to process uid/gid in non windows systems.
|
||||
|
||||
#set_uid =
|
||||
#set_gid =
|
||||
|
||||
# If you want the trailers downloaded set the value relative to the final location of the movie file here.
|
||||
# Currently assumes directory per video, and doesn't work in vast majority of cases (cdns with caches busted,
|
||||
# expired view tokens, etc.)
|
||||
# Plex: Trailers/trailer.{ext}, or extras/Trailer-trailer.{ext}
|
||||
# Jellyfin: trailer/trailer.{ext}
|
||||
# Extensions are handled by the download's mime type.
|
||||
# Leave empty to not download trailers.
|
||||
trailer_location =
|
||||
|
||||
# Comma seperated list of sites whose date information in tpdb is known to be sketchy at best as the
|
||||
# values are set to the scrape time, not the video release date.
|
||||
sites_with_no_date_info =
|
||||
|
||||
# Comma seperated list of sites/studios whose Sites/Studios where namer will prefer matching movies
|
||||
# instead of scenes as default behavior
|
||||
# will also switch the type flag from 'movie' to 'scene'.
|
||||
movie_data_preferred = missax
|
||||
|
||||
# Comma seperated list of vr studios, this will be used to set the vr name flag.
|
||||
vr_studios = 18 VR,Babe VR,Badoink VR,Dorm Room,Kink VR,Real VR,RealJamVR,Sex Like Real,SexBabesVR,SinsVR,SLR Originals,Swallowbay,Virtual Taboo,VirtualRealPorn,VR Bangers,VR Cosplay X,VR Hush,VRConk,VRedging,Wankz VR
|
||||
|
||||
# a set of tags that indicates an individual video is vr.
|
||||
vr_tags = virtual reality, vr porn
|
||||
|
||||
# Site abbreviations are short strings converted to longer strings in the site section of a parse file name.
|
||||
# Useful to match files whose names include the abbreviations rather than full site names.
|
||||
# A one line json string that should be a map.
|
||||
site_abbreviations = {"bex" : "BrazzersExxtra", "ps": "PropertySex"}
|
||||
|
||||
# When guessing at matches namer can use performer names to attempt to match. This can be costly in terms of cpu time.
|
||||
# Plus who lists all the performers if over 6 on a scene's name? You can increase this, but the cpu/runtime cost increases
|
||||
# rapidly (combinatorial)
|
||||
max_performer_names = 6
|
||||
|
||||
# When plex hack is set to True, any matches of e##s## are removed from the Scene name.
|
||||
plex_hack = False
|
||||
|
||||
# Cleanup final filename
|
||||
path_cleanup = False
|
||||
|
||||
# Path where stores namer system data.
|
||||
database_path = /mnt/config/database
|
||||
|
||||
# use namer database.
|
||||
use_database = False
|
||||
|
||||
# Cache http requests
|
||||
use_requests_cache = True
|
||||
|
||||
# Amount of minutes that http request would be in cache
|
||||
requests_cache_expire_minutes = 10
|
||||
|
||||
# Leave this unset unless you are testing a new tpdb endpoint.
|
||||
override_tpdb_address =
|
||||
|
||||
# Without modify the enconding where possible covert container (aka file types) to this
|
||||
# desired container type ("mp4", "mkv", "avi", ect), plugged in to the command:
|
||||
# "ffmpeg -i input.mkv -c copy output.<type>"
|
||||
convert_container_to =
|
||||
|
||||
[Phash]
|
||||
# Calculate and use phashes in search for matches
|
||||
search_phash = True
|
||||
|
||||
# Should phashes be sent to tpdb if no phash match was found but a name match was.
|
||||
# Requires search_phash be true or is ignored.
|
||||
send_phash = False
|
||||
|
||||
# Use alternative phash generator (might be faster, not 100% compatible)
|
||||
use_alt_phash_tool = False
|
||||
|
||||
# Max ffmpeg processes for alternative phash generation, empty for auto select
|
||||
max_ffmpeg_workers =
|
||||
|
||||
# Use gpu for alternative phash generation
|
||||
use_gpu = False
|
||||
|
||||
[metadata]
|
||||
# Currently metadata pulled from the porndb can be added to mp4 files or .nfo files.
|
||||
# MP4 metadata will be read in fully by Plex, and Apple TV app, partially by Jellyfin (no artist support).
|
||||
# Metadata includes, Title, Release Date, Scene Name, Artist, Source URL, XXX Movie rating.
|
||||
# If a file is not an mp4 adding metadata at this time isn't supported.
|
||||
# .nfo files are supported by a number of players, though some require plugins.
|
||||
|
||||
# Write an nfo file next to the directory in an emby/jellyfin readable format
|
||||
write_nfo = False
|
||||
|
||||
# Should metadata fetched from the porn db be written in to the metadata of the mp4.
|
||||
enabled_tagging = True
|
||||
|
||||
# Should the poster fetched from the porn db be written in to the metadata of the mp4.
|
||||
# This poster will be displayed in Plex, Jellyfin and Apple TV app.
|
||||
# Controls downloading of images for .nfo and mp4 tagging.
|
||||
enabled_poster = False
|
||||
|
||||
# List of which images would be downloaded options are: poster,background,performer
|
||||
download_type = poster,background,performer
|
||||
|
||||
# Downloaded images format: png or jpeg
|
||||
image_format = png
|
||||
|
||||
# These genres are noisey and not recommend for use. If this is false a single default
|
||||
# genre will be used. These are called Tags on the porndb json response objects, genre's
|
||||
# in plex/jellyfin - and could be added as Tags to jellyfin. Unfortunately jellyfin doesn't
|
||||
# support searching tags, so tpdb jellyfin plugin writes tags to genres, this flag will
|
||||
# mirror that behavior for mp4s and .nfo files. It does appear jellyfin will get tag filtering
|
||||
# in the 10.8 release due to a few prs out there.
|
||||
enable_metadataapi_genres = False
|
||||
|
||||
# If genre's are not copied this is the default genre added to files.
|
||||
# Default value is adult.
|
||||
default_genre = Adult
|
||||
|
||||
# if language is set it will be used to select the default audio stream in an mp4 that has too many default stream
|
||||
# to play correct in quicktime/apple tv. If the language isn't found or is already the only default no action is
|
||||
# taken, no streams (audio/video) are re-encoded. See: https://iso639-3.sil.org/code_tables/639/data/
|
||||
language = eng
|
||||
|
||||
# Should tpdb be used to keep track of which videos you've collected?
|
||||
mark_collected = true
|
||||
|
||||
[duplicates]
|
||||
|
||||
# If this is set to false duplicates will be discarded, and a rough selection criteria can be configured below
|
||||
# to select the retained video
|
||||
preserve_duplicates = False
|
||||
|
||||
# If set to -1, no max resolution is set. Others selecting 720, 1080, 2160, 4380, etc will limit retained videos
|
||||
# to the desired resolution. If a too large video is the only one available it will be retained. Defautls to 4380
|
||||
max_desired_resolutions = -1
|
||||
|
||||
# The codecs in order that you want to retain.
|
||||
# by default hevc is preferred to h264, which is preferred vs everything else.
|
||||
desired_codec = hevc, h264
|
||||
|
||||
[watchdog]
|
||||
|
||||
# If the file path found by watcher matches this regex, it will not trigger processing.
|
||||
ignored_dir_regex = .*_UNPACK_.*
|
||||
|
||||
# when processing a directory should other files be removed.
|
||||
# to keep other files this must be false and new_relative_path_name must contain a directory split, "/"
|
||||
del_other_files = False
|
||||
|
||||
# After a video has appeared in the watch dir, an extra number of seconds to wait to allow the
|
||||
# copying or unzipping of other files in to that directory. Prevents leaving orphaned files in dirs with
|
||||
# with no movies of you have del_other_files set to True.
|
||||
extra_sleep_time = 30
|
||||
|
||||
# Maximum amount of items in queue
|
||||
queue_limit = 0
|
||||
|
||||
# Sleep time between queue size check
|
||||
queue_sleep_time = 5
|
||||
|
||||
# Configured like inplace_name above, but with paths, and is relative to
|
||||
# dest_dir, which is where completed files will be moved to.
|
||||
new_relative_path_name={full_site} - {date} - {name}.{ext}
|
||||
|
||||
new_relative_path_name_scene=
|
||||
new_relative_path_name_movie=
|
||||
new_relative_path_name_jav=
|
||||
|
||||
# director where new downloads go.
|
||||
watch_dir = /mnt/sorting/watch
|
||||
|
||||
# temporary directory where work is done.
|
||||
# a log file shows attempted matches and match closeness.
|
||||
work_dir = /mnt/sorting/work
|
||||
|
||||
# Should processing fail the file or directory is moved here.
|
||||
# retries occur every 12 hours. Files can be manually moved to watch-dir
|
||||
# to force reprocessing.
|
||||
failed_dir = /mnt/sorting/failed
|
||||
|
||||
# dir where finalized files get written.
|
||||
dest_dir = /mnt/sorting/tagged
|
||||
|
||||
# When to retry failed items, default is a random minute during the 3 am hour in your timezone.
|
||||
retry_time =
|
||||
|
||||
# Run webserver while running watchdog.
|
||||
web = True
|
||||
|
||||
# port to run on
|
||||
port = 6980
|
||||
|
||||
# target host
|
||||
host = 0.0.0.0
|
||||
|
||||
# webroot (root url to place pages), useful for reverse proxies
|
||||
#web_root =
|
||||
|
||||
# Allow to delete files in web interface
|
||||
allow_delete_files = False
|
||||
|
||||
# Add columns from failed log to table in web interface
|
||||
add_columns_from_log = False
|
||||
|
||||
# Add creation date from failed log to table in web interface
|
||||
add_complete_column = False
|
||||
|
||||
# Set logger level to debug
|
||||
debug = True
|
||||
|
||||
# Set logger output format
|
||||
console_format = <green>{time:YYYY-MM-DD HH:mm:ss}</green> | <level>{level.icon} {level: <8}</level> | {message}
|
||||
|
||||
# Manual mode, successful matches will go to failed directory
|
||||
manual_mode = False
|
||||
|
||||
# Errors may be raised by the program, and when they are loguru may be used to help explain them, showing
|
||||
# values in the stack trace, potentially including the porndb token, this setting should only be turned on
|
||||
# if you are going to check an logs you share for your token.
|
||||
diagnose_errors = False
|
||||
|
||||
[webhook]
|
||||
# Enable webhook notification when a file is successfully renamed
|
||||
webhook_enabled = False
|
||||
|
||||
# URL to send HTTP POST notification to when a file is successfully renamed
|
||||
#webhook_url =
|
||||
Loading…
Reference in a new issue