Selaa lähdekoodia

updated: 1.整理目录和函数

QiuSW 1 vuosi sitten
vanhempi
commit
b2ad9a0c3a

+ 2 - 14
ReadMe.md

@@ -1,19 +1,7 @@
-# GCore
+# GBase
 
 * 常用方法封装
 
 ## 目录
 
-### core基础模块
-
-### image图像处理模块
-
-### net网络模块
-
-### office办公文档模块
-
-#### Excel
-
-#### Word
-
-#### SharePoint
+### cmd

+ 2 - 1
core/archive.go → cmd/archive.go

@@ -1,4 +1,4 @@
-package core
+package cmd
 
 // @Title  archive
 // @Description  创建和释放压缩包
@@ -19,6 +19,7 @@ import (
 // @auth      ila 2021-11-04 14:33:00
 // @param     zipPath  zip文件路径,attachPath 解压路径,contains 包含的字符串
 // @return    error        是否成功
+
 func Unzip(zipPath, attachPath string, contains []string) error {
 
 	z, err := zip.OpenReader(zipPath)

+ 4 - 3
core/core.go → cmd/array.go

@@ -1,9 +1,10 @@
-package core
+package cmd
 
 import "sort"
 
-//In 判断字符串是否在数组里
-func In(target string, strArray []string) bool {
+// In 判断字符串是否在字符串数组里
+
+func InArray(target string, strArray []string) bool {
 	sort.Strings(strArray)
 	index := sort.SearchStrings(strArray, target)
 	if index < len(strArray) && strArray[index] == target {

+ 3 - 2
core/chrome.go → cmd/chrome.go

@@ -1,4 +1,4 @@
-package core
+package cmd
 
 import (
 	"fmt"
@@ -34,12 +34,13 @@ func GetChromeExePath() (path string, err error) {
 // @description    获取windows当前用户的chrome用户目录
 // @param
 // @return chromeuserDataDir string
+
 func GetChromeUserDataDir() string {
 	userHome, _ := os.UserHomeDir()
 	return filepath.Join(userHome, "/AppData/Local/Google/Chrome/User Data/Default")
 }
 
-//CheckChromeInstalled 检查是否安装了chrome
+// CheckChromeInstalled 检查是否安装了chrome
 func CheckChromeInstalled() bool {
 	key, err := registry.OpenKey(registry.CURRENT_USER, "Software\\Google\\Chrome", registry.READ)
 

+ 4 - 2
core/command_line.go → cmd/command_line.go

@@ -1,4 +1,4 @@
-package core
+package cmd
 
 import (
 	"context"
@@ -7,7 +7,9 @@ import (
 	"time"
 )
 
-func Command(name string, arg ...string) (string, error) {
+//execute a command with timeout
+
+func CommandWithTimeout(name string, arg ...string) (string, error) {
 	ctxt, cancel := context.WithTimeout(context.Background(), 60*5*time.Second)
 	defer cancel() //releases resources if slowOperation completes before timeout elapses
 

+ 23 - 0
cmd/convert.go

@@ -0,0 +1,23 @@
+package cmd
+
+import "golang.org/x/text/encoding/simplifiedchinese"
+
+/*
+description:convert the command`s stdout byte data to string
+*/
+
+func ConvertByte2String(byte []byte, charset string) string {
+
+	var str string
+	switch charset {
+	case "UTF-8":
+		decodeBytes, _ := simplifiedchinese.GB18030.NewDecoder().Bytes(byte)
+		str = string(decodeBytes)
+	case "GB18030":
+		fallthrough
+	default:
+		str = string(byte)
+	}
+
+	return str
+}

+ 4 - 3
xnet/cookie.go → cmd/cookie.go

@@ -1,7 +1,6 @@
-package xnet
+package cmd
 
 import (
-	"gcore/core"
 	"github.com/zellyn/kooky/chrome"
 	"log"
 	"net/http"
@@ -14,6 +13,7 @@ import (
 // @description    从本地chrome路径加载指定domain的cookies
 // @param    domain string 需要提起cookie的domain
 // @return
+
 func LoadChromeCookies(domain string) ([]*http.Cookie, error) {
 
 	var cookies []*http.Cookie
@@ -21,7 +21,7 @@ func LoadChromeCookies(domain string) ([]*http.Cookie, error) {
 	userHomeDir, _ := os.UserHomeDir()
 	defaultPath := "AppData/Local/Google/Chrome/User Data/Default/"
 	cookiesFile := filepath.Join(userHomeDir, defaultPath, cookiesName)
-	exist, _ := core.FileExists(cookiesFile)
+	exist, _ := FileExists(cookiesFile)
 	if exist == false {
 		cookiesFile = filepath.Join(userHomeDir, defaultPath, "Network", cookiesName)
 	}
@@ -50,6 +50,7 @@ func LoadChromeCookies(domain string) ([]*http.Cookie, error) {
 // @description    从本地chrome路径加载指定domain的cookies
 // @param    domain string 需要提起cookie的domain
 // @return
+
 func LoadChromeCookiesVer1(domain, cookiesPath string) ([]*http.Cookie, error) {
 
 	var cookies []*http.Cookie

+ 9 - 3
xnet/dingtalk_oa.go → cmd/dingtalk_oa.go

@@ -1,9 +1,8 @@
-package xnet
+package cmd
 
 import (
 	"encoding/json"
 	"fmt"
-	"gcore/core"
 	"log"
 	"net/http"
 	"strings"
@@ -36,6 +35,7 @@ type DingTalkConf struct {
 // @description 获取access token
 // @param
 // @return
+
 func (m *DingTalkConf) GetToken() error {
 	params := map[string]string{"appkey": m.AppKey, "appsecret": m.AppSecret}
 	content, err := GetX(m.GetTokenUrl, "", params, m.Headers, m.Cookie)
@@ -87,6 +87,7 @@ func (m *DingTalkConf) GetHolidayType() (err error) {
 // @description 获取部门列表,只支持查询下一级子部门 https://developers.dingtalk.com/document/app/obtain-the-department-list-v2
 // @param
 // @return
+
 func (m *DingTalkConf) GetDeptList(deptId int64) ([]interface{}, error) {
 	result := []interface{}{}
 	PostData := make(map[string]interface{})
@@ -136,6 +137,7 @@ func (m *DingTalkConf) GetDeptList(deptId int64) ([]interface{}, error) {
 // @description 获取部门成员的姓名和userid https://developers.dingtalk.com/document/app/queries-the-simple-information-of-a-department-user
 // @param
 // @return
+
 func (m *DingTalkConf) GetDeptUserList(deptId int64) (map[string]string, error) {
 	cursor := 0.0
 	size := 100
@@ -204,6 +206,7 @@ func (m *DingTalkConf) GetDeptUserList(deptId int64) (map[string]string, error)
 // @description 批量获取考勤组摘要 https://developers.dingtalk.com/document/app/batch-query-of-simple-information-of-the-attendance-group
 // @param
 // @return
+
 func (m *DingTalkConf) GetAttendanceGroup() ([]map[string]interface{}, error) {
 	groupData := []map[string]interface{}{}
 
@@ -261,12 +264,13 @@ func (m *DingTalkConf) GetAttendanceGroup() ([]map[string]interface{}, error) {
 // @description 获取7天内的指定时间段成员的打卡记录, https://developers.dingtalk.com/document/app/open-attendance-clock-in-data
 // @param days获取多少天内的考勤数据
 // @return
+
 func (m *DingTalkConf) GetAttendanceClockData(days int, userIdList []string) (map[string][]int, error) {
 
 	limit := 50      //表示获取考勤数据的条数,最大不能超过50条。
 	userIdStep := 50 //单次请求传入的userId数量
 	//最近30天日期数组
-	workData, _ := core.GetWorkDate(days)
+	workData, _ := GetWorkDate(days)
 	fmt.Printf("workData lenght %v\n", len(workData))
 	//post请求的body
 	PostData := make(map[string]interface{})
@@ -361,6 +365,7 @@ func (m *DingTalkConf) GetAttendanceClockData(days int, userIdList []string) (ma
 // @description 获取考勤组列表,  https://developers.dingtalk.com/document/app/queries-attendance-group-list-details
 // @param
 // @return map[5.5天制管理人员:753150009 5天制:761355305 6天制员工:667040040 合肥1:721640063 合肥6天制:795345194 清洁:854690013 音乐:761855162]
+
 func (m *DingTalkConf) GetAttendanceGroupDetails() (map[int64]string, error) {
 	PostData := make(map[string]interface{})
 	PostData["offset"] = 0
@@ -391,6 +396,7 @@ func (m *DingTalkConf) GetAttendanceGroupDetails() (map[int64]string, error) {
 // @description 考勤组成员校验 , https://developers.dingtalk.com/document/app/query-members-by-id
 // @param
 // @return
+
 func (m *DingTalkConf) ListAttendanceGroupMenberListByIds(groupId int64, userIdList []string) ([]string, error) {
 	PostData := make(map[string]interface{})
 	PostData["op_user_id"] = m.OpUserId

+ 5 - 1
xnet/dingtalk_robot.go → cmd/dingtalk_robot.go

@@ -1,4 +1,4 @@
-package xnet
+package cmd
 
 import (
 	"fmt"
@@ -12,6 +12,7 @@ import (
 // @description     推送包含图片链接的makrdown信息到钉钉群
 // @param
 // @return
+
 func SendMarkDownMsg(imgUrl, token, secret string) error {
 	cli := dingtalk.InitDingTalkWithSecret(token, secret)
 	title := fmt.Sprintf("看板%s", time.Now().Format("01/02 15:04"))
@@ -27,6 +28,7 @@ func SendMarkDownMsg(imgUrl, token, secret string) error {
 // @description     推送包含多张图片链接的makrdown信息到钉钉群
 // @param imgUrls []string 多张图片url的slice
 // @return
+
 func Sendimgs(imgUrls []string, token, secret string) error {
 	cli := dingtalk.InitDingTalkWithSecret(token, secret)
 	title := fmt.Sprintf("看板%s", time.Now().Format("01/02 15:04"))
@@ -48,6 +50,7 @@ func Sendimgs(imgUrls []string, token, secret string) error {
 // @description     推送包含多张图片链接的makrdown信息到钉钉群
 // @param imgUrls []string 多张图片url的slice
 // @return
+
 func SendImgs(imgUrls []string, title, token, secret string) error {
 	cli := dingtalk.InitDingTalkWithSecret(token, secret)
 	content := []string{}
@@ -68,6 +71,7 @@ func SendImgs(imgUrls []string, title, token, secret string) error {
 // @description    推送文本信息到钉钉群
 // @param
 // @return
+
 func SendTextMsg(content, token, secret string) error {
 	cli := dingtalk.InitDingTalkWithSecret(token, secret)
 	err := cli.SendTextMessage(content)

+ 2 - 27
xnet/download.go → cmd/download.go

@@ -1,9 +1,8 @@
-package xnet
+package cmd
 
 import (
 	"bytes"
 	"fmt"
-	"golang.org/x/text/encoding/simplifiedchinese"
 	"os/exec"
 )
 
@@ -17,34 +16,10 @@ func Wget(url, localPath string) (err error) {
 	err = cmd.Run()
 	if err != nil {
 
-		fmt.Println(fmt.Sprint(err) + ": " + ConvertByte2String([]byte(stderr.String()), GB18030))
+		fmt.Println(fmt.Sprint(err) + ": " + ConvertByte2String([]byte(stderr.String()), "GB18030"))
 		return err
 	}
 	fmt.Println("Result: " + stdout.String())
 
 	return
 }
-
-type Charset string
-
-const (
-	UTF8    = Charset("UTF-8")
-	GB18030 = Charset("GB18030")
-)
-
-// ConvertByte2String cmd输出内容转中文
-func ConvertByte2String(byte []byte, charset Charset) string {
-
-	var str string
-	switch charset {
-	case GB18030:
-		decodeBytes, _ := simplifiedchinese.GB18030.NewDecoder().Bytes(byte)
-		str = string(decodeBytes)
-	case UTF8:
-		fallthrough
-	default:
-		str = string(byte)
-	}
-
-	return str
-}

+ 5 - 2
office/excel.go → cmd/excel.go

@@ -1,4 +1,4 @@
-package office
+package cmd
 
 import (
 	"fmt"
@@ -12,6 +12,7 @@ import (
 // @description    把excel文件指定的sheet导出为pdf文件
 // @param xlsxPath string excel文件路径,pdfPath string pdf文件路径
 // @return
+
 func ExcelSheetExportAsPdf(xlsxPath, pdfPath string, sheetIndex int) error {
 
 	//CoInitialize是Windows提供的API函数,用来告诉 Windows以单线程的方式创建com对象。
@@ -85,6 +86,7 @@ func ExcelSheetExportAsPdf(xlsxPath, pdfPath string, sheetIndex int) error {
 // @description    excel文件导出为pdf文件
 // @param xlsxPath string excel文件路径,pdfPath string pdf文件路径
 // @return
+
 func ExcelExportAsPdf(xlsxPath, pdfPath string) error {
 
 	//CoInitialize是Windows提供的API函数,用来告诉 Windows以单线程的方式创建com对象。
@@ -158,7 +160,8 @@ func ExcelExportAsPdf(xlsxPath, pdfPath string) error {
 // @description    调用系统的pdf虚拟打印机生成pdf文件.
 // @param xlsxPath string excel文档路径,pdfPath string 生成的pdf文档路径
 // @return
-//todo 由于打印完需要手动点击确认保存,未找到解决方法
+// todo 由于打印完需要手动点击确认保存,未找到解决方法
+
 func ExcelPrintOut(xlsxPath, pdfPath string) error {
 	defer func() {
 		if err := recover(); err != nil {

+ 42 - 0
cmd/execute.go

@@ -0,0 +1,42 @@
+package cmd
+
+import (
+	"fmt"
+	"os/exec"
+	"strings"
+)
+
+/*
+@Description : execute a command in windows cmd
+*/
+
+func Command(exe string, args []string) (result string, err error) {
+
+	cmd := exec.Command(exe, args...)
+	// 命令的错误输出和标准输出都连接到同一个管道
+	stdout, _ := cmd.StdoutPipe()
+	cmd.Stderr = cmd.Stdout
+	err = cmd.Start()
+	if err != nil {
+		XWarning(fmt.Sprintf("cmd.Start error : %v\n", err))
+		return
+	}
+
+	var rets []string
+	// 从管道中实时获取输出并打印到终端
+	for {
+
+		tmp := make([]byte, 1024)
+		_, err := stdout.Read(tmp)
+		if err != nil {
+			break
+		}
+
+		rets = append(rets, ConvertByte2String(tmp, "GB18030"))
+
+	}
+
+	result = strings.Join(rets, "\n")
+
+	return
+}

+ 3 - 3
core/file.go → cmd/file.go

@@ -1,4 +1,4 @@
-package core
+package cmd
 
 import (
 	"fmt"
@@ -10,7 +10,7 @@ import (
 	"strings"
 )
 
-//GetAllFilePathByExts 从指定路径获取指定后后缀的文件列表,ext:.go
+// GetAllFilePathByExts 从指定路径获取指定后后缀的文件列表,ext:.go
 func GetAllFilePathByExts(currentPath string, exts []string) (filteredPaths []string, err error) {
 
 	Paths, err := GetAllFilePath([]string{}, currentPath)
@@ -32,7 +32,7 @@ func GetAllFilePathByExts(currentPath string, exts []string) (filteredPaths []st
 	return
 }
 
-//GetAllFilePathByExt 从指定路径获取指定后后缀的文件列表,ext:.go
+// GetAllFilePathByExt 从指定路径获取指定后后缀的文件列表,ext:.go
 func GetAllFilePathByExt(currentPath string, ext string) (filteredPaths []string, err error) {
 
 	Paths, err := GetAllFilePath([]string{}, currentPath)

+ 1 - 1
xnet/http_request.go → cmd/http_request.go

@@ -1,4 +1,4 @@
-package xnet
+package cmd
 
 import (
 	"fmt"

+ 4 - 1
image/img.go → cmd/image.go

@@ -1,4 +1,4 @@
-package image
+package cmd
 
 import (
 	"fmt"
@@ -15,6 +15,7 @@ import (
 // @description    读取图片内容
 // @param
 // @return
+
 func LoadImage(imgPath string) (image.Image, error) {
 	var img image.Image
 	var err error
@@ -43,6 +44,7 @@ func LoadImage(imgPath string) (image.Image, error) {
 // @description    image数据写入图片文件
 // @param
 // @return
+
 func WriteImage(imgPath string, imgData *image.RGBA) error {
 
 	//打开新新图片文件
@@ -63,6 +65,7 @@ func WriteImage(imgPath string, imgData *image.RGBA) error {
 // @description 裁剪图片,去除四周空白部分
 // @param
 // @return
+
 func TrimImg(imgPath, subImgPath string) error {
 	img, err := LoadImage(imgPath)
 	if err != nil {

+ 3 - 1
core/log.go → cmd/log.go

@@ -1,4 +1,4 @@
-package core
+package cmd
 
 import (
 	"log"
@@ -11,6 +11,7 @@ import (
 // @description    warning日志输出
 // @param
 // @return
+
 func XWarning(content string) {
 	log.Printf(content)
 	LogWrite(content)
@@ -20,6 +21,7 @@ func XWarning(content string) {
 // @description    log信息写入log文件
 // @param
 // @return
+
 func LogWrite(content string) {
 	//使用当前项目路径
 	fd, _ := os.OpenFile("log.log", os.O_RDWR|os.O_CREATE|os.O_APPEND, 0644)

+ 1 - 1
core/messagebox.go → cmd/messagebox.go

@@ -1,4 +1,4 @@
-package core
+package cmd
 
 import (
 	"syscall"

+ 3 - 4
xnet/netflix.go → cmd/netflix.go

@@ -1,8 +1,7 @@
-package xnet
+package cmd
 
 import (
 	"fmt"
-	"gcore/core"
 	"log"
 	"net/http"
 	"net/http/cookiejar"
@@ -61,12 +60,12 @@ func CheckAvailableCountry(cookies []*http.Cookie, netflixUrl, ProxyOnOff, proxy
 	resp, err := client.Do(req)
 	defer func() {
 		if err1 := recover(); err1 != nil {
-			core.XWarning(fmt.Sprintf("connect to the netflix faild %v\n", err1))
+			XWarning(fmt.Sprintf("connect to the netflix faild %v\n", err1))
 			err = fmt.Errorf("connect to the netflix faild %v\n", err1)
 		}
 	}()
 	if err != nil {
-		core.XWarning(fmt.Sprintf("client.Do error : %v\n", err))
+		XWarning(fmt.Sprintf("client.Do error : %v\n", err))
 		return false, err
 	}
 

+ 1 - 1
core/path.go → cmd/path.go

@@ -1,4 +1,4 @@
-package core
+package cmd
 
 import "os"
 

+ 5 - 6
office/pdf.go → cmd/pdf.go

@@ -1,21 +1,20 @@
-package office
+package cmd
 
 import (
 	"bytes"
 	"fmt"
-	"gcore/core"
 	"github.com/axgle/mahonia" //编码转换
 	"os"
 	"os/exec"
 	"path/filepath"
-	"strings"
 )
 
 // @title XPdfToPng
 // @description 把整个pdf渲染成png
 // @param
 // @return
-func XPdfToPng(pdfPath string, subPath, fileName string) error {
+
+func ConvertPdfFileToPng(pdfPath string, subPath, fileName string) error {
 	currentDir, _ := os.Getwd()
 	xpdfPath := filepath.Join(currentDir, "tool", "pdftopng.exe")
 	//println(xpdfPath)
@@ -42,7 +41,7 @@ func XPdfToPng(pdfPath string, subPath, fileName string) error {
 		pdfPath,
 		fileName,
 	}
-	println(strings.Join(cmdArgs, " "))
+
 	c := exec.Command("cmd.exe", cmdArgs...)
 	var stdout bytes.Buffer
 	var stderr bytes.Buffer
@@ -54,7 +53,7 @@ func XPdfToPng(pdfPath string, subPath, fileName string) error {
 	if err != nil {
 		fmt.Printf("XPdfToPng Error: %s %s\n", err, enc.ConvertString(stderr.String()))
 		//go Xlog(logPath, strings.Join(cmdArgs, " "))
-		go core.LogWrite(fmt.Sprintf("%s,XPdfToPng Error: %s %s\n", pdfPath, err, enc.ConvertString(stderr.String())))
+		XWarning(fmt.Sprintf("%s,XPdfToPng Error: %s %s\n", pdfPath, err, enc.ConvertString(stderr.String())))
 		return fmt.Errorf("%s,XPdfToPng Error: %s %s\n", pdfPath, err, enc.ConvertString(stderr.String()))
 	}
 	//fmt.Printf("XPdfToPng Result: %s\n", stdout.String())

+ 7 - 8
xnet/powerbi_screenshot.go → cmd/powerbi_screenshot.go

@@ -1,8 +1,7 @@
-package xnet
+package cmd
 
 import (
 	"fmt"
-	"gcore/core"
 	"github.com/tebeka/selenium"
 	"log"
 	"os"
@@ -15,7 +14,7 @@ import (
 // @description 遍历获取PBI页面,并截图
 // @param PBIPageURL,PBI的首页
 // @return
-func (m *ChromeDriverConf) GetPBIScreenshots(PBIPageURL, screenshotPath, fileNameNotExt string) (screenshotFileNames []string, err error) {
+func (m *SeleniumDriverConf) GetPBIScreenshots(PBIPageURL, screenshotPath, fileNameNotExt string) (screenshotFileNames []string, err error) {
 
 	err = m.WebDriver.Get(PBIPageURL)
 	if err != nil {
@@ -29,7 +28,7 @@ func (m *ChromeDriverConf) GetPBIScreenshots(PBIPageURL, screenshotPath, fileNam
 	err = m.WebDriver.WaitWithTimeout(ShareExists, 30*time.Second)
 	if err != nil {
 		log.Printf("GetPBIScreenshots ShareExists error:%v", err)
-		core.LogWrite(fmt.Sprintf("GetPBIScreenshots ShareExists error:%v", err))
+		XWarning(fmt.Sprintf("GetPBIScreenshots ShareExists error:%v", err))
 		return
 	}
 
@@ -39,7 +38,7 @@ func (m *ChromeDriverConf) GetPBIScreenshots(PBIPageURL, screenshotPath, fileNam
 	data, err := m.WebDriver.Screenshot()
 	if err != nil {
 		log.Printf(" %s,Screenshot  error : %v\n", PBIPageURL, err)
-		core.LogWrite(fmt.Sprintf(" %s,Screenshot  error : %v", PBIPageURL, err))
+		XWarning(fmt.Sprintf(" %s,Screenshot  error : %v", PBIPageURL, err))
 		return
 	}
 
@@ -51,12 +50,12 @@ func (m *ChromeDriverConf) GetPBIScreenshots(PBIPageURL, screenshotPath, fileNam
 
 	for i := 1; i < 999; i++ {
 		log.Printf("page %v start===>", i+1)
-		core.LogWrite(fmt.Sprintf("page %v start===>", i+1))
+		XWarning(fmt.Sprintf("page %v start===>", i+1))
 		//判断是否有下一页,没有则跳出循环
 		err = m.WebDriver.WaitWithTimeout(NextPageExists, 30*time.Second)
 		if err != nil {
 			log.Printf("GetPBIScreenshots NextPageExistsV2 error : %v\n", err)
-			core.LogWrite(fmt.Sprintf("GetPBIScreenshots NextPageExistsV2 error : %v", err))
+			XWarning(fmt.Sprintf("GetPBIScreenshots NextPageExistsV2 error : %v", err))
 
 			break
 
@@ -75,7 +74,7 @@ func (m *ChromeDriverConf) GetPBIScreenshots(PBIPageURL, screenshotPath, fileNam
 		data, err = m.WebDriver.Screenshot()
 		if err != nil {
 			log.Printf(" page %v,Screenshot  error : %v\n", i, err)
-			core.LogWrite(fmt.Sprintf(" page %v,Screenshot  error : %v\n", i, err))
+			XWarning(fmt.Sprintf(" page %v,Screenshot  error : %v\n", i, err))
 			break
 		}
 

+ 1 - 1
xnet/powerbi_url.go → cmd/powerbi_url.go

@@ -1,4 +1,4 @@
-package xnet
+package cmd
 
 import (
 	"fmt"

+ 15 - 11
xnet/chrome_driver.go → cmd/selenium_driver.go

@@ -1,14 +1,14 @@
-package xnet
+package cmd
 
 import (
 	"fmt"
-	"gcore/core"
+
 	"github.com/tebeka/selenium"
 	"github.com/tebeka/selenium/chrome"
 	"log"
 )
 
-type ChromeDriverConf struct {
+type SeleniumDriverConf struct {
 	ChromeDriverPath    string             `ini:"chrome_driver_path"` //chromedriver.exe路径
 	ChromeDriverPort    int                `ini:"chrome_driver_port"` //chromedriver服务端口
 	ChromeDriverService *selenium.Service  `json:"chrome_driver_service"`
@@ -19,7 +19,8 @@ type ChromeDriverConf struct {
 // @description 开启服务
 // @param
 // @return
-func (m *ChromeDriverConf) ChromeDriverServiceStart() (err error) {
+
+func (m *SeleniumDriverConf) ChromeDriverServiceStart() (err error) {
 	opts := []selenium.ServiceOption{}
 
 	//selenium.SetDebug(true)
@@ -27,7 +28,7 @@ func (m *ChromeDriverConf) ChromeDriverServiceStart() (err error) {
 	m.ChromeDriverService, err = selenium.NewChromeDriverService(m.ChromeDriverPath, m.ChromeDriverPort, opts...)
 	if nil != err {
 		log.Printf("ChromeDriverServiceStart error:%v\n", err)
-		core.LogWrite(fmt.Sprintf("ChromeDriverServiceStart error:%v\n", err))
+		XWarning(fmt.Sprintf("ChromeDriverServiceStart error:%v\n", err))
 		return
 	} else {
 		log.Println("ChromeDriverServiceStart success.")
@@ -40,12 +41,13 @@ func (m *ChromeDriverConf) ChromeDriverServiceStart() (err error) {
 // @description 关闭服务
 // @param
 // @return
-func (m *ChromeDriverConf) ChromeDriverServiceStop() error {
+
+func (m *SeleniumDriverConf) ChromeDriverServiceStop() error {
 	//注意这里,server关闭之后,chrome窗口也会关闭
 	err := m.ChromeDriverService.Stop()
 	if err != nil {
 		log.Printf("ChromeDriverServiceStop error:%v\n", err)
-		core.LogWrite(fmt.Sprintf("ChromeDriverServiceStop error:%v\n", err))
+		XWarning(fmt.Sprintf("ChromeDriverServiceStop error:%v\n", err))
 		return err
 	}
 
@@ -57,7 +59,8 @@ func (m *ChromeDriverConf) ChromeDriverServiceStop() error {
 // @description 开启webdriver,和新增tab
 // @param
 // @return
-func (m *ChromeDriverConf) WebDriverStart() (WebDriver selenium.WebDriver, err error) {
+
+func (m *SeleniumDriverConf) WebDriverStart() (WebDriver selenium.WebDriver, err error) {
 	//链接本地的浏览器 chrome
 	caps := selenium.Capabilities{
 		"browserName": "chrome",
@@ -88,7 +91,7 @@ func (m *ChromeDriverConf) WebDriverStart() (WebDriver selenium.WebDriver, err e
 		//启用--user-data-dir参数后,同时只能打开一个chrome程序.
 		//如果已打开chrome程序,必须先关闭已打开的chrome,再运行程序
 		fmt.Printf("WebDriverStart connect to the webDriver error : %v\n", err)
-		core.LogWrite(fmt.Sprintf("WebDriverStart connect to the webDriver  error : %v", err))
+		XWarning(fmt.Sprintf("WebDriverStart connect to the webDriver  error : %v", err))
 		return
 	} else {
 		log.Println("connect to the webDriver success.")
@@ -101,13 +104,14 @@ func (m *ChromeDriverConf) WebDriverStart() (WebDriver selenium.WebDriver, err e
 // @description 关闭webdriver和打开的窗口
 // @param
 // @return
-func (m *ChromeDriverConf) WebDriverStop() error {
+
+func (m *SeleniumDriverConf) WebDriverStop() error {
 	//关闭一个webDriver会对应关闭一个chrome窗口
 	//但是不会导致seleniumServer关闭
 	err := m.WebDriver.Quit()
 	if err != nil {
 		log.Printf("WebDriverStop error:%v\n", err)
-		core.LogWrite(fmt.Sprintf("WebDriverStop error:%v\n", err))
+		XWarning(fmt.Sprintf("WebDriverStop error:%v\n", err))
 		return err
 	}
 

+ 1 - 2
office/sharepoint.go → cmd/sharepoint.go

@@ -1,4 +1,4 @@
-package office
+package cmd
 
 import (
 	"github.com/koltyakov/gosip"
@@ -38,7 +38,6 @@ func (m *SPConf) GetAuthClient() error {
 // @auth      ila 2021-11-10
 // @param     relativeURL  sharepoint相对URL,targetPath 本地路径
 // @return    error        是否成功
-//
 func (m *SPConf) DownloadFileByRelativeURL(relativeURL, targetPath string) error {
 
 	// Getting auth params and client

+ 1 - 1
core/string.go → cmd/string.go

@@ -1,4 +1,4 @@
-package core
+package cmd
 
 func RuneFormat(data string) string {
 	content := ""

+ 1 - 1
core/system.go → cmd/system.go

@@ -1,4 +1,4 @@
-package core
+package cmd
 
 import (
 	"runtime"

+ 1 - 1
core/win.go → cmd/win.go

@@ -1,4 +1,4 @@
-package core
+package cmd
 
 import "syscall"
 

+ 1 - 1
core/xdate.go → cmd/xdate.go

@@ -1,4 +1,4 @@
-package core
+package cmd
 
 import "time"
 

+ 1 - 1
xnet/xhttp.go → cmd/xhttp.go

@@ -1,4 +1,4 @@
-package xnet
+package cmd
 
 import (
 	"bytes"

+ 0 - 13
core/data_format.go

@@ -1,13 +0,0 @@
-package core
-
-// @title StringInterfaceToStringString
-// @description 格式转换
-// @param
-// @return
-func StringInterfaceToStringString(srcData map[string]interface{}) (data map[string]string) {
-
-	for k, v := range srcData {
-		data[k] = v.(string)
-	}
-	return
-}

+ 1 - 1
go.mod

@@ -1,4 +1,4 @@
-module gcore
+module gbase
 
 go 1.16
 

+ 0 - 84
main.go

@@ -1,93 +1,9 @@
 package main
 
-import (
-	"bufio"
-	"fmt"
-	"gcore/core"
-	"github.com/sqweek/dialog"
-	"golang.org/x/text/encoding/simplifiedchinese"
-	"os"
-	"os/exec"
-	"strconv"
-)
-
-type Charset string
-
-const (
-	UTF8    = Charset("UTF-8")
-	GB18030 = Charset("GB18030")
-)
-
 func init() {
-	//devConf := &xnet.DevConf{
-	//	AppKey:             "ding8svryas6vm6ze5xh",
-	//	AppSecret:          "YF77J3t-bORqtZxNH7-RY8Q3znrgpsZDpTiXDqLj-Ns8XRIDZLn6fIwpukOQ1P1o",
-	//	GetTokenUrl:        "https://oapi.dingtalk.com/gettoken",
-	//	GetDeptUserListUrl: "https://oapi.dingtalk.com/topapi/user/listsimple",
-	//	Params:             map[string]string{},
-	//	Headers:            map[string]string{},
-	//	Cookie:             []*http.Cookie{},
-	//	DeptId:             554750022,
-	//}
-	//if err := devConf.GetToken(); err != nil {
-	//	log.Fatalln(err)
-	//}
-	//
-	//println(devConf.Token)
-	//
-	//deptUserList, _ := devConf.GetDeptUserList()
-	//fmt.Printf("%v\n", deptUserList)
-	//workData,_:=core.GetWorkData(30)
-	//fmt.Printf("%v\n", workData)
 
-	//ret := core.GetChromeUserDataDir()
-	//fmt.Printf("ret=>%v\n", ret)
-	chromeExePath, _ := core.GetChromeExePath()
-	exists, _ := core.FileExists(chromeExePath)
-	if exists == false {
-		dialog.Message("请先安装chrome(谷歌)浏览器再运行本程序!!").Title("提示").Error()
-		return
-	}
-	args := os.Args
-	chromePort := 9200
-	if len(args) > 1 {
-		chromePort, _ = strconv.Atoi(args[1])
-	}
-	params := []string{
-		"--disable-gpu",
-		"--window-size=1920,1080",
-		//" --headless",
-		fmt.Sprintf("--remote-debugging-port=%v", chromePort),
-	}
-
-	cmd := exec.Command(chromeExePath, params...)
-	stdout, err := cmd.StdoutPipe()
-	if err != nil {
-		fmt.Println(err)
-		return
-	}
-	cmd.Start()
-	in := bufio.NewScanner(stdout)
-	for in.Scan() {
-		cmdRe := ConvertByte2String(in.Bytes(), "GB18030")
-		fmt.Println(cmdRe)
-	}
-	cmd.Wait()
 }
 
-func ConvertByte2String(byte []byte, charset Charset) string {
-	var str string
-	switch charset {
-	case GB18030:
-		var decodeBytes, _ = simplifiedchinese.GB18030.NewDecoder().Bytes(byte)
-		str = string(decodeBytes)
-	case UTF8:
-		fallthrough
-	default:
-		str = string(byte)
-	}
-	return str
-}
 func main() {
 
 }

+ 0 - 1
xnet/selenium.go

@@ -1 +0,0 @@
-package xnet