# (유즈케이스) 데일리 카툰 발송 (⭐)

## 워크플로우 다운로드 

![Image](https://upload.cafenono.com/image/slashpageHome/20250422/094433_1mhfCVY7f1VJFA5E4D?q=80&s=1280x180&t=outside&f=webp)

![Image](https://upload.cafenono.com/image/slashpageHome/20250422/094433_1AvOK91EqJTahw1fsL?q=80&s=1280x180&t=outside&f=webp)

## 전제조건

- OpenAI API

## 시나리오

> 한줄 요약

- 매일 아침 Calvin and Hobbes 만화를 가져와 번역한 뒤 Discord로 공유하는 자동화 워크플로우

---

### Step 1

- **Trigger: Schedule Trigger**

    - **설정 방법**:

1. "Schedule Trigger" 노드를 추가합니다.

2. 트리거를 매일 아침 9시에 실행되도록 설정합니다.

- `Rule`에서 **Time Interval**을 선택하고 **Hour**를 `9`로 설정하세요.

    - **역할**: 워크플로우를 매일 한 번 자동으로 실행합니다.

---

### Step 2

- **Set: Parameters**

    - **설정 방법**:

1. "Set" 노드를 추가합니다.

2. 다음 세 개의 변수를 정의합니다:

- **Year**: `={{ $now.format('yyyy') }}` (현재 연도)

- **Month**: `={{ $now.format('MM') }}` (현재 월)

- **Day**: `={{ $now.format('dd') }}` (현재 일자)

    - **역할**: 현재 날짜를 기반으로 `Year`, `Month`, `Day`를 각각 변수로 저장합니다.

---

### Step 3

- **HTTP Request: Get Cartoon Image**

    - **설정 방법**:

1. "HTTP Request" 노드를 추가합니다.

2. URL을 다음과 같이 설정합니다:

```
=https://www.gocomics.com/calvinandhobbes/{{ $json.year }}/{{ $json.month }}/{{ $json.day }}
```

1. **Method**는 `GET`으로 설정합니다.

    - **역할**: Calvin and Hobbes 만화의 HTML 페이지를 가져옵니다.

---

### Step 4

- **Information Extractor: Extract Image URL**

    - **설정 방법**:

1. "Information Extractor" 노드를 추가합니다.

2. 다음의 텍스트를 설정합니다: (Fixed → Expression 으로 바꾸기)

```
아래 HTML에서 <img class="img-fluid lazyloaded"> 태그 안에 있는 src값만 추출해줘. 값 외에는 다른 요소는 필요 없어.

e.g.)
EXAMPLE INPUT)
<img class="img-fluid lazyloaded" srcset="https://assets.amuniversal.com/5ed526b06e94013bda88005056a9545d 900w" data-srcset="https://assets.amuniversal.com/5ed526b06e94013bda88005056a9545d 900w" sizes="
                       (min-width: 992px) 900px,
                       (min-width: 768px) 600px,
                       (min-width: 576px) 300px,
                       900px" width="100%" alt="Calvin and Hobbes Comic Strip for March 03, 2023 " src="https://assets.amuniversal.com/5ed526b06e94013bda88005056a9545d">

EXAMPLE OUTPUT)
https://assets.amuniversal.com/5ed526b06e94013bda88005056a9545d

--
(INPUT)
{{ $json.data }} 
```

3. 입력 데이터로 "HTTP Request"의 출력값을 사용합니다.

    1. Schema Type : From Attribute Descriptions

- Attributes

    - Name : cartoon_image

    - Type :String

    - Value : EXAMPLE OUTPUT) [https://assets.amuniversal.com/***](https://assets.amuniversal.com/***) 

    - **역할**: 가져온 HTML에서 만화 이미지 URL을 추출합니다.

---

### Step 5

- **OpenAI: Translate Cartoon Text**

    - **설정 방법**:

1. "OpenAI" 노드를 추가합니다.

2. 모델은 **gpt-4o-mini**를 선택합니다.

3. 텍스트로 다음을 설정합니다:

```
실제 대화하듯이 그리고 원문과 한글로 번역해서 병기로 표기해줘.

EXAMPLE)
Calvin: "YOU'VE NEVER HAD AN OBLIGATION, AN ASSIGNMENT, OR A DEADLINE IN ALL YOUR LIFE! YOU HAVE NO RESPONSIBILITIES AT ALL! IT MUST BE NICE!" (너는 평생 한 번도 의무, 과제, 혹은 마감일 없었잖아! 전혀 책임이 없다니! 정말 좋겠다!)
Hobbes: "WIPE THAT INSOLENT SMIRK OFF YOUR FACE!" (그 뻔뻔한 미소를 그만 지어!)

```

4. 입력 데이터로 "Information Extractor"에서 추출한 이미지 URL을 사용합니다.

    - **역할**: 만화 이미지에 포함된 텍스트를 분석하고 한글로 번역합니다.

---

### Step 6

- **Discord: Send Cartoon**

    - **설정 방법**:

1. "Discord" 노드를 추가합니다.

2. **Webhook URL**을 설정합니다 (Discord 웹훅 URL 필요).

3. 메시지를 다음과 같이 작성합니다:

```
Daily Cartoon ({{ $('param').item.json.year }}/{{ $('param').item.json.month }}/{{ $('param').item.json.day }})
{{ $('Information Extractor').item.json.output.cartoon_image }}

{{ $json.content }}
```

    - **역할**: 분석된 만화 이미지를 Discord 채널에 게시합니다.

---

### 최종 연결 구조

1. `Schedule Trigger` → `Set (Parameters)`

2. `Set (Parameters)` → `HTTP Request`

3. `HTTP Request` → `Information Extractor`

4. `Information Extractor` → `OpenAI`

5. `OpenAI` → `Discord`

---

이 가이드를 따라 하면 매일 아침 Calvin and Hobbes 만화를 자동으로 가져와 번역하고, 결과를 Discord로 공유할 수 있습니다. 🚀

---

For the site tree, see the [root Markdown](https://slashpage.com/n8n-guide.md).
