├── docs ├── Installation.rst ├── chess_game.gif ├── modules.rst ├── requirements.txt ├── generate_docs.bat ├── Makefile ├── chess_gif.rst └── make.bat ├── src └── chess_gif │ ├── Images │ └── .placeholder │ ├── __init__.py │ ├── data │ ├── piece │ │ ├── letter │ │ │ ├── bP.svg │ │ │ ├── wP.svg │ │ │ ├── bK.svg │ │ │ ├── wK.svg │ │ │ ├── bN.svg │ │ │ ├── wN.svg │ │ │ ├── bB.svg │ │ │ ├── wB.svg │ │ │ ├── bQ.svg │ │ │ ├── bR.svg │ │ │ ├── wQ.svg │ │ │ └── wR.svg │ │ ├── mono │ │ │ ├── R.svg │ │ │ ├── P.svg │ │ │ ├── N.svg │ │ │ ├── K.svg │ │ │ ├── B.svg │ │ │ └── Q.svg │ │ ├── alpha │ │ │ ├── bP.svg │ │ │ ├── bR.svg │ │ │ ├── wR.svg │ │ │ ├── bB.svg │ │ │ ├── bH.svg │ │ │ ├── bN.svg │ │ │ ├── wH.svg │ │ │ ├── bQ.svg │ │ │ ├── wP.svg │ │ │ └── wN.svg │ │ ├── cburnett │ │ │ ├── bP.svg │ │ │ ├── wP.svg │ │ │ ├── wR.svg │ │ │ ├── bR.svg │ │ │ ├── wN.svg │ │ │ ├── wK.svg │ │ │ ├── wB.svg │ │ │ ├── bB.svg │ │ │ ├── wQ.svg │ │ │ ├── bK.svg │ │ │ ├── bN.svg │ │ │ └── bQ.svg │ │ ├── shapes │ │ │ ├── bR.svg │ │ │ ├── wR.svg │ │ │ ├── bP.svg │ │ │ ├── wP.svg │ │ │ ├── bN.svg │ │ │ ├── wN.svg │ │ │ ├── bK.svg │ │ │ ├── wK.svg │ │ │ ├── bB.svg │ │ │ ├── wB.svg │ │ │ ├── bQ.svg │ │ │ └── wQ.svg │ │ ├── chessnut │ │ │ ├── wP.svg │ │ │ ├── bP.svg │ │ │ ├── wN.svg │ │ │ ├── bN.svg │ │ │ ├── bR.svg │ │ │ └── wR.svg │ │ ├── pixel │ │ │ ├── wP.svg │ │ │ ├── bP.svg │ │ │ ├── bB.svg │ │ │ ├── wB.svg │ │ │ ├── bQ.svg │ │ │ ├── wQ.svg │ │ │ ├── bR.svg │ │ │ ├── wR.svg │ │ │ ├── bK.svg │ │ │ ├── wK.svg │ │ │ ├── bN.svg │ │ │ └── wN.svg │ │ ├── pirouetti │ │ │ ├── bR.svg │ │ │ ├── wR.svg │ │ │ ├── wB.svg │ │ │ ├── bB.svg │ │ │ ├── bP.svg │ │ │ ├── wP.svg │ │ │ ├── wN.svg │ │ │ ├── bN.svg │ │ │ ├── bQ.svg │ │ │ ├── wQ.svg │ │ │ ├── bK.svg │ │ │ └── wK.svg │ │ ├── spatial │ │ │ ├── wP.svg │ │ │ ├── bP.svg │ │ │ ├── wN.svg │ │ │ ├── bN.svg │ │ │ ├── bR.svg │ │ │ ├── wR.svg │ │ │ ├── bQ.svg │ │ │ ├── wQ.svg │ │ │ ├── bK.svg │ │ │ ├── wK.svg │ │ │ └── bB.svg │ │ ├── chess7 │ │ │ ├── bR.svg │ │ │ ├── bP.svg │ │ │ ├── wR.svg │ │ │ └── wP.svg │ │ ├── reillycraig │ │ │ ├── bR.svg │ │ │ ├── wR.svg │ │ │ ├── bB.svg │ │ │ ├── wB.svg │ │ │ ├── wP.svg │ │ │ ├── bP.svg │ │ │ ├── bK.svg │ │ │ └── wK.svg │ │ ├── merida │ │ │ ├── bP.svg │ │ │ ├── wR.svg │ │ │ ├── bR.svg │ │ │ └── wP.svg │ │ ├── riohacha │ │ │ ├── bP.svg │ │ │ ├── wP.svg │ │ │ ├── bR.svg │ │ │ ├── wR.svg │ │ │ ├── bN.svg │ │ │ ├── wN.svg │ │ │ ├── bB.svg │ │ │ ├── wB.svg │ │ │ ├── bK.svg │ │ │ ├── wK.svg │ │ │ ├── bQ.svg │ │ │ └── wQ.svg │ │ ├── kosal │ │ │ ├── bN.svg │ │ │ ├── wR.svg │ │ │ ├── bR.svg │ │ │ ├── bB.svg │ │ │ ├── bK.svg │ │ │ ├── wB.svg │ │ │ ├── wN.svg │ │ │ ├── wP.svg │ │ │ └── bQ.svg │ │ ├── maestro │ │ │ ├── bR.svg │ │ │ ├── wR.svg │ │ │ └── wP.svg │ │ ├── leipzig │ │ │ └── bP.svg │ │ ├── fantasy │ │ │ ├── bP.svg │ │ │ └── wP.svg │ │ ├── fresca │ │ │ ├── wR.svg │ │ │ ├── bP.svg │ │ │ ├── wP.svg │ │ │ └── bR.svg │ │ ├── tatiana │ │ │ ├── wP.svg │ │ │ ├── bP.svg │ │ │ ├── wR.svg │ │ │ └── bR.svg │ │ ├── icpieces │ │ │ ├── bP.svg │ │ │ ├── wP.svg │ │ │ ├── bR.svg │ │ │ ├── wR.svg │ │ │ ├── wB.svg │ │ │ └── bB.svg │ │ ├── companion │ │ │ └── wR.svg │ │ ├── staunty │ │ │ ├── wP.svg │ │ │ ├── bP.svg │ │ │ ├── wB.svg │ │ │ └── bB.svg │ │ └── cardinal │ │ │ ├── bP.svg │ │ │ ├── wR.svg │ │ │ └── wP.svg │ └── pgn │ │ ├── lichess_pgn_2020.08.01_Mrunank_vs_Blindtakes34.E2og9BtO.pgn │ │ └── lichess_pgn_2020.08.03_Mrunank_vs_prem_singh_bhati.gKZs5DjG.pgn │ └── constants.py ├── pyproject.toml ├── requirements.txt ├── MANIFEST.in ├── Pipfile ├── setup.cfg ├── .readthedocs.yml ├── LICENSE └── .github └── workflows ├── python-publish.yml └── python-package.yml /docs/Installation.rst: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/Images/.placeholder: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/__init__.py: -------------------------------------------------------------------------------- 1 | __all__ = ['create_frame', 'gif_maker'] 2 | 3 | -------------------------------------------------------------------------------- /docs/chess_game.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fork52/chess_gif/HEAD/docs/chess_game.gif -------------------------------------------------------------------------------- /docs/modules.rst: -------------------------------------------------------------------------------- 1 | chess_gif 2 | ========= 3 | 4 | .. toctree:: 5 | :maxdepth: 4 6 | 7 | chess_gif 8 | -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = [ 3 | "setuptools>=42", 4 | "wheel" 5 | ] 6 | build-backend = "setuptools.build_meta" -------------------------------------------------------------------------------- /docs/requirements.txt: -------------------------------------------------------------------------------- 1 | sphinxcontrib-napoleon 2 | sphinx-rtd-theme 3 | autodoc 4 | python-chess 5 | pyvips 6 | imageio 7 | pygifsicle 8 | Pillow 9 | requests -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | chess==1.7.0 2 | imageio==2.11.0 3 | Pillow==10.3.0 4 | pygifsicle==1.0.5 5 | pyvips==2.2.3 6 | requests==2.32.0 7 | setuptools==65.5.1 8 | -------------------------------------------------------------------------------- /MANIFEST.in: -------------------------------------------------------------------------------- 1 | include README.md LICENSE 2 | recursive-include docs/build * 3 | recursive-include src/chess_gif/Images * 4 | recursive-include src/chess_gif/data * 5 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/letter/bP.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/generate_docs.bat: -------------------------------------------------------------------------------- 1 | del /Q chess_gif.rst modules.rst create_frame.rst gif_maker.rst download_data.rst 2 | REM del /Q "../chess_gif/__init__.py" 3 | sphinx-apidoc --ext-autodoc -o . ../chess_gif/ 4 | REM echo.>"../chess_gif/__init__.py" 5 | make html 6 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/letter/wP.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/constants.py: -------------------------------------------------------------------------------- 1 | YELLOW_BLUE_THEME = ("#ffffdd", "#86a666") 2 | """ 3 | Classic blue - yellow theme. 4 | """ 5 | 6 | BROWN_YELLOW_THEME = ("#f0d9b5", "#b58863") 7 | """ 8 | Classic brown - yellow theme. 9 | """ 10 | 11 | ICE_THEME = ("#dee3e6", "#8ca2ad") 12 | """ 13 | Classic ice theme. 14 | """ 15 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/mono/R.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Pipfile: -------------------------------------------------------------------------------- 1 | [[source]] 2 | url = "https://pypi.org/simple" 3 | verify_ssl = true 4 | name = "pypi" 5 | 6 | [packages] 7 | chess = "==1.7.0" 8 | imageio = "==2.11.0" 9 | pillow = "==10.3.0" 10 | pygifsicle = "==1.0.5" 11 | pyvips = "==2.1.15" 12 | requests = "==2.32.0" 13 | 14 | [dev-packages] 15 | 16 | [requires] 17 | python_version = "3.10" 18 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/alpha/bP.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/cburnett/bP.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/cburnett/wP.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/mono/P.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/mono/N.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/mono/K.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/cburnett/wR.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/mono/B.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/alpha/bR.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/shapes/bR.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/shapes/wR.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/cburnett/bR.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/shapes/bP.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/shapes/wP.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/cburnett/wN.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/cburnett/wK.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/shapes/bN.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/shapes/wN.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/chessnut/wP.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/pixel/wP.svg: -------------------------------------------------------------------------------- 1 | 2 | Made with Pixels to Svg https://codepen.io/shshaw/pen/XbxvNj 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/pixel/bP.svg: -------------------------------------------------------------------------------- 1 | 2 | Made with Pixels to Svg https://codepen.io/shshaw/pen/XbxvNj 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/shapes/bK.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/shapes/wK.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/Makefile: -------------------------------------------------------------------------------- 1 | # Minimal makefile for Sphinx documentation 2 | # 3 | 4 | # You can set these variables from the command line, and also 5 | # from the environment for the first two. 6 | SPHINXOPTS ?= 7 | SPHINXBUILD ?= sphinx-build 8 | SOURCEDIR = . 9 | BUILDDIR = _build 10 | 11 | # Put it first so that "make" without argument is like "make help". 12 | help: 13 | @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 14 | 15 | .PHONY: help Makefile 16 | 17 | # Catch-all target: route all unknown targets to Sphinx using the new 18 | # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). 19 | %: Makefile 20 | @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 21 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/cburnett/wB.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/pixel/bB.svg: -------------------------------------------------------------------------------- 1 | 2 | Made with Pixels to Svg https://codepen.io/shshaw/pen/XbxvNj 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/pixel/wB.svg: -------------------------------------------------------------------------------- 1 | 2 | Made with Pixels to Svg https://codepen.io/shshaw/pen/XbxvNj 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/mono/Q.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/cburnett/bB.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/pixel/bQ.svg: -------------------------------------------------------------------------------- 1 | 2 | Made with Pixels to Svg https://codepen.io/shshaw/pen/XbxvNj 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/pixel/wQ.svg: -------------------------------------------------------------------------------- 1 | 2 | Made with Pixels to Svg https://codepen.io/shshaw/pen/XbxvNj 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/pixel/bR.svg: -------------------------------------------------------------------------------- 1 | 2 | Made with Pixels to Svg https://codepen.io/shshaw/pen/XbxvNj 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/pixel/wR.svg: -------------------------------------------------------------------------------- 1 | 2 | Made with Pixels to Svg https://codepen.io/shshaw/pen/XbxvNj 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/shapes/bB.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/shapes/wB.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/pirouetti/bR.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/pirouetti/wR.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/chessnut/bP.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/spatial/wP.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/cburnett/wQ.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/chess7/bR.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/spatial/bP.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/pixel/bK.svg: -------------------------------------------------------------------------------- 1 | 2 | Made with Pixels to Svg https://codepen.io/shshaw/pen/XbxvNj 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/pixel/wK.svg: -------------------------------------------------------------------------------- 1 | 2 | Made with Pixels to Svg https://codepen.io/shshaw/pen/XbxvNj 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /docs/chess_gif.rst: -------------------------------------------------------------------------------- 1 | chess\_gif package 2 | ================== 3 | 4 | Submodules 5 | ---------- 6 | 7 | chess\_gif.create\_frame module 8 | ------------------------------- 9 | 10 | .. automodule:: chess_gif.create_frame 11 | :members: 12 | :undoc-members: 13 | :show-inheritance: 14 | 15 | chess\_gif.download\_data module 16 | -------------------------------- 17 | 18 | .. automodule:: chess_gif.download_data 19 | :members: 20 | :undoc-members: 21 | :show-inheritance: 22 | 23 | chess\_gif.gif\_maker module 24 | ---------------------------- 25 | 26 | .. automodule:: chess_gif.gif_maker 27 | :members: 28 | :undoc-members: 29 | :show-inheritance: 30 | 31 | Module contents 32 | --------------- 33 | 34 | .. automodule:: chess_gif 35 | :members: 36 | :undoc-members: 37 | :show-inheritance: 38 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/pixel/bN.svg: -------------------------------------------------------------------------------- 1 | 2 | Made with Pixels to Svg https://codepen.io/shshaw/pen/XbxvNj 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/cburnett/bK.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/cburnett/bN.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/pixel/wN.svg: -------------------------------------------------------------------------------- 1 | 2 | Made with Pixels to Svg https://codepen.io/shshaw/pen/XbxvNj 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/reillycraig/bR.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/shapes/bQ.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/shapes/wQ.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/reillycraig/wR.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /setup.cfg: -------------------------------------------------------------------------------- 1 | [metadata] 2 | name = chess_gif 3 | version = 1.2.0 4 | author = Mrunank Mistry 5 | author_email = mrunankmistry52@gmail.com 6 | description = A package for creating GIFs of chess game from PGN files. 7 | long_description = file: README.md 8 | long_description_content_type = text/markdown 9 | url = https://github.com/fork52/chess_gif 10 | project_urls = 11 | Bug Tracker = https://github.com/fork52/chess_gif/issues 12 | classifiers = 13 | Programming Language :: Python :: 3 14 | License :: OSI Approved :: MIT License 15 | Operating System :: OS Independent 16 | 17 | [options] 18 | package_dir = 19 | = src 20 | packages = find: 21 | python_requires = >= 3.9 22 | install_requires = 23 | python-chess 24 | pyvips 25 | imageio 26 | pygifsicle 27 | Pillow 28 | zip_safe = False 29 | include_package_data = True 30 | 31 | [options.packages.find] 32 | where = src 33 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/merida/bP.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.readthedocs.yml: -------------------------------------------------------------------------------- 1 | # .readthedocs.yml 2 | # Read the Docs configuration file 3 | # See https://docs.readthedocs.io/en/stable/config-file/v2.html for details 4 | 5 | # Required 6 | version: 2 7 | 8 | # Set the OS, Python version and other tools you might need 9 | build: 10 | os: ubuntu-22.04 11 | tools: 12 | python: "3.7" 13 | # You can also specify other tool versions: 14 | # nodejs: "20" 15 | # rust: "1.70" 16 | # golang: "1.20" 17 | 18 | # Build documentation in the docs/ directory with Sphinx 19 | sphinx: 20 | configuration: docs/conf.py 21 | 22 | # Build documentation with MkDocs 23 | #mkdocs: 24 | # configuration: mkdocs.yml 25 | 26 | # Optionally build your docs in additional formats such as PDF 27 | # formats: 28 | # - pdf 29 | 30 | # Optionally set the version of Python and requirements required to build your docs 31 | python: 32 | install: 33 | - requirements: docs/requirements.txt -------------------------------------------------------------------------------- /docs/make.bat: -------------------------------------------------------------------------------- 1 | @ECHO OFF 2 | 3 | pushd %~dp0 4 | 5 | REM Command file for Sphinx documentation 6 | 7 | if "%SPHINXBUILD%" == "" ( 8 | set SPHINXBUILD=sphinx-build 9 | ) 10 | set SOURCEDIR=. 11 | set BUILDDIR=_build 12 | 13 | if "%1" == "" goto help 14 | 15 | %SPHINXBUILD% >NUL 2>NUL 16 | if errorlevel 9009 ( 17 | echo. 18 | echo.The 'sphinx-build' command was not found. Make sure you have Sphinx 19 | echo.installed, then set the SPHINXBUILD environment variable to point 20 | echo.to the full path of the 'sphinx-build' executable. Alternatively you 21 | echo.may add the Sphinx directory to PATH. 22 | echo. 23 | echo.If you don't have Sphinx installed, grab it from 24 | echo.http://sphinx-doc.org/ 25 | exit /b 1 26 | ) 27 | 28 | %SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% 29 | goto end 30 | 31 | :help 32 | %SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% 33 | 34 | :end 35 | popd 36 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/cburnett/bQ.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/chessnut/wN.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/chessnut/bN.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/riohacha/bP.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/riohacha/wP.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/letter/bK.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/merida/wR.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/pirouetti/wB.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/merida/bR.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/letter/wK.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/pirouetti/bB.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/pirouetti/bP.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/pirouetti/wP.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/pirouetti/wN.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/chess7/bP.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/pirouetti/bN.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/pirouetti/bQ.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/pirouetti/wQ.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/reillycraig/bB.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/letter/bN.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/letter/wN.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/reillycraig/wB.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/alpha/wR.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/letter/bB.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Mrunank Mistry 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/alpha/bB.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/alpha/bH.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/letter/wB.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/reillycraig/wP.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/spatial/wN.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/spatial/bN.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/kosal/bN.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 10 | 11 | 14 | 15 | 16 | 18 | 19 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/kosal/wR.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 9 | 12 | 14 | 17 | 18 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/kosal/bR.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 10 | 11 | 12 | 13 | 14 | 15 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/riohacha/bR.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/riohacha/wR.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/reillycraig/bP.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.github/workflows/python-publish.yml: -------------------------------------------------------------------------------- 1 | # This workflow will upload a Python Package using Twine when a release is created 2 | # For more information see: https://help.github.com/en/actions/language-and-framework-guides/using-python-with-github-actions#publishing-to-package-registries 3 | 4 | # This workflow uses actions that are not certified by GitHub. 5 | # They are provided by a third-party and are governed by 6 | # separate terms of service, privacy policy, and support 7 | # documentation. 8 | 9 | name: Upload Python Package 10 | 11 | on: 12 | push: 13 | branches: 14 | - master 15 | 16 | jobs: 17 | deploy: 18 | runs-on: ubuntu-latest 19 | 20 | steps: 21 | - uses: actions/checkout@v2 22 | - name: Set up Python 23 | uses: actions/setup-python@v2 24 | with: 25 | python-version: '3.x' 26 | - name: Install dependencies 27 | run: | 28 | sudo apt-get install -y gifsicle 29 | python -m pip install --upgrade pip 30 | pip install build 31 | - name: Build package 32 | run: python -m build 33 | - name: Publish package 34 | uses: pypa/gh-action-pypi-publish@27b31702a0e7fc50959f5ad993c78deac1bdfc29 35 | with: 36 | user: __token__ 37 | password: ${{ secrets.PYPI_API_TOKEN }} 38 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/letter/bQ.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/maestro/bR.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/letter/bR.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/letter/wQ.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/letter/wR.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/alpha/bN.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/alpha/wH.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/leipzig/bP.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/riohacha/bN.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/riohacha/wN.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/fantasy/bP.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/fantasy/wP.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/kosal/bB.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 10 | 11 | 12 | 13 | 15 | 17 | 18 | 19 | 20 | 21 | 23 | 24 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/riohacha/bB.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/riohacha/wB.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/reillycraig/bK.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/kosal/bK.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 10 | 11 | 14 | 16 | 17 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /src/chess_gif/data/pgn/lichess_pgn_2020.08.01_Mrunank_vs_Blindtakes34.E2og9BtO.pgn: -------------------------------------------------------------------------------- 1 | [Event "Casual Bullet game"] 2 | [Site "https://lichess.org/E2og9BtO"] 3 | [Date "2020.08.01"] 4 | [White "Mrunank"] 5 | [Black "Blindtakes34"] 6 | [Result "1-0"] 7 | [UTCDate "2020.08.01"] 8 | [UTCTime "04:01:42"] 9 | [WhiteElo "2063"] 10 | [BlackElo "1424"] 11 | [Variant "Standard"] 12 | [TimeControl "120+1"] 13 | [ECO "A43"] 14 | [Opening "Old Benoni Defense"] 15 | [Termination "Normal"] 16 | [Annotator "lichess.org"] 17 | 18 | 1. d4 { [%clk 0:02:00] } c5 { [%clk 0:02:00] } { A43 Old Benoni Defense } 2. c4 { [%clk 0:02:01] } cxd4 { [%clk 0:02:00] } 3. Qxd4 { [%clk 0:02:01] } Nc6 { [%clk 0:02:01] } 4. Qd1 { [%clk 0:02:01] } e6 { [%clk 0:02:01] } 5. g3 { [%clk 0:02:00] } d5 { [%clk 0:01:59] } 6. cxd5 { [%clk 0:02:00] } exd5 { [%clk 0:02:00] } 7. Bg2 { [%clk 0:02:00] } Be6 { [%clk 0:02:01] } 8. Nf3 { [%clk 0:02:00] } Nf6 { [%clk 0:02:01] } 9. O-O { [%clk 0:02:00] } Bb4 { [%clk 0:01:52] } 10. e3 { [%clk 0:02:00] } O-O { [%clk 0:01:51] } 11. a3 { [%clk 0:02:00] } Ba5 { [%clk 0:01:51] } 12. Nc3 { [%clk 0:01:59] } Qd7 { [%clk 0:01:45] } 13. b4 { [%clk 0:01:56] } Bb6 { [%clk 0:01:34] } 14. Bb2 { [%clk 0:01:55] } Rfe8 { [%clk 0:01:29] } 15. Rc1 { [%clk 0:01:48] } Rac8 { [%clk 0:01:28] } 16. Na4 { [%clk 0:01:48] } Ne4 { [%clk 0:01:17] } 17. Nxb6 { [%clk 0:01:46] } axb6 { [%clk 0:01:18] } 18. Nd4 { [%clk 0:01:44] } Nxd4 { [%clk 0:01:16] } 19. Qxd4 { [%clk 0:01:43] } Bh3 { [%clk 0:01:09] } 20. Qxg7# { [%clk 0:01:16] } { White wins by checkmate. } 1-0 19 | 20 | 21 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/pirouetti/bK.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/pirouetti/wK.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/reillycraig/wK.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/fresca/wR.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | image/svg+xml 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/kosal/wB.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 10 | 11 | 14 | 15 | 16 | 17 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /.github/workflows/python-package.yml: -------------------------------------------------------------------------------- 1 | # This workflow will install Python dependencies, run tests and lint with a variety of Python versions 2 | # For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions 3 | 4 | name: Python package 5 | 6 | on: 7 | push: 8 | pull_request: 9 | 10 | 11 | jobs: 12 | build: 13 | 14 | runs-on: ubuntu-latest 15 | strategy: 16 | fail-fast: false 17 | matrix: 18 | python-version: ["3.9", "3.10"] 19 | 20 | steps: 21 | - uses: actions/checkout@v2 22 | - name: Set up Python ${{ matrix.python-version }} 23 | uses: actions/setup-python@v2 24 | with: 25 | python-version: ${{ matrix.python-version }} 26 | - name: Install dependencies 27 | run: | 28 | sudo apt-get install -y gifsicle 29 | python -m pip install --upgrade pip 30 | python -m pip install flake8 pytest build 31 | sudo apt-get install -y libvips 32 | pip uninstall pyvips 33 | pip install pyvips --no-cache-dir 34 | if [ -f requirements.txt ]; then pip install -r requirements.txt; fi 35 | python -m build 36 | pip3 install . 37 | - name: Lint with flake8 38 | run: | 39 | # stop the build if there are Python syntax errors or undefined names 40 | flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics 41 | # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide 42 | flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics 43 | - name: Test with pytest 44 | run: | 45 | pytest 46 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/riohacha/bK.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/riohacha/wK.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/spatial/bR.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/spatial/wR.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/fresca/bP.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | image/svg+xml 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/fresca/wP.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | image/svg+xml 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/tatiana/wP.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/spatial/bQ.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/chess7/wR.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/spatial/wQ.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/tatiana/bP.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/icpieces/bP.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/icpieces/wP.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/spatial/bK.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/tatiana/wR.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/tatiana/bR.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/kosal/wN.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 9 | 12 | 13 | 15 | 17 | 22 | 23 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/spatial/wK.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/kosal/wP.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 11 | 12 | 14 | 15 | 16 | 17 | 18 | 20 | 21 | 22 | 24 | 28 | 29 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/alpha/bQ.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/icpieces/bR.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/alpha/wP.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/icpieces/wR.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/icpieces/wB.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/maestro/wR.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | image/svg+xml 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/merida/wP.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/companion/wR.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/pgn/lichess_pgn_2020.08.03_Mrunank_vs_prem_singh_bhati.gKZs5DjG.pgn: -------------------------------------------------------------------------------- 1 | [Event "Rated Bullet game"] 2 | [Site "https://lichess.org/gKZs5DjG"] 3 | [Date "2020.08.03"] 4 | [White "Mrunank"] 5 | [Black "prem_singh_bhati"] 6 | [Result "1-0"] 7 | [UTCDate "2020.08.03"] 8 | [UTCTime "16:09:46"] 9 | [WhiteElo "1942"] 10 | [BlackElo "1869"] 11 | [WhiteRatingDiff "+4"] 12 | [BlackRatingDiff "-4"] 13 | [Variant "Standard"] 14 | [TimeControl "60+0"] 15 | [ECO "D30"] 16 | [Opening "Queen's Gambit Declined"] 17 | [Termination "Normal"] 18 | [Annotator "lichess.org"] 19 | 20 | 1. d4 { [%clk 0:01:00] } d5 { [%clk 0:01:00] } 2. c4 { [%clk 0:01:00] } e6 { [%clk 0:01:00] } { D30 Queen's Gambit Declined } 3. e3 { [%clk 0:00:59] } Nf6 { [%clk 0:00:59] } 4. Nc3 { [%clk 0:00:59] } Bb4 { [%clk 0:00:58] } 5. Nf3 { [%clk 0:00:59] } Bxc3+ { [%clk 0:00:58] } 6. bxc3 { [%clk 0:00:58] } O-O { [%clk 0:00:58] } 7. Bd3 { [%clk 0:00:57] } Nbd7 { [%clk 0:00:56] } 8. O-O { [%clk 0:00:57] } Nb6 { [%clk 0:00:56] } 9. cxd5 { [%clk 0:00:55] } exd5 { [%clk 0:00:55] } 10. Bd2 { [%clk 0:00:54] } Bg4 { [%clk 0:00:54] } 11. Ne5 { [%clk 0:00:53] } Bf3 { [%clk 0:00:54] } 12. Nxf3 { [%clk 0:00:52] } Nc4 { [%clk 0:00:48] } 13. Bxc4 { [%clk 0:00:51] } dxc4 { [%clk 0:00:48] } 14. Ne5 { [%clk 0:00:50] } Re8 { [%clk 0:00:46] } 15. Nxc4 { [%clk 0:00:49] } Qd5 { [%clk 0:00:45] } 16. Ne5 { [%clk 0:00:48] } Rxe5 { [%clk 0:00:43] } 17. dxe5 { [%clk 0:00:48] } Qxe5 { [%clk 0:00:43] } 18. Rc1 { [%clk 0:00:45] } Re8 { [%clk 0:00:43] } 19. c4 { [%clk 0:00:45] } Ne4 { [%clk 0:00:42] } 20. Bb4 { [%clk 0:00:41] } Rd8 { [%clk 0:00:42] } 21. Qf3 { [%clk 0:00:40] } Nd2 { [%clk 0:00:39] } 22. Bxd2 { [%clk 0:00:39] } Rxd2 { [%clk 0:00:36] } 23. Qxb7 { [%clk 0:00:37] } h6 { [%clk 0:00:33] } 24. Qf3 { [%clk 0:00:35] } Qb2 { [%clk 0:00:31] } 25. h3 { [%clk 0:00:31] } Qxa2 { [%clk 0:00:31] } 26. Rfd1 { [%clk 0:00:31] } Rb2 { [%clk 0:00:29] } 27. Qe4 { [%clk 0:00:27] } Rxf2 { [%clk 0:00:25] } 28. Rd8# { [%clk 0:00:26] } { White wins by checkmate. } 1-0 21 | 22 | 23 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/chessnut/bR.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/staunty/wP.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/kosal/bQ.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 10 | 11 | 13 | 14 | 15 | 16 | 17 | 19 | 20 | 22 | 23 | 25 | 26 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/icpieces/bB.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/staunty/bP.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/cardinal/bP.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | image/svg+xml 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/riohacha/bQ.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/riohacha/wQ.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/fresca/bR.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | image/svg+xml 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/chess7/wP.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/staunty/wB.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/cardinal/wR.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | image/svg+xml 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/chessnut/wR.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/staunty/bB.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/maestro/wP.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/alpha/wN.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/cardinal/wP.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | image/svg+xml 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /src/chess_gif/data/piece/spatial/bB.svg: -------------------------------------------------------------------------------- 1 | --------------------------------------------------------------------------------