Logic to convert index into useable post
This commit is contained in:
parent
79ecd8db81
commit
f8f269b0b4
@ -20,7 +20,7 @@ def get_initial_posts():
|
|||||||
# Use archive parser to fetch posts
|
# Use archive parser to fetch posts
|
||||||
posts = archive_parser.get_posts(count=10, start_index=0)
|
posts = archive_parser.get_posts(count=10, start_index=0)
|
||||||
return jsonify(posts)
|
return jsonify(posts)
|
||||||
except Exception as e:
|
except Exception:
|
||||||
return jsonify({"error": "Failed to fetch posts"}), 500
|
return jsonify({"error": "Failed to fetch posts"}), 500
|
||||||
|
|
||||||
|
|
||||||
@ -35,7 +35,7 @@ def get_more_posts():
|
|||||||
posts = archive_parser.get_posts(count=10, start_index=count)
|
posts = archive_parser.get_posts(count=10, start_index=count)
|
||||||
|
|
||||||
return jsonify(posts)
|
return jsonify(posts)
|
||||||
except Exception as e:
|
except Exception:
|
||||||
return jsonify({"error": "Failed to fetch more posts"}), 500
|
return jsonify({"error": "Failed to fetch more posts"}), 500
|
||||||
|
|
||||||
|
|
||||||
@ -46,7 +46,7 @@ def get_total_posts():
|
|||||||
# Get total from archive parser
|
# Get total from archive parser
|
||||||
total = archive_parser.get_total_posts()
|
total = archive_parser.get_total_posts()
|
||||||
return jsonify({"total": total})
|
return jsonify({"total": total})
|
||||||
except Exception:
|
except Exception as e:
|
||||||
return jsonify({"error": "Failed to fetch total count"}), 500
|
return jsonify({"error": "Failed to fetch total count"}), 500
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -2,6 +2,7 @@ import os
|
|||||||
import subprocess
|
import subprocess
|
||||||
import json
|
import json
|
||||||
from typing import List, Dict, Any
|
from typing import List, Dict, Any
|
||||||
|
import uuid
|
||||||
|
|
||||||
|
|
||||||
class ArchiveParser:
|
class ArchiveParser:
|
||||||
@ -44,7 +45,9 @@ class ArchiveParser:
|
|||||||
dir_path = os.path.join(self.archive_dir, directory)
|
dir_path = os.path.join(self.archive_dir, directory)
|
||||||
posts.extend(self._extract_posts_from_directory(dir_path))
|
posts.extend(self._extract_posts_from_directory(dir_path))
|
||||||
|
|
||||||
return posts
|
# Convert extracted posts to final format with proper IDs
|
||||||
|
formatted_posts = [self._create_post(post) for post in posts]
|
||||||
|
return formatted_posts
|
||||||
|
|
||||||
except subprocess.CalledProcessError as e:
|
except subprocess.CalledProcessError as e:
|
||||||
print(f"Error executing command: {e}")
|
print(f"Error executing command: {e}")
|
||||||
@ -110,3 +113,25 @@ class ArchiveParser:
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"Error getting total posts: {e}")
|
print(f"Error getting total posts: {e}")
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
|
def _create_post(self, index) -> Dict[str, Any]:
|
||||||
|
"""Convert an index entry to a properly formatted post with ID and default image."""
|
||||||
|
try:
|
||||||
|
post = dict()
|
||||||
|
|
||||||
|
# Ensure we have all required fields with defaults
|
||||||
|
post["id"] = str(uuid.uuid4()) # Generate a unique ID for each post
|
||||||
|
post["title"] = index.get("title", "Untitled Post")
|
||||||
|
post["url"] = index.get("url", "#")
|
||||||
|
|
||||||
|
# Set default image to reddit_logo.webp if no image is provided
|
||||||
|
post["image"] = (
|
||||||
|
"/Reddit_Logo.webp" # Default to the logo in website directory
|
||||||
|
)
|
||||||
|
|
||||||
|
return post
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
print(f"Error converting index to post: {e}")
|
||||||
|
# Return a minimal post if there's an error
|
||||||
|
raise e
|
||||||
|
|||||||
0
src/server/parse_archive_fixed.py
Normal file
0
src/server/parse_archive_fixed.py
Normal file
BIN
src/website/Reddit_Logo.webp
Normal file
BIN
src/website/Reddit_Logo.webp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 42 KiB |
Loading…
x
Reference in New Issue
Block a user