ciweimao

module
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 19, 2021 License: MIT

README

ciweimao

godev

刺猬猫 Go 客户端,使用安卓客户端 API。

个人用于通过 RSS 发现新书,所以没有动力实现章节相关内容,欢迎 PR。

API 解密实现基于 Cirno-go 的解包成果。

  • 账号密码登录
  • 获取排行榜
  • 搜索书籍
  • 书籍详情
  • 章节内容

使用方法

package main

import (
    "context"

    "github.com/NateScarlet/ciweimao/pkg/client"
    "github.com/NateScarlet/ciweimao/pkg/book"
)

// 默认客户端用环境变量 `CIWEIMAO_ACCOUNT` `CIWEIMAO_LOGIN_TOKEN` `CIWEIMAO_DEVICE_TOKEN` 登录。
// 这些值获取方法见下方 `通过环境变量配置登录凭据`
// 并且 User-Agent 使用 `CIWEIMAO_USER_AGENT` 或库内置的默认值。
client.Default

var c = new(client.Client)
c.ApplyDefaultConfig()

// 账号密码登录(每次进程启动都需要重新登录,或许会触发风控)
_, err = c.Login(username, password)

// 登录凭据登录(推荐)
// 数值可通过账号密码登录或者使用 ciweimao-login 命令获得(见下方)
c.Account = account
c.LoginToken = loginToken
c.DeviceToken = deviceToken

// 所有查询从 context 获取客户端设置, 如未设置将使用默认客户端。
var ctx = context.Background()
ctx = client.With(ctx, c)

// 搜索书籍
result, err := book.Search(ctx, book.SearchOptionQuery("搜索关键词"))
result.JSON // JSON 响应数据.
result.Books() // []book.Book
book.Search(ctx, book.SearchOptionQuery("搜索关键词"), book.SearchOptionPageIndex(1)) // 获取第二页

// 书籍详情
var book = &book.Book{ID: "12345678"}
_, err = i.Fetch(ctx) // 获取书籍详情

// 书籍排行
rank, err := book.Rank(ctx, book.RTClick, book.RPWeek) // 周点击榜
require.NoError(t, err)
rank.Books() // []book.Book
book.Rank(ctx, book.RTClick, book.RPWeek, book.RankOptionPageIndex(2)) // 第二页
book.Rank(ctx, book.RTClick, book.RPWeek, book.RankOptionPageCategory(book.C免费同人)) // 分类筛选
通过环境变量配置登录凭据

获取登录凭据,设置环境变量然后运行 ciweimao-login

CIWEIMAO_USERNAME={username} CIWEIMAO_PASSWORD={password} go run github.com/NateScarlet/ciweimao/cmd/ciweimao-login

成功登录后会出现如下输出,设置这些环境变量即可使默认客户端自动登录

CIWEIMAO_ACCOUNT=书客*********
CIWEIMAO_LOGIN_TOKEN=******************************
CIWEIMAO_DEVICE_TOKEN=ciweimao_***************

凭据会在一定时间后过期,如果要长期运行可额外设置账号密码使客户端自动更新令牌

CIWEIMAO_USERNAME=*******
CIWEIMAO_PASSWORD=*******

如果需要存储更新的令牌可以通过自定义 Client.TokenRefresher 实现

类似项目

都是用来找书的

Directories

Path Synopsis
cmd
pkg

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL