npm package: 8part-sdk
Description: [TOC]
Latest version: 1.0.9

# POPYARD SDK

[TOC]


```js
const config = {
  domain: DOMAIN    // default 'ipopyard',
  onError: ON_ERROR // console.error,
}

import SDK from 'popyard-sdk'      // ES6
const {news, forum, picctorial, video} = SDK(config)
const {news, forum, picctorial, video} = require('popyard-sdk')(config)

const some = new some({
  lan: 'cn' | 'en', // defualt cn
  r: 0 | 1          // defualt 0
})

const json = some.API()
res.code === 0
res.message === 'success'
```

## NEWS

### 获取 新闻快递列表
```js
const json = await news.fetchExpress()
// json.data
[{
  title: String,  // 新闻标题
  source: String, // 新闻来源
  id: Number,     // 新闻 id
  cid: Number,    // 分类 id
  sid: Number     // 服务器 id
}]
```

### 获取 新闻分类

```js
const json = await news.fetchCategories()
// json.data
[{
  label: String,    // 分类标题
  cid: Number       // 分类 id
  children: [{
    hot: true,      // 同时返回的新闻列表为改分类的热门新闻
    title: String,  // 新闻标题
    source: String, // 新闻来源
    id: Number,     // 新闻 id
    cid: Number,    // 分类 id
    sid: Number     // 服务器 id
  }]
}]
```


### 获取 某分类下的 新闻列表

```js
const json = await news.fetchCategoryChildren ({
  p,  // 页数 从 1 开始
  cid // 分类 id
})
// json.data
[{
  sid: Number,    // 服务器 id
  id: Number,     // 新闻 id
  host: Number,   // 新闻所在服务器 host
  title: Number,  // 新闻标题
  source: Number, // 新闻来源
}]
```

### 获取 新闻详情

```js
const qs = {
  id: Number  // 新闻 id
  sid: Number // 服务器 id
  p: Number   // 页数 从 0 开始
}
const json = await news.fetchDetail(qs)
// json.data
{
  id: Number,        // 新闻 id
  sid: Number,       // 服务器 id
  cid: Number,       // 分类 id
  fid: Number,       // unknow
  fsid: Number,      // unknow
  pageNum: Number,   // 当前页数
  pageTotal: Number, // 总共页数
  siteName: String,  // unknow
  source: String,    // 新闻来源
  cname: String,     // 分类名
  date: Date,        // 日期
  title: String,     // 标题
  content: String    // 文章内容 HTML
}
```

## FORUM

### 获取 论坛快递列表

```js
const json = await forum.fetchExpres()
// json.data
[{
  title: String,   // 新闻标题
  penName: String, // 新闻来源
  sid: Number,     // 服务器 id
  fid: Number,     // unknow
  pid: Number      // unknow
}]
```

### 获取 论坛分类

```js
const json = await forum.fetchCategories()
// json.data
[{
  label: String,      // 分类标题
  fid: Number,        // 分类 id
  children: [{        // 该分类下的热门列表 (该接口默认为空数组)
    title: String,    // 标题
    date: String,     // 日期
    penName: String,  // 作者
    host: String,     // 服务器 host
    l: Number,        // padding-left 用于展示缩进 (回帖关系)
    reg: Number,      // unknow
    rid: Number,      // unknow
    g: Number,        // unknow
    id: Number,       // 帖子 id
    size: Number,     // 内容长度
    fid: Number,      // 分类 id
    sid: String       // 服务器 id
  }]
}]
```

### 获取某分类下的帖子列表

```js
const json = await this.forum.fetchCategoryChildren({
  fid: Number, // 分类 id
  p: Number    // 页数 从 1 开始
})
// json.data
// 如果没有更多了 json.data = []
[{
  title: String,   // 标题
  date: String,    // 日期
  penName: String, // 作者
  host: String,    // 服务器 host
  l: Number,       // padding-left 用于展示缩进 (回帖关系)
  reg: Number,     // unknow
  rid: Number,     // unknow
  id: Number,      // 帖子 id
  g: Number,       // unknow
  size: Number,    // 内容长度
  fid: Number,     // 分类 id
  sid: Number      // 服务器 id
}]

```

### 获取论坛详情

```js
const json = await this.forum.fetchDetail({
  id: Number,  // 论坛帖子 id
  sid: Number, // 服务器 id
  p: Number    // 页数 从 0 开始
})
// json.data
{
  topic: String,      // 主题
  title: String,      // 标题
  date: String,       // 日期
  fname: String,      // 分类名
  penName: String,    // 笔名
  content: String,    // 内容
  descendant: Number, // unknow
  id: Number,         // id
  sid: Number,        // 服务器 id
  rid: Number,        // unknow
  fid: Number,        // 分类 id
  size: Number,       // 内容长度
  hits: Number,       // unknow
  reg: Number         // unknow
  replies: Array      // 跟帖
}
```


## PICTORIAL

### 获取画报分类
```js
const json = await pictorial.fetchCategories()
// json.data
[{
  label: String,    // 分类标题
  cid: Number,      // 分类 id
  children: [{      // 默认是空的 (有的话则是热门的)
    id: Number,     // 画报 id
    title: String,  // 标题
    date: String,   // 时间
    size: Number,   // 长度
    source: String, // 来源
    color: Number,  // unknow
    cover: String,  // 封面 uri
    sid: Number,    // 服务器 id
    host: String,   // 服务器 host
    cid: Number     // 分类 id
  }]
}]
```

### 获取某分类下的画报列表
```js
const json = await pictorial.fetchCategoryChildren()
// json.data
[{
  id: Number,      // 画报 id
  title: String,   // 标题
  date: String,    // 时间
  size: Number,    // 长度
  source: String,  // 来源
  color: Number,   // unknow
  cover: String,   // 封面 uri
  sid: Number,     // 服务器 id
  host: String,    // 服务器 host
  cid: Number      // 分类 id
}]
```

### 获取画报详情
```js
const json = await pictorial.fetchDetail()
// json.data
{
  title: String,     // 标题
  cover: String,     // 封面
  content: String,   // HTML
  sid: Number,       // 服务器 id
  cid: Number,       // 分类 id
  rid: Number,       // unknow
  red: Number,       // unknow
  id: Number,        // 画报 id
  fid: Number,       // unknow
  pageNum: Number,   // 当前页
  pageTotal: Number, // 总页数
  descendant: Number // unknow
}
```

## NOTE

### 获取笔记列表
```js
const json = await note.fetchList({
  p: 1,
  // yy, mm, dd 有四种选择
  yy: 2017, mm: 4, dd: 1 // 2017年5月1日 的数据
  yy: 2017, mm: 4        // 2017年5月 的数据
  yy: 2017               // 2017年 的数据
  yy: null               // 所有数据
})
// json.data
[{
  id: 651,              // 笔记 id
  len: 5,               // 长度
  size: 5,              // 长度
  sid: 0,               // 服务器 id
  post: 246,            // unknow
  title: String,        // 笔记标题
  dateCreated: String,  // 创建日期
  timeCreated: String,  // 创建时间
  dateModified: String, // 修改日期
  timeModified: String, // 修改时间
  plan: String,         // 语言
  forum: String,        // unkonw
}]
```

### 获取垃圾桶列表

```js
const json = await note.fetchTrashList(1)
// json.data
[{
  id: 651,              // 笔记 id
  len: 5,               // 长度
  size: 5,              // 长度
  sid: 0,               // 服务器 id
  post: 246,            // unknow
  title: String,        // 笔记标题
  dateCreated: String,  // 创建日期
  timeCreated: String,  // 创建时间
  dateModified: String, // 修改日期
  timeModified: String, // 修改时间
  plan: String,         // 语言
  forum: String,        // unkonw
}]
```

### 获取笔记记录日历 (用于在日历上显示当天是否有笔记)

```js
const json = await note.fetchRecordCalendar({
  yy: 2017,    // 示例为 2017年 不传则默认当前年份
  mm: 4        // 示例为 5月 不传则默认当前月份
})
// json.data
[{
  yy: Number, // 返回查询年
  mm: Number, // 返回查询月
}]
```

### 笔记移到垃圾桶 (并不是彻底删除)

```js
const json = await note.trash({id}) // {id} 传参, 以防以后有可能需要传 sid 或者 host
```

### 彻底删除笔记

```js
const json = await note.remove({id}) // {id} 传参, 以防以后有可能需要传 sid 或者 host
```

# TODO
 - 修改api后测试需要调整