Sketchfab客户端

sketchfab的Python项目详细描述


Sketchfab API客户端

入门

安装模块:

pip3 install sketchfab

使用CLI

^{pr2}$

使用lib

此代码为每个集合创建一个目录,并将所有模型放入其中。在

importosimportsketchfabsfc=sketchfab.Client('YOUR-API-KEY')forcinsfc.collections():print("Collection:",c)col_dir=os.path.join("download",c.name)os.makedirs(col_dir,exist_ok=True)forminc.models():model_dir=os.path.join(col_dir,m.name)print(f"  Model: {m.name} ({model_dir})")ifnotos.path.exists(model_dir):os.rename(m.download_to_dir(),model_dir)

会给你这样的感觉:

Collection: Collection{empty collection}
Collection: Collection{housing-updates}
  Model: tableKitchen80x200 (download/housing-updates/tableKitchen80x200)
  Model: kitchenModSink120x65x210 (download/housing-updates/kitchenModSink120x65x210)
  Model: kitchenModSink60x65x90 (download/housing-updates/kitchenModSink60x65x90)
  Model: kitchenModFridge60x65x210 (download/housing-updates/kitchenModFridge60x65x210)
  Model: kitchenModCorner65x65x210 (download/housing-updates/kitchenModCorner65x65x210)
  Model: kitchenModBasic10x65x90 (download/housing-updates/kitchenModBasic10x65x90)
  Model: kitchenModWasher60x65x210 (download/housing-updates/kitchenModWasher60x65x210)
  Model: kitchenModSink60x65x210 (download/housing-updates/kitchenModSink60x65x210)
  Model: kitchenModBasic20x65x210 (download/housing-updates/kitchenModBasic20x65x210)
  Model: washbasin120x60 (download/housing-updates/washbasin120x60)
  Model: kitchenModWasher60x65x90 (download/housing-updates/kitchenModWasher60x65x90)
  Model: bedDouble140x200-2 (download/housing-updates/bedDouble140x200-2)
  Model: simpleBed90x200 (download/housing-updates/simpleBed90x200)
  Model: wcFloor70x40 (download/housing-updates/wcFloor70x40)
  Model: kitchenModBasic60x65x90 (download/housing-updates/kitchenModBasic60x65x90)
  Model: kitchenModDishWasher60x65x90 (download/housing-updates/kitchenModDishWasher60x65x90)
  Model: kitchenModSink120x65x90 (download/housing-updates/kitchenModSink120x65x90)
  Model: kitchenModStove60x65x210 (download/housing-updates/kitchenModStove60x65x210)
  Model: kitchenModStove60x65x90 (download/housing-updates/kitchenModStove60x65x90)
  Model: washbasin60x60 (download/housing-updates/washbasin60x60)
  Model: tableKitchen80x140 (download/housing-updates/tableKitchen80x140)
  Model: shower90x90 (download/housing-updates/shower90x90)
  Model: kitchenModDishWasher60x65x210 (download/housing-updates/kitchenModDishWasher60x65x210)
  Model: kitchenModBasic10x65x210 (download/housing-updates/kitchenModBasic10x65x210)

使用docker

$ docker run -e SKETCHFAB_API_TOKEN=XXXXX -ti habx/sketchfab list_collections
Collections are:
2019-10-20 21:12:24,417 Starting new HTTPS connection (1): api.sketchfab.com:443
2019-10-20 21:12:24,762 https://api.sketchfab.com:443 "GET /v3/me/collections HTTP/1.1" 200 None
- Collection 1
- Collection 2

为什么

选择

  • API的设计尽可能简单易用

已知问题

  • 代码可能不是最优雅的。我对你能给我的任何反馈都很感兴趣。在

  • 官方的基于swagger的文档没有尊重API的行为。因此,您可能会发现:

    • 库强制执行一些奇怪的规则(比如创建模型时传递模型)
    • 库没有正确使用API(比如通过搜索列出集合的模型)

    在这两种情况下,我都是通过反复试验才发现如何使用API的。如果你找到更好的方法 我很感兴趣。在

  • 这个列表不能处理长列表(它需要重新实现为一个iterable调用listingapi)

  • CLI在这个阶段几乎是无用的

缺少API

您可以提交请求或要求我实现您需要的、可能丢失的任何功能。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
插入表达式以完成JAVA语句块时出现语法错误   在linkedlist中的特定节点后插入java   java如何将参数传递给安卓 junit测试(参数化测试)   java在运行时将数据添加到片段中的RecyclerView,在该片段中,数据是在单独的片段中创建的   java apache CsrfPreventionFilter和404错误   java Ask是安卓 6.0的多重权限   java将字符串解析为Time并插入mysqldatabase   java扩展MyBatis映射器接口可能导致异常   java SparkSql不支持日期格式   在java中剪切字符串的一部分   将Java lambda的结果分配给字段   在Java中解析OCL?   java解析json到安卓中活动中的对象   用于时区转换的JavaAPI   在Oracle上建立与ESRI geodatabase直接连接的java在未处于调试模式时挂起   拆分文件时出错。使用Java8的xml文件   java eclipse jsp无颜色、代码完成和错误检测   java spring kafka侦听器在错误的位置查找ContainerProperty   java Springboot应用程序@EnableConfigServer无法在Eclipse中解析   当尝试使用ConstraintLayout将java视图添加到同一行时,java视图会被截断