From b11f5850fcb2224cb61b81d6739d1c9ce9efc7cf Mon Sep 17 00:00:00 2001 From: thomasabishop Date: Thu, 31 Oct 2024 15:38:14 +0000 Subject: [PATCH] feat: create File and MarkdownParser services --- src/services/file_service.py | 17 +++++++++++++++++ src/services/markdown_parse_service.py | 16 ++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 src/services/file_service.py create mode 100644 src/services/markdown_parse_service.py diff --git a/src/services/file_service.py b/src/services/file_service.py new file mode 100644 index 0000000..37306b9 --- /dev/null +++ b/src/services/file_service.py @@ -0,0 +1,17 @@ +import os + + +class FileService: + def __init__(self, eolas_file): + self.eolas_file = eolas_file + self.info = os.stat(eolas_file) + + def __extract_title(self): + return os.path.basename(self.eolas_file) + + def get_info(self): + return { + "title": self.__extract_title(), + "last_modified": self.info.st_mtime, + "size": self.info.st_size, + } diff --git a/src/services/markdown_parse_service.py b/src/services/markdown_parse_service.py new file mode 100644 index 0000000..48aad11 --- /dev/null +++ b/src/services/markdown_parse_service.py @@ -0,0 +1,16 @@ +import frontmatter + + +class MarkdownParseService: + """Extract tags, links and body text from Markdown entries""" + + def __init__(self, eolas_file): + self.eolas_file = eolas_file + + def parse(self): + with open(self.eolas_file) as f: + metadata, content = frontmatter.parse(f.read()) + return { + "tags": metadata.get("tags", []), + "body": content or "", + }