🚀 Add feature: Separate conversion functions

This commit is contained in:
François Pelletier 2025-05-14 02:04:13 -04:00
parent 0f1a07da49
commit afdfe1dbac
19 changed files with 318 additions and 17 deletions

View file

@ -1,4 +1,37 @@
from app.config import logger
from app.convert.convert_bluesky_car import convert_bluesky_car
from app.convert.convert_export_txt import convert_export_txt
from app.convert.convert_facebook_comments_json import (
convert_facebook_comments_json,
)
from app.convert.convert_facebook_posts_json import convert_facebook_posts_json
from app.convert.convert_instagram_comments_json import (
convert_instagram_comments_json,
)
from app.convert.convert_instagram_posts_json import (
convert_instagram_posts_json,
)
from app.convert.convert_instagram_reels_json import (
convert_instagram_reels_json,
)
from app.convert.convert_instagram_reels_video import (
convert_instagram_reels_video,
)
from app.convert.convert_instagram_stories_image import (
convert_instagram_stories_image,
)
from app.convert.convert_instagram_stories_json import (
convert_instagram_stories_json,
)
from app.convert.convert_linkedin_comments_csv import (
convert_linkedin_comments_csv,
)
from app.convert.convert_linkedin_shares_csv import convert_linkedin_shares_csv
from app.convert.convert_markdown_txt import convert_markdown_txt
from app.convert.convert_youtube_shorts_video import (
convert_youtube_shorts_video,
)
from app.convert.convert_youtube_video_video import convert_youtube_video_video
from app.models import ConversionRequest, ConversionResponse
from fastapi import APIRouter
@ -10,9 +43,44 @@ def convert_data(request: ConversionRequest):
"""
Convert data from a source to normalized JSON
"""
logger.info(f"Converting {request.source_type} data to normalized JSON")
# Example conversion logic (replace with actual implementation)
converted_data = ...
converted_data = None
logger.info(f"Converting {request.source_name} data to normalized JSON")
if request.source_name == "linkedin_shares":
converted_data = convert_linkedin_shares_csv(request.file)
elif request.source_name == "linkedin_comments":
converted_data = convert_linkedin_comments_csv(request.file)
elif request.source_name == "facebook_posts":
converted_data = convert_facebook_posts_json(request.file)
elif request.source_name == "facebook_comments":
converted_data = convert_facebook_comments_json(request.file)
elif request.source_name == "instagram_posts":
converted_data = convert_instagram_posts_json(request.file)
elif request.source_name == "instagram_comments":
converted_data = convert_instagram_comments_json(request.file)
elif request.source_name == "instagram_stories":
if request.source_format == "json":
converted_data = convert_instagram_stories_json(request.file)
elif request.source_format == "image":
converted_data = convert_instagram_stories_image(request.file)
elif request.source_name == "instagram_reels":
if request.source_format == "json":
converted_data = convert_instagram_reels_json(request.file)
elif request.source_format == "video":
converted_data = convert_instagram_reels_video(request.file)
elif request.source_name == "bluesky":
converted_data = convert_bluesky_car(request.file)
elif request.source_name == "youtube_video":
converted_data = convert_youtube_video_video(request.file)
elif request.source_name == "youtube_shorts":
converted_data = convert_youtube_shorts_video(request.file)
elif request.source_name == "markdown":
converted_data = convert_markdown_txt(request.file)
elif request.source_name == "export":
converted_data = convert_export_txt(request.file)
else:
value_error_message = f"Unsupported source name: {request.source_name}"
raise ValueError(value_error_message)
return {
"converted_data": converted_data,