From 48b28e8ff9b75750278e360dd77c147c1450f9c9 Mon Sep 17 00:00:00 2001 From: Hossein Date: Thu, 7 Aug 2025 02:57:10 +0330 Subject: [PATCH] sssss --- scraper.py | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/scraper.py b/scraper.py index 300c174..be1cc45 100644 --- a/scraper.py +++ b/scraper.py @@ -3,7 +3,7 @@ from sqlalchemy.orm import Session from database import InstagramAccount, InstagramPost from utils.instagram_client import get_logged_in_client 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 datetime import datetime @@ -43,7 +43,7 @@ def scrape_and_store(db: Session, req: ScrapeRequest) -> List[ScrapedPost]: media_items = [] try: - # Carousel + # Handle carousel if post.media_type == 8 and hasattr(post, "resources"): for res in post.resources: 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: local_url = upload_media_from_url(media_url, str(req.seller_id), f"{post_id}/") if local_url: - media_items.append(MediaItem( - media_type="video" if res.media_type == 2 else "image", - media_url=media_url, - local_media=local_url - )) + media_items.append({ + "media_type": "video" if res.media_type == 2 else "image", + "url": local_url + }) except Exception as e: print(f"⚠️ Error uploading media: {e}") continue @@ -67,11 +66,10 @@ def scrape_and_store(db: Session, req: ScrapeRequest) -> List[ScrapedPost]: try: local_url = upload_media_from_url(media_url, str(req.seller_id), f"{post_id}/") if local_url: - media_items.append(MediaItem( - media_type="video" if post.media_type == 2 else "image", - media_url=media_url, - local_media=local_url - )) + media_items.append({ + "media_type": "video" if post.media_type == 2 else "image", + "url": local_url + }) except Exception as e: print(f"⚠️ Error uploading media: {e}") 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"), caption=post.caption_text or "", 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(), ) db.add(post_entry)