|
15 | 15 | from server.middleware.profile_middleware import ensure_user_profile_loaded |
16 | 16 | from server.middleware.request_deduplication_middleware import deduplicate_request |
17 | 17 | from server.middleware.response_handler import handle_automator_response |
18 | | -from server.utils.ocr_utils import ( |
19 | | - KindleOCR, |
20 | | - cycle_page_indicator_if_needed, |
21 | | - is_base64_requested, |
22 | | - is_ocr_requested, |
23 | | - parse_page_indicators, |
24 | | - process_screenshot_with_regions, |
25 | | -) |
| 18 | +from server.utils.ocr_utils import is_base64_requested, is_ocr_requested |
26 | 19 | from server.utils.request_utils import get_sindarin_email |
27 | 20 | from views.core.app_state import AppState |
28 | 21 |
|
@@ -235,28 +228,29 @@ def capture_book_state(already_open=False): |
235 | 228 | screenshot_path = os.path.join(automator.screenshots_dir, f"{screenshot_id}.png") |
236 | 229 | automator.driver.save_screenshot(screenshot_path) |
237 | 230 |
|
238 | | - # Get OCR text and page indicators |
239 | | - with open(screenshot_path, "rb") as img_file: |
240 | | - image_data = img_file.read() |
| 231 | + # Import process_screenshot_response |
| 232 | + from server.utils.ocr_utils import process_screenshot_response |
241 | 233 |
|
242 | | - # Process screenshot with regions to extract both main text and page indicators |
243 | | - ocr_results = process_screenshot_with_regions(image_data) |
| 234 | + # Use process_screenshot_response to get both OCR text and page indicators |
| 235 | + ocr_data = process_screenshot_response( |
| 236 | + screenshot_id, screenshot_path, use_base64=False, perform_ocr=True |
| 237 | + ) |
244 | 238 |
|
245 | | - # Add main text if available |
246 | | - if ocr_results.get("main_text"): |
247 | | - response_data["ocr_text"] = ocr_results["main_text"] |
| 239 | + # Add OCR text if extracted |
| 240 | + if "ocr_text" in ocr_data: |
| 241 | + response_data["ocr_text"] = ocr_data["ocr_text"] |
248 | 242 |
|
249 | | - # Add page indicators if extracted |
250 | | - page_indicator_text = ocr_results.get("page_indicator_text") |
251 | | - percentage_text = ocr_results.get("percentage_text") |
| 243 | + # Update progress if page indicators were extracted |
| 244 | + if "progress" in ocr_data and ocr_data["progress"]: |
| 245 | + # Merge the OCR-extracted progress with existing progress |
| 246 | + if response_data.get("progress"): |
| 247 | + response_data["progress"].update(ocr_data["progress"]) |
| 248 | + else: |
| 249 | + response_data["progress"] = ocr_data["progress"] |
252 | 250 |
|
253 | | - if page_indicator_text or percentage_text: |
254 | | - # Use the cycle function which will tap if needed for time-based indicators |
255 | | - page_indicators = cycle_page_indicator_if_needed( |
256 | | - automator.driver, page_indicator_text, percentage_text |
257 | | - ) |
258 | | - if page_indicators: |
259 | | - response_data["progress"].update(page_indicators) |
| 251 | + # Add any OCR error if present |
| 252 | + if "ocr_error" in ocr_data: |
| 253 | + response_data["ocr_error"] = ocr_data["ocr_error"] |
260 | 254 |
|
261 | 255 | # Delete the temporary screenshot |
262 | 256 | try: |
|
0 commit comments