极简媒体管理器

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/lslist-dirs/ldlist-all/lanextplay FILEmark FILEunmark FILEskip FILEindexplayingwatchedskippedtodo

另请参见源代码中的测试(也可用作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.pywith_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的符号链接$ 除非你知道你在做什么。

许可证

GPLv3+

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Rest DSL路由无法启动路由,因为同一端点不允许有多个使用者   jvm有没有像JConsole或VisualVM这样的工具可以告诉我“类、对象、引用变量在java中存储在哪里?”   java为什么我的列表中的所有元素看起来都一样?   java运行时。运行shell脚本的exec无法打开文件   JPopupMenu的JMenuItem的java热键   会话在Java中被覆盖   如何在java中去除字符串中的尖锐重音?   java Mockito监视一个接口,模拟它的默认方法,获取NullPointerException   javascript如何在jquery中禁用同一时间选择   将数组列表附加到现有CSV文件,但它会附加并清除存储在Java文件中的以前的数据   java从我的jar中访问pdf文件   java Sonar issue参数必须为非Null,但标记为可为Null   java Salesforce流式API:在网络故障之后和重新订阅之前获取事件   在Java 1.8.0_65上运行Play2.0应用程序时出现playframework错误   java为什么字母的ASCII由方法自动转换。toCharArray()?   java如何知道JDialog是否关闭?   java向服务器发送POST请求,服务器的响应为null,启动   java如何设置JTable中特定单元格的值?   ImagePlus中的java保存问题