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

45 lines
5.3 KiB
Plaintext
Raw Normal View History

2024-12-12 19:58:26 +01:00
<EFBFBD>
2024-12-21 02:16:29 +01:00
D<>\g <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
2024-12-12 19:58:26 +01:00
) <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>
2024-12-21 02:16:29 +01:00
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>]<5D>\}}}|D<00>]<5D>}|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>tjj||j<00>jtjd<05>d<0F><04><00><01><><00><01><>y)z<>
2024-12-12 19:58:26 +01:00
Recursively scan the input directory for Markdown files
and extract metadata to build the JSON structure.
z.mdr
2024-12-21 02:16:29 +01:00
<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> descriptionr0N)<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.sX<00><00>
2024-12-12 19:58:26 +01: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>
2024-12-21 02:16:29 +01:00
<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<>(*<2A><07><07><0F><0F><04>d<EFBFBD>n<EFBFBD>n<EFBFBD>(M<>(U<>(U<>VX<56>V\<5C>V\<5C>^a<>(b<> ;<1E><1F><1E>6rc<00><00>|j<00>d|jvrg|jd<i}|jdD]/}t|t<00>s<01>|j dd<03>}||vs<01>+|||<<00>1t |j <00>d<04><00><05>|jd<t|jdd<07><08>5}tj|j|d d
<EFBFBD> <0B>d d d <0C>td |j<00><00><02>y #1swY<00>"xYw)z<>
Generate the JSON structure, deduplicate and sort categories by 'path',
then save it to the output file.
r
r0<00>unknownc<00>&<00>|jdd<02>S)Nr0rE)r:)<01>xs r<00><lambda>z1MetadataProcessor.generate_json.<locals>.<lambda>`s<00><00>A<EFBFBD>E<EFBFBD>E<EFBFBD>6<EFBFBD>9<EFBFBD>6r)r(<00>wrr<00>F)<02>indent<6E> ensure_asciiNzGenerated JSON saved to ) rCr <00>
isinstance<EFBFBD>dictr:<00>sorted<65>valuesrr<00>json<6F>dump<6D>print)r <00>unique_categories<65>categoryr0<00> json_files r<00> generate_jsonzMetadataProcessor.generate_jsonJs<><00><00>
<0A><1F><1F>!<21> <18>t<EFBFBD>y<EFBFBD>y<EFBFBD> (<28>&(<28>D<EFBFBD>I<EFBFBD>I<EFBFBD>l<EFBFBD> #<23> <20><19><1C> <09> <09>,<2C>/<2F>H<EFBFBD><19>8<EFBFBD>T<EFBFBD>+<2B><1F>|<7C>|<7C>V<EFBFBD>Y<EFBFBD>8<><04><17>0<>0<>.6<EFBFBD>%<25>d<EFBFBD>+<2B> 0<>#)<29> <1D> $<24> $<24> &<26>6<>#
<EFBFBD><04> <09> <09>,<2C><1F> <12>4<EFBFBD>#<23>#<23>S<EFBFBD>W<EFBFBD> ><3E>)<29> <10>I<EFBFBD>I<EFBFBD>t<EFBFBD>y<EFBFBD>y<EFBFBD>)<29>a<EFBFBD><05> O<>?<3F> <0E>)<29>$<24>*:<3A>*:<3A>);<3B><<3C>><3E>?<3F> ><3E>s <00>2$C7<03>7DN)
2024-12-12 19:58:26 +01:00
<EFBFBD>__name__<5F>
2024-12-21 02:16:29 +01:00
__module__<EFBFBD> __qualname__<5F>__doc__<5F>strrrr*rCrW<00>rrrrs7<00><00><08>
2024-12-12 19:58:26 +01:00
8<>#<23>
8<>C<EFBFBD>
2024-12-21 02:16:29 +01:00
8<><18>3<EFBFBD><18>4<EFBFBD><18>*<1F>8?rr)r6rrQ<00>typingrrrr]rr<00><module>r_s<00><01> <09><0F> <0B><1D>`?<3F>`?r