diff --git a/.gitignore b/.gitignore index aa881c53..c40a1375 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,9 @@ data/acgimage data/saucenao data/fortune data/hs +data/nsetu +data/nwife +data/sleep plugins/*.so plugins/*.dll .idea/ diff --git a/data/BookReview/bookreview.db b/data/BookReview/bookreview.db new file mode 100644 index 00000000..a8240346 Binary files /dev/null and b/data/BookReview/bookreview.db differ diff --git a/plugin_book_review/data.go b/plugin_book_review/data.go index b650fb5d..f9fa91c0 100644 --- a/plugin_book_review/data.go +++ b/plugin_book_review/data.go @@ -14,7 +14,7 @@ import ( const dbpath = "data/BookReview/" const dbfile = dbpath + "bookreview.db" -const dburl = "https://codechina.csdn.net/anto_july/bookreview/-/raw/master/bookreview.db" +const dburl = "https://codechina.csdn.net/u011570312/ZeroBot-Plugin/-/raw/master/" + dbfile var db = &sql.Sqlite{DBPath: dbfile} @@ -32,18 +32,19 @@ func init() { defer f.Close() resp, err := http.Get(dburl) - if err == nil { - defer resp.Body.Close() - if resp.ContentLength > 0 { - log.Printf("[bookreview]从镜像下载数据库%d字节...", resp.ContentLength) - data, err := io.ReadAll(resp.Body) - if err == nil && len(data) > 0 { - _, _ = f.Write(data) - } + if err != nil { + panic(err) + } + defer resp.Body.Close() + if resp.ContentLength > 0 { + log.Printf("[bookreview]从镜像下载数据库%d字节...", resp.ContentLength) + data, err := io.ReadAll(resp.Body) + if err == nil && len(data) > 0 { + _, _ = f.Write(data) + } else { panic(err) } } - panic(err) } err := db.Create("book_review", &book{}) if err != nil { diff --git a/plugin_book_review/migrate/main.go b/plugin_book_review/migrate/main.go new file mode 100644 index 00000000..756975ba --- /dev/null +++ b/plugin_book_review/migrate/main.go @@ -0,0 +1,43 @@ +package main + +import ( + "os" + + "github.com/FloatTech/ZeroBot-Plugin/utils/sql" +) + +type book struct { + Id uint64 `db:"id"` + BookReview string `db:"bookreview"` +} + +func main() { + db, err := Open(os.Args[1]) + if err != nil { + panic(err) + } + newdb := &sql.Sqlite{DBPath: os.Args[2]} + err = newdb.Create("bookreview", &book{}) + if err != nil { + panic(err) + } + rs, err := db.Table("book_review").Select("book_review", "").Rows() + if err != nil { + panic(err) + } + var d string + var i uint64 + for rs.Next() { + err := rs.Scan(&d) + if err != nil { + panic(err) + } + i++ + err = newdb.Insert("bookreview", &book{i, d}) + if err != nil { + panic(err) + } + } + db.Close() + newdb.Close() +} diff --git a/plugin_book_review/migrate/model.go b/plugin_book_review/migrate/model.go new file mode 100644 index 00000000..f34f57a7 --- /dev/null +++ b/plugin_book_review/migrate/model.go @@ -0,0 +1,46 @@ +package main + +import ( + "os" + + "github.com/jinzhu/gorm" + _ "github.com/logoove/sqlite" +) + +type BrDB = gorm.DB + +func Initialize(dbpath string) *BrDB { + var err error + if _, err = os.Stat(dbpath); err != nil || os.IsNotExist(err) { + // 生成文件 + f, err := os.Create(dbpath) + if err != nil { + return nil + } + defer f.Close() + } + gdb, err := gorm.Open("sqlite3", dbpath) + if err != nil { + panic(err) + } + gdb.AutoMigrate(&BookReview{}) + return (*BrDB)(gdb) +} + +func Open(dbpath string) (*BrDB, error) { + db, err := gorm.Open("sqlite3", dbpath) + if err != nil { + return nil, err + } else { + return (*BrDB)(db), nil + } +} + +type BookReview struct { + gorm.Model + BookReview string `gorm:"column:book_review"` +} + +func (BookReview) TableName() string { + return "book_review" +} diff --git a/plugin_sleep_manage/sleep_manage.go b/plugin_sleep_manage/sleep_manage.go index a2a74002..2f02452d 100644 --- a/plugin_sleep_manage/sleep_manage.go +++ b/plugin_sleep_manage/sleep_manage.go @@ -12,8 +12,8 @@ import ( "github.com/FloatTech/ZeroBot-Plugin/plugin_sleep_manage/model" ) -const dbpath = "data/SleepManage/" -const dbfile = dbpath + "sleepmanage.db" +const dbpath = "data/sleep/" +const dbfile = dbpath + "manage.db" const prio = 4 var engine = control.Register("sleepmanage", &control.Options{