Skip to content

Commit

Permalink
fix: define main function in __main__.py to match the script
Browse files Browse the repository at this point in the history
  • Loading branch information
eoleedi committed Apr 9, 2024
1 parent 05e9d58 commit 70817ec
Showing 1 changed file with 52 additions and 46 deletions.
98 changes: 52 additions & 46 deletions timetree_exporter/__main__.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,51 +9,57 @@
from timetree_exporter import TimeTreeEvent, ICalEventFormatter
from timetree_exporter.utils import get_events_from_file, paths_to_filelist

# Parse arguments
parser = argparse.ArgumentParser(
description="Convert Timetree events to iCal format",
prog="timetree_exporter",
)
parser.add_argument(
"input",
type=str,
help="Path to the Timetree response file(s)/folder",
nargs="+",
)
parser.add_argument(
"-o",
"--output",
type=str,
help="Path to the output iCal file",
default="timetree.ics",
)
args = parser.parse_args()


cal = Calendar()
filenames = paths_to_filelist(args.input)

for filename in filenames:
# Skip non-JSON files
if not filename.endswith(".json"):
print(f"Skipping {filename} (Invalid file type, should be .json)")
continue
print(f"Parsing {filename}")

# Get events from file
events = get_events_from_file(filename)
if events is None:
continue

# Add events to calendar
for event in events:
time_tree_event = TimeTreeEvent.from_dict(event)
formatter = ICalEventFormatter(time_tree_event)
iCalEvent = formatter.to_ical()
if iCalEvent is None:

def main():
"""Main function for the Timetree Exporter."""
# Parse arguments
parser = argparse.ArgumentParser(
description="Convert Timetree events to iCal format",
prog="timetree_exporter",
)
parser.add_argument(
"input",
type=str,
help="Path to the Timetree response file(s)/folder",
nargs="+",
)
parser.add_argument(
"-o",
"--output",
type=str,
help="Path to the output iCal file",
default="timetree.ics",
)
args = parser.parse_args()

cal = Calendar()
filenames = paths_to_filelist(args.input)

for filename in filenames:
# Skip non-JSON files
if not filename.endswith(".json"):
print(f"Skipping {filename} (Invalid file type, should be .json)")
continue
print(f"Parsing {filename}")

# Get events from file
events = get_events_from_file(filename)
if events is None:
continue
cal.add_component(iCalEvent)

# Write calendar to file
with open(args.output, "wb") as f: # Path Traversal Vulnerability if on a server
f.write(cal.to_ical())
# Add events to calendar
for event in events:
time_tree_event = TimeTreeEvent.from_dict(event)
formatter = ICalEventFormatter(time_tree_event)
iCalEvent = formatter.to_ical()
if iCalEvent is None:
continue
cal.add_component(iCalEvent)

# Write calendar to file
with open(args.output, "wb") as f: # Path Traversal Vulnerability if on a server
f.write(cal.to_ical())


if __name__ == "__main__":
main()

0 comments on commit 70817ec

Please sign in to comment.