This commit updates ZTEG and HWTC implementation with refreshed logic around handling channels and EPGs data. It also includes minor changes in logging information for clarity. Deleted 'config.example.yaml' file. Additionally, implemented new test cases to validate these changes.
The project structure has been refactored to separate each IPTV provider into its individual module. Also, created a clear interface for the API client. This greatly improves code readability and maintainability by separating concerns based on the provider. Now, it is easier to add or modify a provider. Additionally, the API client interface ensures a standard way to interact with different providers.
Refactor GitHub workflow and add snapshot workflow
In the `release.yml` workflow, `workflow_dispatch` has been removed as it's redundant. Meanwhile, a new file `snapshot.yml` has been added to handle the creation and uploading of snapshots. This workflow includes steps for setup, go releaser and uploading the assets.
Added a '.goreleaser.yml' configuration file to automate the build process across different OS: Linux, Windows, and Darwin. Also, adjusted 'ci.yml' in GitHub Actions for compatibility with GoReleaser. Moreover, made changes to '.gitignore' for ignoring created distributions and altered the Dockerfile. Version information now includes build date and has been incorporated into the .goreleaser.yml configuration.
Enhanced the 'controller.go' file to enforce a maximum concurrency limit of 16. Also made changes in Dockerfile including setting a new repository mirror, adding git for using git commit hash at build which can be displayed through 'version.go'. This commit leads to an improved application performance, more streamlined build process and detailed version information.
Update CI/CD workflow in GitHub Actions
Changed the 'ci.yml' configuration file to trigger build process on each push event for any tag. This change optimizes the workflow to ensure code is tested and integrated on every version increment without waiting for a pull request.
Revised the condition statement in 'controller.go' to ensure maximum concurrency doesn't exceed 16. Adjusted the Dockerfile to change the repository mirror, add git, and include the git commit in the build. Updated 'version.go' to present the commit version and enhance the descriptor's detail. These changes aim to optimize the application's operation, build process, and provide more informative version details.
Adjusted cron job schedule in 'config.example.yaml' from every minute to every 12 hours to optimize performance. Refactored logging field names for consistency in 'server.go'. Improved unit tests in 'server_test.go' and changed variable names from 'handler' to 'server' for better readability and understanding of the role. Also included middleware for data compression by implementing gzip.
Renamed 'handler' package to 'server' to better reflect its role. Improved version logging by changing it to a string return function, enabling more flexible use of version information. Added version details to the start of the Controller's Start() method.
This commit refactors EPG filtering methods to be contained within the EPG struct, enhancing code organization and readability. Additionally, time parsing has been centralized through an infra package enhancing functionality and promoting code reuse. This restructuring ultimately optimizes maintainability and usage.
This commit includes the refactoring of EPG filtering function inside the EPG struct instead of being stand-alone. It also changes the time parsing to use a centralized function from the newly introduced infra package. The transformation optimizes code maintenance and usage by localizing related functions and promoting code reusability.
This commit revises the EPG model's struct tag to include mapstructure along with json. It also includes an implementation switch from goquery and otto to mapstructure for data parsing. This removes dependencies on PuerkitoBio/goquery and robertkrimen/otto. The commit also includes some minor code refactors for the more efficient handling of EPG data along with a version bump to 0.0.3.