Go_DDQuery

package module
v1.0.3-beta1 Latest Latest
Warning

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

Go to latest
Published: Jan 29, 2023 License: AGPL-3.0 Imports: 2 Imported by: 0

README

Go-DDQuery

Go语言的Bilibili的DD成分查询
  • 通过UID查询
  • 通过用户名查询
  • 显示所有大航海数据
  • 显示直播中的主播
  • 通过HTTP接口查询, 支持其他BOT调用

须知

这是从我的Bot上单独分离的功能, 想必有不少人是通过我的Bot找到这里的. 此项目相比我Bot上使用的部分, 有以下不同:

  1. 去掉了登录接口: 无查询粉丝牌 / IP属地功能
  2. 未进行粉丝量的限制
使用方法:
  1. 非常简单

其中, nameuid至少要有一个不为空

route, err := Go_DDQuery.DDQuery(name, uid)

此时的route即为生成图片的路径

  1. 直接在命令行使用
package main

import (
    "fmt"
	"os/exec"
	"strconv"
	"github.com/FishZe/Go-DDQuery"
)

func main() {
	var input string
	fmt.Println("请输入要查询的昵称或UID (如: 陈睿 / UID: 1):")
	_, err := fmt.Scanln(&input)
	if err != nil {
		return
	}
	var uid int64
	var name string
	if len(input) > 4 && (input[:4] == "UID:" || input[:4] == "uid:") {
		input = input[4:]
		uid, err = strconv.ParseInt(input, 10, 64)
		if err != nil {
			fmt.Println("输入的UID格式错误")
			return
		}
	} else {
		name = input
	}
	route, err := Go_DDQuery.DDQuery(name, uid)
	if err != nil {
		fmt.Println(err)
		return
	}
	fmt.Println(route)
	cmd := exec.Command("cmd", "/k", "start", route)
	err = cmd.Start()
	if err != nil {
		return
	}
}
  1. Gin一起使用
package main

import (
	"github.com/FishZe/Go-DDQuery"
	"github.com/gin-gonic/gin"
	"net/http"
	"os"
	"strconv"
)

func main() {
	gin.SetMode(gin.ReleaseMode)
	r := gin.Default()
	r.GET("/query", func(c *gin.Context) {
		if c.Query("uid") == "" && c.Query("name") == "" {
			c.JSON(http.StatusOK, gin.H{
				"error": "uid or name is required",
			})
			return
		}
		var uid int64
		var name string
		if c.Query("uid") != "" {
			uid, _ = strconv.ParseInt(c.Query("uid"), 10, 64)
		} else {
			name = c.Query("name")
		}
		route, err := Go_DDQuery.DDQuery(name, uid)
		if err != nil {
			c.JSON(http.StatusOK, gin.H{
				"error": err.Error(),
			})
			return
		}
		if c.Query("show") == "1" {
			file, _ := os.ReadFile(route)
			_, err2 := c.Writer.WriteString(string(file))
			if err2 != nil {
				c.JSON(http.StatusOK, gin.H{
					"error": err2.Error(),
				})
				return
			}
		} else {
			c.JSON(http.StatusOK, gin.H{
				"route": route,
				"error": nil,
			})
		}
	})
	err := r.Run()
	if err != nil {
		return
	}
}

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DDQuery

func DDQuery(Name string, Uid int64) (string, error)

Types

This section is empty.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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