orpheusnet / logchecker
用于验证由支持的抓取程序(如EAC和XLD)生成的日志的Logchecker
0.14.0
2024-02-01 16:40 UTC
Requires
- php: ^8.1
- ext-mbstring: *
- symfony/console: ^6.0|^7.0
- symfony/process: ^6.0|^7.0
- symfony/yaml: ^6.0|^7.0
Requires (Dev)
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^10.5
- squizlabs/php_codesniffer: ^3.8
README
CD抓取日志检查器,用于分析生成的日志,以查找可能表明非完美抓取的问题。当然,日志得分不是100%并不意味着生成的抓取不是位完美的,只是不太可能。此库应该适用于任何支持PHP和Python的操作系统。
虽然此库将分析日志的大部分内容,但不幸的是,它无法正确验证所有类型的日志的校验和。这是由于这些程序的开发者将它们的日志检查器做成闭源,并涉及一些定制的数学工作来生成它。因此,我们必须回退到外部方法来验证EAC和XLD的校验和。如果日志检查器检测到我们没有必要的程序,那么我们将跳过此外部步骤并假设校验和是有效的。有关设置验证校验和所需程序的说明,请参阅以下您关心的程序。
需求
- PHP 8.1+
可选需求
- Python 3.5+
- cchardet(或chardet)
- eac_logchecker.py
- xld_logchecker.py
pip3 install cchardet eac-logchecker xld-logchecker
独立
安装
通过composer安装
composer global require orpheusnet/logchecker
或者,访问我们的发布页面,并获取logchecker.phar
文件。下载此文件,然后可以通过运行php logchecker.phar
通过CLI执行它。如果您使用chmod +x
修改文件,则可以直接执行(即./logchecker.phar
)。要全局安装,请运行
mv logchecker.phar /usr/local/bin/logchecker chmod +x /usr/local/bin/logchecker
使用方法
$ logchecker list
Logchecker 0.11.1
Usage:
command [options] [arguments]
Options:
-h, --help Display this help message
-q, --quiet Do not output any message
-V, --version Display this application version
--ansi Force ANSI output
--no-ansi Disable ANSI output
-n, --no-interaction Do not ask any interactive question
-v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
Available commands:
analyze [analyse] analyze log file
decode Decodes log from whatever encoding into UTF-8
help Displays help for a command
list Lists commands
translate Translates a log into english
主要使用analyze
命令,例如。
$ logchecker analyze --no_text path/to/file.log
Ripper : EAC
Version : 1.0 beta 3
Language: en
Score : 59
Checksum: checksum_ok
Details :
Could not verify gap handling (-10 points)
Could not verify id3 tag setting (-1 point)
Range rip detected (-30 points)
代码
<?php $logchecker = new OrpheusNET\Logchecker\Logchecker(); $logchecker->add_file('path/to/file.log'); list($score, $details, $checksum_state, $log_text) = $logchecker->parse();
库使用
安装
composer require orpheusnet/logchecker
使用方法
<?php require __DIR__ . '/vendor/autoload.php'; use OrpheusNET\Logchecker\Logchecker; $logchecker = new Logchecker(); $logchecker->newFile('/path/to/log/file'); $logchecker->parse(); print('Ripper : ' . $logchecker->getRipper() . "\n"); print('Version : ' . $logchecker->getRipperVersion() . "\n"); print('Score : ' . $logchecker->getScore() . "\n"); print('Checksum : ' . $logchecker->getChecksumState() . "\n"); print("\nDetails:\n"); foreach ($logchecker->getDetails() as $detail) { print(" {$detail}\n"); } print("\nLog Text:\n\n{$logchecker->getLog()}");
构建
要构建自己的phar,请参阅release.yml
工作流程,但大致方法是
- 克隆此存储库并进入存储库
- 安装box
- 运行
box compile
- 在存储库根目录中获取
logchecker.phar