搜索,过滤,检查,从danbooru和本地文件夹下载文章。
lunafind的Python项目详细描述
LunaFind
从danbooru/safebooru搜索、筛选、检查、下载帖子并找到它们 从命令行返回而不设置任何服务或数据库。
适合日常终端使用,可用于脚本和库 对于python 3.6+。
另请参见lunasync自动 使用lunafind下载并保持同步的特定标记, 类似于danbooru标记订阅或保存的搜索。
功能
- 对标记搜索、URL或文件路径进行操作
- 合并多个搜索的结果
- 禁止/隐藏的帖子是自动的 decensored如果可能的话
- 指定自定义页面范围,或只获取所有内容
- 筛选并排序booru结果以绕过两个标记的搜索限制
- 用于筛选和本地搜索的可选部分/模糊标记匹配
- 按标签搜索下载的帖子,就像它们在booru上一样,没有 设置一个的麻烦
- 在索引 后的大多数情况下,本地搜索会立即产生结果。
- 快速多线程下载;默认情况下并行下载8次
- 支持在后媒体(图像、Ugoira WebM等)、信息、便条上操作,
艺术家评论:
- 获取URL或文件/文件夹路径
- 在标准输出上打印
- 正在下载
本地搜索性能
第一次进行本地post搜索时,使用索引文件来加速将来的搜索 当新的post目录时,将自动创建和更新搜索 存在或被移除。
在同一目录下测试约165000个帖子, 平均单核性能的cpu (AMD FX-8300-目前还没有从多核中获益的机会), 通用7200RPM硬盘,BTRFS文件系统,void Linux 4.18.14 x86_64:
- 从零开始索引所有东西大约需要2米30秒到3米。
- 在此之后,搜索结果将立即出现,除非
--random
或 ^使用{}。 - 搜索在8-20秒内完成。
命令行用法
下载到当前文件夹中,每篇文章都标记为blonde和2girls (默认booru是https://danbooru.donmai.us):
lunafind "blonde 2girls" --limit 200 --pages all --download .
搜索我们刚刚下载的帖子, 打印结果的图像路径:
lunafind "blonde blue_eyes rating:s score:>5" --source . --show-location media
有关所有选项和示例,请参见lunafind --help
。
python用法
还没有真正的文件。提供三个主要类:
Post
:表示本地或远程的单个post及其信息、媒体、注释 以及艺术评论。Album
:工作方式类似于Post
的字典,其中键是post id。 有神奇的方法和操作员,以便于与他们合作。 可过滤、订购、下载等。Stream
:一个高效的惰性迭代器,产生posts。 可过滤和多线程下载。
复制上面一节中的命令行示例:
fromlunafindimportStreamStream("blonde 2girls",limit=200,pages="all").download()forpostinStream("blonde blue_eyes rating:s score:>5",client="."):print(post.get_location("media"))
安装
需要Python3.6+和PIP(用于自动轻松安装)。
在gnu/linux和windows 7上测试,可能在osx和其他posix上工作
系统。
作为根用户:
pip3 install -U lunafind