Files
LifeFaq/app/services/__pycache__/metadata_processor.cpython-312.pyc

42 lines
4.4 KiB
Plaintext
Raw Normal View History

2024-12-12 19:58:26 +01:00
<EFBFBD>
) Zg9 <00><00>@<00>ddlZddlZddlZddlmZmZGd<03>d<04>Zy)<05>N)<02>List<73>Dictc<00><<00>eZdZdZdedefd<04>Zdedefd<07>Zd<08>Zd <09>Z y
) <0B>MetadataProcessorzq
A class to scan Markdown files, extract front matter metadata,
and generate a structured JSON file.
<20> input_dir<69> output_filec<00>4<00>||_||_ggd<01>|_y)z<>
Initialize the MetadataProcessor.
Args:
input_dir (str): Directory containing Markdown files.
output_file (str): Path to save the generated JSON file.
)<02>
categories<EFBFBD> favoritesN)rr<00>data)<03>selfrrs <20>F/home/hjess/PycharmProjects/LifeFaq/app/services/metadata_processor.py<70>__init__zMetadataProcessor.__init__ s<00><00>#<23><04><0E>&<26><04><18>#%<25>B<EFBFBD>7<><04> <09><00> file_path<74>returnc <00>b<00>t|dd<02><03>5}|j<00>}tjgd<04><01><05>}|j |<03>|j
r=|j
j <00>D<00><05>cic]\}}|dj|<06><00><02>c}}ni}|cddd<07>Scc}}w#1swYyxYw)z<>
Extract front matter metadata using the 'markdown' package.
Args:
file_path (str): Path to the Markdown file.
Returns:
dict: A dictionary containing the extracted metadata.
<20>r<>utf-8<><01>encoding)<03>extra<72>nl2br<62>meta)<01>
extensions<EFBFBD> N)<08>open<65>read<61>markdown<77>Markdown<77>convert<72>Meta<74>items<6D>join)r r<00>file<6C>markdown_content<6E>md<6D>key<65>valuers r<00>_extract_metadataz#MetadataProcessor._extract_metadatas<><00><00><12>)<29>S<EFBFBD>7<EFBFBD> 3<>t<EFBFBD>#<23>y<EFBFBD>y<EFBFBD>{<7B> <1C><1A>"<22>"<22>.H<>I<>B<EFBFBD> <0E>J<EFBFBD>J<EFBFBD>'<27> (<28>PR<01>w<EFBFBD>w<EFBFBD>2<EFBFBD>7<EFBFBD>7<EFBFBD>=<3D>=<3D>?<3F>K<>?<3F>Z<EFBFBD>S<EFBFBD>%<25>C<EFBFBD><13><18><18>%<25><1F>(<28>?<3F>K<>\^<5E>D<EFBFBD><17>4<> 3<><33>L<01>4<> 3<>s<00>A#B%<03>2B<08>B%<03>B%<03>%B.c
<00><><00>tj|j<00>D<00>]Y\}}}|D<00>]L}|jd<01>s<01>tjj ||<04>}|j |<05>}|s<01>J|jdj|jdd<04>tjj||j<00>jtjd<05>|jdd<04>d<07><03>|jd<08>s<01><>|dj<00>d k(s<01><>|jd
j|jdd<04>|jd d <0C>|jd d<0E>d<0F><03><00><01>O<00><01>\y)z<>
Recursively scan the input directory for Markdown files
and extract metadata to build the JSON structure.
z.mdr
<00>name<6D>Unknown<77>/<2F>author)r,<00>pathr/<00>favorite<74>truer <00>imagezimages/default.jpg<70>summaryzNo description provided)r,r3<00> descriptionN)<0E>os<6F>walkr<00>endswithr0r$r*r <00>append<6E>get<65>relpath<74>replace<63>sep<65>lower)r <00>root<6F>_<>filesr%r<00>metadatas r<00>_process_directoryz$MetadataProcessor._process_directory.s-<00><00>
!<21>g<EFBFBD>g<EFBFBD>d<EFBFBD>n<EFBFBD>n<EFBFBD>5<>N<EFBFBD>D<EFBFBD>!<21>U<EFBFBD><1D><04><17>=<3D>=<3D><15>'<27> "<22><07><07> <0C> <0C>T<EFBFBD>4<EFBFBD> 8<>I<EFBFBD>#<23>5<>5<>i<EFBFBD>@<40>H<EFBFBD><1F><1C> <09> <09>,<2C>/<2F>6<>6<>$,<2C>L<EFBFBD>L<EFBFBD><16><19>$C<>$&<26>G<EFBFBD>G<EFBFBD>O<EFBFBD>O<EFBFBD>D<EFBFBD>$<24>.<2E>.<2E>$I<>$Q<>$Q<>RT<52>RX<52>RX<52>Z]<5D>$^<5E>&.<2E>l<EFBFBD>l<EFBFBD>8<EFBFBD>Y<EFBFBD>&G<>8<1A><1B>$<24><<3C><<3C>
<EFBFBD>3<><08><1A>8L<38>8R<38>8R<38>8T<38>X^<5E>8^<5E> <20>I<EFBFBD>I<EFBFBD>k<EFBFBD>2<>9<>9<>(0<> <0C> <0C>V<EFBFBD>Y<EFBFBD>(G<>)1<><1C><1C>g<EFBFBD>?S<>)T<>/7<>|<7C>|<7C>I<EFBFBD>G`<60>/a<>;<1E><1F><1E>6rc<00><><00>|j<00>t|jdd<02><03>5}tj|j
|dd<05><06>ddd<07>t d|j<00><00><02>y#1swY<00>"xYw) zM
Generate the JSON structure and save it to the output file.
<20>wrr<00>F)<02>indent<6E> ensure_asciiNzGenerated JSON saved to )rCrr<00>json<6F>dumpr <00>print)r <00> json_files r<00> generate_jsonzMetadataProcessor.generate_jsonIsc<00><00> <0A><1F><1F>!<21><12>$<24>"<22>"<22>C<EFBFBD>'<27> :<3A>i<EFBFBD> <10>I<EFBFBD>I<EFBFBD>d<EFBFBD>i<EFBFBD>i<EFBFBD><19>1<EFBFBD>5<EFBFBD> I<>;<3B> <0E>(<28><14>)9<>)9<>(:<3A>;<3B><<3C>;<3B> :<3A>s <00>$A.<03>.A7N)
<EFBFBD>__name__<5F>
__module__<EFBFBD> __qualname__<5F>__doc__<5F>strrrr*rCrM<00>rrrrs7<00><00><08>
8<>#<23>
8<>C<EFBFBD>
8<><18>3<EFBFBD><18>4<EFBFBD><18>*<1F>6
=rr)r6rrI<00>typingrrrrSrr<00><module>rUs<00><01> <09><0F> <0B><1D>L=<3D>L=r