helper

package
v0.0.0-...-01033d1 Latest Latest
Warning

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

Go to latest
Published: Feb 14, 2023 License: Apache-2.0 Imports: 33 Imported by: 102

Documentation

Overview

定义一些常量和变量

Index

Constants

View Source
const (
	//DocHub Version
	VERSION = "v2.4"
	//Cache Config
	CACHE_CONF = `{"CachePath":"./cache/runtime","FileSuffix":".cache","DirectoryLevel":2,"EmbedExpiry":120}`

	DEFAULT_STATIC_EXT    = ".txt,.html,.ico,.jpeg,.png,.gif,.xml"
	DEFAULT_COOKIE_SECRET = "dochub"

	//	扩展名
	EXT_CATE_WORD       = "word"
	EXT_NUM_WORD        = 1
	EXT_CATE_PPT        = "ppt"
	EXT_NUM_PPT         = 2
	EXT_CATE_EXCEL      = "excel"
	EXT_NUM_EXCEL       = 3
	EXT_CATE_PDF        = "pdf"
	EXT_NUM_PDF         = 4
	EXT_CATE_TEXT       = "text"
	EXT_NUM_TEXT        = 5
	EXT_CATE_OTHER      = "other"
	EXT_NUM_OTHER       = 6
	EXT_CATE_OTHER_MOBI = "mobi"
	EXT_CATE_OTHER_EPUB = "epub"
	EXT_CATE_OTHER_CHM  = "chm"
	EXT_CATE_OTHER_UMD  = "umd"

	RootPath = "./virtualroot" // 虚拟根目录
)
View Source
const (
	//word
	ExtDOC  = ".doc"
	ExtDOCX = ".docx"
	ExtRTF  = ".rtf"
	ExtWPS  = ".wps"
	ExtODT  = ".odt"

	// power point
	ExtPPT  = ".ppt"
	ExtPPTX = ".pptx"
	ExtPPS  = ".pps"
	ExtPPSX = ".ppsx"
	ExtDPS  = ".dps"
	ExtODP  = ".odp"
	ExtPOT  = ".pot"

	// excel
	ExtXLS  = ".xls"
	ExtXLSX = ".xlsx"
	ExtET   = ".et"
	ExtODS  = ".ods"

	// PDF
	ExtPDF = ".pdf"

	// text
	ExtTXT = ".txt"

	// other
	ExtEPUB = ".epub"
	ExtUMD  = ".umd"
	ExtMOBI = ".mobi"
	ExtCHM  = ".chm"
)

Variables

View Source
var (
	//develop mode
	Debug = beego.AppConfig.String("runmode") == "dev"

	//允许直接访问的文件扩展名
	StaticExt = make(map[string]bool)

	//分词器
	Segmenter sego.Segmenter

	//配置文件的全局map
	ConfigMap sync.Map

	//程序是否已经安装
	IsInstalled = false

	//允许上传的文档扩展名
	//AllowedUploadExt = ",doc,docx,rtf,wps,odt,ppt,pptx,pps,ppsx,dps,odp,pot,xls,xlsx,et,ods,txt,pdf,chm,epub,umd,mobi,"
	AllowedUploadDocsExt = map[string]bool{
		".doc": true, ".docx": true, ".rtf": true, ".wps": true, ".odt": true,
		".ppt": true, ".pptx": true, ".pps": true, ".ppsx": true, ".dps": true, ".odp": true, ".pot": true,
		".xls": true, ".xlsx": true, ".et": true, ".ods": true,
		".pdf":  true,
		".epub": true, ".mobi": true, ".txt": true,
		".umd": true, ".chm": true,
	}

	// 图片尺寸
	CoverWidth   = beego.AppConfig.DefaultInt("cover_width", 140)
	CoverHeight  = beego.AppConfig.DefaultInt("cover_height", 200)
	BannerWidth  = beego.AppConfig.DefaultInt("banner_width", 825)
	BannerHeight = beego.AppConfig.DefaultInt("banner_height", 316)
	AvatarWidth  = beego.AppConfig.DefaultInt("avatar_width", 120)
	AvatarHeight = beego.AppConfig.DefaultInt("avatar_height", 120)
)
View Source
var (
	HeaderGzip = map[string]string{"Content-Encoding": "gzip"}
	HeaderSVG  = map[string]string{"Content-Type": "image/svg+xml"}
	HeaderPNG  = map[string]string{"Content-type": "image/png"}
	HeaderJPEG = map[string]string{"Content-type": "image/jpeg"}
)
View Source
var Logger = logs.NewLogger()

日志变量

Functions

func BuildURL

func BuildURL(prefix string, params ...interface{}) (urlstr string)

生成url链接 @param prefix 前缀 @param params 参数 @return urlstr 返回组装后的url

func CacheGet

func CacheGet(key string) (interface{}, error)

获取缓存

func CacheSet

func CacheSet(key string, value interface{}, t time.Duration) error

设置缓存

func CalcInt

func CalcInt(num1 interface{}, oper string, num2 interface{}) int

整型计算

func CompressByGzip

func CompressByGzip(file string) (err error)

使用GZIP压缩文件

func CompressBySVGO

func CompressBySVGO(input, output string) (err error)

使用SVGO压缩svg文件 @param input 需要压缩的原文件 @param output 压缩后的文件路径 @param err 压缩错误

func CompressSVG

func CompressSVG(input, output string, level ...int) (err error)

func ComputeFileMD5

func ComputeFileMD5(file io.Reader) string

func ConvertByCalibre

func ConvertByCalibre(file string, ext ...string) (resFile string, err error)

非office文档(.txt,.mobi,.epub)转pdf文档

func ConvertPDF2SVG

func ConvertPDF2SVG(pdfFile, svgFile string, pageNO int) (err error)

将 PDF 转成 SVG

func ConvertToJPEG

func ConvertToJPEG(file string) (cover string, err error)

将PDF、SVG文件转成jpg图片格式。注意:如果pdf只有一页,则文件后缀不会出现"-0.jpg"这种情况,否则会出现"-0.jpg,-1.jpg"等

func CountPDFPages

func CountPDFPages(file string) (pageNum int, err error)

统计PDF的页数 @param file 文件路径 @return pagenum 页码,当返回错误时,页码为0 @return err 错误

func CropImage

func CropImage(file string, width, height int) (err error)

图片缩放居中裁剪 图片缩放居中裁剪 @param file 图片文件 @param width 图片宽度 @param height 图片高度 @return err 错误

func Default

func Default(val, defVal interface{}, preventZero ...bool) string

生成默认值 @param val interface{} 值 @param defVal interface{} 默认值 @param preventZero ...bool 是否保留0值

func DelSlice

func DelSlice(slice []interface{}, index int) []interface{}

根据切片或数组下表,移除元素

func DeleteSlice

func DeleteSlice(slice []string, keys ...string) []string

删除切片中的指定key,并返回

func DownFile

func DownFile(fileUrl, savePath string, cookies string) (md5str, localFile, filename string, err error)

文件下载,这里只是简单的文档下载,复杂点的,需要根据Content-Type去做处理 @param fileUrl 文件下载URL连接 @param savePath 文件存放文件夹 @param cookies COOKIE @return md5str 文档的md5 @return localFile 本地存放文件,err为nil时才需要处理文件,否则不需要处理 @return filename 文件下载时的文件名 @return err 错误

func Equal

func Equal(itf1, itf2 interface{}) bool

比较两个内容的字符串类型是否相等

func ExtractTextFromPDF

func ExtractTextFromPDF(file string, from, to int) (content string)

获取PDF中指定页面的文本内容 @param file PDF文件 @param from 起始页 @param to 截止页

func FileMd5

func FileMd5(path string) (string, error)

获取文件的MD5 @path string 文件路径

func FormatByte

func FormatByte(size int) string

转换字节大小

func GenerateAppConf

func GenerateAppConf(host string, port int, username, password, database, prefix string, charset ...string) (err error)

生成app.conf配置文件

func GetConfig

func GetConfig(cate ConfigCate, key string, def ...string) string

获取配置 @param cate 配置分类 @param key 键 @param def default,即默认值 @return val 值

func GetConfigBool

func GetConfigBool(cate ConfigCate, key string) (val bool)

获取配置 @param cate 配置分类 @param key 键 @return val 值

func GetConfigFloat64

func GetConfigFloat64(cate ConfigCate, key string) (val float64)

获取配置 @param cate 配置分类 @param key 键 @return val 值

func GetConfigInt64

func GetConfigInt64(cate ConfigCate, key string) (val int64)

获取配置 @param cate 配置分类 @param key 键 @return val 值

func GetExtCate

func GetExtCate(ext string) (extCate string, extNum int)

获取文档扩展名分类以及扩展名分类对应的catenum数字 @param ext 扩展名 @return extCate 文档类型(字符串) @return extNum 文档类型(整型)

func GetExtCateByExtNum

func GetExtCateByExtNum(num int) (extCate string)

获取文档扩展名分类以及扩展名分类对应的catenum数字 @param ext 扩展名 @return extCate 文档类型(字符串) @return extNum 文档类型(整型)

func GetSuffix

func GetSuffix(str, seg string) string

根据字符串后缀,比如根据文件路径获取后缀等 @str string 字符串或者文件路径 @seg string 分隔符

func HandlePageNum

func HandlePageNum(PageNum interface{}) string

页数处理,处理页数为0或者页数为空的时候的显示

func HeaderDisposition

func HeaderDisposition(name string) map[string]string

func HeightLight

func HeightLight(title string, words []string) template.HTML

高亮,主要用于搜索结果高亮

func I18n

func I18n(tag string, lang ...string) string

语言国际化,目前默认为中文

func InitLogs

func InitLogs()

日志初始化

func Interface2Int

func Interface2Int(a interface{}) int

将字符串或者其他可转化数字的内容格式化成int数字类型返回 @param a interface{} 需要转化成数字的内容

func Interface2String

func Interface2String(v interface{}) string

将interface{}转为字符串,适合bool,数字等 @v interface{} 需要转化为字符串的值

func IsImage

func IsImage(path string) bool

判断文件路径判断文件是否是符合要求的图片格式,jpeg,jpg,gif,png,bmp,tif,tiff @path string 文件路径

func MD5Crypt

func MD5Crypt(str string) string

MD5加密函数 @str string 需要进行加密的字符串

func MySha1

func MySha1(str string) string

sha1加密 @param str string 需要加密的字符串 @return string 加密后的字符串

func NumberRange

func NumberRange(val, min, max int) int

数字变化范围 @param val int 需要处理的参数数字 @param min int 最小值 @param max int 最大值 @return int 返回最大值与最小值之间的值

func OfficeToPDF

func OfficeToPDF(file string) (err error)

office文档转pdf,返回转化后的文档路径和错误

func Paginations

func Paginations(rollPage, totalRows, listRows, currentPage int, urlPrefix string, urlParams ...interface{}) string

分页函数 rollPage:展示分页的个数 totalRows:总记录 currentPage:每页显示记录数 urlPrefix:url链接前缀 urlParams:url键值对参数

func ParseSvgWidthAndHeight

func ParseSvgWidthAndHeight(file string) (width, height int)

解析svg的原始宽高 @param file svg文件

func RandStr

func RandStr(size int, kind int) string

获取指定个数的随机字符串 @param size int 指定的字符串个数 @param kind int 0,纯数字;1,小写字母;2,大写字母;3,数字+大小写字母 @return string 返回生成的随机字符串

func ScanDir

func ScanDir(dir string) (files []string)

扫描目录目录中的文件

func SegWord

func SegWord(str interface{}) (wds string)

分词 @param str 需要分词的文字

func StarVal

func StarVal(score int, IsScore bool) string

文档评分处理 score:文档评分 IsScore:是否返回处理后的评分,true:返回评分,如“4.5”,false返回css的星,如"45"

func StringSliceToInterfaceSlice

func StringSliceToInterfaceSlice(slice []string) (ret []interface{})

将字符串切片转成interface切片

func StringSliceToMap

func StringSliceToMap(slice []string) (maps map[string]string)

将字符串切片数组转成map

func SubStr

func SubStr(str interface{}, start, length int) string

字符串截取

func SvgTextWatermark

func SvgTextWatermark(file, text string, x, y int) (err error)

解析svg的原始宽高(TODO:水印效果不是很好,待优化) @param file svg文件 @param text 水印文字 @param x x轴线位置 @param y y轴位置 @return err 错误

func TestValid

func TestValid()

测试数据验证,仅作为测试验证规则

func TimestampFormat

func TimestampFormat(timestamp int, format ...string) string

时间戳格式化 @timestamp int 时间戳 @format string 时间格式,如:"2006-01-02 15:04:05"

func UpperFirst

func UpperFirst(str string) string

首字母大写

func UrlEscape

func UrlEscape(str string) string

url请求处理

func Valid

func Valid(params url.Values, rules map[string][]string) (map[string]interface{}, map[string]string)

参数验证 规则中,required表示必传参数,有无值则是另外一回事 验证规则有以下(大小写不敏感): 1、required 参数必传,有无值则是另外一回事,使用示例:"required" 1、unempty 值不能为空,使用示例:"unempty" 2、min 最小值验证,使用示例:"min:1" 3、max 最大值验证,使用示例:"max:1000" 4、minlen、mincount 最小长度验证,使用示例:"minlen:2" 说明:count是字符个数校验,len是字节个数校验,如"地球",如果是len,则是6个字节,如果是count,则是2个字符 5、maxlen、maxcount 最大长度验证,使用示例:"maxcount:255" 说明:count是字符个数校验,len是字节个数校验,如"地球",如果是len,则是6个字节,如果是count,则是2个字符 6、len、count 字符串长度验证,使用示例:"len:40" 说明:count是字符个数校验,len是字节个数校验,如"地球",如果是len,则是6个字节,如果是count,则是2个字符 7、email 邮箱格式验证,使用示例:"email" 8、tel 座机号码格式验证,使用示例:"tel" 9、mobile 手机号码格式验证,使用示例:"mobile" 10、phone 电话号码格式验证,包括手机号码和座机号码,使用示例:"phone" 11、enum 参数值验证,参数值只能是其中指定的一个值,使用示例:"enum:男:女:保密" 12、range 参数区间,适用于数字变化范围,使用示例:"range:1:100" 13、int,int8,int32,int64,float32,float64,string 只要有这些数据类型的字段,则表示类型转换,使用示例:"int64" 14、zipcode 邮政编码验证,使用示例:"zipcode" 15、ip IP地址格式验证,使用示例:"ip" 16、alpha 字符验证,字符必须是大小写字母,使用示例:"alpha" 17、numeric 数字验证,必须是0-9中的数字,使用示例:"numeric" 18、alphanumeric 大小写字母和数字验证,值必须是大小写字母和数字,使用示例:"alphanumeric" 19、alphadash 大小写字母、数字、横杠(-_)验证,使用示例:"alphadash" 20、gt,lt,gte,lte 大于、小于、大于等于或者小于等于指定数值:使用示例:"gt:0" 说明:如果是等于指定数值,使用enum,如"enum:1",即等于1 21、regexp 正则校验,使用示例:"regexp:[a-zA-z0-9\.\-\_]{10}",第一个冒号后面的表示正则规则 ############################################ @param params url.Values参数 @param rules 验证规则 @return 返回验证后通过的数据 @return 返回错误的map

Types

type ConfigCate

type ConfigCate string

type Info

type Info struct {
	Width, Height int    //图片宽高
	Size          int64  //图片文件大小
	Md5           string //图片md5
	ModTime       int    //图片修改时间戳
	Ext           string //图片后缀
}

图片文件信息

type PdfRet

type PdfRet struct {
	Cover   string //封面路径文件
	Preview string //
	Total   int
	Err     error
}

PdfProcedure专用

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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