summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2026-05-30feat: use hamlet package to simplify command-line argumentsdemo
2026-05-30chore: install hamletdemo
This is a package I wrote to help me painlessly manage my command-line flags.
2026-05-28feat: specify whether URL sources are both missing or both presentdemo
2026-05-28feat: implement shortcode featuredemo
2026-05-28refactor: move initial URL parsing into function 'convertToURL'demo
2026-05-28chore: add urls.csv shortcodes filedemo
This file contains convenient shortcode mappings to eliminate the need to remember URLs I scrape frequently for testing purposes.
2026-05-28docs: add some commentsdemo
2026-05-28feat: add a user agent header!demo
2026-05-28feat: add "total entries" as part of XML commentdemo
This is useful mostly in the context of maxURLs=∞, but perhaps it could also help catch some error cases.
2026-05-28feat: prettify stats when figure was passed in as 0demo
The code understands 0 as "no limit", but I want to convey the no-limit concept to readers of the file who don't have a notion of how the program works. So I convert 0 to ∞ in the string output here.
2026-05-28feat: place comment before URL listingdemo
There could be a lot of URLs, so this should be more user-friendly.
2026-05-28feat: add comment logging maxDepth and maxURLs inside xml outputdemo
2026-05-28chore: ignore xml outputdemo
2026-05-28feat: save sitemap to a filedemo
2026-05-28feat: check for missing https://demo
This isn't as easy as modifying the parsed URL after the fact. This Stack Overflow post has some hints: https://stackoverflow.com/q/46719948/4570292
2026-05-28feat: add header to xml outputdemo
2026-05-28wip: generate rough draft of sitemapdemo
2026-05-28docs: expand findURLs godocdemo
2026-05-28docs: add comment explaining purpose of log.Lshortfiledemo
2026-05-28refactor: move html document creation to getBatchdemo
Also, if there are errors, I log them and simply return a nil slice.
2026-05-28chore: include shortfile printout in log invocationsdemo
2026-05-27fix: make select statement block unless communication takes placedemo
2026-05-27feat: configure maxDepth from the command linedemo
Similar to maxURLs, a maxDepth of zero means no limit.
2026-05-27wip: prototype a max-depth limitationdemo
It's just bolted on with a constant right now though.
2026-05-27feat: update the classic crawler to track depth via packetsdemo
2026-05-27refactor: move packet definitions to their own filedemo
I also decided to make the packet datatype package private.
2026-05-27refactor: move "packet conversion" into a separate functiondemo
2026-05-26docs: add extensive commentsdemo
2026-05-26feat: measure the depth where each URL is founddemo
2026-05-26feat: add some prints to prove we need to select on Done()demo
2026-05-26refactor: eliminate redundant select statementdemo
2026-05-26fix: make sure all workers terminate by the enddemo
2026-05-26feat: add early termination condition based on maxURLsdemo
2026-05-26feat: add break condition from worklist loopdemo
2026-05-26feat: add the worker-pool-based crawer from TGPLdemo
2026-05-26docs: add an "Awesome Go" section to the READMEdemo
2026-05-26docs: save websites I usually use with this crawlerdemo
This might expand into a whole journal on what sites I've tried the crawler with, and what the results were.
2026-05-26fix: release semaphore at the proper timedemo
2026-05-26feat: implement maxConcurrency using a buffered channel 'sema'demo
2026-05-26feat: add cancellation featuredemo
2026-05-26feat: hit 'em with the classic web crawlerdemo
2026-05-26refactor: make deduplication part of main goroutinedemo
2026-05-26feat: restore original "print 45 and hang" behaviordemo
2026-05-26feat: change all channel payloads to pointer typesdemo
2026-05-26feat: reveal bug in the channel linkage topologydemo
2026-05-26feat: add some code to canceldemo
However, currently this never gets reached.
2026-05-26refactor: use SplitSeq instead of Splitdemo
2026-05-26feat: add gouroutine-leak profilingdemo
2026-05-26feat: design worker-pool webcrawlerdemo
2026-05-26docs: remove commentdemo