极简媒体管理器
mmm的Python项目详细描述
File : README.md Maintainer : Felix C. Stegerman <flx@obfusk.net> Date : 2018-09-16 Copyright : Copyright (C) 2018 Felix C. Stegerman Version : v0.4.2 License : GPLv3+
PyPI VersionBuild StatusGPLv3+
说明
M-极简媒体管理器
m跟踪您播放过(或仍在播放)的文件 因此,您可以轻松地继续播放下一个文件(使用VLC或 多用途车)。
- 支持从Kodi导入现有的播放/监视数据。
- 将其数据存储在~/.obfusk-m中的json文件中(每个目录一个); 如果需要更改日志,可以将此目录放入git:)
注意:从VLC配置和MPV输出中提取时间戳是 小矮子:(
注意:m使用$PWD确保它看到的当前路径与 运行它的shell(即,它不通过以下方式解析路径 符号链接,允许重新定位链接目标);不幸的是, 这意味着不如果两个目录相同 使用不同的路径访问,即使解析的路径是 同样的。所以你可以避免使用不同的路径 目录(和--dir)。
示例
$ cd /some/media/dir $ m ls # list files ([*] = skip, [x] = done, [>] = playing, [ ] = new) [x] Something - 01.mkv [x] Something - 02.mkv [x] Something - 03.mkv [x] Something - 04.mkv [x] Something - 05.mkv [x] Something - 06.mkv [>] Something - 07.mkv 0:04:04 [] Something - 08.mkv [] Something - 09.mkv $ m next # plays current/next episode (i.e. #7) w/ vlc
$ m ld # list dirs (shows #playing, #new for indexed subdirectories) (2!) Dir A () Dir B (1> 0!) Dir C (0!) Dir D
命令包括:list/ls,list-dirs/ld, list-all/la,next,play FILE,mark FILE, unmark FILE,skip FILE,index,playing,watched, skipped,todo。
另请参见源代码中的测试(也可用作m examples) 更多的例子。
命令行
M设计用于与其他命令行工具一起工作:
$ m --colour ld | column $ m --colour ls | tail $ cat "$( m db-file )"| jq .dir
图形用户界面
如果您喜欢简单的键绑定而不是在 命令行中,可以使用 m-gui包装纸。
帮助
$ m --help # global options & subcommands $ m ls --help # subcommand (ls in this case) options & argument(s) $ m examples # show some examples (from the tests)
要求
Python>;=3.5。
安装
你可以把m.py放在$PATH的某个地方。 ~/bin;我建议称之为m,但您可以自由选择另一个 姓名)。
您可能希望克隆存储库,而不只是下载 m.py可以轻松获得新版本。
或者,可以使用pip(python包管理器)安装m。 或者构建并安装debian包。
注意:pip和debian包被称为mmm,而不是m。
使用git
$ cd /some/convenient/dir $ git clone https://github.com/obfusk/m.git obfusk-m $ cd ~/bin # or some other dir on your $PATH $ ln -s /some/convenient/dir/obfusk-m/m.py m
更新:
$ cd /some/convenient/dir/obfusk-m
$ git pull
使用pip
$ pip3 install --user mmm # for Debian; on other OS's you may need # pip instead of pip3 and/or no --user
构建debian包
$ sudo apt install debhelper dh-python pandoc # install build dependencies $ cd /some/convenient/dir $ git clone https://github.com/obfusk/m.git obfusk-m $ cd obfusk-m $ dpkg-buildpackage $ sudo dpkg -i ../mmm_*_all.deb
配置文件
您可以在~/.obfusk-m/config.json;中为 示例:
{"add_exts":[".mp3",".ogg"],"colour":true,"exts":[".avi",".m4v",".mkv",".mp4",".ogv",".webm"],"ignorecase":true,"numbers":true,"numeric_sort":true,"only_indexed":true,"player":"mpv","show_hidden":true}
待办事项
- 更新自述+版本(4x+dch)+包(deb+pip)!
- ack TODO
- Debian标签:?
- 既然pypi支持readme,就对它使用markdown
- 只要我在Debian中有wheel>;=0.31.0
- 无需构建README.rst
- setup.py:with_name("README.md"), long_description_content_type = "text/markdown"
- 更多文件扩展名!
- 文档safe()vs--zero
- _pty_run:如果不是tty,也最小化输出?
- 通过包装器(m.MErrorvsMError)运行时修复m _test?
可能
- m --virtual foo/bar {ls,...}+ m virt [--update][--title]*[--url]*[--url-template][--episodes][--browser] +VIRTUAL:/foo/bar+virt__*.json+ m {watching,...}--include-virtual?
- 测试边缘案例/失败?
- --config-dir?
- 测试END_SECS?
- 注意dyn vars的用法?
- 完成重击?
- m mv?
- --tree用于playing等?
- --json?
- Kodi DB导出/同步?
- 签署PYPI包?
- 修复.exist()竞争条件?
- 使用locale.strcollvs--ignorecase?
注意事项
因为alias命令在内部使用符号链接,所以应该 可能不在^{tt1}中创建名为dir__*.json的符号链接$ 除非你知道你在做什么。