sssss
This commit is contained in:
parent
4583e08ca5
commit
48b28e8ff9
24
scraper.py
24
scraper.py
@ -3,7 +3,7 @@ from sqlalchemy.orm import Session
|
|||||||
from database import InstagramAccount, InstagramPost
|
from database import InstagramAccount, InstagramPost
|
||||||
from utils.instagram_client import get_logged_in_client
|
from utils.instagram_client import get_logged_in_client
|
||||||
from utils.s3_uploader import upload_media_from_url
|
from utils.s3_uploader import upload_media_from_url
|
||||||
from schemas import ScrapeRequest, ScrapedPost, MediaItem
|
from schemas import ScrapeRequest, ScrapedPost
|
||||||
from typing import List
|
from typing import List
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
|
||||||
@ -43,7 +43,7 @@ def scrape_and_store(db: Session, req: ScrapeRequest) -> List[ScrapedPost]:
|
|||||||
media_items = []
|
media_items = []
|
||||||
|
|
||||||
try:
|
try:
|
||||||
# Carousel
|
# Handle carousel
|
||||||
if post.media_type == 8 and hasattr(post, "resources"):
|
if post.media_type == 8 and hasattr(post, "resources"):
|
||||||
for res in post.resources:
|
for res in post.resources:
|
||||||
media_url = res.video_url if res.media_type == 2 else res.thumbnail_url
|
media_url = res.video_url if res.media_type == 2 else res.thumbnail_url
|
||||||
@ -52,11 +52,10 @@ def scrape_and_store(db: Session, req: ScrapeRequest) -> List[ScrapedPost]:
|
|||||||
try:
|
try:
|
||||||
local_url = upload_media_from_url(media_url, str(req.seller_id), f"{post_id}/")
|
local_url = upload_media_from_url(media_url, str(req.seller_id), f"{post_id}/")
|
||||||
if local_url:
|
if local_url:
|
||||||
media_items.append(MediaItem(
|
media_items.append({
|
||||||
media_type="video" if res.media_type == 2 else "image",
|
"media_type": "video" if res.media_type == 2 else "image",
|
||||||
media_url=media_url,
|
"url": local_url
|
||||||
local_media=local_url
|
})
|
||||||
))
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"⚠️ Error uploading media: {e}")
|
print(f"⚠️ Error uploading media: {e}")
|
||||||
continue
|
continue
|
||||||
@ -67,11 +66,10 @@ def scrape_and_store(db: Session, req: ScrapeRequest) -> List[ScrapedPost]:
|
|||||||
try:
|
try:
|
||||||
local_url = upload_media_from_url(media_url, str(req.seller_id), f"{post_id}/")
|
local_url = upload_media_from_url(media_url, str(req.seller_id), f"{post_id}/")
|
||||||
if local_url:
|
if local_url:
|
||||||
media_items.append(MediaItem(
|
media_items.append({
|
||||||
media_type="video" if post.media_type == 2 else "image",
|
"media_type": "video" if post.media_type == 2 else "image",
|
||||||
media_url=media_url,
|
"url": local_url
|
||||||
local_media=local_url
|
})
|
||||||
))
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"⚠️ Error uploading media: {e}")
|
print(f"⚠️ Error uploading media: {e}")
|
||||||
continue
|
continue
|
||||||
@ -103,7 +101,7 @@ def scrape_and_store(db: Session, req: ScrapeRequest) -> List[ScrapedPost]:
|
|||||||
media_type="carousel" if post.media_type == 8 else ("video" if post.media_type == 2 else "image"),
|
media_type="carousel" if post.media_type == 8 else ("video" if post.media_type == 2 else "image"),
|
||||||
caption=post.caption_text or "",
|
caption=post.caption_text or "",
|
||||||
thumbnail_url=final_thumbnail,
|
thumbnail_url=final_thumbnail,
|
||||||
local_media=[m.dict() for m in media_items],
|
local_media=media_items,
|
||||||
created_at=post.taken_at or datetime.utcnow(),
|
created_at=post.taken_at or datetime.utcnow(),
|
||||||
)
|
)
|
||||||
db.add(post_entry)
|
db.add(post_entry)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user