This allows to remove any unwanted lists without modifying the domains
data, and you can generate multiple custom v2ray dat files in a single
command.
As long as the source data is consistent, any list remains in the trimed
dat contains the same rules comparing to the list in full dat.
Use the new option `datprofile` to specify the config json file path.
`outputname` will be ignored when `datprofile` is set.
Co-authored-by: database64128 <free122448@hotmail.com>
* Feat: add a new datdump tool
* Refactor: address code review comments
* Refactor: remove export all from main program
use datdump instead
* Refactor: allow spaces in exportlists
e.g. `--exportlists="lista, listb"`
* all: cleanup
* apply review suggestion
---------
Co-authored-by: database64128 <free122448@hotmail.com>
* Refactor: improve deduplicate
* Feat: support to export all lists to a plain yml
use: `--exportlists=_all_`
* Docs: add links for dlc plain yml
[skip ci]
* Refactor: reduce the use of strings.TrimSpace
* Refactor: use string attr before toProto
* Refactor parseEntry
- add value/attribute checker(check missing space)
- allow multiple spaces
- sort attributes
- improve readablity
* Refactor exportPlainTextList
- remove unnecessary variable
- improve readablity
* Remove support for partial include
This reverts e640ac2783
It is problematic and I will implement a new one
* Refactor: promote refMap
* Feat: add support for partial include
- refactor inclusion logic
- add basic deduplicate
* Refactor exporting plaintext list
* Feat: add support for affiliation
A domain rule is always added to the list corresponding to the filename
it resides in. Additionally, you can now add affiliations to a domain
rule, and the rule will be added to the list specified by the
affiliation. Each affiliation begins with `&` and followed by the name
of the affiliation.
This helps us to reduce the number of data files without compromising
functionality, and avoid writing a same rule in different files.
* Feat: add advanced deduplicate for subdomains
only for domain/full subdomains without attr
* Refactor: import and use slices
* Refactor: improve code