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_C
Ansi CHunter\Language::Java
JavaHunter\Language::CPLUSPLUS
C++Hunter\Language::PASCAL
PascalHunter\Language::CPLUSPLUS11
C++11Hunter\Language::PYTHON
Python
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());