muzuiget / niconvert

弹幕转换工具
255 stars 33 forks source link

一个对自动设置输出文件名功能的修改 #29

Closed FrozenSky7124 closed 4 years ago

FrozenSky7124 commented 4 years ago

作者你好! 最近一直在用 Nicovert2.0 来转换 Bilibili 的弹幕,发现一个小问题:转换单个文件时,点击浏览按钮选择xml弹幕文件,会自动填充输出的ass文件路径。但我想转换多个文件时就发现自动填充输出文件路径的功能失效了。我查看了代码,发现是对输出文本框内的路径后缀检查的问题,于是修改了一下:

def on_input_filename_button_clicked(self):
        strvar = self.input_filename_strvar
        filetypes = [
            ('XML 文件', '*.xml'),
            ('JSON 文件', '*.json'),
        ]
        tku.on_filedialog(self, strvar=strvar, method='load',
                          defaultextension='.xml',
                          filetypes=filetypes)()

        # 自动设置输出文件名
        input_filename = strvar.get().strip()
        if input_filename == '':
            return
        ''' 取消自动设置输出文件名时对原来文本框内路径的检测
        output_filename = self.output_filename_strvar.get().strip()
        if output_filename.endswith('.ass'):
            return
        '''
        path = str(Path(input_filename).with_suffix('.ass'))
        self.output_filename_strvar.set(path)

这样可能会方便一些。 再次感谢您的 Niconver !🤗

muzuiget commented 4 years ago

没看懂,你注释那段代码就是,如果不是 .ass结尾,就自动加上 .ass,年代久远我到我都不知道当初怎么想得。

另外,你都会 Python 了,转换多个文件直接用命令行版就好了,或者直接用 Python,例子见

https://github.com/muzuiget/niconvert/blob/master/niconvert/fndcli/main.py

parse_args() 返回那几个 dict 硬编码一下就行了。

FrozenSky7124 commented 4 years ago

其实简单说就是注释的这段代码会导致自动设置输出文件名功能失效。只是方便一下,还是GUI好!