Commit Graph
22 Commits
Author SHA1 Message Date
abhijitgorde5-crypto 27a98d9b93 Fix StaleElementReferenceException, add Ollama offline fallback, and PIL visual search generator 2026-08-29 23:41:57 +05:30
Carl Furtado aa0d07841b Merge pull request #37 from mardausdennis/fix/daily-set-hydration
wait for the daily set panel to fill, and give the breakdown time to render
2026-08-26 22:45:49 -04:00
mardausdennis efe4b07eb8 wait for the daily set panel to fill, and give the breakdown time to render
complete_bing_daily_set indexed [0] [1] [2] on whatever wait_for_element returned first. The panel hydrates progressively, so that can be a single activity, and the task died with IndexError before touching the other two. Wait for the full set, fall back to what is there, and re-read per index since a click can re-render the panel.

read_search_points ran into the default 10s timeout because it starts after the earlier tasks navigated away, so the earn page re-renders from scratch first. That skipped the whole search task while points were still available.
2026-08-27 00:38:58 +02:00
mardausdennis 43aadf7ded drive the misc cards scrolling with wheel input instead of fixed bursts
The card loop fired fixed 100px scroll events back to back with no pauses, which is the jumpy scrolling, and its while-not-in-viewport loop was unbounded, so a card that never fits the viewport completely would hang the run forever. The way back up unwound a counted number of steps, which lands wrong when the page height changes while cards update.

Scrolling is now wheel input with varying step sizes and short pauses, bounded, aimed at centering the target. The return reads the actual scroll position instead of counting.
2026-08-26 00:28:01 +02:00
Carl Furtado e2a06275f3 Merge pull request #4 from mardausdennis/fix/market-independent-selectors
fix selectors that only resolve in the en-US market
2026-08-25 16:50:13 -04:00
Carl Furtado 0ee5e1c9bb Merge pull request #20 from mardausdennis/fix/measure-search-quota
fill the search quota by measuring instead of assuming a rate
2026-08-25 16:40:42 -04:00
mardausdennis 77d9ec2a0f fill the search quota by measuring instead of assuming a rate
searches_needed was computed once as (max - earned) // 5 and never re-checked. Two assumptions fail in practice: some markets award 3 points per search rather than 5, and the daily maximum itself is not stable, observed as 15, 30 and 60 on one account within a day with the counter resetting. The run therefore stopped around 18/30 and still reported success.

Search in rounds instead: measure, run a batch sized on the lower known rate, measure again, stop when the quota is full or a round gains nothing, and warn instead of claiming success when it is not filled.

Also give the ollama client a timeout and bound the empty-response retry, since both were unbounded and an unattended run hung for 14 minutes with 2.3 CPU-seconds. The bare while-not-response loop spins forever on empty responses.
2026-08-25 22:28:14 +02:00
Carl Furtado 31d4031477 append -noai to search queries 2026-08-25 11:48:07 -04:00
mardausdennis 3dba5aa849 add a selector self check and stop reporting skipped tasks as done
check_selectors.py walks every selector and prints what resolved, what is absent and what broke, along with browser, driver, page language and the earn section ids. Absent is a normal result for a task a variant does not ship. It completes no activities and claims nothing, so it is safe to run for a bug report.

complete_explore_on_bing_tasks now raises when the section is missing instead of returning quietly, which made complete_all_tasks print [OK] for a task that never ran.

The visible labels the lookups match on are collected in one Labels class. The selectors are market independent but still language dependent, and this makes that explicit and fixable in one place.
2026-08-25 14:14:04 +02:00
mardausdennis bea185b94d fix selectors that only resolve in the en-US market
Absolute XPaths break outside en-US, where an extra exploreonbing section shifts every positional section index, so every task failed before it started.

Select by visible text, id suffix and visibility instead of position, take the visible copy of ids that are emitted twice for responsive layout, and raise NoSuchElementException for tasks a variant does not ship so the run skips them instead of aborting.
2026-08-24 23:03:09 +02:00
Carl Furtado a785b29494 add visual search custom image instructions 2026-08-24 09:19:51 -04:00
Carl Furtado 1b0e45d52c use searches_needed when displaying telemetry 2026-08-21 10:36:30 -04:00
Carl Furtado e336eea265 change search completion functionality back to using the number of required searches 2026-08-21 10:31:43 -04:00
Carl Furtado 320a6de8cd make sure claim_bonus_points waits for the sidebar to render 2026-08-21 10:27:53 -04:00
Carl Furtado f31d0cd711 fix race condition when grabbing mouse position 2026-08-21 10:09:48 -04:00
Carl Furtado 3835fad251 have misc card method clean up after itself 2026-08-20 11:19:35 -04:00
Carl Furtado a089b1f209 ensure tabs always feign focus 2026-08-20 10:35:35 -04:00
Carl Furtado f392d3e7a3 optimize search completion speed 2026-08-20 10:29:34 -04:00
Carl Furtado 2ffa64684c ensure order of initialization is correct in RewardsTaskUtils 2026-08-20 09:34:43 -04:00
Carl Furtado b007f4fe00 move rewards init logic to RewardsTaskUtils class 2026-08-20 09:33:13 -04:00
Carl Furtado 10bf499de1 add better handling for ghost tab 2026-08-20 09:28:54 -04:00
Carl Furtado dd50c850ac first commit 2026-08-19 14:03:22 -04:00