## Primfeed Liker ### Architecture - `PrimfeedDoomscrollScript` in `src/main/java/de/tamse/primfeedliker/automation/PrimfeedDoomscrollScript.java` is the entrypoint. - Config loads from `src/main/resources/application.properties` (or `application.yml`) and system properties. - Selenium WebDriver handles the browser; a `DoomscrollState` tracks progress and stopping logic. - `LikedCache` persists liked post keys to disk and caps the cache size. ### Run - Ensure Java 17 and a matching WebDriver (ChromeDriver/GeckoDriver) are available. - Start with: `./mvnw spring-boot:run -Dspring-boot.run.main-class=de.tamse.primfeedliker.automation.PrimfeedDoomscrollScript` ### Configuration (Key Parameters) - Selectors (required): - `primfeed.feed-item-selector` - `primfeed.profile-name-selector` - `primfeed.like-button-selector` - `primfeed.target-profile` - Login persistence: - `primfeed.chrome-user-data-dir`, `primfeed.chrome-profile-dir` - `primfeed.firefox-profile-dir` - `primfeed.manual-login-seconds` - Doomscroll pacing: - `primfeed.like-delay-min-ms`, `primfeed.like-delay-max-ms` - `primfeed.scroll-min-px`, `primfeed.scroll-max-px` - `primfeed.long-pause-every`, `primfeed.long-pause-min-ms`, `primfeed.long-pause-max-ms` - `primfeed.max-scrolls`, `primfeed.max-items` - Stop/skip controls: - `primfeed.max-consecutive-liked` (0 disables the stop condition) - `primfeed.skip-profiles` (comma-separated, case-insensitive) - Cache controls: - `primfeed.cache-path` (default `${user.home}/.primfeed-liker/liked-posts.txt`) - `primfeed.cache-max-entries` (default 50k) - `primfeed.rescan-window-size`, `primfeed.max-linked-items` ### Notes - Clear the cache by deleting `~/.primfeed-liker/liked-posts.txt`. - If you switch accounts or undo likes, clear the cache to avoid stale skips.