30 Commits

Author SHA1 Message Date
dgtlmoon
30dc4ac23b
Refactor of queue systenm and improve tests, improves multiple workers (#3826) 2026-02-02 22:28:27 +01:00
dgtlmoon
fceb3cf39f
Big refactor to save watches as their own datafile with some agnostic data store backend, saves writing a huge JSON file every time (#3775) 2026-01-28 10:18:21 +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
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 e2b407c6f38e83a717178bb9aa26aead6c090f85.
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
4dbab8d77a
Test speedup - remove common calls for function calls (#3477) 2025-10-10 01:16:03 +02:00
dgtlmoon
b74b76c9f9
"Time between check" field is now validated correctly (requires atleast one of the weeks days hours minutes seconds to be set) 2025-09-16 19:09:45 +02:00
dgtlmoon
73f3beda00
Realtime UI - Socketio tweaks and refactor (#3220) 2025-06-03 10:17:19 +02:00
dgtlmoon
eada0ef08d
UI - Custom headers should have validation (#3172) 2025-05-03 13:57:42 +02:00
dgtlmoon
73189672c3
Refactor code layout, add extra tests 2025-03-18 10:40:22 +01:00
dgtlmoon
b1e700b3ff
Adding jinja2/browsersteps test (#2915) 2025-01-28 18:14:49 +01:00
Iftekhar Alam Fuad
1c61b5a623
Header handling - Fix header parsing to split on the first colon only (headers where the value contained :// type may have been broken) (#2929) 2025-01-26 00:08:09 +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
cffb6d748c
Restock & Price monitor - Huge refactor, set upper and lower price alert limits, set % change, follow the prices and restock amounts directly in the watch-overview list 2024-07-12 17:09:42 +02:00
dgtlmoon
8f3a6a42bc
Testing - Adding simple memory usage test (#2483) 2024-07-11 15:03:42 +02:00
dgtlmoon
c6ee6687b5
Fetching/Requests - Fixing user agent header overrides per-watch of global settings (#2409) 2024-06-13 10:50:46 +02:00
dgtlmoon
f49eb4567f
Ability to set default User-Agent for either fetching types directly in the UI (#2375) 2024-05-20 15:11:15 +02:00
dgtlmoon
c5a4e0aaa3
Fetching - Prefer to use SockPuppetBrowser (#2163) 2024-02-07 20:58:21 +01:00
dgtlmoon
7d96b4ba83
Fetching - Always record server software reply headers (will be used in the future) (#2143) 2024-01-31 16:15:43 +01:00
dgtlmoon
c8dcc072c8
Code refactor for fetchers (#1941) 2023-11-13 10:42:56 +01:00
dgtlmoon
52f2c00308
UI/Functionality - Ability to manage/apply filters and notifications across tags/groups 2023-06-19 23:29:13 +02:00
dgtlmoon
d8b9f0fd78
Test improvement - Also test that custom request headers works with Playwright/Browserless (#1607) 2023-05-29 17:44:38 +02:00
dgtlmoon
9e954532d6
Fetcher - Ability to specify headers from a textfile per watch, global or per tag ( https://github.com/dgtlmoon/changedetection.io/wiki/Adding-headers-from-an-external-file ) 2023-05-22 17:19:52 +02:00
dgtlmoon
3e333496c1
Test cleanups (#1196) 2022-12-07 12:03:28 +01:00
dgtlmoon
06517bfd22
Ability to 'Share' a watch by a generated link, this will include all filters and triggers - see Wiki (#563) 2022-04-26 10:52:08 +02:00
dgtlmoon
8f062bfec9
Refactor form handling (#548) 2022-04-19 21:43:07 +02:00
dgtlmoon
7ce9e4dfc2
Testing - Refactor HTTP Request Type test (#453) 2022-03-11 18:50:02 +01:00
Simon Caron
dfcae4ee64
Extend Request Parameters to add Body & Method (#325) 2021-12-29 23:18:29 +01:00