Update app.py
Browse files
app.py
CHANGED
@@ -20,6 +20,7 @@ from urllib.parse import urljoin
|
|
20 |
import requests
|
21 |
from pexels_api import API
|
22 |
import logging
|
|
|
23 |
|
24 |
# λ‘κΉ
μ€μ
|
25 |
logging.basicConfig(level=logging.INFO)
|
@@ -577,7 +578,7 @@ def get_image_url(topic):
|
|
577 |
}
|
578 |
params = {
|
579 |
"query": keywords,
|
580 |
-
"per_page":
|
581 |
}
|
582 |
|
583 |
try:
|
@@ -588,15 +589,12 @@ def get_image_url(topic):
|
|
588 |
data = response.json()
|
589 |
logger.debug(f"Pexels API μλ΅ λ°μ΄ν°: {data}")
|
590 |
|
591 |
-
|
592 |
-
|
593 |
-
|
594 |
-
|
595 |
-
|
596 |
-
if suitable_photos:
|
597 |
-
return suitable_photos[0]['src']['large2x']
|
598 |
else:
|
599 |
-
logger.warning(f"'{keywords}' κ΄λ ¨
|
600 |
return None
|
601 |
else:
|
602 |
logger.error(f"Pexels API μ€λ₯: {response.status_code}")
|
@@ -605,6 +603,37 @@ def get_image_url(topic):
|
|
605 |
logger.error(f"μ΄λ―Έμ§ κ²μ μ€ μ€λ₯ λ°μ: {str(e)}")
|
606 |
return None
|
607 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
608 |
def convert_markdown_images(content):
|
609 |
logger.debug("μλ³Έ λ΄μ©: %s", content)
|
610 |
|
|
|
20 |
import requests
|
21 |
from pexels_api import API
|
22 |
import logging
|
23 |
+
import random
|
24 |
|
25 |
# λ‘κΉ
μ€μ
|
26 |
logging.basicConfig(level=logging.INFO)
|
|
|
578 |
}
|
579 |
params = {
|
580 |
"query": keywords,
|
581 |
+
"per_page": 60, # κ²μ κ²°κ³Ό μ 60κ°λ‘ μ¦κ°
|
582 |
}
|
583 |
|
584 |
try:
|
|
|
589 |
data = response.json()
|
590 |
logger.debug(f"Pexels API μλ΅ λ°μ΄ν°: {data}")
|
591 |
|
592 |
+
if data['photos']:
|
593 |
+
# λλ€νκ² 1μ₯μ μ΄λ―Έμ§ μ ν
|
594 |
+
random_photo = random.choice(data['photos'])
|
595 |
+
return random_photo['src']['large2x']
|
|
|
|
|
|
|
596 |
else:
|
597 |
+
logger.warning(f"'{keywords}' κ΄λ ¨ μ΄λ―Έμ§λ₯Ό μ°Ύμ μ μμ΅λλ€.")
|
598 |
return None
|
599 |
else:
|
600 |
logger.error(f"Pexels API μ€λ₯: {response.status_code}")
|
|
|
603 |
logger.error(f"μ΄λ―Έμ§ κ²μ μ€ μ€λ₯ λ°μ: {str(e)}")
|
604 |
return None
|
605 |
|
606 |
+
def send_to_blogger(blog_title, blog_content):
|
607 |
+
if not WEBHOOK_URL:
|
608 |
+
logger.error("WEBHOOK_URLμ΄ μ€μ λμ§ μμμ΅λλ€.")
|
609 |
+
return "WEBHOOK_URLμ΄ μ€μ λμ§ μμ ν¬μ€ν
μ μ μ‘ν μ μμ΅λλ€."
|
610 |
+
|
611 |
+
converted_content = convert_markdown_images(blog_content)
|
612 |
+
logger.debug("λ³νλ λ΄μ©: %s", converted_content)
|
613 |
+
|
614 |
+
payload = {
|
615 |
+
"blogger_id": BLOGGER_ID,
|
616 |
+
"title": blog_title,
|
617 |
+
"content": converted_content
|
618 |
+
}
|
619 |
+
|
620 |
+
try:
|
621 |
+
logger.debug("λΈλ‘κ±°μ μ μ‘ν νμ΄λ‘λ: %s", payload)
|
622 |
+
|
623 |
+
response = requests.post(WEBHOOK_URL, json=payload)
|
624 |
+
logger.debug("λΈλ‘κ±° μλ΅: %s, %s", response.status_code, response.text)
|
625 |
+
|
626 |
+
if response.status_code == 200:
|
627 |
+
return "ν¬μ€ν
μ΄ μ±κ³΅μ μΌλ‘ μ μ‘λμμ΅λλ€."
|
628 |
+
else:
|
629 |
+
return f"ν¬μ€ν
μ μ‘ μ€ν¨. μν μ½λ: {response.status_code}, μλ΅: {response.text}"
|
630 |
+
except requests.exceptions.RequestException as e:
|
631 |
+
logger.error("λΈλ‘κ±°μ μ μ‘ μ€ μ€λ₯ λ°μ: %s", str(e))
|
632 |
+
return f"λ€νΈμν¬ μ€λ₯ λ°μ: {str(e)}"
|
633 |
+
except Exception as e:
|
634 |
+
logger.error("λΈλ‘κ±°μ μ μ‘ μ€ μμμΉ λͺ»ν μ€λ₯ λ°μ: %s", str(e))
|
635 |
+
return f"μ€λ₯ λ°μ: {str(e)}"
|
636 |
+
|
637 |
def convert_markdown_images(content):
|
638 |
logger.debug("μλ³Έ λ΄μ©: %s", content)
|
639 |
|