ccf-2012 / torcp

A script to rename and copy downloaded files to a target in Emby-happy way:
163 stars 19 forks source link

在 --move-run 模式下,能否增加移动文件夹内其他所有文件或者只排除特定类型文件的功能? #12

Open dextersa opened 2 years ago

dextersa commented 2 years ago

这个#11一些诉求有些类似 在处理剧集的时候如果影片目录下放置了 角色歌等其他文件,不会在move的时候移走,会导致改名后还要逐个检查源文件夹里面的东西。 我尝试了-e参数,可以实现该功能,但是如果里面的东西后缀有时候五花八门,我尝试了*参数会报错,是我没有使用正确吗?

同时,在对影片文件改名的时候是否可以对同名的.JPG .ASS 等进行改名并移走?

caicaijiji commented 2 years ago

同样需要ASS的改名,不这样的话字幕就消失了

ccf-2012 commented 2 years ago

d4b72b22

修改-e 参数,允许使用 -e all 使得所有文件都相应处理。 相应处理的意思是:

当前尚未发到pip上,供源码使用测试,即使用 这里所述的方法

dextersa commented 2 years ago

高!

dextersa commented 2 years ago

测试中还是会发生一种问题, 如果该文件夹中还有子文件夹,子文件夹内的东西不会被移走, 例如我的“冰菓 (2012) ”文件夹下的所有文件,会被顺利移走,但有一个“Extra”文件夹,这个文件夹里全是特典CD之类的,不会被移走。 猜测了一下你的代码实现机制,不过这个情况似乎是不是无法解决?

ccf-2012 commented 2 years ago

测试中还是会发生一种问题, 如果该文件夹中还有子文件夹,子文件夹内的东西不会被移走, 例如我的“冰菓 (2012) ”文件夹下的所有文件,会被顺利移走,但有一个“Extra”文件夹,这个文件夹里全是特典CD之类的,不会被移走。 猜测了一下你的代码实现机制,不过这个情况似乎是不是无法解决?

在找一个电影或剧集时,不会处理其中的子文件夹,比如Extras, Sp等都会忽略。 如果你在move-run之后还想处理大批的残留的Extras文件夹,可以写脚本再刷一次,比如建立一个 torcp_sp.sh

#!/bin/bash
DIRROOT=$1
SPDIR=$2

# 要作硬链改名的目标位置
EMBY_DIR="/mount/gd/emby/result"

if [ $# -ne 2 ]
then
    echo "Usage: $0 {dir-name}  {spdir-name}"
    exit 1
fi

for entry in "$DIRROOT"/*/; do
  if [[ -d "$entry" ]];then
#    echo "$entry"
    if [[ -d "$entry"/"$SPDIR" ]]; then
        echo "找到 $SPDIR 目录: $entry"/"$SPDIR"
        bn=$(basename "$entry")
        echo "mv $entry/$SPDIR $entry/$bn"
        mv "$entry/$SPDIR" "$entry/$bn"
        sleep 5
        # 在这写完整 torcp 参数
        torcp "$entry"/"$bn"  -d "$EMBY_DIR" 
    fi
  fi
done

然后运行:

sh torcp_sp.sh /some/test/dir   Extras