amazon-orders 4.9.2__tar.gz → 4.9.3__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.
Files changed (48) hide show
  1. {amazon_orders-4.9.2 → amazon_orders-4.9.3}/CHANGELOG.md +7 -1
  2. {amazon_orders-4.9.2/amazon_orders.egg-info → amazon_orders-4.9.3}/PKG-INFO +4 -1
  3. {amazon_orders-4.9.2 → amazon_orders-4.9.3}/README.md +3 -0
  4. {amazon_orders-4.9.2 → amazon_orders-4.9.3/amazon_orders.egg-info}/PKG-INFO +4 -1
  5. {amazon_orders-4.9.2 → amazon_orders-4.9.3}/amazonorders/__init__.py +1 -1
  6. {amazon_orders-4.9.2 → amazon_orders-4.9.3}/amazonorders/cli.py +2 -1
  7. {amazon_orders-4.9.2 → amazon_orders-4.9.3}/amazonorders/orders.py +4 -2
  8. {amazon_orders-4.9.2 → amazon_orders-4.9.3}/amazonorders/selectors.py +1 -0
  9. {amazon_orders-4.9.2 → amazon_orders-4.9.3}/amazonorders/session.py +3 -5
  10. {amazon_orders-4.9.2 → amazon_orders-4.9.3}/LICENSE +0 -0
  11. {amazon_orders-4.9.2 → amazon_orders-4.9.3}/MANIFEST.in +0 -0
  12. {amazon_orders-4.9.2 → amazon_orders-4.9.3}/amazon_orders.egg-info/SOURCES.txt +0 -0
  13. {amazon_orders-4.9.2 → amazon_orders-4.9.3}/amazon_orders.egg-info/dependency_links.txt +0 -0
  14. {amazon_orders-4.9.2 → amazon_orders-4.9.3}/amazon_orders.egg-info/entry_points.txt +0 -0
  15. {amazon_orders-4.9.2 → amazon_orders-4.9.3}/amazon_orders.egg-info/requires.txt +0 -0
  16. {amazon_orders-4.9.2 → amazon_orders-4.9.3}/amazon_orders.egg-info/top_level.txt +0 -0
  17. {amazon_orders-4.9.2 → amazon_orders-4.9.3}/amazonorders/banner.txt +0 -0
  18. {amazon_orders-4.9.2 → amazon_orders-4.9.3}/amazonorders/conf.py +0 -0
  19. {amazon_orders-4.9.2 → amazon_orders-4.9.3}/amazonorders/constants.py +0 -0
  20. {amazon_orders-4.9.2 → amazon_orders-4.9.3}/amazonorders/contrib/__init__.py +0 -0
  21. {amazon_orders-4.9.2 → amazon_orders-4.9.3}/amazonorders/contrib/browser/__init__.py +0 -0
  22. {amazon_orders-4.9.2 → amazon_orders-4.9.3}/amazonorders/contrib/browser/playwright.py +0 -0
  23. {amazon_orders-4.9.2 → amazon_orders-4.9.3}/amazonorders/contrib/waf/__init__.py +0 -0
  24. {amazon_orders-4.9.2 → amazon_orders-4.9.3}/amazonorders/contrib/waf/anticaptcha.py +0 -0
  25. {amazon_orders-4.9.2 → amazon_orders-4.9.3}/amazonorders/contrib/waf/base.py +0 -0
  26. {amazon_orders-4.9.2 → amazon_orders-4.9.3}/amazonorders/contrib/waf/capsolver.py +0 -0
  27. {amazon_orders-4.9.2 → amazon_orders-4.9.3}/amazonorders/contrib/waf/twocaptcha.py +0 -0
  28. {amazon_orders-4.9.2 → amazon_orders-4.9.3}/amazonorders/entity/__init__.py +0 -0
  29. {amazon_orders-4.9.2 → amazon_orders-4.9.3}/amazonorders/entity/gift_card_activity.py +0 -0
  30. {amazon_orders-4.9.2 → amazon_orders-4.9.3}/amazonorders/entity/item.py +0 -0
  31. {amazon_orders-4.9.2 → amazon_orders-4.9.3}/amazonorders/entity/order.py +0 -0
  32. {amazon_orders-4.9.2 → amazon_orders-4.9.3}/amazonorders/entity/parsable.py +0 -0
  33. {amazon_orders-4.9.2 → amazon_orders-4.9.3}/amazonorders/entity/recipient.py +0 -0
  34. {amazon_orders-4.9.2 → amazon_orders-4.9.3}/amazonorders/entity/seller.py +0 -0
  35. {amazon_orders-4.9.2 → amazon_orders-4.9.3}/amazonorders/entity/shipment.py +0 -0
  36. {amazon_orders-4.9.2 → amazon_orders-4.9.3}/amazonorders/entity/tracking.py +0 -0
  37. {amazon_orders-4.9.2 → amazon_orders-4.9.3}/amazonorders/entity/transaction.py +0 -0
  38. {amazon_orders-4.9.2 → amazon_orders-4.9.3}/amazonorders/exception.py +0 -0
  39. {amazon_orders-4.9.2 → amazon_orders-4.9.3}/amazonorders/forms.py +0 -0
  40. {amazon_orders-4.9.2 → amazon_orders-4.9.3}/amazonorders/gift_cards.py +0 -0
  41. {amazon_orders-4.9.2 → amazon_orders-4.9.3}/amazonorders/output.py +0 -0
  42. {amazon_orders-4.9.2 → amazon_orders-4.9.3}/amazonorders/paging.py +0 -0
  43. {amazon_orders-4.9.2 → amazon_orders-4.9.3}/amazonorders/region_data.py +0 -0
  44. {amazon_orders-4.9.2 → amazon_orders-4.9.3}/amazonorders/transactions.py +0 -0
  45. {amazon_orders-4.9.2 → amazon_orders-4.9.3}/amazonorders/util.py +0 -0
  46. {amazon_orders-4.9.2 → amazon_orders-4.9.3}/pyproject.toml +0 -0
  47. {amazon_orders-4.9.2 → amazon_orders-4.9.3}/setup.cfg +0 -0
  48. {amazon_orders-4.9.2 → amazon_orders-4.9.3}/tests/testcase.py +0 -0
@@ -4,7 +4,13 @@ All notable changes to this project will be documented in this file.
4
4
 
5
5
  This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
 
7
- ## [Unreleased](https://github.com/alexdlaird/amazon-orders/compare/4.9.2...HEAD)
7
+ ## [Unreleased](https://github.com/alexdlaird/amazon-orders/compare/4.9.3...HEAD)
8
+
9
+ ## [4.9.3](https://github.com/alexdlaird/amazon-orders/compare/4.9.2...4.9.3) - 2026-10-18
10
+
11
+ ### Fixed
12
+
13
+ - Bug and stability fixes.
8
14
 
9
15
  ## [4.9.2](https://github.com/alexdlaird/amazon-orders/compare/4.9.1...4.9.2) - 2026-10-15
10
16
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: amazon-orders
3
- Version: 4.9.2
3
+ Version: 4.9.3
4
4
  Summary: A Python library (and CLI) for Amazon order history, line items, and transactions
5
5
  Author-email: Alex Laird <contact@alexlaird.com>
6
6
  Maintainer-email: Alex Laird <contact@alexlaird.com>
@@ -232,6 +232,9 @@ as shown above. Any MCP client gets the same as tools through
232
232
  [`amazon-orders-mcp`](https://github.com/alexdlaird/amazon-orders-mcp#readme), a server built on `amazon-orders` — see
233
233
  its README for setup.
234
234
 
235
+ The server signs you in with a browser, so it needs a display. Without one, use the CLI or library with
236
+ [Automating Authentication](#automating-authentication).
237
+
235
238
  ## Documentation
236
239
 
237
240
  For more advanced usage, `amazon-orders`'s official documentation is available
@@ -156,6 +156,9 @@ as shown above. Any MCP client gets the same as tools through
156
156
  [`amazon-orders-mcp`](https://github.com/alexdlaird/amazon-orders-mcp#readme), a server built on `amazon-orders` — see
157
157
  its README for setup.
158
158
 
159
+ The server signs you in with a browser, so it needs a display. Without one, use the CLI or library with
160
+ [Automating Authentication](#automating-authentication).
161
+
159
162
  ## Documentation
160
163
 
161
164
  For more advanced usage, `amazon-orders`'s official documentation is available
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: amazon-orders
3
- Version: 4.9.2
3
+ Version: 4.9.3
4
4
  Summary: A Python library (and CLI) for Amazon order history, line items, and transactions
5
5
  Author-email: Alex Laird <contact@alexlaird.com>
6
6
  Maintainer-email: Alex Laird <contact@alexlaird.com>
@@ -232,6 +232,9 @@ as shown above. Any MCP client gets the same as tools through
232
232
  [`amazon-orders-mcp`](https://github.com/alexdlaird/amazon-orders-mcp#readme), a server built on `amazon-orders` — see
233
233
  its README for setup.
234
234
 
235
+ The server signs you in with a browser, so it needs a display. Without one, use the CLI or library with
236
+ [Automating Authentication](#automating-authentication).
237
+
235
238
  ## Documentation
236
239
 
237
240
  For more advanced usage, `amazon-orders`'s official documentation is available
@@ -1,3 +1,3 @@
1
1
  __copyright__ = "Copyright (c) 2024-2025 Alex Laird"
2
2
  __license__ = "MIT"
3
- __version__ = "4.9.2"
3
+ __version__ = "4.9.3"
@@ -302,7 +302,8 @@ def amazon_orders_cli(ctx: Context,
302
302
  help="Get the full details for each Order in the history. "
303
303
  "This will execute an additional request per Order.")
304
304
  @click.option("--order-filter", "order_filter", default=None,
305
- help="The order type filter to use.")
305
+ help="The order type filter to use, e.g. digital-orders for Kindle and other digital purchases, "
306
+ "which the default history doesn't include.")
306
307
  @click.option("-o", "--output", type=click.Choice(OutputFormatter.OUTPUT_FORMATS), default="text",
307
308
  help="The output format. Defaults to text.")
308
309
  def history(ctx: Context,
@@ -275,7 +275,8 @@ class AmazonOrders:
275
275
  :param time_filter: The time filter to use. Supported values are ``"last30"`` (last 30 days),
276
276
  ``"months-3"`` (past 3 months), or ``"year-YYYY"`` (specific year). If provided, this takes
277
277
  precedence over the ``year`` parameter.
278
- :param order_filter: The order type filter to use. If provided, appended alongside the time filter.
278
+ :param order_filter: The order type filter to use, e.g. ``"digital-orders"`` for Kindle and other digital
279
+ purchases, which the default history doesn't include. If provided, appended alongside the time filter.
279
280
  :param progress: Called after each page of history is fetched, with the number of Orders found so far
280
281
  (before their full details are fetched, if ``full_details`` is ``True``).
281
282
  :param progress_with_total: Like ``progress``, but also called with the number of Orders expected in total,
@@ -318,7 +319,8 @@ class AmazonOrders:
318
319
  request per Order.
319
320
  :param time_filter: The time filter to use, as in :func:`get_order_history`. Ignored if ``cursor`` is
320
321
  provided.
321
- :param order_filter: The order type filter to use. Ignored if ``cursor`` is provided.
322
+ :param order_filter: The order type filter to use, as in :func:`get_order_history`. Ignored if ``cursor`` is
323
+ provided.
322
324
  :param limit: Stop fetching history pages once at least this many Orders are collected. Whole pages are
323
325
  fetched, so the batch can hold up to a page more than ``limit``. ``None`` fetches every page.
324
326
  :param cursor: The :attr:`~amazonorders.paging.PagedResults.cursor` of the previous batch, to fetch the
@@ -95,6 +95,7 @@ class Selectors:
95
95
  AWS_WAF_CHALLENGE_SCRIPT_SELECTOR = 'script[src*="awswaf.com"]'
96
96
 
97
97
  SIGN_IN_FORM_SELECTOR = "form[name='signIn']"
98
+ NAV_GREETING_SELECTOR = "#nav-link-accountList-nav-line-1"
98
99
  SIGN_IN_EMAIL_INPUT_SELECTOR = "input[name='email']"
99
100
  CLAIM_FORM_SELECTOR = "form[name='signIn'].auth-validate-form"
100
101
  INTENT_FORM_SELECTOR = "form#intent-confirmation-form"
@@ -18,7 +18,7 @@ from amazonorders.conf import AmazonOrdersConfig, cookies_file_lock, debug_outpu
18
18
  from amazonorders.exception import AmazonOrdersAuthError, AmazonOrdersError, AmazonOrdersAuthRedirectError
19
19
  from amazonorders.forms import (AuthForm, AcicAuthBlocker, CaptchaForm, JSAuthBlocker, MfaDeviceSelectForm, MfaForm,
20
20
  SignInForm, ClaimForm, IntentForm)
21
- from amazonorders.util import AmazonSessionResponse, load_class
21
+ from amazonorders.util import AmazonSessionResponse, load_class, select_one
22
22
 
23
23
  logger = logging.getLogger(__name__)
24
24
 
@@ -313,11 +313,9 @@ class AmazonSession:
313
313
  form_found = False
314
314
  attempts = 0
315
315
  while not self.is_authenticated and attempts < self.config.max_auth_attempts:
316
- # TODO: BeautifulSoup doesn't let us query for #nav-item-signout, maybe because it's dynamic on the page,
317
- # but we should find a better way to do this
316
+ greeting = select_one(last_response.parsed, self.config.selectors.NAV_GREETING_SELECTOR)
318
317
  if self.auth_cookies_stored() or \
319
- (self.config.constants.SIGNED_OUT_TEXT not in last_response.response.text and
320
- "nav-item-signout" in last_response.response.text):
318
+ (greeting is not None and self.config.constants.SIGNED_OUT_TEXT not in greeting.get_text()):
321
319
  self.is_authenticated = True
322
320
  break
323
321
 
File without changes
File without changes
File without changes