medicafe 0.251017.0__tar.gz → 0.251017.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of medicafe might be problematic. Click here for more details.
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediBot/__init__.py +1 -1
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediCafe/__init__.py +1 -1
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/MediLink_Gmail.py +15 -6
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/__init__.py +1 -1
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/gmail_http_utils.py +2 -3
- {medicafe-0.251017.0/medicafe.egg-info → medicafe-0.251017.1}/PKG-INFO +1 -1
- {medicafe-0.251017.0 → medicafe-0.251017.1/medicafe.egg-info}/PKG-INFO +1 -1
- {medicafe-0.251017.0 → medicafe-0.251017.1}/setup.py +1 -1
- {medicafe-0.251017.0 → medicafe-0.251017.1}/LICENSE +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MANIFEST.in +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediBot/MediBot.bat +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediBot/MediBot.py +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediBot/MediBot_Charges.py +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediBot/MediBot_Crosswalk_Library.py +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediBot/MediBot_Crosswalk_Utils.py +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediBot/MediBot_Notepad_Utils.py +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediBot/MediBot_Post.py +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediBot/MediBot_Preprocessor.py +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediBot/MediBot_Preprocessor_lib.py +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediBot/MediBot_UI.py +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediBot/MediBot_dataformat_library.py +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediBot/MediBot_debug.bat +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediBot/MediBot_docx_decoder.py +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediBot/MediBot_smart_import.py +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediBot/clear_cache.bat +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediBot/crash_diagnostic.bat +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediBot/f_drive_diagnostic.bat +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediBot/full_debug_suite.bat +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediBot/get_medicafe_version.py +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediBot/process_csvs.bat +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediBot/update_json.py +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediBot/update_medicafe.py +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediCafe/MediLink_ConfigLoader.py +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediCafe/__main__.py +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediCafe/api_core.py +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediCafe/api_factory.py +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediCafe/api_utils.py +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediCafe/core_utils.py +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediCafe/deductible_utils.py +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediCafe/error_reporter.py +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediCafe/graphql_utils.py +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediCafe/logging_config.py +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediCafe/logging_demo.py +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediCafe/migration_helpers.py +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediCafe/smart_import.py +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediCafe/submission_index.py +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/InsuranceTypeService.py +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/MediLink_837p_cob_library.py +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/MediLink_837p_encoder.py +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/MediLink_837p_encoder_library.py +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/MediLink_837p_utilities.py +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/MediLink_API_Generator.py +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/MediLink_Azure.py +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/MediLink_Charges.py +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/MediLink_ClaimStatus.py +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/MediLink_DataMgmt.py +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/MediLink_Decoder.py +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/MediLink_Deductible.py +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/MediLink_Deductible_Validator.py +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/MediLink_Display_Utils.py +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/MediLink_Down.py +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/MediLink_Mailer.py +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/MediLink_Parser.py +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/MediLink_PatientProcessor.py +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/MediLink_Scan.py +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/MediLink_Scheduler.py +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/MediLink_UI.py +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/MediLink_Up.py +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/MediLink_insurance_utils.py +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/MediLink_main.py +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/MediLink_smart_import.py +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/Soumit_api.py +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/gmail_oauth_utils.py +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/openssl.cnf +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/test.py +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/MediLink/webapp.html +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/README.md +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/medicafe.egg-info/SOURCES.txt +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/medicafe.egg-info/dependency_links.txt +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/medicafe.egg-info/entry_points.txt +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/medicafe.egg-info/not-zip-safe +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/medicafe.egg-info/requires.txt +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/medicafe.egg-info/top_level.txt +0 -0
- {medicafe-0.251017.0 → medicafe-0.251017.1}/setup.cfg +0 -0
|
@@ -470,13 +470,22 @@ def handle_post_response(url, payload, headers):
|
|
|
470
470
|
else:
|
|
471
471
|
log("Link retrieval initiated successfully.")
|
|
472
472
|
elif response.status_code == 401:
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
473
|
+
# Automatic re-auth: clear token and prompt user to re-consent, keep server up
|
|
474
|
+
log("Unauthorized (401). Clearing cached token and initiating re-authentication flow. Response body: {}".format(response.text))
|
|
475
|
+
delete_token_file()
|
|
476
|
+
auth_url = get_authorization_url()
|
|
477
|
+
print("Your Google session needs to be refreshed to regain permissions. A browser window will open to re-authorize the app with the required scopes.")
|
|
478
|
+
open_browser_with_executable(auth_url)
|
|
479
|
+
# Wait for the OAuth redirect/flow to complete; the server remains running
|
|
480
|
+
shutdown_event.wait()
|
|
477
481
|
elif response.status_code == 403:
|
|
478
|
-
|
|
479
|
-
|
|
482
|
+
# Treat 403 similarly; scopes may be missing/changed. Force a fresh consent.
|
|
483
|
+
log("Forbidden (403). Clearing cached token and prompting for fresh consent. Response body: {}".format(response.text))
|
|
484
|
+
delete_token_file()
|
|
485
|
+
auth_url = get_authorization_url()
|
|
486
|
+
print("Permissions appear insufficient (403). Opening browser to request the correct Google permissions.")
|
|
487
|
+
open_browser_with_executable(auth_url)
|
|
488
|
+
shutdown_event.wait()
|
|
480
489
|
elif response.status_code == 404:
|
|
481
490
|
log("Not Found. Verify the URL and ensure the Apps Script is deployed correctly. Response body: {}".format(response.text))
|
|
482
491
|
shutdown_event.set()
|
|
@@ -76,11 +76,10 @@ def inspect_token(access_token, log, delete_token_file_fn=None, stop_server_fn=N
|
|
|
76
76
|
else:
|
|
77
77
|
log("Failed to inspect token. Status code: {}, Body: {}".format(response.status_code, response.text))
|
|
78
78
|
if response.status_code == 400 and "invalid_token" in response.text:
|
|
79
|
-
|
|
79
|
+
# Token is invalid (revoked/expired). Clear cache and let caller trigger re-auth.
|
|
80
|
+
log("Access token is invalid. Clearing token cache and keeping server running for re-auth.")
|
|
80
81
|
if delete_token_file_fn:
|
|
81
82
|
delete_token_file_fn()
|
|
82
|
-
if stop_server_fn:
|
|
83
|
-
stop_server_fn()
|
|
84
83
|
return None
|
|
85
84
|
return None
|
|
86
85
|
except Exception as e:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|