xgotool

package module
v0.0.7 Latest Latest
Warning

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

Go to latest
Published: Jun 28, 2023 License: BSD-3-Clause-Clear Imports: 22 Imported by: 0

README

xgotool

介绍

go代码的个人工具仓库,其他地方可直接引入此包以便使用

PS: 此工具包中部分功能可能会依赖于其他mod包,并非完全自主原创的代码工具包

软件架构
目录 说明
/ 最常用的工具存放于此处
/https 网络请求工具存放于此处
/xgodb 数据库相关工具存放于此处
/xgostring 常用字符串处理类
安装教程

本工具包为源码依赖、源码发布,所以无具体安装教程

使用说明

在代码中的 import 结构中可直接复制 gitee.com/xiaoyutab/xgotool ,然后代码中使用 xgotool.xxxx 即可,最后执行命令 go mod tidy 进行代码包下载

参与贡献
  1. Fork 本仓库
  2. 新建 Feat_xxx 分支
  3. 提交代码
  4. 新建 Pull Request

Documentation

Index

Constants

View Source
const (
	DATETIMES  = "2006-01-02 15:04:05" // 日期时间格式化
	DATES      = "2006-01-02"          // 年-月-日
	DATE_MONTH = "2006-01"             // 年-月
	TIMES      = "15:04:05"            // 时间格式化
)
View Source
const EARTH_RADIUS = 6378.137

地球半径大小 用于计算两个经纬度间的距离

View Source
const FLOAT_EQUAL_MIN = 0.0000001

浮点数比较相等时的最小值

因为浮点数的精度存在丢失问题,所以浮点数的相同不能比较绝对的相等,而应该是在某一范围内相同

所以此处的相同浮点数范围表示为 0.000,000,1

Variables

View Source
var WeekList = map[uint8]string{
	0: "日",
	1: "一",
	2: "二",
	3: "三",
	4: "四",
	5: "五",
	6: "六",
}

周uint定位

Functions

func Base64 added in v0.0.5

func Base64(p string) string

对字符串进行base64编码

p	待编码的字符串

func Base64Raw added in v0.0.5

func Base64Raw(p string) string

对字符串进行base64编码[去除填充吗,一般用于jwt]

p	待编码的字符串

func EarthDistance added in v0.0.7

func EarthDistance(lat1, lng1, lat2, lng2 float64) float64

计算经纬度之间的距离 计算公式:C = sin(LatA*Pi/180)*sin(LatB*Pi/180) + cos(LatA*Pi/180)*cos(LatB*Pi/180)*cos((MLonA-MLonB)*Pi/180)

lat1	坐标点1的纬度
lng1	坐标点1的经度
lat1	坐标点2的纬度
lng2	坐标点2的经度

func EmojiDecode

func EmojiDecode(s string) string

表情解码 将emoji表情替换成类似[\u1f415]的字符串

s	待解码的含emoji表情的字符串

func EmojiEncode

func EmojiEncode(s string) string

表情编码 将类似[\u1f415]的解码emoji表情转换为原始的emoji表情

s	含有类似[\u1f415]字符串的字符串

func Exec

func Exec(name string, arg ...string) (string, error)

Exec 执行Shell命令并等待结果输出【避免僵尸进程】

如果要使用管道进行输出,则需要使用bash进行嵌套,如:

xgotool.Exec("bash", "-c", "ps aux | grep go")

func Get added in v0.0.4

func Get(url string, param, header map[string]string) *https.CURL

GET请求

url		请求地址
param	请求参数
header	请求头,自动追加accept、Content-Type等属性

func InArray

func InArray(s any, arr any) bool

判断s是否在arr数组中

s	待判断的变量,支持类型:bool,string,float64,float32,int,uint,int8,uint8,int16,uint16,int32,uint32,int64,uint64
arr	待判断的数组,需要对应s的类型,即s为string时arr为[]string

func IsEqualFloat32

func IsEqualFloat32(f1, f2 float32) bool

判断两个浮点数是否相等

f1	待比较的浮点数
f2	待比较的浮点数

func IsEqualFloat64

func IsEqualFloat64(f1, f2 float64) bool

判断两个浮点数是否相等

f1	待比较的浮点数
f2	待比较的浮点数

func Jwt added in v0.0.5

func Jwt(key []byte, payloadData any) (string, error)

生成jwt签名

key			签名
payloadData	待加密的内容

func MD5 added in v0.0.5

func MD5(text string) string

计算字符串的MD5值

text	待计算的字符串值

func MD5Byte added in v0.0.5

func MD5Byte(data []byte) string

计算byte字节流的MD5值

data	待计算的字节流的值

func MD5File added in v0.0.5

func MD5File(file string) string

计算文件的MD5值

file	文件的绝对路径

func Post added in v0.0.4

func Post(url string, param, header map[string]string) *https.CURL

Post请求

url		请求地址
param	请求参数
header	请求头,自动追加accept、Content-Type等属性

func PostJson added in v0.0.4

func PostJson(url string, param map[string]any, header map[string]string) *https.CURL

Post请求[此请求会以json形式发送数据]

url		请求地址
param	请求参数
header	请求头,自动追加accept、Content-Type等属性

func SHA1 added in v0.0.5

func SHA1(text string) string

计算字符串的SHA1值

func SHA1Byte added in v0.0.5

func SHA1Byte(data []byte) string

计算byte字节流的SHA1值

data	待计算的字节流

func SHA1File added in v0.0.5

func SHA1File(file string) string

计算文件的SHA1

file	文件的绝对路径

func SshExec added in v0.0.3

func SshExec(cliConf *ClientConfig, shell string) (string, error)

运行Shell并获取输出内容

shell	待运行的命令

func TimeDateAge added in v0.0.2

func TimeDateAge(str1 string) (uint, error)

计算传入日期到现在的时间差[单位-年,用于计算年龄] str1需为yyyy-mm-dd格式的时间才行

func TimeDateDiff added in v0.0.2

func TimeDateDiff(str1, str2 string) (time.Duration, error)

计算两个时间的时间差 str1和str2均为yyyy-mm-dd格式的时间才行

func TimeDiff added in v0.0.2

func TimeDiff(str1, str2 string) (time.Duration, error)

计算两个时间的时间差 str1和str2均为yyyy-mm-dd hh:mm:ss格式的时间才行

func UnBase64 added in v0.0.5

func UnBase64(p string) string

对字符串进行encode64解码

p	待解码的字符串

func UnBase64Raw added in v0.0.5

func UnBase64Raw(p string) string

对字符串进行encode64解码[去除填充解码,一般用于jwt]

p	待解码的字符串

func UnJwt added in v0.0.5

func UnJwt(key []byte, token string, stu any) error

带签名秘钥的JWT解密

key		签名秘钥
token	JWT字符串
stu		结构体形式的参数体

func UnJwtNoKey added in v0.0.5

func UnJwtNoKey(token string, stu any) error

JWTToken 无视秘钥进行解密

token	JWT token结构体
stu		JWT token解析出的数据

Types

type ClientConfig added in v0.0.3

type ClientConfig struct {
	Host     string      //ip
	Port     int         // 端口
	Username string      //用户名
	Password string      //密码
	IsPK     bool        // 是否是证书【如果是证书的话,password项填写证书位置】
	Client   *ssh.Client //ssh client
}

连接的配置

type UaInfo

type UaInfo struct {
	Mobile        bool   `json:"mobile"`         // 是否是移动设备
	Bot           bool   `json:"bot"`            // 是否是机器人程序
	Mozilla       string `json:"mozilla"`        // Mozilla版本
	Model         string `json:"model"`          // 手机型号
	Platform      string `json:"platform"`       // 所在平台
	OS            string `json:"os"`             // 操作系统
	EngineName    string `json:"engine_name"`    // 引擎名称
	EngineVersion string `json:"engine_version"` // 引擎版本
	BrowName      string `json:"brow_name"`      // 浏览器名称
	BrowVersion   string `json:"brow_version"`   // 浏览器版本
}

根据UA解析其中内容

func Ua2info

func Ua2info(user_agent_string string) UaInfo

根据UA获取详情信息

Directories

Path Synopsis
网络请求组件
网络请求组件
数据库操作相关服务
数据库操作相关服务
xgodbconfig
数据库配置的读写支持
数据库配置的读写支持
字符串处理方法
字符串处理方法

Jump to

Keyboard shortcuts

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