- Modify weather description format in multiple language locale files
- Use full city name in place of just city name in descriptions
- Ensure consistency across all language files for better user experience
These changes standardize the way city weather is presented across
various languages by including more detailed descriptions, thus enhancing
clarity and providing additional context for users.
- Implement method to get multilingual city descriptions
- Create worker for generating descriptions in the background
- Update database schema to include description translations
- Update AiService to fetch descriptions from City model
This commit introduces a feature to generate city descriptions
in multiple languages using AI. It includes methods for
caching descriptions and a background job to handle
generation to improve performance and user experience.
- Introduced constant MODELS for managing model names.
- Updated the `generate_image` method to switch between FLUX and DALL-E 3.
- Added `generate_image_dalle` and `generate_image_flux` methods for respective API calls.
- Enhanced prompts for image generation across both models, ensuring correct message construction.
This update enables users to generate images using different AI models dynamically, allowing for flexible integration and improved user experience. The handling of errors now falls back to the DALL-E model if the FLUX API fails.
- Commented out the block that schedules the RefreshSitemapWorker
- This change was made to temporarily disable the startup task
- Maintains existing code structure without loss of functionality
- Introduced site name and descriptions in Arabic, Bengali, German, Spanish,
French, Hindi, Croatian, Italian, Japanese, Korean, Polish, Portuguese,
Russian, Turkish, Ukrainian, Urdu, and Chinese.
- Added keywords for better SEO and user discoverability.
This update improves the website experience for non-English speaking
users and reflects our commitment to accessibility and inclusivity.
All language files now contain appropriate semantic content for
social media previews and search engines.
- Implement meta tags in ArtsController, CitiesController, HomeController, and WeatherArtsController for better SEO.
- Use translation helpers for titles, descriptions, and keywords to improve internationalization support.
- Update default meta tags in ApplicationHelper for consistent site-wide SEO.
These changes enhance the search engine visibility of the application by providing relevant meta information across various pages. Utilizing translation for these fields promotes better support for multiple languages, aligning with localization efforts.
- Change description for the submit_indexnow job from
"Refresh sitemap daily" to "Submit Indexnow daily".
- Description modification improves clarity on job function.
- This adjustment does not affect job scheduling or operations.
- Deleted KeyVerificationController to simplify the application
- Adjusted order of endpoints in SubmitToIndexnowWorker
- Removed key verification route that was previously handled by the controller
- Added new static text file for key verification instead
This change streamlines the key verification process by removing unnecessary code and implementing a simpler method using a text file.
- Make the `perform` method accept an optional parameter for recent updates
- Log the number of URLs submitted to IndexNow
- Introduce a new scheduled job for submitting URLs to IndexNow daily
This commit enhances the functionality of the `SubmitToIndexnowWorker` by allowing
it to be triggered via a scheduled job. It also adds logging for better monitoring
of submissions, improving traceability and performance in sitemap management.
- Implement KeyVerificationController to handle ID-based key verification.
- Create SubmitToIndexnowWorker for background processing of URL submissions.
- Add routes for key verification and extend functionality of URL submissions to IndexNow.
This commit enhances the application by allowing for verification of API keys and automatic submission of URLs to multiple endpoints, improving SEO and resource accessibility.
- Add translation for 'wiki_data' in Arabic
- Add translation for 'wiki_data' in Bengali
- Add translation for 'wiki_data' in German
- Add translation for 'wiki_data' in English
- Add translation for 'wiki_data' in Spanish
- Add translation for 'wiki_data' in Persian
- Add translation for 'wiki_data' in French
- Add translation for 'wiki_data' in Hindi
- Add translation for 'wiki_data' in Croatian
- Add translation for 'wiki_data' in Italian
- Add translation for 'wiki_data' in Japanese
- Add translation for 'wiki_data' in Korean
- Add translation for 'wiki_data' in Polish
- Add translation for 'wiki_data' in Portuguese
- Add translation for 'wiki_data' in Russian
- Add translation for 'wiki_data' in Turkish
- Add translation for 'wiki_data' in Ukrainian
- Add translation for 'wiki_data' in Urdu
- Add translation for 'wiki_data' in Chinese (Simplified)
This update provides localized support for the term 'wiki_data' across multiple languages, improving user experience and accessibility in international environments.
- Create a download card component for weather arts
- Include options for premium purchase, medium quality, and a free WebP version
- Ensure proper layout and styling for the download options
This addition enhances the user experience by providing a clear
and organized way to download various versions of the weather
art. It also includes functionality for both paid and free
options, addressing different user needs.
- Switch to the new s3 endpoint for improved access
- Comment out the previous internal endpoint for clarity
This change updates the s3 endpoint to ensure proper
connection and compatibility with the service. The
internal endpoint is commented out to avoid confusion.
- Change bucket name from today-ai-weather-hk-dev to
today-ai-weather-dev-hk
- Update the configuration for easier understanding and
consistency
This update modifies the S3 bucket name used in development
settings, improving clarity and aligning with naming
conventions.
- Change the AWS S3 region from Hong Kong to Shanghai for
both production and development environments.
- Update bucket names to reflect the new region.
- Modify the endpoint URLs to align with the new settings.
These changes ensure that the application interacts with the
correct resources in AWS and maintains compatibility with
services hosted in Hong Kong.
- Comment out the previous development database URL
- Implement a new PostgreSQL URL for production use
This change updates the database connection settings to ensure
that the application connects to the appropriate database in
different environments. Commenting out the old URL helps
prevent accidental usage while retaining it for reference.
- Modify AWS credentials to use 's3' instead of 'minio' for both production and development environments.
- Update associated initializers, environment configurations, and sitemap generator settings.
- Simplify the configuration retrieval by aligning with new standards for S3.
These changes ensure consistent access to AWS S3 resources and improve maintainability by aligning with updated environment variable practices.
- Moved image processing to after the weather_art assignment.
- This change guarantees that the webp and preview images are processed before returning the weather_art object.
- Resolves potential issues where image processing wouldn't occur if the returned value wasn't properly assigned initially.
- Change route for RSS feed to use defaults for format
- Add logging to RssController#feed to track request format
These changes improve the clarity of the routing for the RSS feed
and enhance debugging capabilities by logging the request format.
The new route definition ensures that the feed responds correctly
with the default format, while the logging provides insight into
how the feed is being accessed.
- Include data-hashtag attribute in the Facebook share button
- Comment out an alternative database URL in credentials
This update enhances the social sharing feature by allowing
users to include hashtags when sharing content on Facebook.
The commented-out database URL serves as a reference for
future configurations.
- Implement state filtering in the CitiesController
- Add new scope `by_state` in the City model
- Update cities index view to include state dropdown
- Add slug column to states for friendly URLs
- Update English locale to include 'All States'
This commit enhances the cities index page by allowing users to
filter cities based on the selected state. It introduces a new
scope in the City model for state filtering and updates the
view to present a dropdown for state selection. Additionally,
it adds a slug column to the states table to support friendly
URLs, improving the overall user experience.
- Implement index action to list sitemaps
- Create view for displaying sitemaps with details
- Add helper method for generating sitemap URLs
- Enhance error handling for S3 service errors
This commit introduces a new feature for managing sitemaps in the application. It includes an index view that lists all available sitemaps with their last modified date and size, along with a link to view each sitemap. The error handling for S3 interactions has also been improved to log errors and return appropriate responses.
- Ensure consistent formatting in the long date string
- No functional changes were made, only a formatting adjustment
This commit addresses a minor formatting issue in the Arabic locale file, ensuring that the long date format is consistent with the expected output. No changes to functionality or behavior were introduced.
- Update available locales to include Bengali, Hindi, Urdu, and Arabic
- Add new locale files for each language with translations for UI elements
- Ensure the application can now support a wider audience by providing
localized content
This change enhances the application's accessibility and usability for
users who speak these languages, allowing for a more inclusive user
experience. The new translations cover key UI components and messages,
ensuring that users can interact with the application in their native
languages.
- Extend available locales in the application to include:
- Portuguese (Brazil)
- Croatian
- Persian
- German
- Spanish
- French
- Italian
- Turkish
- Russian
- Ukrainian
- Polish
- Create new locale files for each language with appropriate translations.
- Update existing locale files to include new languages.
This update enhances the application's accessibility by supporting a wider range of languages, allowing users from different regions to interact with the application in their native language.
- Introduce default, short, and long date formats
- Enhance date representation for better user experience
This update allows the application to display dates in multiple formats,
including a default format of 'YYYY-MM-DD', a short format of
'"MMM DD"', and a long format of '"Month DD, YYYY"'. This
improves localization support and user interface flexibility.
- Refactor generate_sitemap method to support locale
- Add setup_sitemap_config method for configuration
- Implement sitemap generation for default and localized paths
This update enhances the sitemap generation process by supporting
multiple languages. Users can now access a sitemap with language
prefixes, improving SEO and usability for different locales.
Additionally, error handling has been improved to log specific
errors related to locale generation.
- Introduced `TranslatableName` module to allow for
localized names for `Country` and `Region` models.
- Updated views to display `localized_name` instead of
`name` for improved internationalization.
- Refactored JSON serialization for `translations` attribute.
- Enhanced localization support by adding new languages:
Japanese and Korean, with updated locale files.
- Removed outdated English and Chinese locales for countries
and regions to clean up the codebase.
- Implement locale extraction and fallback mechanism
- Add translation files for English and Chinese
- Update views to use translated strings for various UI elements
This commit introduces support for multiple languages in the application, enhancing accessibility for users. It includes a fallback mechanism for locales and updates to the user interface to display translated content.
- Introduce RssController to handle RSS feed requests
- Add a new route for the RSS feed
- Implement RSS feed view to display weather art
- Update application layout to include RSS feed link
- Set content type for RSS responses
This commit adds an RSS feed feature that allows users to
subscribe to updates on daily AI-generated weather art.
The feed includes the latest weather art and relevant
metadata, enhancing user engagement and accessibility.
- Update SitemapsController to use MinIO credentials
- Modify RefreshSitemapWorker to adapt to MinIO settings
- Change AWS configuration in initializers and storage files
- Add MinIO credentials to credentials.yml.enc
This commit transitions the application from using AWS S3 to MinIO for
storage. It updates all relevant configurations and ensures that the
application can now interact with MinIO seamlessly, including
support for both production and development environments.
The commit updates the sitemap host to point to the production environment.
This is needed so that the sitemap links will point to the correct domain, and the
production environment needs to point to a specific host. The sitemap now uses
the correct host url, and this is the correct config for the current state.
- Modified the host name in the sitemap configuration to support the new domain.
- This commit changes the hostname, and updates the sitemap to reflect the correct host.
- This is done to reflect the correct host on the production server.
- Added the new `public/sitemaps` directory to .gitignore to avoid commits related to this
directory, and updates the .gitignore.
- Add formatted_current_time method to City model.
- Modify BatchGenerateWeatherArtsWorker to check local time.
- Update Sidekiq scheduler to run every hour.
This commit improves the weather art generation by considering
local time for image generation and increasing the frequency
of batch processing for testing purposes. The new method
provides formatted time information for each city. This change
ensures that images are generated during daylight hours.
- Replace OpenLayers with Mapbox GL for map rendering.
- Update CSS for map styling and control visibility.
- Integrate weather art into map popups.
- Add Mapbox token to credentials.yml.enc
This commit replaces the existing OpenLayers map implementation
with Mapbox GL. It also adjusts the styling and adds a
weather art display to the map popup, which enhances the
user experience. The necessary changes include modifying
stylesheets, JavaScript controllers, view templates, and
updating the credentials file. The motivation is to enhance
map rendering performance and user experience.
- Implement MapController for displaying city maps
- Add map rendering in the city show view
- Include weather arts in the city show controller
- Update asset pipeline to include Leaflet CSS and JS
This commit introduces a map feature that allows users to view
geographical information related to cities. The map is integrated
with weather arts data, enhancing the overall functionality of
the city show page.
- Include 'rack-mini-profiler' gem in Gemfile
- Update Gemfile.lock with the new dependency
- Create initializer for rack-mini-profiler in development
This addition allows for performance monitoring within the
application during development, which can help identify
and address performance issues more effectively.
- Include associated city and image attachment in popular,
random, latest, and featured arts queries to enhance data
accessibility and performance.
- This modification reduces N+1 query issues by eager-loading
associations, leading to improved query performance when
accessing related data.
- Changed description for the 'batch_generate_weather' job from
'Generate weather arts every 2 hours' to 'Batch Generate weather
arts'.
- This change provides a more concise description of the job's
purpose without altering its functionality.
- Update menu labels for cities, countries, and regions
- Introduce new entities for states and subregions in Admin Panel
- Implement admin authentication for weather art generation
- Modify application controller to check for admin user
- Refactor view to display admin panel based on user permissions
- Update routes to include weather art generation action
These changes enhance the admin interface for better management of cities
and related entities. The new admin checks ensure that only authorized users
can generate weather art, improving security and functionality.
- Update development database URL to use a fallback
if no URL is provided in credentials.
- Modify production SMTP password retrieval to use
dig method for more robust access.
These changes allow for smoother local development and
ensure that the production environment correctly
accesses the SMTP password, enhancing overall stability.
- Implemented a new admin panel that allows administrators to view
statistics and manage weather art. The panel includes:
- A card displaying total images and today's images
- Buttons to generate new art and edit the city
- Added `admin?` helper method to check if the current user is an
administrator.
- Updated database configuration to use safer credentials lookup
method `dig` for development database URL instead of the
previous method, improving reliability in accessing nested
credentials.
- Adjusted the spacing in the 'unlock_keys' configuration
- Ensured uniform spacing around array elements
This change does not affect the functionality of the unlock
keys in Devise but improves the consistency of the code
formatting to enhance readability.
- Updated confirmation, password, unlock, and session views to use a
card-based layout for improved visual appeal.
- Added responsive design features to ensure compatibility across devices.
- Enhanced usability by providing clear placeholders in form fields.
These changes improve the user experience during account recovery and
management processes. The design promotes a modern interface while
maintaining functionality.
- Integrate Devise for user authentication
- Create User model and necessary views
- Implement email confirmation and password reset functionality
- Add routing for user sign-up and login
- Customize error messages display
This commit initiates user authentication in the application
using the Devise gem. It includes user registration, login,
password reset, and email confirmation features. Additionally,
the necessary views and mailer templates are included to
support these functionalities. This enhances the security
and usability of the application by allowing users to create
accounts and manage their passwords effectively.
- Include 'devise' gem for user management
- Update database access URLs in configurations
- Refactor schema types from bigint to integer for resource and author IDs
- Enhance geo synchronization by updating region and subregion handling
These changes are aimed at improving the user management functionality while ensuring efficient data handling and connections for production environment.
- Implement previous and next weather art navigation
- Update weather arts controller to fetch adjacent weather arts
- Modify show view to include navigation links
This update enhances the user experience by allowing users to
navigate through weather arts seamlessly. The previous and
next buttons improve accessibility, providing a smoother
browsing experience. The implementation also accounts for
situations where no adjacent weather arts exist, ensuring
clarity for users.