kaspars / hunter
Hunter 是一个易于使用的 uHunt 封装器,用于从 UVA 服务器获取信息。
Requires
- php: >=5.3.0
This package is not auto-updated.
Last update: 2024-09-24 03:45:13 UTC
README
简介
Hunter 是一个易于使用的 uHunt 封装器,用于从 UVa 的在线评测系统 获取信息。
Hunter 使用 MIT 许可证 - 详细内容请参阅 LICENSE 文件。
基本用法
use Hunter\Hunter; require "vendor/autoload.php"; $hunter = new Hunter(); echo $hunter->getIdFromUsername("Kaspars");
安装
使用 Composer
安装 Hunter 最简单、推荐的方法是使用 composer。
使用以下命令使用 composer 安装。
$ composer require kaspars/hunter
如果您愿意,可以创建以下 composer.json 文件并运行 composer install 来安装它。
{
"require": {
"kaspars/hunter": "~1.0"
}
}
直接下载
首先,您真的应该使用 composer.. 但如果您坚持,则只需将 src 文件夹的内容复制到您的项目中。
数据格式
所有数据都以关联数组的形式返回。
问题格式
id问题 IDnumber问题编号title问题标题dacu不同已接受用户数bestRuntime已接受提交 的最佳运行时间(毫秒)verdicts给定的判断数组Hunter\Status::NO_VERDICT未给出判断 数量(可以忽略)Hunter\Status::SUBMISSION_ERROR提交错误 数量Hunter\Status::CANT_BE_JUDGED无法评测 数量Hunter\Status::IN_QUEUE在队列中 数量Hunter\Status::COMPILATION_ERROR编译错误 数量Hunter\Status::RESTRICTED_FUNCTION受限函数 数量Hunter\Status::RUNTIME_ERROR运行时错误 数量Hunter\Status::OUTPUT_LIMIT输出限制超过 数量Hunter\Status::TIME_LIMIT时间限制超过 数量Hunter\Status::MEMORY_LIMIT内存限制超过 数量Hunter\Status::WRONG_ANSWER答案错误 数量Hunter\Status::PRESENTATION_ERROR展示错误 数量Hunter\Status::ACCEPTED接受 数量
limit问题运行时间限制(毫秒)status问题状态Hunter\Status::UNAVAILABLE不可用Hunter\Status::Normal正常Hunter\Status::SPECIAL_JUDGE使用了特殊评测程序。
rejudged最后一次 (Unix 时间戳) 评测问题的时间,如果从未评测则为null。
提交格式
id提交的 IDuser用户 IDname用户的全名username用户的用户名problem问题的 IDverdict给定的判断Hunter\Status::SUBMISSION_ERROR提交错误Hunter\Status::CANT_BE_JUDGED无法评测Hunter\Status::IN_QUEUE在队列中Hunter\Status::COMPILATION_ERROR编译错误Hunter\Status::RESTRICTED_FUNCTION受限函数Hunter\Status::RUNTIME_ERROR运行时错误Hunter\Status::OUTPUT_LIMIT输出限制超过Hunter\Status::TIME_LIMIT时间限制超过Hunter\Status::MEMORY_LIMIT内存限制超过Hunter\Status::WRONG_ANSWER答案错误Hunter\Status::PRESENTATION_ERROR展示错误Hunter\Status::ACCEPTED接受
language提交所写的语言Hunter\Language::ANSI_CAnsi CHunter\Language::JavaJavaHunter\Language::CPLUSPLUSC++Hunter\Language::PASCALPascalHunter\Language::CPLUSPLUS11C++11Hunter\Language::PYTHONPython
runtime运行时间(毫秒)rank提交排名,与所有提交比较time提交的 Unix 时间戳
排行榜格式
id用户 IDname用户名称username用户的用户名rank用户等级accepted已接受的题目数量submissions提交次数activity用户活动数组Hunter\Activity::DAYS过去2天的活动Hunter\Activity::WEEK过去7天的活动Hunter\Activity::MONTH过去31天的活动Hunter\Activity::QUARTER过去3个月的活动Hunter\Activity::YEAR过去一年的活动
#API ##getIdFromUsername(string $username) 将给定的 $username 转换为 UVa ID。
返回 ID 或找不到时返回 null
$hunter = new Hunter\Hunter(); echo $hunter->getIdFromUsername("Kaspars"); //343417 echo $hunter->getIdFromUsername("Foobar"); // null
示例
problems(void)
返回可用的 UVa 题目数组
$hunter = new Hunter\Hunter(); var_dump($hunter->problems());
problem(int $id, string $type = "id")
检索特定问题的数据
$hunter = new Hunter\Hunter(); var_dump($hunter->problem(36)); var_dump($hunter->problem(100, "num"));
problemSubmissions(array|int $problemIDS, int $start = 0, int $end = 2^31)
查看特定提交日期范围内的特定问题的提交。 $start 和 $end 是 Unix 时间戳
$hunter = new Hunter\Hunter(); var_dump($hunter->problemSubmissions(36)); var_dump($hunter->problemSubmissions(array(36,37)));
problemRanklist(int $problemID, int $rank = 1, int $count = 100)
返回从排名 $rank 到 $rank + $count - 1 的问题的提交
$hunter = new Hunter\Hunter(); var_dump($hunter->problemRanklist(36));
userProblemRanklist(int $problemID, int $userID, int $above = 10, int $below = 10)
返回特定用户对特定问题提交的附近提交(按运行时间排序)。
$hunter = new Hunter\Hunter(); var_dump($hunter->userProblemRanklist(36, 343417));
userSubmissions(int $userID, int $min = null)
返回特定用户的全部提交。
如果指定了 $min,则只返回 ID 大于 $min 的提交。
$hunter = new Hunter\Hunter(); var_dump($hunter->userSubmissions(343417));
userLatestSubmissions(int $userID, int $count = 10)
返回特定用户最后 $count 次提交。
$hunter = new Hunter\Hunter(); var_dump($hunter->userLatestSubmissions(343417));
userProblemSubmissions(array|int $userIDs, array|int $problemIDs, int $min, string $type = "id")
返回特定问题上的用户的全部提交。
可能的 $type 值为 id 和 num。这会改变是否将问题 ID 或问题编号作为第二个参数传递。
$hunter = new Hunter\Hunter(); var_dump($hunter->userProblemSubmissions(343417, 36);
userSolvedProblems(array|int $userIDs)
获取被一些作者解决的二进制编码问题 ID。
$hunter = new Hunter\Hunter(); var_dump($hunter->userSolvedProblems(343417));
userRanklist(int $userID, int $above = 10, int $below = 10)
返回用户的排名列表及其最接近的邻居。
$hunter = new Hunter\Hunter(); var_dump($hunter->userRanklist(343417, 10, 10));
ranklist(int $rank = 1, int $count = 10)
全局排名列表,从 $rank 开始到 $rank+$count
$hunter = new Hunter\Hunter(); var_dump($hunter->ranklist(1, 100));
setSource(string $source)
更改 API 数据的来源。默认为 http://uhunt.felix-halim.net/api/,另一个有效来源是 http://icpcarchive.ecs.baylor.edu/uhunt/api/。但您可以将来源切换到任何具有相同数据格式的来源。
$hunter = new Hunter\Hunter(); var_dump($hunter->setSource('http://icpcarchive.ecs.baylor.edu/uhunt/api/'));
getSource()
返回当前使用的 API 来源。
$hunter = new Hunter\Hunter(); var_dump($hunter->getSource());