一个用于访问所有语言Wikisource的PHP API。

2.0.8 2024-09-22 09:26 UTC

README

这是一个用于从Wikisources检索数据的客户端API库。当可能时,它使用来自Wikidata的数据,或者特定Wikisource的MediaWiki API数据,或者在只有这种选择的情况下使用HTML抓取。

CI

特性(其中一些正在开发中,尚不可用)

  • 列出所有Wikisource。
  • 获取单个Wikisource的元数据:语言代码、语言名称(在该语言中)以及关于命名空间的信息(它们的名称和ID)。
  • 列出单个Wikisource中的所有作品。
  • 获取单个Wikisource上的单个作品的元数据:URL、页面名称、作品标题、作者、出版年份、校对质量以及作品使用的索引页面列表。
  • 获取单个Wikisource上的单个索引页面的元数据:URL、页面名称、页面列表和校对质量。
  • 获取单个Wikisource上单个校对页面的元数据(即Page命名空间中的wiki页面):URL、wiki页面名称、页面编号(在Djvu/PDF中)、索引页面列表中的页面标签和校对质量。

安装

使用Composer安装

$ composer require wikisource/api

如果您想使用此库的日志和缓存功能,您可能还需要实现psr/log的东西和实现psr/cache的东西。

使用

查找所有Wikisource

$wsApi = new \Wikisource\Api\WikisourceApi();
$wikisources = $wsApi->fetchWikisources();

获取单个作品

$wsApi = new \Wikisource\Api\WikisourceApi();
$enWs = $wsApi->fetchWikisource('en');
$prideAndPrejudice = $enWs->getWork('Pride and Prejudice');
echo $work->getWorkTitle().' was published in '.$work->getYear();

让它缓存结果,例如从Wikidata派生的很少改变的可用的Wikisource列表(这里使用任何实现PSR-6的工作)

$wsApi = new \Wikisource\Api\WikisourceApi();
$cache = new Pool(new FileSystem(['path' => __DIR__.'/cache']));
$wsApi->setCache($cache);

查看examples/目录,其中包含可以直接从命令行运行的完整功能的示例。

缓存

如果通过WikisourceApi::setCache()提供缓存池,则此库执行的每个外部请求都将被缓存。默认缓存时间如下

日志

您可以通过传递实现PSR-3的LoggerInterface的任何对象给WikisourceApi::setLogger()来启用日志记录。

问题

请通过Phabricator报告所有问题(用'wikisource-api'项目标记)。

许可证

版权©2016 Sam Wilson及其他贡献者。

本程序是免费软件;您可以在自由软件基金会发布的GNU通用公共许可证的条款和条件下重新分配和/或修改它;许可证的第二版,或者(根据您的选择)任何较新版本。

本程序旨在供用户使用,但没有任何保证;甚至没有关于其可销售性或适用于特定用途的隐含保证。有关详细信息,请参阅GNU通用公共许可证。

您应已随本程序收到GNU通用公共许可证的副本;如果没有,请写信给自由软件基金会,Inc.,51 Franklin Street,第五层,波士顿,MA 02110-1301,USA。

https://gnu.ac.cn/copyleft/gpl.html