arg --interactive

This commit is contained in:
gauthiier
2026-06-09 15:29:47 +02:00
parent aa867adc18
commit 870dd695b0
2 changed files with 24 additions and 9 deletions
+8 -1
View File
@@ -1,4 +1,4 @@
import pathlib, re, frontmatter, markdown, citeproc, json import argparse, pathlib, re, frontmatter, markdown, citeproc, json
from pyzotero import zotero from pyzotero import zotero
from html.parser import HTMLParser from html.parser import HTMLParser
import utils import utils
@@ -66,6 +66,10 @@ def format_filename_title(data_csl:dict, bib_entry:str):
if __name__ == "__main__": if __name__ == "__main__":
p = argparse.ArgumentParser(description="Fetch zotero bibliography")
p.add_argument("--interactive", default=False, action=argparse.BooleanOptionalAction, help="make interactive")
args = p.parse_args()
conf = utils.load_conf() conf = utils.load_conf()
z = zotero.Zotero(conf['zotero_group_id'], conf['zotero_lib_type'], conf['zotero_api_key']) z = zotero.Zotero(conf['zotero_group_id'], conf['zotero_lib_type'], conf['zotero_api_key'])
@@ -125,8 +129,11 @@ if __name__ == "__main__":
## selective update ## selective update
new = format_reading(title=title, desc=bib_entry) new = format_reading(title=title, desc=bib_entry)
if(args.interactive):
updated = update_reading(prev, new) updated = update_reading(prev, new)
utils.save_file(filepath, frontmatter.dumps(updated), overwrite=True) utils.save_file(filepath, frontmatter.dumps(updated), overwrite=True)
else:
utils.save_file(filepath, frontmatter.dumps(new), overwrite=True)
print(f"reading {e} updated") print(f"reading {e} updated")
+12 -4
View File
@@ -1,4 +1,4 @@
import pathlib, ics, requests, arrow, frontmatter import argparse, pathlib, ics, requests, arrow, frontmatter
import utils import utils
DFMT = "YYYY-MM-DD" DFMT = "YYYY-MM-DD"
@@ -22,8 +22,8 @@ def format_event(title:str, date:str, location:str, desc:str):
def compare_events(path:pathlib.PosixPath, title:str, date:str, location:str, desc:str): def compare_events(path:pathlib.PosixPath, title:str, date:str, location:str, desc:str):
p = frontmatter.load(path) p = frontmatter.load(path)
pd = p.to_dict() pd = p.to_dict()
pd['content'] = pd['content'].strip() pd['content'] = pd['content'].strip() if pd['content'] else ''
return p, (pd == {'title': title, 'date': date, 'location': location, 'type': 'event', 'content': desc.strip()}) return p, (pd == {'title': title, 'date': date, 'location': location, 'type': 'event', 'content': desc.strip() if desc else ''})
def update_event(previous:frontmatter.Post, new:frontmatter.Post): def update_event(previous:frontmatter.Post, new:frontmatter.Post):
keys = set(previous.keys()).union(set(new.keys())) keys = set(previous.keys()).union(set(new.keys()))
@@ -50,6 +50,10 @@ def read_date(p:frontmatter.Post):
if __name__ == "__main__": if __name__ == "__main__":
p = argparse.ArgumentParser(description="Fetch ICS calendar")
p.add_argument("--interactive", default=False, action=argparse.BooleanOptionalAction, help="make interactive")
args = p.parse_args()
conf = utils.load_conf() conf = utils.load_conf()
req = requests.get(conf['ics_url']).text req = requests.get(conf['ics_url']).text
@@ -61,7 +65,8 @@ if __name__ == "__main__":
name = e.name.replace(' ', '-') name = e.name.replace(' ', '-')
fm_date = e.begin.format(DFMT) fm_date = e.begin.format(DFMT)
fm_date_interval = f"{e.begin.format(DHFMT)}-{e.end.format(HFMT)}" fm_date_interval = f"{e.begin.format(DHFMT)}-{e.end.format(HFMT)}"
filename = f'{fm_date}-{name}.md' # filename = f'{fm_date}-{name}.md'
filename = e.uid + '.md'
filepath = pathlib.Path(conf['content']) / 'events' / filename filepath = pathlib.Path(conf['content']) / 'events' / filename
if not filepath.exists(): if not filepath.exists():
@@ -80,8 +85,11 @@ if __name__ == "__main__":
## selective update ## selective update
new = format_event(title=e.name, date=fm_date_interval, location=e.location, desc=e.description) new = format_event(title=e.name, date=fm_date_interval, location=e.location, desc=e.description)
if(args.interactive):
updated = update_event(prev, new) updated = update_event(prev, new)
utils.save_file(filepath, frontmatter.dumps(updated), overwrite=True) utils.save_file(filepath, frontmatter.dumps(updated), overwrite=True)
else:
utils.save_file(filepath, frontmatter.dumps(new), overwrite=True)
print(f"event {e.name} updated") print(f"event {e.name} updated")