dgtlmoon
04de397916
Revert sub-process brotli saving because it could fork-bomb/use up too many system resources ( #3747 )
2026-01-15 13:56:08 +01:00
dgtlmoon
3d14df6a11
Development branch merge into release/master
...
Multi-language / Translations Support (#3696 )
- Complete internationalization system implemented
- Support for 7 languages: Czech (cs), German (de), French (fr), Italian (it), Korean (ko), Chinese Simplified (zh), Chinese Traditional (zh_TW)
- Language selector with localized flags and theming
- Flash message translations
- Multiple translation fixes and improvements across all languages
- Language setting preserved across redirects
Pluggable Content Fetchers (#3653 )
- New architecture for extensible content fetcher system
- Allows custom fetcher implementations
Image / Screenshot Comparison Processor (#3680 )
- New processor for visual change detection (disabled for this release)
- Supporting CSS/JS infrastructure added
UI Improvements
Design & Layout
- Auto-generated tag color schemes
- Simplified login form styling
- Removed hard-coded CSS, moved to SCSS variables
- Tag UI cleanup and improvements
- Automatic tab wrapper functionality
- Menu refactoring for better organization
- Cleanup of offset settings
- Hide sticky tabs on narrow viewports
- Improved responsive layout (#3702 )
User Experience
- Modal alerts/confirmations on delete/clear operations (#3693 , #3598 , #3382 )
- Auto-add https:// to URLs in quickwatch form if not present
- Better redirect handling on login (#3699 )
- 'Recheck all' now returns to correct group/tag (#3673 )
- Language set redirect keeps hash fragment
- More friendly human-readable text throughout UI
Performance & Reliability
Scheduler & Processing
- Soft delays instead of blocking time.sleep() calls (#3710 )
- More resilient handling of same UUID being processed (#3700 )
- Better Puppeteer timeout handling
- Improved Puppeteer shutdown/cleanup (#3692 )
- Requests cleanup now properly async
History & Rendering
- Faster server-side "difference" rendering on History page (#3442 )
- Show ignored/triggered rows in history
- API: Retry watch data if watch dict changed (more reliable)
API Improvements
- Watch get endpoint: retry mechanism for changed watch data
- WatchHistoryDiff API endpoint includes extra format args (#3703 )
Testing Improvements
- Replace time.sleep with wait_for_notification_endpoint_output (#3716 )
- Test for mode switching (#3701 )
- Test for #3720 added (#3725 )
- Extract-text difference test fixes
- Improved dev workflow
Bug Fixes
- Notification error text output (#3672 , #3669 , #3280 )
- HTML validation fixes (#3704 )
- Template discovery path fixes
- Notification debug log now uses system locale for dates/times
- Puppeteer spelling mistake in log output
- Recalculation on anchor change
- Queue bubble update disabled temporarily
Dependency Updates
- beautifulsoup4 updated (#3724 )
- psutil 7.1.0 → 7.2.1 (#3723 )
- python-engineio ~=4.12.3 → ~=4.13.0 (#3707 )
- python-socketio ~=5.14.3 → ~=5.16.0 (#3706 )
- flask-socketio ~=5.5.1 → ~=5.6.0 (#3691 )
- brotli ~=1.1 → ~=1.2 (#3687 )
- lxml updated (#3590 )
- pytest ~=7.2 → ~=9.0 (#3676 )
- jsonschema ~=4.0 → ~=4.25 (#3618 )
- pluggy ~=1.5 → ~=1.6 (#3616 )
- cryptography 44.0.1 → 46.0.3 (security) (#3589 )
Documentation
- README updated with viewport size setup information
Development Infrastructure
- Dev container only built on dev branch
- Improved dev workflow tooling
2026-01-12 17:50:53 +01:00
dgtlmoon
4b1d871078
Improving UTF-8 handling for xPath selectors (Stop the xpath filter from chewing up non-regulat-latin-text style content) ( #3659 )
Build and push containers / metadata (push) Has been cancelled
Build and push containers / build-push-containers (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Build distribution 📦 (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Test the built package works basically. (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Publish Python 🐍 distribution 📦 to PyPI (push) Has been cancelled
ChangeDetection.io App Test / lint-code (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-10 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-11 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-12 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-13 (push) Has been cancelled
2025-11-28 13:13:41 +01:00
dgtlmoon
b9305faf21
Forcing UTF-8 when reading JSON DB (Fixes data not loaded for some platforms #3622 #3611 #3628 ), Always create new versions of the backup DB if one exists for that step when running updates, Adding extra sanity checks on DB load
2025-11-12 12:58:59 +01:00
dgtlmoon
caffd804fe
Revert "Windows - JSON DB fixes - Forcing utf-8 for json DB read/writes should solve windows saving/loading problems. ( #3615 #3611 )"
...
This reverts commit e2b407c6f3 .
2025-11-10 13:31:51 +01:00
dgtlmoon
e2b407c6f3
Windows - JSON DB fixes - Forcing utf-8 for json DB read/writes should solve windows saving/loading problems. ( #3615 #3611 )
2025-11-10 11:59:17 +01:00
dgtlmoon
ae532c82e8
Run all pytests in parallel ( #3569 )
2025-10-28 21:32:25 +01:00
dgtlmoon
f71550da4d
Discord + Telegram - Adding better styling (Discord now uses strike-through and bold for removal/additions instead of broken HTML) ( #3528 )
2025-10-23 20:57:59 +02:00
ReggX
58b5586674
Fix error handling for first empty filter response ( #3516 )
2025-10-19 22:28:06 +02:00
dgtlmoon
64350a2e78
Replace jinja2-time with arrow and improve timedate timezone integration, fixes timezones in templates such as {% now 'Europe/London', '%Y-%m-%d' %} etc ( #3496 )
2025-10-13 11:52:02 +02:00
dgtlmoon
b237fd7201
Replace stream/filetype detection library with puremagic, 20Mb less RAM usage ( #3491 )
2025-10-12 18:40:37 +02:00
dgtlmoon
0fcfb94690
Adding 'RSS reader mode' (see main Settings) ( #3488 )
2025-10-10 18:17:30 +02:00
dgtlmoon
bb6d4c2756
Re #3486 - Fixing and adding test for RSS/Atom not being converted to text when server sends "text/xml" instead of the "application/atom+xml" header ( #3487 )
2025-10-10 16:29:02 +02:00
dgtlmoon
b59ce190ac
Ensure JSON is always correctly reformatted with padding ( #3485 #3482 )
2025-10-10 16:00:32 +02:00
dgtlmoon
80be1a30f2
No need to reformat/reprocess content in the case that no filters were found ( #3484 , #3483 )
Build and push containers / metadata (push) Has been cancelled
Build and push containers / build-push-containers (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Build distribution 📦 (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Test the built 📦 package works basically. (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Publish Python 🐍 distribution 📦 to PyPI (push) Has been cancelled
ChangeDetection.io App Test / lint-code (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-10 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-11 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-12 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-13 (push) Has been cancelled
2025-10-10 13:44:49 +02:00
dgtlmoon
3009e46617
PDF - Will trigger a change - Fixing output, also reported original size of document was incorrect (it was the size of the HTML output after conversion from PDF), Improving tests ( #3481 )
2025-10-10 10:38:34 +02:00
dgtlmoon
cde42c8a49
Reducing memory usage ( #3476 )
Build and push containers / metadata (push) Has been cancelled
Build and push containers / build-push-containers (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Build distribution 📦 (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Test the built 📦 package works basically. (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Publish Python 🐍 distribution 📦 to PyPI (push) Has been cancelled
ChangeDetection.io App Test / lint-code (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-10 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-11 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-12 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-13 (push) Has been cancelled
2025-10-09 18:31:19 +02:00
dgtlmoon
3b9d19df43
Refactoring text/html difference processor ( #3475 )
2025-10-09 18:30:53 +02:00
dgtlmoon
3e59521f48
Always follow plaintext header over the actual content type if its available ( #3473 ) #3472
2025-10-09 12:56:32 +02:00
dgtlmoon
f7dfc9bbb8
Refactor content type detection, fixing more xpath issues for RSS types ( #3465 ) #3462 #3391
2025-10-09 00:14:28 +02:00
dgtlmoon
0c9c475f32
Fixing bad detection of text text/plain in previous release, adding automated test ( #3460 )
2025-10-06 15:39:07 +02:00
dgtlmoon
4b9ae5a97c
Filters - Adding "Strip ignored lines" in output option to filters ( #3449 )
Build and push containers / metadata (push) Has been cancelled
Build and push containers / build-push-containers (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Build distribution 📦 (push) Has been cancelled
ChangeDetection.io App Test / lint-code (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Test the built 📦 package works basically. (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Publish Python 🐍 distribution 📦 to PyPI (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-10 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-11 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-12 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-13 (push) Has been cancelled
CodeQL / Analyze (javascript) (push) Has been cancelled
CodeQL / Analyze (python) (push) Has been cancelled
2025-10-01 12:39:57 +02:00
dgtlmoon
01c1ac4c0c
Process text/* non-HTML in their original format keeping line breaks, auto-detect attachments/downloads for text or HTML, WARNING - Will trigger false changes for some existing text file watches #3434 ( #3435 )
Build and push containers / metadata (push) Has been cancelled
Build and push containers / build-push-containers (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Build distribution 📦 (push) Has been cancelled
ChangeDetection.io App Test / lint-code (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Test the built 📦 package works basically. (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Publish Python 🐍 distribution 📦 to PyPI (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-10 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-11 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-12 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-13 (push) Has been cancelled
2025-09-19 10:42:34 +02:00
dgtlmoon
8c03b65dc6
Fix - Filters in tags/groups were being added to watches on each check - #3406 fix list update ( #3407 )
2025-09-07 15:33:18 +02:00
dgtlmoon
685bd01156
Favicons in list - Prefer best/highest quality ( #3351 )
Build and push containers / metadata (push) Has been cancelled
Build and push containers / build-push-containers (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Build distribution 📦 (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Test the built 📦 package works basically. (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Publish Python 🐍 distribution 📦 to PyPI (push) Has been cancelled
ChangeDetection.io App Test / lint-code (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-10 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-11 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-12 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-13 (push) Has been cancelled
CodeQL / Analyze (javascript) (push) Has been cancelled
CodeQL / Analyze (python) (push) Has been cancelled
2025-08-20 13:08:36 +02:00
dgtlmoon
73f3beda00
Realtime UI - Socketio tweaks and refactor ( #3220 )
2025-06-03 10:17:19 +02:00
dgtlmoon
a6603d5ad6
UI - Reword restock detector plugin description
Build and push containers / metadata (push) Has been cancelled
Build and push containers / build-push-containers (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Build distribution 📦 (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Test the built 📦 package works basically. (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Publish Python 🐍 distribution 📦 to PyPI (push) Has been cancelled
ChangeDetection.io App Test / lint-code (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-10 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-11 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-12 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-13 (push) Has been cancelled
2025-05-27 15:26:29 +02:00
Jost Alemann
9b7372fff0
Code - Remove unused f-strings ( #3209 )
2025-05-22 12:11:39 +02:00
dgtlmoon
61be7f68db
Requests fetcher - Remove old screenshot when watch was in a different fetcher type ( #3097 )
2025-04-09 10:01:20 +02:00
dgtlmoon
78b7aee512
Groups - Including "Extract text", "Text to ignore", "Trigger text" and "Text that should not be present" filters
2025-04-04 11:16:12 +02:00
dgtlmoon
54b7c070f7
UI - Conditions - Offer some information about what the filter/condition/trigger saw ( #3062 )
2025-03-27 10:29:11 +01:00
dgtlmoon
7e7d5dc383
New major functionality CONDITIONS - Compare values, check numbers within range, etc
Build and push containers / metadata (push) Waiting to run
Build and push containers / build-push-containers (push) Waiting to run
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Build distribution 📦 (push) Waiting to run
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Test the built 📦 package works basically. (push) Blocked by required conditions
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Publish Python 🐍 distribution 📦 to PyPI (push) Blocked by required conditions
ChangeDetection.io App Test / lint-code (push) Waiting to run
ChangeDetection.io App Test / test-application-3-10 (push) Blocked by required conditions
ChangeDetection.io App Test / test-application-3-11 (push) Blocked by required conditions
ChangeDetection.io App Test / test-application-3-12 (push) Blocked by required conditions
ChangeDetection.io App Test / test-application-3-13 (push) Blocked by required conditions
ChangeDetection.io Container Build Test / test-container-build (push) Has been cancelled
2025-03-17 19:20:24 +01:00
dgtlmoon
f7e9846c9b
CVE-2024-56509 - Stricter file protocol checking pre-check ( Improper Input Validation Leading to LFR/Path Traversal when fetching file:.. )
2024-12-27 09:26:28 +01:00
dgtlmoon
49bc982c69
CVE-2024-51998 - file:/ path traversal access should not be allowed to access a file without ALLOW_FILE_URI set
2024-11-07 18:45:19 +01:00
dgtlmoon
f08a1185aa
Price tracker - fix for sites that supply an empty additional price ( #2758 )
2024-11-01 10:56:27 +01:00
dgtlmoon
26d3a23e05
CVE-2024-51483 - Fix for limiting access to file:// via source:file:///tmp/file.txt when using webdriver/playwright
2024-10-31 22:49:31 +01:00
Christopher Charbonneau Wells
e8b82c47ca
#2502 - Add jinja2 template handling to request body and headers ( #2740 )
2024-10-28 15:46:05 +01:00
dgtlmoon
c1dd681643
Filters - "Block change detection when text exists" should not trigger a change when the original text returns
2024-10-14 12:57:02 +02:00
dgtlmoon
5bb47e47db
Remove same checksum skip check - saved a little CPU but added a lot of complexity ( #2700 )
2024-10-11 17:28:42 +02:00
dgtlmoon
a278fa22f2
Restock multiprice improvements ( #2698 )
2024-10-11 11:43:35 +02:00
dgtlmoon
c1c8de3104
Fixing proxy checker ( #2696 )
2024-10-11 00:19:19 +02:00
dgtlmoon
5a768d7db3
UTF-8 handling fixes, Improvements to whitespace filtering ( #2691 )
2024-10-10 14:59:39 +02:00
dgtlmoon
f38429ec93
Testing - Tidyup ( #2693 )
2024-10-10 12:45:23 +02:00
dgtlmoon
783926962d
Filters & Text - Preview refactor/improvements ( #2689 )
2024-10-09 09:17:32 +02:00
dgtlmoon
2842ffb205
Restock - Use the scraped 'Not in stock' product status over the metadata version (many website lie in the metadata) ( #2684 )
2024-10-07 20:10:35 +02:00
dgtlmoon
f255165571
Code - Small improvements in logging
2024-10-07 16:01:55 +02:00
dgtlmoon
00458b95c4
UI - Improvements to live preview of Filters text
...
"Ignore text" is now "Remove text", it works the same but it removes the text instead of ignoring it, which is the same thing, but makes the code simpler
2024-10-05 16:32:28 +02:00
dgtlmoon
5b34aece96
UI - Live preview - misc improvements (Adding test, fixes to filters) ( #2663 )
2024-09-30 13:54:35 +02:00
dgtlmoon
1b625dc18a
UI - "Filters & Triggers" - Live preview of text filters (Preview the output of the filters section in realtime) ( #2612 )
2024-09-28 10:40:47 +02:00
dgtlmoon
367afc81e9
Reversing subprocess execution - saved a little memory but used a LOT more CPU ( #2659 )
2024-09-27 21:36:02 +02:00