Skip to content

Commit

Permalink
デーモンモードの追加
Browse files Browse the repository at this point in the history
  • Loading branch information
mikuta0407 committed May 10, 2024
1 parent e00dff7 commit 73b1f71
Show file tree
Hide file tree
Showing 2 changed files with 78 additions and 0 deletions.
28 changes: 28 additions & 0 deletions cmd/daemon.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
/*
Copyright © 2024 NAME HERE <EMAIL ADDRESS>
*/
package cmd

import (
"fmt"

"github.com/mikuta0407/kuchihira-bot/internal/core"
"github.com/spf13/cobra"
)

// daemonCmd represents the daemon command
var daemonCmd = &cobra.Command{
Use: "daemon",
Short: "post kuchiwohiraku new item in daemon mode",
Run: func(cmd *cobra.Command, args []string) {
fmt.Println("daemon called")
if err := core.DaemonStart(debug); err != nil {
fmt.Println(err)
}
},
}

func init() {
rootCmd.AddCommand(daemonCmd)
daemonCmd.Flags().BoolVar(&debug, "debug", false, "debug(default: false)")
}
50 changes: 50 additions & 0 deletions internal/core/daemon.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
package core

import (
"errors"
"fmt"
"time"

"github.com/mikuta0407/kuchihira-bot/internal/discord"
)

func DaemonStart(isDebug bool) error {
if isDebug {
fmt.Println("==== DRY RUN MODE!!! ====")
}

// RSS取得
var items []Item
var latestGUID string
var err error
for {
items, latestGUID, err = getNewPost(kuchihiraCfg.RSSURL)
if err != nil && !errors.Is(err, ErrorNoUpdate) {
// discord.DoPost(discordCfg, "Failed: Get RSS, "+err.Error(), isDebug)
fmt.Println(err)
}

if latestGUID != "" {
if len(items) != 1 {
discord.DoPost(discordCfg, "Warning: Multi publish detected", isDebug)
}
if err := saveLastGUID(latestGUID); err != nil {
discord.DoPost(discordCfg, "Failed: saveLastGUID: "+latestGUID, isDebug)
}

for _, v := range items {
if err := post(v, isDebug); err != nil {
return err
}
if len(items) != 1 {
time.Sleep(time.Second * 2)
}
}

}
time.Sleep(time.Second * 20)

}

return nil
}

0 comments on commit 73b1f71

Please sign in to comment.