Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,6 @@ Cloud Scheduler/Tasks ──► HTTP /tasks/daily-summary
| `YUKAN_SUMMARY_MAX_HIGHLIGHTS` | | Gemini に要求する最大ハイライト数 (既定 3) |
| `YUKAN_SUMMARY_MAX_ATTEMPTS` | | Gemini 呼び出しリトライ回数 (既定 5) |
| `YUKAN_SUMMARY_MAX_CONCURRENCY` | | チャンネル収集の並列数 |
| `YUKAN_FORCE_EMPTY_HIGHLIGHTS` | | テスト・デバッグ用: `true` で Gemini を呼ばず空ハイライトを返す |

## デプロイ
デプロイは GitHub Actions で行います。手元からの `make deploy` は廃止しました。
Expand Down
17 changes: 7 additions & 10 deletions internal/summary/collector.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ type Collector struct {

const (
fallbackNoMessages = "過去24時間のメッセージはありません"
fallbackGeneric = "夕刊を生成できませんでした。しばらくしてから再実行してください。"
)

// Collect gathers messages from the target guild within the configured lookback window.
Expand Down Expand Up @@ -187,7 +186,7 @@ func fallbackMessage(total int) string {
if total <= 0 {
return fallbackNoMessages
}
return fallbackGeneric
return ""
}

func (c *Collector) collectChannel(ctx context.Context, guildID, botID string, cutoff time.Time, ch *discordgo.Channel, parentNames map[string]string, memberNames *nameCache) (*ChannelDigest, bool, error) {
Expand Down Expand Up @@ -225,14 +224,12 @@ func (c *Collector) collectChannel(ctx context.Context, guildID, botID string, c
}

digest := MessageDigest{
Author: resolveAuthor(c.Session, guildID, msg, memberNames),
AvatarURL: userAvatarURL(msg.Author),
Content: extractContent(msg),
Timestamp: timestamp,
MessageID: msg.ID,
ChannelID: ch.ID,
Link: buildMessageLink(guildID, ch.ID, msg.ID),
AttachmentURLs: extractAttachmentURLs(msg),
Author: resolveAuthor(c.Session, guildID, msg, memberNames),
AvatarURL: userAvatarURL(msg.Author),
Content: extractContent(msg),
Timestamp: timestamp,
ChannelID: ch.ID,
Link: buildMessageLink(guildID, ch.ID, msg.ID),
}

collected = append(collected, digest)
Expand Down
11 changes: 0 additions & 11 deletions internal/summary/helpers.go
Original file line number Diff line number Diff line change
Expand Up @@ -99,17 +99,6 @@ func displayNameFromUser(user *discordgo.User) string {
return username
}

func extractAttachmentURLs(msg *discordgo.Message) []string {
if msg == nil || len(msg.Attachments) == 0 {
return nil
}
urls := make([]string, 0, len(msg.Attachments))
for _, attachment := range msg.Attachments {
urls = append(urls, attachment.URL)
}
return urls
}

func userAvatarURL(user *discordgo.User) string {
if user == nil {
return ""
Expand Down
5 changes: 0 additions & 5 deletions internal/summary/service.go
Original file line number Diff line number Diff line change
Expand Up @@ -112,10 +112,6 @@ func (s *Service) Generate(ctx context.Context, req Request) (Result, error) {
return result, err
}

result.Digests = collectorResult.Digests
result.Fallback = collectorResult.FallbackText
result.TotalMessages = collectorResult.TotalMessages

s.info(ctx, fmt.Sprintf("メッセージ取得終了 (チャンネル=%d, メッセージ=%d, 所要%s)", len(collectorResult.Digests), collectorResult.TotalMessages, formatDuration(time.Since(workflowStart))))
if collectorResult.SkippedChannels > 0 {
s.info(ctx, fmt.Sprintf("取得できないチャンネルを%d件スキップしました", collectorResult.SkippedChannels))
Expand Down Expand Up @@ -196,7 +192,6 @@ func (s *Service) Generate(ctx context.Context, req Request) (Result, error) {
result.Embeds = embeds
result.Highlights = highlights
result.Publishable = len(embeds) > 0
result.CompletedAt = time.Now()

s.info(ctx, fmt.Sprintf("出力準備完了 (文字数=%d, 累計%s)", utf8.RuneCountInString(result.Content), formatDuration(time.Since(workflowStart))))

Expand Down
18 changes: 6 additions & 12 deletions internal/summary/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,12 @@ type Highlight struct {

// MessageDigest represents a single Discord message used for summarization.
type MessageDigest struct {
Author string
AvatarURL string
Content string
Timestamp time.Time
MessageID string
ChannelID string
Link string
AttachmentURLs []string
Author string
AvatarURL string
Content string
Timestamp time.Time
ChannelID string
Link string
}

// ChannelDigest aggregates messages per channel or thread.
Expand Down Expand Up @@ -56,11 +54,7 @@ type Result struct {
Content string
Embeds []*discordgo.MessageEmbed
Highlights []Highlight
Digests []ChannelDigest
Fallback string
TotalMessages int
WorkflowStart time.Time
CompletedAt time.Time
Publishable bool
// Posted は Run で実際に Discord へ投稿されたかを示す
Posted bool
Expand Down