diff --git a/controller/channel.go b/controller/channel.go index 3a147019..25b5d405 100644 --- a/controller/channel.go +++ b/controller/channel.go @@ -6,6 +6,7 @@ import ( "one-api/common" "one-api/model" "strconv" + "strings" ) func GetAllChannels(c *gin.Context) { @@ -84,7 +85,17 @@ func AddChannel(c *gin.Context) { } channel.CreatedTime = common.GetTimestamp() channel.AccessedTime = common.GetTimestamp() - err = channel.Insert() + keys := strings.Split(channel.Key, "\n") + channels := make([]model.Channel, 0) + for _, key := range keys { + if key == "" { + continue + } + localChannel := channel + localChannel.Key = key + channels = append(channels, localChannel) + } + err = model.BatchInsertChannels(channels) if err != nil { c.JSON(http.StatusOK, gin.H{ "success": false, diff --git a/model/channel.go b/model/channel.go index f653f068..83ea311c 100644 --- a/model/channel.go +++ b/model/channel.go @@ -53,6 +53,12 @@ func GetRandomChannel() (*Channel, error) { return &channel, err } +func BatchInsertChannels(channels []Channel) error { + var err error + err = DB.Create(&channels).Error + return err +} + func (channel *Channel) Insert() error { var err error err = DB.Create(channel).Error diff --git a/web/src/pages/Channel/EditChannel.js b/web/src/pages/Channel/EditChannel.js index 1d87ee25..ebbe488e 100644 --- a/web/src/pages/Channel/EditChannel.js +++ b/web/src/pages/Channel/EditChannel.js @@ -16,8 +16,10 @@ const EditChannel = () => { base_url: '', other: '' }; + const [batch, setBatch] = useState(false); const [inputs, setInputs] = useState(originInputs); const handleInputChange = (e, { name, value }) => { + console.log(name, value); setInputs((inputs) => ({ ...inputs, [name]: value })); }; @@ -130,17 +132,38 @@ const EditChannel = () => { autoComplete='new-password' /> - - - + { + batch ? + + : + + + } + { + !isEdit && ( + setBatch(!batch)} + /> + ) + }