4 个版本 (2 个重大更改)
0.4.0 | 2024 年 5 月 14 日 |
---|---|
0.3.1 | 2024 年 5 月 13 日 |
0.3.0 | 2024 年 5 月 9 日 |
0.2.0 | 2024 年 5 月 8 日 |
#89 在 音频 中
每月下载量 168
50KB
956 行
Flaq
内容
安装
Cargo 安装
crates.io 列表可以在这里找到。
以下是用 cargo
安装的示例。
cargo install flaq
请注意,cargo
安装不包含自动完成脚本,因此除非您手动将脚本复制到相应的 /usr/share/
目录,否则 shell 自动完成将不会工作。
Arch Linux AUR
AUR 列表可以在这里找到。
以下是用 yay
安装的示例。如果您使用 paru
,只需将 paru
替换为 yay
即可。
yay -S flaq
用法
以下是简短的帮助说明用法(可通过 flaq -h
访问)。要获取详细帮助,请运行 flac --help
。
A CLI tool for editing and query `.flac` files metadata tags
Usage: flaq [OPTIONS]
Options:
-v, --version-number Print version
-c, --clean Clean duplicated fields, where both the tag field and value match
--clean-all [Caution] Clean duplicated fields, and deletes ALL non-standard header comments
--set [Default] Set field to new given values. Previous values are deleted
--append Append flag. If set appends values leaving existing values untouched
--delete Deletes associated values for provided fields, leaving the field unset
-L, --list-detailed Provides a formated list of all tags associated with each matching file
-l, --list Provides a machine readable listing of matching files
--dry-run Performs the modification, ready for previewing, without saving/commiting the change
-h, --help Print help (see more with '--help')
Tag Fields:
-t, --title [<TITLE>...]
Track/Work name
--song-version [<VERSION>...]
Recording version (e.g. remix info)
-A, --album [<ALBUM>...]
The collection name to which this track belongs
-n, --tracknumber [<TRACKNUMBER>...]
The track number of this piece if part of a specific larger collection or album
-a, --artist [<ARTIST>...]
The artist generally considered responsible for the work
--performer [<PERFORMER>...]
The artist(s) who performed the work
--copyright [<COPYRIGHT>...]
Copyright attribution, e.g., '2001 Nobody's Band' or '1999 Jack Moffitt'
--license [<LICENSE>...]
License information, for example, 'All Rights Reserved'
-o, --organization [<ORGANIZATION>...]
Name of the organization producing the track (i.e. the 'record label')
--description [<DESCRIPTION>...]
A short text description of the contents
-g, --genre [<GENRE>...]
A short text indication of music genre
-d, --date [<DATE>...]
Date the track was recorded
--location [<LOCATION>...]
Location where track was recorded
--contact [<CONTACT>...]
Contact information for the creators or distributors of the track
--isrc [<ISRC>...]
ISRC number for the track
Arguments:
-q, --query <QUERY>
-f, --files [<FILES>...]
查询
查询是一系列操作,将针对每个提供的文件进行评估,不包括不满足查询的文件。
查询是变量、字面量和运算符的组合。查询是一个表达式,可以是任何其他表达式的组合,但最终必须评估为布尔值。
变量
任何标准标签都可以用作变量。该变量将替换为每个相应文件匹配的标签列表。变量通过其完整标签名称使用,该名称不区分大小写(例如,Title
、tracknumber
、ArtISt
都是变量的有效使用)。
如果提供的文件中任何必需的变量未设置,查询将出错。
- 日期
- 第一个用于
date
标签的标记,必须以YYYY
、YYYY-MM
或YYYY-MM-DD
的格式存储。注意,查询的日期字面量以d
前缀,但存储的日期不是
- 第一个用于
- Tracknumber
- 第一个用于
tracknumber
标签的标记,必须可以解析为无符号32位整数。 - 如果 Tracknumber 未设置或无法解析,将引发错误并导致查询失败
- 第一个用于
- 其他标签
- 所有其他标签都将替换为为该标签设置的字符串列表
字面量
- 字符串字面量
"<string>"
- 字符串字面量必须用引号括起来,允许使用转义字符(包括额外的引号)。字符串可以包含任何Unicode字符
- 例如:
"Casiopea"
、"瀬葉淳"
、"Some \"Escape Characters\""
- 整数字面量
<num>
- 整数字面量必须可以解析为32位无符号整数(包括0在内的正整数)
- 例如:
10
、0
、1234
- 日期字面量(《d<YYYY>、《d<YYYY>-<MM> 或
d<YYYY>-<MM>-<DD>
- 日期必须以
d
前缀,并可以按年、年-月或年-月-日形式给出。 - 例如:
d1980
、d2001-01
、d1192-03-12
- 日期必须以
运算符
比较运算符
比较任何两个匹配类型的对。结果是一个布尔表达式。
==
等于?=
包含!=
不等于
数值比较运算符
对任何两个日期或整数进行操作。结果是一个布尔表达式。
>
大于>=
大于等于<
小于<=
小于等于
逻辑运算符
对两个布尔表达式(或一个逻辑非)进行操作。结果是一个布尔表达式。
!
&&
||
标准
以下列出的是标准,它不是特别严格,有模糊的空间。该程序完全遵循此标准,但有以下例外;
- 字段
Date
和Tracknumber
将支持任意数量的参数,但是第0个标签必须符合以下格式Date
必须给出为YYYY
,YYYY-MM
或YYYY-MM-DD
。为了比较的目的,更具体的日期将被截断以匹配不那么具体的日期(例如,比较YYYY-MM-DD
和YYYY
将截断第一个日期,以便操作的结果只是比较年份)Tracknumber
必须能够解析为u32
(无符号32位整数)。用户自己决定是否从1
或0
(尽管建议从1
开始,以保持与实际曲目编号的一致性)进行曲目索引。
- 仅第0个
Date
/Tracknumber
将用于比较(因此必须满足上述要求)。其他标签可以可选地包含以提供更多上下文。
字段名称
以下是建议的、最少的标准字段名称列表,以及对其预期用途的描述。没有单个或组字段名称是强制性的;注释标题可能包含此列表中的名称之一、所有名称或没有任何名称。
- TITLE
- 曲目/作品名称
- VERSION
- 版本字段可用于区分单个集合中同一曲目标题的多个版本。(例如,混音信息)
- ALBUM
- 属于此曲目的集合名称
- TRACKNUMBER
- 如果此曲目是特定较大集合或专辑的一部分,则该曲目的曲目编号
- ARTIST
- 通常被认为是作品责任人的艺术家。在流行音乐中,这通常是表演乐队或歌手。对于古典音乐,这将是指挥家、乐团、独奏家。对于有声书,这将是指原文的作者。
- PERFORMER
- 表演此作品的艺术家的姓名。在古典音乐中,这将是指挥家、乐团、独奏家。在有声书中,这将是指读的演员。在流行音乐中,这通常与 ARTIST 相同,并且被省略。
- COPYRIGHT
- 版权归属,例如,“2001无人乐队”或“1999杰克·莫菲特”
- LICENSE
- 许可信息,例如,“版权所有”,“任何使用许可”,指向许可的URL,例如创意共享许可(例如,“creativecommons.org/licenses/by/4.0/”),或类似内容。
- ORGANIZATION
- 制作此曲目的组织的名称(即“唱片公司”)
- DESCRIPTION
- 内容的简短文本描述
- GENRE
- 音乐类型的简短文本指示
- DATE
- 录制此曲目的日期
- LOCATION
- 录制此曲目的地点
- CONTACT
- 创作者或发行商的联系方式。这可能是一个URL,一个电子邮件地址,制作标签的物理地址。
- ISRC
- 此曲目的ISRC号码;有关ISRC号码的更多信息,请参阅ISRC简介页面。
影响
字段名称不应国际化;这是对简单性的让步,而非试图排除世界上不使用英语的绝大多数人。然而,字段内容使用UTF-8字符编码,以便容易地表示任何语言。我们拥有整个字段的长度的限制以及对字段名称的约束,因此字段名称以已知的方式进行限制。因此,我们也有字段内容的长度。个别“供应商”可以在合理范围内使用非标准字段名称。在此阶段,通过上下文应明确注释字段的正确使用。滥用将被禁止。非标准字段名称没有供应商特定的前缀。供应商应尽力避免任意污染公共命名空间。我们将通常收集更有用的标签以帮助标准化。字段名称在注释标题中不需要是唯一的(出现一次)。例如,假设一个音轨是由三位知名艺术家录制的;以下内容是允许的,并且受到鼓励
依赖项
~4–14MB
~131K SLoC