分享一个基于zkillboard的舰船配置搜索工具

前言

前段时间在kb网上面研究配船的时候,我碰到了这样一个需求:在一个船型的所有km里面,过滤出某种流派的配置,比如注盾、双推、越级加力,etc.

但是网站上并没有提供这样的功能。你可以筛选某种舰船,也可以筛选某种装备,但更复杂的搜索就不支持了。

于是我自己写了个程序,先通过kb网的api获取km列表,然后拿着这些km去ESI获取完整的击杀信息,最后把符合要求的km(以kb网链接的形式)显示出来。

先给出源码链接:https://github.com/sxsing/zkill-searchf

谁会用到它?

如果你经常在kb网上面研究一些奇奇怪怪的配置,那么这个工具将会极大地提升你的效率。

如果你想找的是主流配置,或许还可以点开一整排km,逐个检查。但如果你想找的配置只占1/10甚至1/100,就需要一些辅助工具了。

如何使用?

本着“能用就行”的原则,这个工具目前只有命令行界面。

在安装之前,你的操作系统里需要有 Python 3.7 或者更高的版本。macOS系统可以使用Homebrew安装。如果你是windows用户的话,你需要自己研究一下怎么安装Python,或者装一个linux子系统/虚拟机。

接下来是安装:

$ pip install zkill-searchf

安装成功之后,zkill-searchf 这个可执行文件应该会处于你的系统路径里面。

在开始搜索km之前,你需要把限制条件(船,装备)写到一个yaml配置文件里面。如果你改过总览文件的话,应该已经熟悉yaml语法了。

我们以双推220塞纳波为例:

# config.yaml
---
  ship: 17720  # 舰船 id
  item:
    - [2897, 9127]  # 装备的物品 id
    - 542  # 装备的市场分类 id
    - 131
  fetch-limit: 10

ship和item后面的值都是物品id和市场分类id。这些id可以在一些网站上找到,比如:https://everef.net/market
当你点开物品或者市场分类的时候,链接最后的数字就是对应的id。

接下来是每一部分配置的说明

  • ship: 舰船类型。在这里,17720就是塞纳波的id。

  • item: 这是一个列表。只有装备了列表中所有东西的km才会被显示出来。也就是说,列表中的搜索限制是以“与”连接的。列表中的项目可以是另一个列表,也可以是一个数字。
    – 如果是包含一个或多个数字的列表,则代表装备的物品id。在这里,28979127分别是T2和衍4的220炮。在这里面的装备,km只需满足任意一种即可,也就是说,它们是以“或”链接的。
    – 如果是一个数字,则代表一类装备的市场分类id。在这里,542是加力,131是微曲。

  • fetch-limit: 最多显示多少个结果。

编写完配置文件以后,运行程序,把配置文件的路径作为参数。
如果我们用以上配置文件搜索,输出大概是这样的:

$ zkill-searchf config.yaml

Searching for Cynabal killmails with:

        220mm Vulcan AutoCannon II OR 220mm Medium 'Scout' Autocannon I
AND     Afterburners
AND     Microwarpdrives

https://zkillboard.com/kill/xxxxxxxx/
https://zkillboard.com/kill/xxxxxxxx/
https://zkillboard.com/kill/xxxxxxxx/
......

Finished. 10 matching killmails found. 404 killmails examined in total.

程序首先会以文字的形式输出船型和搜索限制,方便你检查配置文件是否正确。接着是符合条件的km。

如果你有问题或者在使用时遇到了困难,请回复或者在github提issue。另外,如果你想让这个工具变得更好用,欢迎fork & pull request。

5 Likes

该主题在最后一个回复创建后90天后自动关闭。不再允许新的回复。