summaryrefslogtreecommitdiff
path: root/wttrin.el
AgeCommit message (Collapse)Author
2025-11-04feat:wttrin-mode: Add major mode for weather displayCraig Jennings
Introduce `wttrin-mode`, a derived major mode for displaying weather information from wttr.in. This includes keybindings for refreshing and querying new locations, and sets up the buffer with a custom font and read-only settings. Existing display logic has been refactored to utilize this mode for improved usability and code organization.
2025-11-04feat(emacs): Add asynchronous weather fetching to wttrinCraig Jennings
Introduce asynchronous data fetching to the wttrin.el Emacs package. This enhancement avoids blocking Emacs during data retrieval by using `url-retrieve` for async calls. The behavior is controlled via a new customizable variable `wttrin-use-async`. Tests have been added for the new async behavior to ensure proper functionality.feat:makefile): Add package initialization for Emacs batch Enhance Makefile with package support by loading and initializing MELPA archive before validating and compiling, ensuring required packages are available during these operations. feat(tests): Add unit tests for `wttrin--display-weather` Introduce comprehensive tests for `wttrin--display-weather` function to validate buffer creation, content, keybindings, and error handling.
2025-11-04Add comprehensive ERT test suite and fix critical bugsCraig Jennings
Session 1: Testing infrastructure and initial test coverage Bug fixes in wttrin.el: - Fix wttrin-additional-url-params to handle nil unit system - Remove incorrect callback parameter to url-retrieve-synchronously - Add nil buffer check for network failures - Strip HTTP headers before decoding response - Kill buffer after fetch to prevent memory leaks - Fix double concatenation of URL params in cache function - Add proper URL encoding via new wttrin--build-url function Refactoring: - Extract wttrin--build-url as pure, testable function - Separate URL building logic from network I/O Test infrastructure (33 tests, 100% passing): - tests/testutil-wttrin.el: Shared test utilities - tests/test-wttrin-additional-url-params.el: 7 tests - tests/test-wttrin--make-cache-key.el: 9 tests - tests/test-wttrin--build-url.el: 10 tests - tests/test-wttrin--cleanup-cache-if-needed.el: 7 tests Documentation: - docs/testing-plan.org: Comprehensive testing roadmap - docs/bugs.org: Bug analysis from code review - docs/NOTES.org: Session tracking and guidelines - docs/session-1-summary.org: Detailed session summary Next session: Cache workflow tests, parsing logic extraction, integration tests 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-25Add caching system for weather dataCraig Jennings
Implement a caching mechanism to reduce API calls and improve performance. The cache stores weather data with configurable TTL (15 minutes default) and automatic cleanup when exceeding max entries (50 default). - Add cache configuration options for TTL and max entries - Store fetched data with timestamps in hash table - Add force refresh functionality with 'r' key binding - Implement automatic cache cleanup to prevent unbounded growth - Fall back to stale cache on network errors - Also, fixed URL parameter concatenation in fetch function
2025-09-24use https rather than httpCraig Jennings
2025-09-24don't mutate url-request-extra-headersCraig Jennings
- bind it locally instead within the let form
2025-09-24ensure utf-8 encodingCraig Jennings
2024-04-22changed accept-language variable name to wttrin-default-languagesCraig Jennings
the unwieldly wttrin-default-accept-language became the lighter-weight and more user-friendly wttrin-default-language
2024-04-21clean-up byte compile and licensing issuesCraig Jennings
- fix let-binding for date-time-stamp and location-info - also switched goto-line usage (interactive only) with forward-line - require face-remap for buffer-face-mode-face - adjust all code and docstring for 80 column width
2024-04-21fix docstring longer than 80 charactersCraig Jennings
2024-04-21Add License Boilerplate and SPDX-License-Identifier for GPL 3.0Craig Jennings
2024-04-11fit and finish bugfixingCraig Jennings
- adjust display header to location and date - change references from cities to location - update default-location names requery smoothly - always name the buffer *wttr.in* for easy reuse/killing - keep the buffer display up while user chooses next location
2024-04-01package prep: linter bugfixing and updated readmeCraig Jennings
- added manual and straight installation instructions - corrected font-height setting example - corrected :type for wttrin-default-accept-language - fix docstrings corrected emacs-lisp code block, upcased usage header
2024-04-01bugfixesCraig Jennings
- fixed types for default-accept-language and default-cities - removed unneeded status variable in wttrin-fetch-raw-string - syntax correction in defgroup wttrin description - changed default font to Lucida Console (more universal + compatible with wttr.in) - added games to keywords per package linter - updated version, header description, and commentary
2024-04-01customize font, display date, clean requeries, license change, &c.Craig Jennings
- changed license to GPLv3 - allow user to specify font name and height for display - place date/time stamp above location name at top of buffer - re-query with new location deletes to reduce buffer clutter - updated screenshot to show current updates - changed references from "city" to "location" in wttrin.el - removed old CI config files - removed old badges from readme file
2024-03-11Reapplying patch to avoid raw HTML; other changesCraig Jennings
Other changes being: - added text prompt for quitting and selecting another city - updated default cities - fixed docstring issues reported by Emacs' linter - updated several prompt texts - updated maintainer
2021-08-25applying outstanding patchesCraig Jennings
This fork has the following patches applied (still outstanding in bcbcarl/emacs-wttrin): - patch for selecting the unit system: https://github.com/bcbcarl/emacs-wttrin/pull/10 - patch for url request to return ascii rather than html https://github.com/bcbcarl/emacs-wttrin/pull/18 - patch to use https instead of http: https://github.com/bcbcarl/emacs-wttrin/pull/15
2021-08-23Added user.agent fix to correct color display, also using httpsCraig Jennings
2017-06-12Default the city name if only one city is defined.Dave Pearson
If wttrin-default-cities only has the one city in it, default the input to wttrin to that so that it's easier and faster to get the weather.
2017-06-12Allow wttrin to be called with a city as an argumentDave Pearson
This means it can be easily called from other code, with the city passed as an argument.
2017-03-22[add] add HTTP request header: Accept-Language, display different language.emacsist
2016-04-14Added local keymapPavel Kurnosov
Local keymap allows to quit current buffer or query for new place.
2016-03-06Add autoload cookie for lazy loadingSyohei YOSHIDA
2016-03-06Some improvements and drop ido dependencyCarl X. Su
* Depend on stable version of `xterm-color`. * Use `erase-buffer` instead of delete all region. * Replace `ido-completing-read` with `completing-read`.
2016-03-06Update buffer generation rulesCarl X. Su
2016-03-06Update author list and versionCarl X. Su
2016-03-06Fix typo and conflictCarl X. Su
2016-03-06wttrin-default-cities & completionkuanyui
2016-03-06Error handlingkuanyui
2016-03-06Refactoring to more universal functionskuanyui
2016-03-06More universal C-u M-x wttrinkuanyui
2016-03-06Remove unnecessary variableCarl X. Su
2016-03-06Rename functionkuanyui
2016-03-06Prevent creating duplicated bufferskuanyui
2016-03-06Remove unused local bindingkuanyui
2016-03-06Remove HTTP headerkuanyui
2016-03-06Fix requirekuanyui
2016-03-06Initial commitCarl X. Su