First off, thank you for considering contributing to AniFin! It's people like you that make AniFin such a great tool.
This project and everyone participating in it is governed by our Code of Conduct. By participating, you are expected to uphold this code.
Before creating bug reports, please check the existing issues as you might find out that you don't need to create one. When you are creating a bug report, please include as many details as possible using our bug report template.
Enhancement suggestions are tracked as GitHub issues. When creating an enhancement suggestion, please include:
- A clear and descriptive title
- A detailed description of the proposed feature
- Explain why this enhancement would be useful
- List any alternatives you've considered
- Fork the repo and create your branch from
main - If you've added code that should be tested, add tests
- Ensure the test suite passes
- Make sure your code follows the existing style
- Write a clear commit message
- Open a pull request!
- .NET 6.0 SDK or higher
- Jellyfin 10.8.0 or higher (for testing)
- AniWorld CLI installed
# Clone your fork
git clone https://github.com/YOUR-USERNAME/AniFin.git
cd AniFin
# Build the project
dotnet build
# Run tests (if available)
dotnet test- Copy the compiled DLL to your Jellyfin plugins directory
- Restart Jellyfin
- Test your changes thoroughly
- Check the logs for any errors
- Use the present tense ("Add feature" not "Added feature")
- Use the imperative mood ("Move cursor to..." not "Moves cursor to...")
- Limit the first line to 72 characters or less
- Reference issues and pull requests liberally after the first line
Example:
Add support for batch downloads
- Implement queue system for multiple series
- Add UI controls for batch operations
- Update documentation
Fixes #123
- Follow Microsoft's C# Coding Conventions
- Use meaningful variable and method names
- Add XML documentation comments to public methods
- Keep methods focused and small
- Use async/await for asynchronous operations
- Update the README.md if you change functionality
- Comment your code where necessary
- Update API documentation for any endpoint changes
AniFin/
├── Jellyfin.Plugin.AniFin/
│ ├── Api/ # API Controllers
│ ├── Configuration/ # Plugin configuration
│ ├── Modules/ # Core functionality
│ │ ├── DownloadExecuter.cs
│ │ └── DownloadQueue.cs
│ ├── Web/ # Web interface files
│ └── Plugin.cs # Main plugin class
└── README.md
- Plugin installs correctly
- Configuration page loads and saves settings
- Downloads can be added to queue
- Queue processes downloads correctly
- Files are organized properly
- Browser extension works (if modified)
- Logs are generated correctly
Feel free to open an issue with the label question if you have any questions about contributing!
By contributing, you agree that your contributions will be licensed under the same license as the project.