Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2018-06-21 | Fix a few issues pointed out by pylint | Lars-Dominik Braun | 5 | -22/+10 | |
2018-06-21 | browser: Add a few more tests | Lars-Dominik Braun | 1 | -3/+31 | |
Increase coverage. | |||||
2018-06-20 | Move tests to pytest | Lars-Dominik Braun | 2 | -162/+177 | |
It just seems a little nicer than plain old unittest | |||||
2018-06-20 | Add __slots__ to classes | Lars-Dominik Braun | 5 | -1/+56 | |
This is mainly a quality of life change | |||||
2018-06-20 | Synchronous SiteLoader event handling | Lars-Dominik Braun | 6 | -509/+514 | |
Previously a browser crash stalled the entire grab, since events from pychrome were handled asynchronously in a different thread and exceptions were not propagated to the main thread. Now all browser events are stored in a queue and processed by the main thread, allowing us to handle browser crashes gracefully (more or less). This made the following additional changes necessary: - Clear separation between producer (browser) and consumer (WARC, stats, …) - Behavior scripts now yield events as well, instead of accessing the WARC writer - WARC logging was removed (for now) and WARC writer does not require serialization any more | |||||
2018-06-08 | browser: Replace --remote-debugging-socket-fd | Lars-Dominik Braun | 1 | -23/+19 | |
It was replaced by --remote-debugging-pipe in version 67. pychrome does not support that out of the box, so instead we’ll let Chrome choose its own port and poll a file in its user-data-dir. | |||||
2018-06-03 | behavior: Wrap extract links script in anonymous namespace | Lars-Dominik Braun | 2 | -2/+5 | |
Otherwise it may clash with symbols defined by the page. | |||||
2018-05-20 | behavior: Patreon: Load more comments/replies | Lars-Dominik Braun | 1 | -0/+4 | |
2018-05-20 | behavior: Click Patreon’s “load more” button | Lars-Dominik Braun | 1 | -0/+6 | |
2018-05-05 | Rename command line tools | Lars-Dominik Braun | 1 | -0/+97 | |
Move contrib/ scripts to .tools and add entry points to setup.py, rename crocoite-standalone to crocoite-grab. | |||||
2018-05-05 | Extract only visible and clickable links | Lars-Dominik Braun | 2 | -4/+29 | |
2018-05-04 | Share recursive argument parser | Lars-Dominik Braun | 2 | -14/+15 | |
2018-05-04 | Support --browser again for local crawls | Lars-Dominik Braun | 2 | -2/+6 | |
Broken by commit 75019eac4545bb2e8b90033834e91beef614cdf3 | |||||
2018-05-04 | Add distributed recursive crawls | Lars-Dominik Braun | 3 | -31/+91 | |
2018-05-04 | Add support for recursive crawls | Lars-Dominik Braun | 2 | -2/+115 | |
Only local right now, not distributed. | |||||
2018-05-04 | browser: Replace context manager decorator | Lars-Dominik Braun | 1 | -51/+66 | |
Use an actual class that supports multiple invokations. | |||||
2018-05-04 | behavior: Add link extraction script | Lars-Dominik Braun | 4 | -5/+43 | |
2018-05-04 | Move page archiving logic to SinglePageController | Lars-Dominik Braun | 5 | -144/+198 | |
In preparation for recursive crawls. | |||||
2018-05-04 | Move header unfolding into Item | Lars-Dominik Braun | 2 | -21/+24 | |
2018-05-04 | Fetch request POST body | Lars-Dominik Braun | 2 | -8/+20 | |
If there is any and it was not included in the response already. | |||||
2018-05-04 | Test chained redirects | Lars-Dominik Braun | 1 | -12/+32 | |
2018-04-20 | Save screenshot of entire page | Lars-Dominik Braun | 1 | -6/+16 | |
…and not just the current viewport. Due to limitations within Chrome it may be necessary to manually stitch multiple images if the page height exceeds 16k pixels. | |||||
2018-04-14 | Fix base64 body detection | Lars-Dominik Braun | 2 | -10/+10 | |
Broken by commit a21d7332e33a3e47a363004196451721d449e70b | |||||
2018-04-14 | Add timeout to request body fetch | Lars-Dominik Braun | 1 | -3/+4 | |
When something goes wrong, these block the entire grab. | |||||
2018-04-14 | Handle JavaScript dialogs | Lars-Dominik Braun | 1 | -2/+37 | |
alert, confirm and prompt and beforeunload | |||||
2018-04-04 | behavior: Add selector for YouTube. | Lars-Dominik Braun | 1 | -0/+6 | |
2018-03-30 | Add click selectors for Instagram | Lars-Dominik Braun | 1 | -0/+8 | |
Load more comments/images for posts. | |||||
2018-03-25 | Add a few simple tests | Lars-Dominik Braun | 1 | -0/+190 | |
To be expanded, but it’s a start… | |||||
2018-03-25 | Replace deprecated logger.warn | Lars-Dominik Braun | 1 | -3/+3 | |
2018-03-25 | ChromeService: Close listening socket | Lars-Dominik Braun | 1 | -0/+1 | |
We passed it to the child and don’t need it any more. | |||||
2018-03-25 | Move getResponseBody call to Item wrapper | Lars-Dominik Braun | 2 | -13/+21 | |
2018-03-18 | browser: Don’t overwrite LogEntry’s args | Lars-Dominik Braun | 1 | -1/+1 | |
2018-03-18 | behavior: Add click selectors for reddit | Lars-Dominik Braun | 1 | -7/+27 | |
This is slightly obnoxious, since their JavaScript rate-limits clicks to ≤3 Hz and simply ignores everything beyond that. | |||||
2018-03-05 | Add generic click behavior script | Lars-Dominik Braun | 3 | -37/+119 | |
Configureable. Clicks elements matching one (or more) CSS selectors once or multiple times. Currently supported: Facebook, Twitter, Disqus (embedded iframe) | |||||
2018-03-04 | Remove instagram behavior script | Lars-Dominik Braun | 2 | -27/+1 | |
The “load more” button does not exist any more. | |||||
2018-01-20 | behavior: Scroll all DOM elements | Lars-Dominik Braun | 1 | -0/+6 | |
One example is Twitter, which uses a popover div for individual tweets. Scrolling the page won’t scroll that div’s content, which is required to load more replies. | |||||
2018-01-20 | twitter: Expand “more replies” links | Lars-Dominik Braun | 1 | -8/+21 | |
Click them periodically. | |||||
2017-12-27 | Log messages from browser console | Lars-Dominik Braun | 1 | -0/+12 | |
2017-12-25 | Increase default body size | Lars-Dominik Braun | 3 | -5/+34 | |
2017-12-24 | Refactor behavior scripts | Lars-Dominik Braun | 6 | -172/+288 | |
No functional changes, just cleanup. Replaces onload and onsnapshot events. Move screen metric emulation, DOM snapshots and screenshots here as well. | |||||
2017-12-23 | Set fake finished response for redirects | Lars-Dominik Braun | 1 | -1/+4 | |
Fixes bcfbdd9b45b7e872ee77e1366197443d855d8c7c | |||||
2017-12-23 | Drain tab event queue before stopping | Lars-Dominik Braun | 1 | -0/+2 | |
2017-12-22 | Add simple stats-keeping SiteLoader | Lars-Dominik Braun | 3 | -9/+46 | |
2017-12-22 | SiteLoader: Save entire finished response | Lars-Dominik Braun | 1 | -2/+9 | |
2017-12-22 | Don’t write WARC record if body cannot be retrieved | Lars-Dominik Braun | 1 | -19/+48 | |
+refactoring. | |||||
2017-12-20 | Increase hardcoded max timeouts | Lars-Dominik Braun | 1 | -2/+2 | |
We need a better solution for this. Sites loading a lot of responsive images easily need a minute after resizing. | |||||
2017-12-20 | Fix HTTP headers using the same key more than once | Lars-Dominik Braun | 1 | -2/+15 | |
This is an undocumented DevTools feature. | |||||
2017-12-19 | Serialize WARC writing | Lars-Dominik Braun | 2 | -3/+38 | |
Logger and SiteWriter both access .write_record() concurrently, which can corrupt WARC files. Move the writer to its own thread and decouple it with a queue. Since we’re probably I/O-bound this may speed up writeback as well. | |||||
2017-12-19 | Select default behavior scripts by site URL | Lars-Dominik Braun | 4 | -1/+51 | |
2017-12-17 | Add Twitter fixups | Lars-Dominik Braun | 1 | -0/+17 | |