diff --git a/go/cmd/init.go b/go/cmd/init.go index c1f77b9..97b27f8 100644 --- a/go/cmd/init.go +++ b/go/cmd/init.go @@ -7,7 +7,7 @@ import ( "path" path2 "path" "path/filepath" - "pikapika/main/config" + "pikapika/pikapika/config" "runtime" "strings" ) diff --git a/go/cmd/main.go b/go/cmd/main.go index 4265409..8ac25b5 100644 --- a/go/cmd/main.go +++ b/go/cmd/main.go @@ -10,7 +10,7 @@ import ( _ "image/png" "os" "path/filepath" - "pikapika/main/database/properties" + "pikapika/pikapika/database/properties" "strconv" "strings" ) diff --git a/go/cmd/options.go b/go/cmd/options.go index 9aeaff4..1c605ef 100644 --- a/go/cmd/options.go +++ b/go/cmd/options.go @@ -7,8 +7,8 @@ import ( "github.com/go-flutter-desktop/plugins/url_launcher" "github.com/go-gl/glfw/v3.3/glfw" "github.com/miguelpruivo/flutter_file_picker/go" - "pikapika/main/controller" - "pikapika/main/database/properties" + "pikapika/pikapika" + "pikapika/pikapika/database/properties" "strconv" "sync" ) @@ -50,7 +50,7 @@ func (p *PikapikaPlugin) InitPlugin(messenger plugin.BinaryMessenger) error { if argumentsMap, ok := arguments.(map[interface{}]interface{}); ok { if method, ok := argumentsMap["method"].(string); ok { if params, ok := argumentsMap["params"].(string); ok { - return controller.FlatInvoke(method, params) + return pikapika.FlatInvoke(method, params) } } } @@ -60,7 +60,7 @@ func (p *PikapikaPlugin) InitPlugin(messenger plugin.BinaryMessenger) error { exporting := plugin.NewEventChannel(messenger, "flatEvent", plugin.StandardMethodCodec{}) exporting.Handle(&EventHandler{}) - controller.EventNotify = func(message string) { + pikapika.EventNotify = func(message string) { eventMutex.Lock() defer eventMutex.Unlock() sink := eventSink diff --git a/go/mobile/mobile.go b/go/mobile/mobile.go index e0d7b3e..e357c9f 100644 --- a/go/mobile/mobile.go +++ b/go/mobile/mobile.go @@ -1,8 +1,8 @@ package mobile import ( - "pikapika/main/config" - "pikapika/main/controller" + "pikapika/pikapika" + "pikapika/pikapika/config" ) func InitApplication(application string) { @@ -10,11 +10,11 @@ func InitApplication(application string) { } func FlatInvoke(method string, params string) (string, error) { - return controller.FlatInvoke(method, params) + return pikapika.FlatInvoke(method, params) } func EventNotify(notify EventNotifyHandler) { - controller.EventNotify = notify.OnNotify + pikapika.EventNotify = notify.OnNotify } type EventNotifyHandler interface { diff --git a/go/main/controller/client.go b/go/pikapika/client.go similarity index 97% rename from go/main/controller/client.go rename to go/pikapika/client.go index fb119aa..9398163 100644 --- a/go/main/controller/client.go +++ b/go/pikapika/client.go @@ -1,6 +1,6 @@ // 透传Client的功能并增加缓存 -package controller +package pikapika import ( "encoding/json" @@ -9,9 +9,9 @@ import ( "net" "net/http" "net/url" - "pikapika/main/database/comic_center" - "pikapika/main/database/network_cache" - "pikapika/main/database/properties" + comic_center2 "pikapika/pikapika/database/comic_center" + "pikapika/pikapika/database/network_cache" + "pikapika/pikapika/database/properties" "regexp" "time" ) @@ -200,7 +200,7 @@ func comicInfo(comicId string) (string, error) { network_cache.SaveCache(key, cache) } // 标记历史记录 - view := comic_center.ComicView{} + view := comic_center2.ComicView{} view.ID = comicId view.CreatedAt = comic.CreatedAt view.UpdatedAt = comic.UpdatedAt @@ -224,7 +224,7 @@ func comicInfo(comicId string) (string, error) { view.IsFavourite = comic.IsFavourite view.IsLiked = comic.IsLiked view.CommentsCount = int32(comic.CommentsCount) - err = comic_center.ViewComicUpdateInfo(&view) + err = comic_center2.ViewComicUpdateInfo(&view) if err != nil { return "", err } @@ -283,7 +283,7 @@ func switchLike(comicId string) (string, error) { return "", err } // 更新viewLog里面的favour - comic_center.ViewComicUpdateLike(comicId, strings.HasPrefix(*point, "un")) + comic_center2.ViewComicUpdateLike(comicId, strings.HasPrefix(*point, "un")) // 删除缓存 ComicInfoCleanCache(comicId) return *point, nil @@ -295,7 +295,7 @@ func switchFavourite(comicId string) (string, error) { return "", err } // 更新viewLog里面的favour - comic_center.ViewComicUpdateFavourite(comicId, strings.HasPrefix(*point, "un")) + comic_center2.ViewComicUpdateFavourite(comicId, strings.HasPrefix(*point, "un")) // 删除缓存 ComicInfoCleanCache(comicId) return *point, nil diff --git a/go/main/controller/common.go b/go/pikapika/common.go similarity index 93% rename from go/main/controller/common.go rename to go/pikapika/common.go index 5406c14..0ff18b5 100644 --- a/go/main/controller/common.go +++ b/go/pikapika/common.go @@ -1,9 +1,9 @@ -package controller +package pikapika import ( "encoding/json" - "pikapika/main/database/comic_center" - "pikapika/main/database/network_cache" + "pikapika/pikapika/database/comic_center" + "pikapika/pikapika/database/network_cache" "time" ) diff --git a/go/main/config/common.go b/go/pikapika/config/common.go similarity index 74% rename from go/main/config/common.go rename to go/pikapika/config/common.go index ee6da4c..fbebc90 100644 --- a/go/main/config/common.go +++ b/go/pikapika/config/common.go @@ -2,11 +2,11 @@ package config import ( "path" - "pikapika/main/controller" - "pikapika/main/database/comic_center" - "pikapika/main/database/network_cache" - "pikapika/main/database/properties" - "pikapika/main/utils" + "pikapika/pikapika" + "pikapika/pikapika/database/comic_center" + "pikapika/pikapika/database/network_cache" + "pikapika/pikapika/database/properties" + "pikapika/pikapika/utils" ) // InitApplication 由不同的平台直接调用, 根据提供的路径初始化数据库, 资料文件夹 @@ -24,6 +24,6 @@ func InitApplication(applicationDir string) { properties.InitDBConnect(databasesDir) network_cache.InitDBConnect(databasesDir) comic_center.InitDBConnect(databasesDir) - controller.InitClient() - controller.InitPlugin(remoteDir, downloadDir, tmpDir) + pikapika.InitClient() + pikapika.InitPlugin(remoteDir, downloadDir, tmpDir) } diff --git a/go/main/database/comic_center/center.go b/go/pikapika/database/comic_center/center.go similarity index 99% rename from go/main/database/comic_center/center.go rename to go/pikapika/database/comic_center/center.go index afe1e6e..becabfb 100644 --- a/go/main/database/comic_center/center.go +++ b/go/pikapika/database/comic_center/center.go @@ -5,7 +5,7 @@ import ( "gorm.io/gorm" "gorm.io/gorm/clause" "path" - "pikapika/main/utils" + "pikapika/pikapika/utils" "sync" "time" ) diff --git a/go/main/database/comic_center/entities.go b/go/pikapika/database/comic_center/entities.go similarity index 100% rename from go/main/database/comic_center/entities.go rename to go/pikapika/database/comic_center/entities.go diff --git a/go/main/database/network_cache/cache.go b/go/pikapika/database/network_cache/cache.go similarity index 98% rename from go/main/database/network_cache/cache.go rename to go/pikapika/database/network_cache/cache.go index 6d020ba..3bf8e31 100644 --- a/go/main/database/network_cache/cache.go +++ b/go/pikapika/database/network_cache/cache.go @@ -6,7 +6,7 @@ import ( "gorm.io/gorm" "gorm.io/gorm/clause" "path" - "pikapika/main/utils" + "pikapika/pikapika/utils" "sync" "time" ) diff --git a/go/main/database/properties/properties.go b/go/pikapika/database/properties/properties.go similarity index 98% rename from go/main/database/properties/properties.go rename to go/pikapika/database/properties/properties.go index c280c96..ee561ed 100644 --- a/go/main/database/properties/properties.go +++ b/go/pikapika/database/properties/properties.go @@ -7,7 +7,7 @@ import ( "gorm.io/gorm" "gorm.io/gorm/clause" "path" - "pikapika/main/utils" + "pikapika/pikapika/utils" "strconv" "sync" ) diff --git a/go/main/controller/download.go b/go/pikapika/download.go similarity index 80% rename from go/main/controller/download.go rename to go/pikapika/download.go index 4d5a473..cd3b8ee 100644 --- a/go/main/controller/download.go +++ b/go/pikapika/download.go @@ -1,4 +1,4 @@ -package controller +package pikapika import ( "bytes" @@ -8,8 +8,8 @@ import ( "os" "path" "path/filepath" - "pikapika/main/database/comic_center" - "pikapika/main/utils" + comic_center2 "pikapika/pikapika/database/comic_center" + utils2 "pikapika/pikapika/utils" "sync" "time" ) @@ -24,8 +24,8 @@ var downloadThreadFetch = 100 var downloadRunning = false var downloadRestart = false -var downloadingComic *comic_center.ComicDownload -var downloadingEp *comic_center.ComicDownloadEp +var downloadingComic *comic_center2.ComicDownload +var downloadingEp *comic_center2.ComicDownloadEp var dlFlag = true @@ -58,13 +58,13 @@ func downloadHasStop() bool { // 删除下载任务, 当用户要删除下载的时候, 他会被加入删除队列, 而不是直接被删除, 以减少出错 func downloadDelete() bool { - c, e := comic_center.DeletingComic() + c, e := comic_center2.DeletingComic() if e != nil { panic(e) } if c != nil { os.RemoveAll(downloadPath(c.ID)) - e = comic_center.TrueDelete(c.ID) + e = comic_center2.TrueDelete(c.ID) if e != nil { panic(e) } @@ -85,7 +85,7 @@ func downloadLoadComic() { } // 找到第一个要下载的漫画, 查库有错误就停止, 因为这些错误很少出现, 一旦出现必然是严重的, 例如数据库文件突然被删除 var err error - downloadingComic, err = comic_center.LoadFirstNeedDownload() + downloadingComic, err = comic_center2.LoadFirstNeedDownload() if err != nil { panic(err) } @@ -109,7 +109,7 @@ func downloadInitComic() { // 打印日志, 并向前端的eventChannel发送下载信息 println("正在下载漫画 " + downloadingComic.Title) downloadComicEventSend(downloadingComic) - eps, err := comic_center.ListDownloadEpByComicId(downloadingComic.ID) + eps, err := comic_center2.ListDownloadEpByComicId(downloadingComic.ID) if err != nil { panic(err) } @@ -134,7 +134,7 @@ func downloadInitComic() { // 如果未能获取图片地址, 则直接置为失败 if !ep.FetchedPictures { println("章节的图片获取失败 " + downloadingComic.Title + " " + ep.Title) - err = comic_center.EpFailed(ep.ID) + err = comic_center2.EpFailed(ep.ID) if err != nil { panic(err) } @@ -150,8 +150,8 @@ func downloadInitComic() { } // 获取图片地址 -func downloadFetchPictures(downloadEp *comic_center.ComicDownloadEp) error { - var list []comic_center.ComicDownloadPicture +func downloadFetchPictures(downloadEp *comic_center2.ComicDownloadEp) error { + var list []comic_center2.ComicDownloadPicture // 官方的图片只能分页获取, 从第1页开始获取, 每页最多40张图片 page := 1 for true { @@ -160,7 +160,7 @@ func downloadFetchPictures(downloadEp *comic_center.ComicDownloadEp) error { return err } for _, doc := range rsp.Docs { - list = append(list, comic_center.ComicDownloadPicture{ + list = append(list, comic_center2.ComicDownloadPicture{ ID: doc.Id, ComicId: downloadEp.ComicId, EpId: downloadEp.ID, @@ -178,7 +178,7 @@ func downloadFetchPictures(downloadEp *comic_center.ComicDownloadEp) error { break } // 保存获取到的图片 - err := comic_center.FetchPictures(downloadEp.ComicId, downloadEp.ID, &list) + err := comic_center2.FetchPictures(downloadEp.ComicId, downloadEp.ID, &list) if err != nil { panic(err) } @@ -195,7 +195,7 @@ func downloadLoadEp() { } // 找到第一个需要下载的章节并去处理 (未下载失败的, 且未完成下载的) var err error - downloadingEp, err = comic_center.LoadFirstNeedDownloadEp(downloadingComic.ID) + downloadingEp, err = comic_center2.LoadFirstNeedDownloadEp(downloadingComic.ID) if err != nil { panic(err) } @@ -222,7 +222,7 @@ func downloadSummaryDownload() { return } // 加载这个漫画的所有EP - list, err := comic_center.ListDownloadEpByComicId(downloadingComic.ID) + list, err := comic_center2.ListDownloadEpByComicId(downloadingComic.ID) if err != nil { panic(err) } @@ -234,7 +234,7 @@ func downloadSummaryDownload() { if over { // 如果所有章节下载完成则下载成功 downloadAndExportLogo(downloadingComic) - err = comic_center.DownloadSuccess(downloadingComic.ID) + err = comic_center2.DownloadSuccess(downloadingComic.ID) if err != nil { panic(err) } @@ -242,7 +242,7 @@ func downloadSummaryDownload() { downloadingComic.DownloadFinishedTime = time.Now() } else { // 否则下载失败 - err = comic_center.DownloadFailed(downloadingComic.ID) + err = comic_center2.DownloadFailed(downloadingComic.ID) if err != nil { panic(err) } @@ -262,7 +262,7 @@ func downloadLoadPicture() { return } // 获取到这个章节需要下载的图片 - downloadingPictures, err := comic_center.LoadNeedDownloadPictures(downloadingEp.ID, downloadThreadFetch) + downloadingPictures, err := comic_center2.LoadNeedDownloadPictures(downloadingEp.ID, downloadThreadFetch) if err != nil { panic(err) } @@ -301,7 +301,7 @@ func downloadLoadPicture() { var downloadEventChannelMutex = sync.Mutex{} // 这里不能使用暂停检测, 多次检测会导致问题 -func downloadPicture(downloadingPicture *comic_center.ComicDownloadPicture) { +func downloadPicture(downloadingPicture *comic_center2.ComicDownloadPicture) { // 下载图片, 最多重试5次 println("正在下载图片 " + fmt.Sprintf("%d", downloadingPicture.RankInEp)) for i := 0; i < 5; i++ { @@ -322,7 +322,7 @@ func downloadPicture(downloadingPicture *comic_center.ComicDownloadPicture) { } // 没能下载成功, 图片置为下载失败 if !downloadingPicture.DownloadFinished { - err := comic_center.PictureFailed(downloadingPicture.ID) + err := comic_center2.PictureFailed(downloadingPicture.ID) if err != nil { // ??? panic X channel ??? // panic(err) @@ -331,9 +331,9 @@ func downloadPicture(downloadingPicture *comic_center.ComicDownloadPicture) { } // 下载指定图片 -func downloadThePicture(picturePoint *comic_center.ComicDownloadPicture) error { +func downloadThePicture(picturePoint *comic_center2.ComicDownloadPicture) error { // 为了不和页面前端浏览的数据冲突, 使用url做hash锁 - lock := utils.HashLock(fmt.Sprintf("%s$%s", picturePoint.FileServer, picturePoint.Path)) + lock := utils2.HashLock(fmt.Sprintf("%s$%s", picturePoint.FileServer, picturePoint.Path)) lock.Lock() defer lock.Unlock() // 图片保存位置使用相对路径储存, 使用绝对路径操作 @@ -351,16 +351,16 @@ func downloadThePicture(picturePoint *comic_center.ComicDownloadPicture) error { // 将图片保存到文件 dir := filepath.Dir(realPath) if _, err := os.Stat(dir); os.IsNotExist(err) { - os.Mkdir(dir, utils.CreateDirMode) + os.Mkdir(dir, utils2.CreateDirMode) } - err = ioutil.WriteFile(downloadPath(picturePath), buff, utils.CreateFileMode) + err = ioutil.WriteFile(downloadPath(picturePath), buff, utils2.CreateFileMode) if err != nil { return err } // 下载时同时导出 downloadAndExport(downloadingComic, downloadingEp, picturePoint, buff, format) // 存入数据库 - return comic_center.PictureSuccess( + return comic_center2.PictureSuccess( picturePoint.ComicId, picturePoint.EpId, picturePoint.ID, @@ -380,7 +380,7 @@ func downloadSummaryEp() { return } // 找到所有下载的图片 - list, err := comic_center.ListDownloadPictureByEpId(downloadingEp.ID) + list, err := comic_center2.ListDownloadPictureByEpId(downloadingEp.ID) if err != nil { panic(err) } @@ -390,12 +390,12 @@ func downloadSummaryEp() { over = over && downloadPicture.DownloadFinished } if over { - err = comic_center.EpSuccess(downloadingEp.ComicId, downloadingEp.ID) + err = comic_center2.EpSuccess(downloadingEp.ComicId, downloadingEp.ID) if err != nil { panic(err) } } else { - err = comic_center.EpFailed(downloadingEp.ID) + err = comic_center2.EpFailed(downloadingEp.ID) if err != nil { panic(err) } @@ -409,9 +409,9 @@ var downloadAndExportPath = "" // 边下载边导出(导出图片) func downloadAndExport( - downloadingComic *comic_center.ComicDownload, - downloadingEp *comic_center.ComicDownloadEp, - downloadingPicture *comic_center.ComicDownloadPicture, + downloadingComic *comic_center2.ComicDownload, + downloadingEp *comic_center2.ComicDownloadEp, + downloadingPicture *comic_center2.ComicDownloadPicture, buff []byte, format string, ) { @@ -421,11 +421,11 @@ func downloadAndExport( if i, e := os.Stat(downloadAndExportPath); e == nil { if i.IsDir() { // 进入漫画目录 - comicDir := path.Join(downloadAndExportPath, utils.ReasonableFileName(downloadingComic.Title)) + comicDir := path.Join(downloadAndExportPath, utils2.ReasonableFileName(downloadingComic.Title)) i, e = os.Stat(comicDir) if e != nil { if os.IsNotExist(e) { - e = os.Mkdir(comicDir, utils.CreateDirMode) + e = os.Mkdir(comicDir, utils2.CreateDirMode) } else { return } @@ -434,11 +434,11 @@ func downloadAndExport( return } // 进入章节目录 - epDir := path.Join(comicDir, utils.ReasonableFileName(fmt.Sprintf("%02d - ", downloadingEp.EpOrder)+downloadingEp.Title)) + epDir := path.Join(comicDir, utils2.ReasonableFileName(fmt.Sprintf("%02d - ", downloadingEp.EpOrder)+downloadingEp.Title)) i, e = os.Stat(epDir) if e != nil { if os.IsNotExist(e) { - e = os.Mkdir(epDir, utils.CreateDirMode) + e = os.Mkdir(epDir, utils2.CreateDirMode) } else { return } @@ -448,14 +448,14 @@ func downloadAndExport( } // 写入文件 filePath := path.Join(epDir, fmt.Sprintf("%03d.%s", downloadingPicture.RankInEp, aliasFormat(format))) - ioutil.WriteFile(filePath, buff, utils.CreateFileMode) + ioutil.WriteFile(filePath, buff, utils2.CreateFileMode) } } } // 边下载边导出(导出logo) func downloadAndExportLogo( - downloadingComic *comic_center.ComicDownload, + downloadingComic *comic_center2.ComicDownload, ) { if downloadAndExportPath == "" { return @@ -469,11 +469,11 @@ func downloadAndExportLogo( if i, e := os.Stat(downloadAndExportPath); e == nil { if i.IsDir() { // 进入漫画目录 - comicDir := path.Join(downloadAndExportPath, utils.ReasonableFileName(downloadingComic.Title)) + comicDir := path.Join(downloadAndExportPath, utils2.ReasonableFileName(downloadingComic.Title)) i, e = os.Stat(comicDir) if e != nil { if os.IsNotExist(e) { - e = os.Mkdir(comicDir, utils.CreateDirMode) + e = os.Mkdir(comicDir, utils2.CreateDirMode) } } if e != nil { @@ -481,7 +481,7 @@ func downloadAndExportLogo( } // 写入文件 filePath := path.Join(comicDir, fmt.Sprintf("%s.%s", "logo", aliasFormat(f))) - ioutil.WriteFile(filePath, buff, utils.CreateFileMode) + ioutil.WriteFile(filePath, buff, utils2.CreateFileMode) } } } diff --git a/go/main/controller/export.go b/go/pikapika/export.go similarity index 95% rename from go/main/controller/export.go rename to go/pikapika/export.go index 44510e3..157cd2a 100644 --- a/go/main/controller/export.go +++ b/go/pikapika/export.go @@ -1,4 +1,4 @@ -package controller +package pikapika import ( "archive/tar" @@ -12,8 +12,8 @@ import ( "net" "os" "path" - "pikapika/main/database/comic_center" - "pikapika/main/utils" + "pikapika/pikapika/database/comic_center" + utils2 "pikapika/pikapika/utils" "time" ) @@ -90,7 +90,7 @@ func exportComicDownload(params string) (filePath string, err error) { err = errors.New("not download finish") return } - filePath = path.Join(dir, fmt.Sprintf("%s-%s.zip", utils.ReasonableFileName(comic.Title), time.Now().Format("2006_01_02_15_04_05.999"))) + filePath = path.Join(dir, fmt.Sprintf("%s-%s.zip", utils2.ReasonableFileName(comic.Title), time.Now().Format("2006_01_02_15_04_05.999"))) println(fmt.Sprintf("ZIP : %s", filePath)) fileStream, err := os.Create(filePath) if err != nil { @@ -372,13 +372,13 @@ func exportComicDownloadToJPG(params string) error { if !comic.DownloadFinished { return errors.New("not download finish") } - dirPath := path.Join(dir, fmt.Sprintf("%s-%s", utils.ReasonableFileName(comic.Title), time.Now().Format("2006_01_02_15_04_05.999"))) + dirPath := path.Join(dir, fmt.Sprintf("%s-%s", utils2.ReasonableFileName(comic.Title), time.Now().Format("2006_01_02_15_04_05.999"))) println(fmt.Sprintf("DIR : %s", dirPath)) - err = os.Mkdir(dirPath, utils.CreateDirMode) + err = os.Mkdir(dirPath, utils2.CreateDirMode) if err != nil { return err } - err = os.Mkdir(path.Join(dirPath, "pictures"), utils.CreateDirMode) + err = os.Mkdir(path.Join(dirPath, "pictures"), utils2.CreateDirMode) if err != nil { return err } diff --git a/go/main/controller/game.go b/go/pikapika/game.go similarity index 98% rename from go/main/controller/game.go rename to go/pikapika/game.go index 6243298..e064d43 100644 --- a/go/main/controller/game.go +++ b/go/pikapika/game.go @@ -1,4 +1,4 @@ -package controller +package pikapika import ( "errors" diff --git a/go/main/controller/image.go b/go/pikapika/image.go similarity index 98% rename from go/main/controller/image.go rename to go/pikapika/image.go index 0efbc58..6a34b08 100644 --- a/go/main/controller/image.go +++ b/go/pikapika/image.go @@ -1,4 +1,4 @@ -package controller +package pikapika import ( "bytes" @@ -12,7 +12,7 @@ import ( "io/ioutil" "net" "net/http" - "pikapika/main/database/comic_center" + "pikapika/pikapika/database/comic_center" "sync" "time" ) diff --git a/go/main/controller/import.go b/go/pikapika/import.go similarity index 84% rename from go/main/controller/import.go rename to go/pikapika/import.go index 2c3547e..0e51371 100644 --- a/go/main/controller/import.go +++ b/go/pikapika/import.go @@ -1,4 +1,4 @@ -package controller +package pikapika import ( "archive/tar" @@ -11,8 +11,8 @@ import ( "net" "os" path2 "path" - "pikapika/main/database/comic_center" - "pikapika/main/utils" + comic_center2 "pikapika/pikapika/database/comic_center" + utils2 "pikapika/pikapika/utils" "strconv" "strings" ) @@ -96,17 +96,17 @@ func importComicDownload(zipPath string) error { if err != nil { return err } - return comic_center.Transaction(func(tx *gorm.DB) error { + return comic_center2.Transaction(func(tx *gorm.DB) error { // 删除 - err := tx.Unscoped().Delete(&comic_center.ComicDownload{}, "id = ?", jsonComicDownload.ID).Error + err := tx.Unscoped().Delete(&comic_center2.ComicDownload{}, "id = ?", jsonComicDownload.ID).Error if err != nil { return err } - err = tx.Unscoped().Delete(&comic_center.ComicDownloadEp{}, "comic_id = ?", jsonComicDownload.ID).Error + err = tx.Unscoped().Delete(&comic_center2.ComicDownloadEp{}, "comic_id = ?", jsonComicDownload.ID).Error if err != nil { return err } - err = tx.Unscoped().Delete(&comic_center.ComicDownloadPicture{}, "comic_id = ?", jsonComicDownload.ID).Error + err = tx.Unscoped().Delete(&comic_center2.ComicDownloadPicture{}, "comic_id = ?", jsonComicDownload.ID).Error if err != nil { return err } @@ -129,7 +129,7 @@ func importComicDownload(zipPath string) error { } } // VIEW日志 - view := comic_center.ComicView{} + view := comic_center2.ComicView{} view.ID = jsonComicDownload.ID view.CreatedAt = jsonComicDownload.CreatedAt view.UpdatedAt = jsonComicDownload.UpdatedAt @@ -153,13 +153,13 @@ func importComicDownload(zipPath string) error { view.IsFavourite = false view.IsLiked = false view.CommentsCount = 0 - err = comic_center.NoLockActionViewComicUpdateInfoDB(&view, tx) + err = comic_center2.NoLockActionViewComicUpdateInfoDB(&view, tx) if err != nil { return err } // 覆盖文件 comicDirPath := downloadPath(jsonComicDownload.ID) - utils.Mkdir(comicDirPath) + utils2.Mkdir(comicDirPath) logoReader, err := zip.Open("logo") if err == nil { defer logoReader.Close() @@ -167,10 +167,10 @@ func importComicDownload(zipPath string) error { if err != nil { return err } - ioutil.WriteFile(path2.Join(comicDirPath, "logo"), logoBuff, utils.CreateFileMode) + ioutil.WriteFile(path2.Join(comicDirPath, "logo"), logoBuff, utils2.CreateFileMode) } for _, ep := range jsonComicDownload.EpList { - utils.Mkdir(path2.Join(comicDirPath, strconv.Itoa(int(ep.EpOrder)))) + utils2.Mkdir(path2.Join(comicDirPath, strconv.Itoa(int(ep.EpOrder)))) for _, picture := range ep.PictureList { notifyExport("写入 : " + picture.LocalPath) zipEntry, err := zip.Open(picture.SrcPath) @@ -183,7 +183,7 @@ func importComicDownload(zipPath string) error { if err != nil { return err } - return ioutil.WriteFile(downloadPath(picture.LocalPath), entryBuff, utils.CreateFileMode) + return ioutil.WriteFile(downloadPath(picture.LocalPath), entryBuff, utils2.CreateFileMode) }() if err != nil { return err diff --git a/go/main/controller/modles.go b/go/pikapika/modles.go similarity index 90% rename from go/main/controller/modles.go rename to go/pikapika/modles.go index e8ccc4f..8370be4 100644 --- a/go/main/controller/modles.go +++ b/go/pikapika/modles.go @@ -1,6 +1,8 @@ -package controller +package pikapika -import "pikapika/main/database/comic_center" +import ( + "pikapika/pikapika/database/comic_center" +) type DisplayImageData struct { FileSize int64 `json:"fileSize"` diff --git a/go/main/controller/network.go b/go/pikapika/network.go similarity index 96% rename from go/main/controller/network.go rename to go/pikapika/network.go index dc18a50..892806c 100644 --- a/go/main/controller/network.go +++ b/go/pikapika/network.go @@ -1,4 +1,4 @@ -package controller +package pikapika import ( "net" diff --git a/go/main/controller/pikapika.go b/go/pikapika/pikapika.go similarity index 87% rename from go/main/controller/pikapika.go rename to go/pikapika/pikapika.go index e619b7c..06ad0f2 100644 --- a/go/main/controller/pikapika.go +++ b/go/pikapika/pikapika.go @@ -1,4 +1,4 @@ -package controller +package pikapika import ( "crypto/md5" @@ -10,10 +10,10 @@ import ( "io/ioutil" "os" path2 "path" - "pikapika/main/database/comic_center" - "pikapika/main/database/network_cache" - "pikapika/main/database/properties" - "pikapika/main/utils" + comic_center2 "pikapika/pikapika/database/comic_center" + "pikapika/pikapika/database/network_cache" + "pikapika/pikapika/database/properties" + utils2 "pikapika/pikapika/utils" "strconv" "time" ) @@ -34,7 +34,7 @@ func InitPlugin(_remoteDir string, _downloadDir string, _tmpDir string) { remoteDir = _remoteDir downloadDir = _downloadDir tmpDir = _tmpDir - comic_center.ResetAll() + comic_center2.ResetAll() downloadAndExportPath = loadDownloadAndExportPath() downloadThreadCount = loadDownloadThreadCount() go downloadBackground() @@ -166,7 +166,7 @@ func preLogin() (string, error) { token, _ := properties.LoadToken() tokenTime, _ := properties.LoadTokenTime() if token != "" && tokenTime > 0 { - if utils.Timestamp()-(1000*60*60*24) < tokenTime { + if utils2.Timestamp()-(1000*60*60*24) < tokenTime { client.Token = token return "true", nil } @@ -189,7 +189,7 @@ func login() error { return err } properties.SaveToken(client.Token) - properties.SaveTokenTime(utils.Timestamp()) + properties.SaveTokenTime(utils2.Timestamp()) return nil } @@ -216,10 +216,10 @@ func remoteImageData(params string) (string, error) { json.Unmarshal([]byte(params), ¶msStruct) fileServer := paramsStruct.FileServer path := paramsStruct.Path - lock := utils.HashLock(fmt.Sprintf("%s$%s", fileServer, path)) + lock := utils2.HashLock(fmt.Sprintf("%s$%s", fileServer, path)) lock.Lock() defer lock.Unlock() - cache := comic_center.FindRemoteImage(fileServer, path) + cache := comic_center2.FindRemoteImage(fileServer, path) if cache == nil { remote, err := decodeAndSaveImage(fileServer, path) if err != nil { @@ -245,10 +245,10 @@ func remoteImagePreload(params string) error { json.Unmarshal([]byte(params), ¶msStruct) fileServer := paramsStruct.FileServer path := paramsStruct.Path - lock := utils.HashLock(fmt.Sprintf("%s$%s", fileServer, path)) + lock := utils2.HashLock(fmt.Sprintf("%s$%s", fileServer, path)) lock.Lock() defer lock.Unlock() - cache := comic_center.FindRemoteImage(fileServer, path) + cache := comic_center2.FindRemoteImage(fileServer, path) var err error if cache == nil { _, err = decodeAndSaveImage(fileServer, path) @@ -256,7 +256,7 @@ func remoteImagePreload(params string) error { return err } -func decodeAndSaveImage(fileServer string, path string) (*comic_center.RemoteImage, error) { +func decodeAndSaveImage(fileServer string, path string) (*comic_center2.RemoteImage, error) { buff, img, format, err := decodeFromUrl(fileServer, path) if err != nil { println(fmt.Sprintf("decode error : %s/static/%s %s", fileServer, path, err.Error())) @@ -274,7 +274,7 @@ func decodeAndSaveImage(fileServer string, path string) (*comic_center.RemoteIma if err != nil { return nil, err } - remote := comic_center.RemoteImage{ + remote := comic_center2.RemoteImage{ FileServer: fileServer, Path: path, FileSize: int64(len(buff)), @@ -283,7 +283,7 @@ func decodeAndSaveImage(fileServer string, path string) (*comic_center.RemoteIma Height: int32(img.Bounds().Dy()), LocalPath: local, } - err = comic_center.SaveRemoteImage(&remote) + err = comic_center2.SaveRemoteImage(&remote) return &remote, err } @@ -293,8 +293,8 @@ func downloadImagePath(path string) (string, error) { func createDownload(params string) error { var paramsStruct struct { - Comic comic_center.ComicDownload `json:"comic"` - EpList []comic_center.ComicDownloadEp `json:"epList"` + Comic comic_center2.ComicDownload `json:"comic"` + EpList []comic_center2.ComicDownloadEp `json:"epList"` } json.Unmarshal([]byte(params), ¶msStruct) comic := paramsStruct.Comic @@ -302,19 +302,19 @@ func createDownload(params string) error { if comic.Title == "" || len(epList) == 0 { return errors.New("params error") } - err := comic_center.CreateDownload(&comic, &epList) + err := comic_center2.CreateDownload(&comic, &epList) if err != nil { return err } // 创建文件夹 - utils.Mkdir(downloadPath(comic.ID)) + utils2.Mkdir(downloadPath(comic.ID)) // 复制图标 downloadComicLogo(&comic) return nil } -func downloadComicLogo(comic *comic_center.ComicDownload) { - lock := utils.HashLock(fmt.Sprintf("%s$%s", comic.ThumbFileServer, comic.ThumbPath)) +func downloadComicLogo(comic *comic_center2.ComicDownload) { + lock := utils2.HashLock(fmt.Sprintf("%s$%s", comic.ThumbFileServer, comic.ThumbPath)) lock.Lock() defer lock.Unlock() buff, image, format, err := decodeFromCache(comic.ThumbFileServer, comic.ThumbPath) @@ -323,8 +323,8 @@ func downloadComicLogo(comic *comic_center.ComicDownload) { } if err == nil { comicLogoPath := path2.Join(comic.ID, "logo") - ioutil.WriteFile(downloadPath(comicLogoPath), buff, utils.CreateFileMode) - comic_center.UpdateDownloadLogo( + ioutil.WriteFile(downloadPath(comicLogoPath), buff, utils2.CreateFileMode) + comic_center2.UpdateDownloadLogo( comic.ID, int64(len(buff)), format, @@ -345,8 +345,8 @@ func downloadComicLogo(comic *comic_center.ComicDownload) { func addDownload(params string) error { var paramsStruct struct { - Comic comic_center.ComicDownload `json:"comic"` - EpList []comic_center.ComicDownloadEp `json:"epList"` + Comic comic_center2.ComicDownload `json:"comic"` + EpList []comic_center2.ComicDownloadEp `json:"epList"` } json.Unmarshal([]byte(params), ¶msStruct) comic := paramsStruct.Comic @@ -354,11 +354,11 @@ func addDownload(params string) error { if comic.Title == "" || len(epList) == 0 { return errors.New("params error") } - return comic_center.AddDownload(&comic, &epList) + return comic_center2.AddDownload(&comic, &epList) } func deleteDownloadComic(comicId string) error { - err := comic_center.Deleting(comicId) + err := comic_center2.Deleting(comicId) if err != nil { return err } @@ -367,23 +367,23 @@ func deleteDownloadComic(comicId string) error { } func loadDownloadComic(comicId string) (string, error) { - download, err := comic_center.FindComicDownloadById(comicId) + download, err := comic_center2.FindComicDownloadById(comicId) if err != nil { return "", err } if download == nil { return "", nil } - comic_center.ViewComic(comicId) // VIEW + comic_center2.ViewComic(comicId) // VIEW return serialize(download, err) } func allDownloads() (string, error) { - return serialize(comic_center.AllDownloads()) + return serialize(comic_center2.AllDownloads()) } func downloadEpList(comicId string) (string, error) { - return serialize(comic_center.ListDownloadEpByComicId(comicId)) + return serialize(comic_center2.ListDownloadEpByComicId(comicId)) } func viewLogPage(params string) (string, error) { @@ -392,11 +392,11 @@ func viewLogPage(params string) (string, error) { Limit int `json:"limit"` } json.Unmarshal([]byte(params), ¶msStruct) - return serialize(comic_center.ViewLogPage(paramsStruct.Offset, paramsStruct.Limit)) + return serialize(comic_center2.ViewLogPage(paramsStruct.Offset, paramsStruct.Limit)) } func downloadPicturesByEpId(epId string) (string, error) { - return serialize(comic_center.ListDownloadPictureByEpId(epId)) + return serialize(comic_center2.ListDownloadPictureByEpId(epId)) } func getDownloadRunning() bool { @@ -418,13 +418,13 @@ func cleanNetworkCache() error { func cleanImageCache() error { notifyExport("清理图片缓存") - err := comic_center.RemoveAllRemoteImage() + err := comic_center2.RemoveAllRemoteImage() if err != nil { return err } notifyExport("清理图片文件") os.RemoveAll(remoteDir) - utils.Mkdir(remoteDir) + utils2.Mkdir(remoteDir) notifyExport("清理结束") return nil } @@ -437,13 +437,13 @@ func clean() error { return err } notifyExport("清理图片缓存") - err = comic_center.RemoveAllRemoteImage() + err = comic_center2.RemoveAllRemoteImage() if err != nil { return err } notifyExport("清理图片文件") os.RemoveAll(remoteDir) - utils.Mkdir(remoteDir) + utils2.Mkdir(remoteDir) notifyExport("清理结束") return nil } @@ -457,15 +457,15 @@ func autoClean(expire int64) error { } pageSize := 10 for true { - images, err := comic_center.EarliestRemoteImage(earliest, pageSize) + images, err := comic_center2.EarliestRemoteImage(earliest, pageSize) if err != nil { return err } if len(images) == 0 { - return comic_center.VACUUM() + return comic_center2.VACUUM() } // delete data & remove pic - err = comic_center.DeleteRemoteImages(images) + err = comic_center2.DeleteRemoteImages(images) if err != nil { return err } @@ -487,7 +487,7 @@ func storeViewEp(params string) error { PictureRank int `json:"pictureRank"` } json.Unmarshal([]byte(params), ¶msStruct) - return comic_center.ViewEpAndPicture( + return comic_center2.ViewEpAndPicture( paramsStruct.ComicId, paramsStruct.EpOrder, paramsStruct.EpTitle, @@ -496,7 +496,7 @@ func storeViewEp(params string) error { } func loadView(comicId string) (string, error) { - view, err := comic_center.LoadViewLog(comicId) + view, err := comic_center2.LoadViewLog(comicId) if err != nil { return "", nil } @@ -634,10 +634,10 @@ func FlatInvoke(method string, params string) (string, error) { case "viewLogPage": return viewLogPage(params) case "clearAllViewLog": - comic_center.ClearAllViewLog() + comic_center2.ClearAllViewLog() return "", nil case "deleteViewLog": - comic_center.DeleteViewLog(params) + comic_center2.DeleteViewLog(params) return "", nil case "cleanNetworkCache": return "", cleanNetworkCache() @@ -679,7 +679,7 @@ func FlatInvoke(method string, params string) (string, error) { case "downloadPicturesByEpId": return downloadPicturesByEpId(params) case "resetAllDownloads": - return "", comic_center.ResetAll() + return "", comic_center2.ResetAll() case "exportComicDownload": return exportComicDownload(params) case "exportComicDownloadToJPG": diff --git a/go/main/utils/const.go b/go/pikapika/utils/const.go similarity index 100% rename from go/main/utils/const.go rename to go/pikapika/utils/const.go diff --git a/go/main/utils/file.go b/go/pikapika/utils/file.go similarity index 100% rename from go/main/utils/file.go rename to go/pikapika/utils/file.go diff --git a/go/main/utils/mutex.go b/go/pikapika/utils/mutex.go similarity index 100% rename from go/main/utils/mutex.go rename to go/pikapika/utils/mutex.go diff --git a/go/main/utils/time.go b/go/pikapika/utils/time.go similarity index 100% rename from go/main/utils/time.go rename to go/pikapika/utils/time.go diff --git a/ios/Flutter/AppFrameworkInfo.plist b/ios/Flutter/AppFrameworkInfo.plist index 9367d48..8d4492f 100644 --- a/ios/Flutter/AppFrameworkInfo.plist +++ b/ios/Flutter/AppFrameworkInfo.plist @@ -21,6 +21,6 @@ CFBundleVersion 1.0 MinimumOSVersion - 8.0 + 9.0 diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 34bde7c..c7156b4 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -2,26 +2,26 @@ PODS: - Flutter (1.0.0) - "permission_handler (5.1.0+2)": - Flutter - - url_launcher (0.0.1): + - url_launcher_ios (0.0.1): - Flutter DEPENDENCIES: - Flutter (from `Flutter`) - permission_handler (from `.symlinks/plugins/permission_handler/ios`) - - url_launcher (from `.symlinks/plugins/url_launcher/ios`) + - url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`) EXTERNAL SOURCES: Flutter: :path: Flutter permission_handler: :path: ".symlinks/plugins/permission_handler/ios" - url_launcher: - :path: ".symlinks/plugins/url_launcher/ios" + url_launcher_ios: + :path: ".symlinks/plugins/url_launcher_ios/ios" SPEC CHECKSUMS: - Flutter: 434fef37c0980e73bb6479ef766c45957d4b510c + Flutter: 50d75fe2f02b26cc09d224853bb45737f8b3214a permission_handler: ccb20a9fad0ee9b1314a52b70b76b473c5f8dab0 - url_launcher: 6fef411d543ceb26efce54b05a0a40bfd74cbbef + url_launcher_ios: 02f1989d4e14e998335b02b67a7590fa34f971af PODFILE CHECKSUM: aafe91acc616949ddb318b77800a7f51bffa2a4c diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 0dfd17d..028793e 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -159,7 +159,7 @@ 97C146E61CF9000F007C117D /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 1020; + LastUpgradeCheck = 1300; ORGANIZATIONNAME = ""; TargetAttributes = { 97C146ED1CF9000F007C117D = { @@ -362,6 +362,7 @@ CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -492,6 +493,7 @@ CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -514,6 +516,7 @@ CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", diff --git a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index a28140c..3db53b6 100644 --- a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -1,6 +1,6 @@