359 lines
8.4 KiB
Go
359 lines
8.4 KiB
Go
package models
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
"strings"
|
|
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
func getVhelpRule(num int) string {
|
|
rules := ""
|
|
var codes = map[string][]string{
|
|
"Fruit": {},
|
|
"Pet": {},
|
|
"Bean": {},
|
|
"JdFactory": {},
|
|
"DreamFactory": {},
|
|
"Jxnc": {},
|
|
"Jdzz": {},
|
|
"Joy": {},
|
|
"Sgmh": {},
|
|
"Cfd": {},
|
|
"Cash": {},
|
|
}
|
|
cks := GetJdCookies()
|
|
for _, ck := range cks {
|
|
if ck.Help == True || Cdle {
|
|
for k := range codes {
|
|
switch k {
|
|
case "Fruit":
|
|
codes[k] = append(codes[k], ck.Fruit)
|
|
case "Pet":
|
|
codes[k] = append(codes[k], ck.Pet)
|
|
case "Bean":
|
|
codes[k] = append(codes[k], ck.Bean)
|
|
case "JdFactory":
|
|
codes[k] = append(codes[k], ck.JdFactory)
|
|
case "DreamFactory":
|
|
codes[k] = append(codes[k], ck.DreamFactory)
|
|
case "Jxnc":
|
|
codes[k] = append(codes[k], ck.Jxnc)
|
|
case "Jdzz":
|
|
codes[k] = append(codes[k], ck.Jdzz)
|
|
case "Joy":
|
|
codes[k] = append(codes[k], ck.Joy)
|
|
case "Sgmh":
|
|
codes[k] = append(codes[k], ck.Sgmh)
|
|
case "Cfd":
|
|
codes[k] = append(codes[k], ck.Cfd)
|
|
case "Cash":
|
|
codes[k] = append(codes[k], ck.Cash)
|
|
}
|
|
if len := len(codes[k]); len != 0 {
|
|
if codes[k][len-1] == "undefined" || codes[k][len-1] == "" || codes[k][len-1] == "--" {
|
|
codes[k] = codes[k][:len-1]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
for k := range codes {
|
|
for i, code := range codes[k] {
|
|
code = strings.Replace(code, `\n`, ``, -1)
|
|
code = strings.Replace(code, `"`, `\"`, -1)
|
|
rules += fmt.Sprintf("My%s%d=\"%s\"\n", k, i+1, code)
|
|
codes[k][i] = fmt.Sprintf("${My%s%d}", k, i+1)
|
|
}
|
|
}
|
|
for k := range codes {
|
|
for i := 0; i < num; i++ {
|
|
if len(codes[k]) > 0 {
|
|
rules += fmt.Sprintf("ForOther"+k+"%d=\"%s\"\n", i+1, strings.Join(codes[k], "@"))
|
|
}
|
|
}
|
|
}
|
|
return rules
|
|
}
|
|
|
|
func getQLHelp(num int) map[string]string {
|
|
var codes = map[string][]string{
|
|
"Fruit": {},
|
|
"Pet": {},
|
|
"Bean": {},
|
|
"JdFactory": {},
|
|
"DreamFactory": {},
|
|
"Jxnc": {},
|
|
"Jdzz": {},
|
|
"Joy": {},
|
|
"Sgmh": {},
|
|
"Cfd": {},
|
|
"Cash": {},
|
|
}
|
|
cks := GetJdCookies()
|
|
for _, ck := range cks {
|
|
if ck.Help == True || Cdle {
|
|
for k := range codes {
|
|
switch k {
|
|
case "Fruit":
|
|
codes[k] = append(codes[k], ck.Fruit)
|
|
case "Pet":
|
|
codes[k] = append(codes[k], ck.Pet)
|
|
case "Bean":
|
|
codes[k] = append(codes[k], ck.Bean)
|
|
case "JdFactory":
|
|
codes[k] = append(codes[k], ck.JdFactory)
|
|
case "DreamFactory":
|
|
codes[k] = append(codes[k], ck.DreamFactory)
|
|
case "Jxnc":
|
|
codes[k] = append(codes[k], ck.Jxnc)
|
|
case "Jdzz":
|
|
codes[k] = append(codes[k], ck.Jdzz)
|
|
case "Joy":
|
|
codes[k] = append(codes[k], ck.Joy)
|
|
case "Sgmh":
|
|
codes[k] = append(codes[k], ck.Sgmh)
|
|
case "Cfd":
|
|
codes[k] = append(codes[k], ck.Cfd)
|
|
case "Cash":
|
|
codes[k] = append(codes[k], ck.Cash)
|
|
}
|
|
if len := len(codes[k]); len != 0 {
|
|
if codes[k][len-1] == "undefined" || codes[k][len-1] == "" || codes[k][len-1] == "--" {
|
|
codes[k] = codes[k][:len-1]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
var e = map[string]string{
|
|
"Fruit": "",
|
|
"Pet": "",
|
|
"Bean": "",
|
|
"JdFactory": "",
|
|
"DreamFactory": "",
|
|
"Jxnc": "",
|
|
"Jdzz": "",
|
|
"Joy": "",
|
|
"Sgmh": "",
|
|
"Cfd": "",
|
|
"Cash": "",
|
|
}
|
|
for k := range codes {
|
|
vv := codes[k]
|
|
for i := range vv {
|
|
vv[i] = strings.Replace(vv[i], `"`, `\"`, -1)
|
|
|
|
}
|
|
e[k] += strings.Join(vv, "@")
|
|
}
|
|
for k := range e {
|
|
n := []string{}
|
|
for i := 0; i < num; i++ {
|
|
n = append(n, e[k])
|
|
}
|
|
e[k] = strings.Join(n, "&")
|
|
}
|
|
var f = map[string]string{}
|
|
for k := range e {
|
|
switch k {
|
|
case "Fruit":
|
|
f["FRUITSHARECODES"] = e[k]
|
|
case "Pet":
|
|
f["PETSHARECODES"] = e[k]
|
|
case "Bean":
|
|
f["PLANT_BEAN_SHARECODES"] = e[k]
|
|
case "JdFactory":
|
|
f["DDFACTORY_SHARECODES"] = e[k]
|
|
case "DreamFactory":
|
|
f["DREAM_FACTORY_SHARE_CODES"] = e[k]
|
|
case "Jxnc":
|
|
f["JXNC_SHARECODES"] = e[k]
|
|
// case "Jdzz":
|
|
// f[k] = e[k]
|
|
// case "Joy":
|
|
// f[k] = e[k]
|
|
case "Sgmh":
|
|
f["JDSGMH_SHARECODES"] = e[k]
|
|
// case "Cfd":
|
|
// f[k] = e[k]
|
|
case "Cash":
|
|
f["JD_CASH_SHARECODES"] = e[k]
|
|
}
|
|
}
|
|
return f
|
|
}
|
|
|
|
func WriteHelpJS(acks []JdCookie) {
|
|
cks := GetJdCookies(func(sb *gorm.DB) *gorm.DB {
|
|
return sb.Where(fmt.Sprintf("%s = ?", Help), True)
|
|
})
|
|
var codes = map[string][]string{
|
|
"Fruit": {},
|
|
"Pet": {},
|
|
"Bean": {},
|
|
"JdFactory": {},
|
|
"DreamFactory": {},
|
|
"Jxnc": {},
|
|
"Jdzz": {},
|
|
"Joy": {},
|
|
"Sgmh": {},
|
|
"Cfd": {},
|
|
"Cash": {},
|
|
}
|
|
for _, ck := range cks {
|
|
for k := range codes {
|
|
switch k {
|
|
case "Fruit":
|
|
codes[k] = append(codes[k], ck.Fruit)
|
|
case "Pet":
|
|
codes[k] = append(codes[k], ck.Pet)
|
|
case "Bean":
|
|
codes[k] = append(codes[k], ck.Bean)
|
|
case "JdFactory":
|
|
codes[k] = append(codes[k], ck.JdFactory)
|
|
case "DreamFactory":
|
|
codes[k] = append(codes[k], ck.DreamFactory)
|
|
case "Jxnc":
|
|
codes[k] = append(codes[k], ck.Jxnc)
|
|
case "Jdzz":
|
|
codes[k] = append(codes[k], ck.Jdzz)
|
|
case "Joy":
|
|
codes[k] = append(codes[k], ck.Joy)
|
|
case "Sgmh":
|
|
codes[k] = append(codes[k], ck.Sgmh)
|
|
case "Cfd":
|
|
codes[k] = append(codes[k], ck.Cfd)
|
|
case "Cash":
|
|
codes[k] = append(codes[k], ck.Cash)
|
|
}
|
|
if len := len(codes[k]); len != 0 {
|
|
if codes[k][len-1] == "undefined" || codes[k][len-1] == "" {
|
|
codes[k] = codes[k][:len-1]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
var e = map[string][]string{
|
|
"Fruit": {},
|
|
"Pet": {},
|
|
"Bean": {},
|
|
"JdFactory": {},
|
|
"DreamFactory": {},
|
|
"Jxnc": {},
|
|
"Jdzz": {},
|
|
"Joy": {},
|
|
"Sgmh": {},
|
|
"Cfd": {},
|
|
"Cash": {},
|
|
}
|
|
var f = func(ss []string, s string) string {
|
|
tss := []string{}
|
|
for _, v := range ss {
|
|
if v != s {
|
|
tss = append(tss, v)
|
|
}
|
|
}
|
|
return `'` + strings.Join(tss, "@") + `'`
|
|
}
|
|
|
|
for k := range codes {
|
|
for _, ck := range acks {
|
|
switch k {
|
|
case "Fruit":
|
|
e[k] = append(e[k], f(codes[k], ck.Fruit))
|
|
case "Pet":
|
|
e[k] = append(e[k], f(codes[k], ck.Pet))
|
|
case "Bean":
|
|
e[k] = append(e[k], f(codes[k], ck.Bean))
|
|
case "JdFactory":
|
|
e[k] = append(e[k], f(codes[k], ck.JdFactory))
|
|
case "DreamFactory":
|
|
e[k] = append(e[k], f(codes[k], ck.DreamFactory))
|
|
case "Jxnc":
|
|
e[k] = append(e[k], f(codes[k], ck.Jxnc))
|
|
case "Jdzz":
|
|
e[k] = append(e[k], f(codes[k], ck.Jdzz))
|
|
case "Joy":
|
|
e[k] = append(e[k], f(codes[k], ck.Joy))
|
|
case "Sgmh":
|
|
e[k] = append(e[k], f(codes[k], ck.Sgmh))
|
|
case "Cfd":
|
|
e[k] = append(e[k], f(codes[k], ck.Cfd))
|
|
case "Cash":
|
|
e[k] = append(e[k], f(codes[k], ck.Cash))
|
|
}
|
|
if len := len(codes[k]); len != 0 {
|
|
if codes[k][len-1] == "undefined" || codes[k][len-1] == "" {
|
|
codes[k] = codes[k][:len-1]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
tpl := `let codes = [%s];
|
|
for (let i = 0; i < codes.length; i++) {
|
|
const index = (i + 1 === 1) ? '' : (i + 1);
|
|
exports['%s' + index] = codes[i];
|
|
}`
|
|
for k, codes := range e {
|
|
switch k {
|
|
case "Fruit":
|
|
WriteToFile(
|
|
ExecPath+"/scripts/jdFruitShareCodes.js",
|
|
fmt.Sprintf(tpl, strings.Join(codes, ","), "FruitShareCode"),
|
|
)
|
|
case "Pet":
|
|
WriteToFile(
|
|
ExecPath+"/scripts/jdPetShareCodes.js",
|
|
fmt.Sprintf(tpl, strings.Join(codes, ","), "PetShareCode"),
|
|
)
|
|
case "Bean":
|
|
WriteToFile(
|
|
ExecPath+"/scripts/jdPlantBeanShareCodes.js",
|
|
fmt.Sprintf(tpl, strings.Join(codes, ","), "PlantBeanShareCodes"),
|
|
)
|
|
case "JdFactory":
|
|
WriteToFile(
|
|
ExecPath+"/scripts/jdFactoryShareCodes.js",
|
|
fmt.Sprintf(tpl, strings.Join(codes, ","), "shareCodes.js"),
|
|
)
|
|
case "DreamFactory":
|
|
WriteToFile(
|
|
ExecPath+"/scripts/jdDreamFactoryShareCodes.js",
|
|
fmt.Sprintf(tpl, strings.Join(codes, ","), "shareCodes.js"),
|
|
)
|
|
case "Jxnc":
|
|
WriteToFile(
|
|
ExecPath+"/scripts/jdJxncShareCodes.js",
|
|
fmt.Sprintf(tpl, strings.Join(codes, ","), "JxncShareCode.js"),
|
|
)
|
|
case "Jdzz":
|
|
|
|
case "Joy":
|
|
|
|
case "Sgmh":
|
|
|
|
case "Cfd":
|
|
|
|
case "Cash":
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
func WriteToFile(fileName string, content string) error {
|
|
f, err := os.OpenFile(fileName, os.O_WRONLY|os.O_TRUNC|os.O_CREATE, 0644)
|
|
if err != nil {
|
|
fmt.Println("file create failed. err: " + err.Error())
|
|
} else {
|
|
// offset
|
|
//os.Truncate(filename, 0) //clear
|
|
n, _ := f.Seek(0, os.SEEK_END)
|
|
_, err = f.WriteAt([]byte(content), n)
|
|
// fmt.Println("write succeed!")
|
|
defer f.Close()
|
|
}
|
|
return err
|
|
}
|