Commit Graph

139 Commits

Author SHA1 Message Date
Heavenfighter
c144801d2e fixes #474
Now using ID to identify checkbox for custom shipping
2025-04-21 20:24:23 +02:00
Heavenfighter
20f3f87864 fixes #475 CSS selector 'button' not found
Element button was changed to em.
2025-04-18 13:44:00 +02:00
sebthom
79701e2833 feat: debug log web_execute 2025-04-07 22:40:41 +02:00
sebthom
aeaf77e5d4 refact: use named parameters 2025-04-07 21:57:51 +02:00
Heavenfighter
33f58811cd Fixes setting shipping costs to zero.
Empty shipping costs lead to
default shipping.
2025-03-16 21:28:44 +01:00
Heavenfighter
57c89a6f64 Adding condition "Defekt" (#461) 2025-03-15 18:25:26 +01:00
Heavenfighter
9183909188 fix: setting shipping options properly (#457) 2025-03-14 12:34:39 +01:00
Heavenfighter
7742196043 fix: set custom shipping due css update #448 (#450) 2025-03-13 12:13:23 +01:00
Jens Bergmann
6bd5ba98d2 fix: Clean up obsolete translations in German language file
- Remove unused translation entries from translations.de.yaml
- Improve translation test to better detect obsolete entries
- Add KNOWN_NEEDED_MODULES for special cases
- Add helper function _message_exists_in_code for better translation verification
- Improve error messages to show both original and translated text
- Fix import sorting in test file

This commit improves the maintainability of the translation system by
removing unused entries and enhancing the verification process.
2025-03-13 12:05:46 +01:00
Jens Bergmann
772326003f fix: Separate 'changed' and 'due' ad selectors (#442)
This commit implements a new 'changed' selector for the --ads option that
publishes only ads that have been modified since their last publication.
The 'due' selector now only republishes ads based on the time interval,
without considering content changes.

The implementation allows combining selectors with commas (e.g., --ads=changed,due)
to publish both changed and due ads. Documentation and translations have been
updated accordingly.

Fixes #411
2025-02-28 14:53:53 -05:00
NME
7b9412677e fix: Update css class selectors fixing #440 (#441)
* fixes #440 css update
* fixed class selector
* added missing translation
---------

Co-authored-by: Jens Bergmann <1742418+1cu@users.noreply.github.com>
2025-02-28 11:16:49 -05:00
Jens Bergmann
c7f7b832b2 fix: Make description field optional in ad_defaults
The description field in the main configuration (ad_defaults) is now optional.
Previously, the bot would fail if no description or affixes were provided in
the main configuration. This change addresses issue #435.

Changes:
- Add fallback to empty string ("") when all description prefix/suffix sources
  are None in __get_description_with_affixes method
- Add comprehensive test suite for description handling in test_init.py
- Fix coverage path in pyproject.toml from 'kleinanzeigen_bot' to
  'src/kleinanzeigen_bot'

New tests cover:
- Description handling without main config description
- New format affixes in configuration
- Mixed old/new format affixes
- Ad-level affix precedence
- None value handling in affixes
- Email address @ symbol replacement

This change maintains backward compatibility while making the description
field optional in the main configuration, improving flexibility for users.
2025-02-18 21:39:53 +01:00
Jens Bergmann
610615367c fix: consolidate description text processing (#432)
Consolidate description text processing into __get_description_with_affixes method:
- Move @ -> (at) replacement into the method
- Remove duplicate prefix/suffix handling code
- Ensure consistent description text processing in one place

This fixes #432 by ensuring consistent handling of description affixes
and text transformations.
2025-02-15 19:58:09 +01:00
Heavenfighter
543d46631c fix: Setting shipping options fails for commercial accounts. Fixes #394 (#424)
Co-authored-by: Jens Bergmann <1742418+1cu@users.noreply.github.com>
2025-02-13 17:13:32 +01:00
Jens Bergmann
e43ac4f1f9 feat: extend translations and add translation unit test (#427) 2025-02-12 22:25:05 +01:00
Jens Bergmann
4051620aed enh: allow per-ad overriding of global description affixes (#416) 2025-02-11 23:39:26 +01:00
Heavenfighter
a67112d936 fix: handle delayed ad publication #414 (#422) 2025-02-11 20:43:33 +01:00
Heavenfighter
820ae8966e fix: download all ads not working anymore #420 (#421)
renamed h2 to h3
2025-02-11 12:33:32 -06:00
sebthom
f3beb795b4 refact: minor cleanup 2025-02-10 22:06:03 +01:00
sebthom
367ef07798 refact: improve logger handling 2025-02-10 20:34:58 +01:00
sebthom
2402ba2572 refact: reorganize utility modules 2025-02-10 06:23:17 +01:00
sebthom
7169975d2a fix: logging file handler not closed on bot shutdown. Fixes #405 2025-02-09 04:23:24 +01:00
Jens Bergmann
dd5f2ba5e4 fix: Ensure Consistent Content Hash Calculation (#415)
This commit addresses an issue where the content hash was being calculated on the current configuration (`ad_cfg`) instead of the original configuration (`ad_cfg_orig`). This could lead to inconsistent hash values, especially when the configuration is updated during the execution of the program.

The fix involves calculating the content hash on the original configuration (`ad_cfg_orig`) in both the `__check_ad_republication` and `publish_ad` methods. This ensures that the hash value is consistent and matches what was stored.

The relevant code changes are as follows:

- In the `__check_ad_republication` method, the content hash is now calculated on `ad_cfg_orig` instead of `ad_cfg`.
- In the `publish_ad` method, the content hash is also calculated on `ad_cfg_orig` to ensure consistency.

These changes should improve the reliability of the content hash comparison and the overall stability of the application.
2025-02-09 03:14:19 +01:00
DreckSoft
b12118361d feat: display actual num of chars of description when too long (#403) 2025-02-08 04:03:54 +01:00
Jens Bergmann
be8eee6aa0 fix: Handle None values in calculate_content_hash - Add test case to reproduce TypeError with None values - Fix handling of None values in special_attributes, shipping_options and images - Ensure consistent empty value handling (empty string instead of 'None') - Fixes #395 2025-02-03 14:15:47 +01:00
1cu
fa0d43efa8 fix: Make doctests locale-independent (#390) (#391) 2025-01-27 09:22:15 +01:00
1cu
f01109c956 feat: add hash-based ad change detection (#343) (#388)
Co-authored-by: sebthom <sebthom@users.noreply.github.com>
2025-01-26 23:37:33 +01:00
Heavenfighter
66634ce636 fix: fixed shipping button selector #385 (#387) 2025-01-20 21:40:28 +01:00
Jens Bergmann
2f93e0dfda fix: correct city selection when multiple cities are available for a ZIP code
When multiple cities are available for a ZIP code, the bot now correctly selects
the city specified in the YAML file's location field instead of always choosing
the first option.

The change:
- Adds logic to select the correct city from dropdown based on location field
- Adds a small delay after ZIP code input to allow dropdown to populate
- Uses proper WebScrapingMixin method to read dropdown options
2025-01-20 12:22:16 +01:00
sebthom
677c48628d fix: remove temporary workaround for #368 2025-01-10 16:21:44 +01:00
Heavenfighter
ca876e628b fix shipping options when downloading. Fixes #375 (#376) 2025-01-10 16:05:11 +01:00
sebthom
6820a946c9 fix: escape metachars in ID and Names for selector queries #368 2025-01-09 21:14:13 +01:00
Heavenfighter
33a43e3ff6 fix: setting shipping options regression #367 (#374)
Button with given label occurs too often. Path must be corrected.
2025-01-09 20:30:24 +01:00
Heavenfighter
f9eb6185c7 fix: failed to set special attributes #334 (#370) 2025-01-09 17:01:48 +01:00
Heavenfighter
e590a32aa2 fix: re-publishing without images #371 (#372)
added detection of image-question
2025-01-09 17:00:51 +01:00
Heavenfighter
5829df66e4 fix setting shipping options #367 2025-01-09 16:59:38 +01:00
Heavenfighter
f3a7cf0150 feat: don't republish reserved ads. fixes #365 (#366) 2025-01-08 18:21:34 +01:00
sebthom
2705dc7e43 refact: use colorama.just_fix_windows_console instead of colorama.init 2024-12-28 19:25:53 +01:00
sebthom
e077f8d86d feat: improve colorized logging 2024-12-27 15:35:58 +01:00
sebthom
f90f848cba fix: improve online help 2024-12-27 15:33:45 +01:00
sebthom
47614887e7 fix: improve logging 2024-12-27 14:19:20 +01:00
sebthom
1e782beabc fix: update help text 2024-12-27 13:49:05 +01:00
sebthom
9d54a949e7 feat: add multi-language support 2024-12-27 13:04:30 +01:00
provinzio
09f4d0f16f FIX login check has to be done case insensitive 2024-12-13 18:40:56 +01:00
Heavenfighter
9a826452f9 fix: No HTML element found using CSS selector (#354)
Fixes #351
Fixes #353
2024-12-08 18:46:29 +01:00
sebthom
26f05b5506 fix: category value incomplete when downloading ads 2024-11-25 00:03:48 +01:00
sebthom
a83ee4883e refact: minor cleanup 2024-11-25 00:03:18 +01:00
sebthom
e8dcb78951 fix: using shipping type PICKUP fails #346 2024-11-24 21:12:43 +01:00
sebthom
f7ef3c2b2e fix: don't auto delete ads directly after publishing 2024-11-22 23:54:53 +01:00
sebthom
b259977198 feat: if a category is not found try to lookup fallback category 2024-11-22 14:27:32 +01:00