A Puppeteer instance with an authenticated Chrome user's data to navigate the student's logged-in dashboard. It'll crawl mostly ULife pages and auto-generate Obsidian documents for each subject and its lessons. The subjects' documents are gonna include each subject's criteria and calendar, besides relevant notes. The lessons' documents will contain a brief summary.
For now, all it does is retrieve the content of an AMP summary that's present at the bottom of every lesson.
- Bun
- Puppeteer
- Chrome browser
Remember that you must have installed a Chrome browser before running this project.
Copy the .env.example
file and rename it to .env
, then specify you Chrome data directory and the destination for the .md
generated documents.
CHROME_EXECUTABLE_PATH=/usr/bin/google-chrome
CHROME_DATA_DIR=/home/YourUser/.config/google-chrome
OBSIDIAN_VAULT_DIR=/home/YourUser/Documents
To install dependencies:
bun install
To run:
bun run index.ts
- Open school homepage, wait for logged-in dashboard and then navigate to the virtual classroom environment.
- Set up entities to handle each navigation step and intercept its network requests
- Scrape summary at the bottom of every lesson and then write its content in a markdown file
- Scrape only text and images from each lesson and then add to the markdown file
- Remove irrelevant modules from lesson
- Add to lesson video embeds and their provided transcriptions
- Improve lesson formatting using with better detection for headings and lists
- Add subject index using its lessons' headings
- Add subject's calendar to index
- Add brief summary to index
- Recursively crawl over bibliographical references and other relevant external links
- Generate richer summary using AI
- Download static files