123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215 |
- package third
- import (
- "encoding/json"
- "errors"
- )
- type Parser struct {
- card string
- baseUrl string
- }
- type ParserRespond struct {
- Code int `json:"code"`
- Message string `json:"message"`
- Data interface{} `json:"data"`
- }
- func uPost(req interface{}, url string) (result ParserRespond, err error) {
- t, _ := json.Marshal(req)
- res, err := post(url, t)
- if err != nil {
- return
- }
- err = json.Unmarshal(res, &result)
- if err != nil {
- return
- }
- if result.Code != 200 {
- return result, errors.New(result.Message)
- }
- return
- }
- /*
- 功能: 新建一个解析器
- 输入:
- card: 当前用户卡密
- baseUrl: 服务器基础路径
- 返回:
- respond: 解析记录切片
- error: 解析报错
- */
- func NewParser(card string, baseUrl string) *Parser {
- return &Parser{card, baseUrl}
- }
- /*
- 功能: 查看当前接口是否正常, 貌似没啥意义
- 输入:
- 无
- 返回:
- respond: 正常/异常
- error: 解析报错
- */
- func (p *Parser) GetUserInfo() (bool, error) {
- url := p.baseUrl + VipStatusUrl
- _, err := post(url, []byte("{}"))
- if err != nil {
- return false, err
- }
- return true, nil
- }
- /*
- 功能: 查看当前用户解析记录
- 输入:
- 无
- 返回:
- respond: 解析记录切片
- error: 解析报错
- */
- func (p *Parser) GetRecords() ([]GetRecordsRespondData, error) {
- url := p.baseUrl + VipRecordsUrl
- key := getUserKey(p.card)
- req := GetRecordsRequestParam{
- UserToken: key,
- Email: key,
- }
- result, err := uPost(req, url)
- if err != nil {
- return nil, err
- }
- r, ok := result.Data.([]GetRecordsRespondData)
- if !ok {
- return nil, errors.New("断言数据类型错误")
- }
- return r, nil
- }
- /*
- 功能: 查看当前用户客户端的信息
- 输入:
- 无
- 返回:
- respond: 客户端信息
- error: 解析报错
- */
- func (p *Parser) GetCountProxy() (*GetCountProxyRespondData, error) {
- url := p.baseUrl + VipProxyStatusUrl
- key := getUserKey(p.card)
- req := GetCountProxyRequestParam{
- Key: key,
- }
- result, err := uPost(req, url)
- if err != nil {
- return nil, err
- }
- r, ok := result.Data.(GetCountProxyRespondData)
- if !ok {
- return nil, errors.New("断言数据类型错误")
- }
- return &r, nil
- }
- /*
- 功能: 查看当前文章是否支持解析/或者路径是否正确
- 输入:
- source: csdn 文章路径
- 返回:
- bool: 支持/不支持
- error: 解析报错
- */
- func (p *Parser) GetTaskPrice(source string) (bool, error) {
- url := p.baseUrl + VipTaskPriceUrl
- req := GetTaskPriceRequestParam{
- Url: source,
- }
- result, err := uPost(req, url)
- if err != nil {
- return false, err
- }
- r, ok := result.Data.(int)
- if !ok {
- return false, errors.New("断言数据类型错误")
- }
- return r == 1, nil
- }
- /*
- 功能: 解析当前文章
- 输入:
- source: csdn 文章路径
- 返回:
- result: 解析的文章路径, 可以直接下载查看的路径
- error: 解析报错
- */
- func (p *Parser) PurchasePaperPlusProxy(source string) (string, error) {
- url := p.baseUrl + VipParseUrl
- key := getUserKey(p.card)
- req := PurchasePaperPlusProxyRequestParam{
- CssUrl: "https://unlockdoc.smain.cn/assets/13062df20.css",
- Other: "1",
- Email: nil,
- Url: source,
- UseNum: 1,
- Key: key,
- }
- result, err := uPost(req, url)
- if err != nil {
- return "", err
- }
- r, ok := result.Data.(string)
- if !ok {
- return "", errors.New("断言数据类型错误")
- }
- return r, nil
- }
|