{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":511544789,"defaultBranch":"main","name":"Chocolate","ownerLogin":"ChocolateApp","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2022-07-07T13:46:03.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/111666352?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1711440213.0","currentOid":""},"activityList":{"items":[{"before":"1f5b3abea09dab00f5c5d0996f8dc1583c0826c7","after":"dd33d203df7cdfff7bd7c4948bff1477b3db3ed2","ref":"refs/heads/dev","pushedAt":"2024-05-06T14:42:03.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"Impre-visible","name":"Impre'visible","path":"/Impre-visible","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/69050895?s=80&v=4"},"commit":{"message":"Merge branch 'dev' of https://github.com/ChocolateApp/Chocolate into dev","shortMessageHtmlLink":"Merge branch 'dev' of https://github.com/ChocolateApp/Chocolate into dev"}},{"before":"396715715b1f2c8a3bfc3fa0bd7d5a992cdeaa87","after":"1f5b3abea09dab00f5c5d0996f8dc1583c0826c7","ref":"refs/heads/dev","pushedAt":"2024-04-29T10:12:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Impre-visible","name":"Impre'visible","path":"/Impre-visible","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/69050895?s=80&v=4"},"commit":{"message":"📝 (pyproject.toml): Version from 7.0.9 to 8.0.1","shortMessageHtmlLink":"📝 (pyproject.toml): Version from 7.0.9 to 8.0.1"}},{"before":"fb1c93ebc044f7cda35687b3df2064c554b2e0a1","after":"396715715b1f2c8a3bfc3fa0bd7d5a992cdeaa87","ref":"refs/heads/dev","pushedAt":"2024-04-23T14:23:09.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Impre-visible","name":"Impre'visible","path":"/Impre-visible","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/69050895?s=80&v=4"},"commit":{"message":"🐛 Fix: handled the fact where a plugin don't have yaml content","shortMessageHtmlLink":"🐛 Fix: handled the fact where a plugin don't have yaml content"}},{"before":"63211de3640075cdb8cbf13ba5fe46e011c82882","after":"fb1c93ebc044f7cda35687b3df2064c554b2e0a1","ref":"refs/heads/dev","pushedAt":"2024-04-23T14:19:24.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"Impre-visible","name":"Impre'visible","path":"/Impre-visible","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/69050895?s=80&v=4"},"commit":{"message":"🎨 Impr: upgraded FrontEndRebuilder code","shortMessageHtmlLink":"🎨 Impr: upgraded FrontEndRebuilder code"}},{"before":"3ede92ddd1e1c921fe8f5eb7c29d59a4a118dee6","after":"63211de3640075cdb8cbf13ba5fe46e011c82882","ref":"refs/heads/dev","pushedAt":"2024-04-23T14:16:17.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Impre-visible","name":"Impre'visible","path":"/Impre-visible","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/69050895?s=80&v=4"},"commit":{"message":"✨ Feat: Intro detection fully available","shortMessageHtmlLink":"✨ Feat: Intro detection fully available"}},{"before":"4eb2a0876692d018a55f22389d7688940e0b84eb","after":"3ede92ddd1e1c921fe8f5eb7c29d59a4a118dee6","ref":"refs/heads/dev","pushedAt":"2024-04-23T14:14:32.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Impre-visible","name":"Impre'visible","path":"/Impre-visible","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/69050895?s=80&v=4"},"commit":{"message":"🔠 Trad: Added words to some traduction files\n✨ Feat: Enabled intro_detection to Chocolate through a route taht require admin privileges","shortMessageHtmlLink":"🔠 Trad: Added words to some traduction files"}},{"before":"57b09ced63f5f0ac5f34a110616a176428a3c884","after":"4eb2a0876692d018a55f22389d7688940e0b84eb","ref":"refs/heads/dev","pushedAt":"2024-03-28T10:14:54.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Impre-visible","name":"Impre'visible","path":"/Impre-visible","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/69050895?s=80&v=4"},"commit":{"message":"🐛 (scans.py): fix a bug where getOthersVideos function was not handling the case when allVideosPath is None\n✨ (scans.py): add a default value of None to the allVideosPath parameter in the getOthersVideos function to handle the case when it is not provided","shortMessageHtmlLink":"🐛 (scans.py): fix a bug where getOthersVideos function was not handli…"}},{"before":"550d2ee3c1a6e2057d69c1fcf6d96bed08d40a98","after":"57b09ced63f5f0ac5f34a110616a176428a3c884","ref":"refs/heads/dev","pushedAt":"2024-03-27T06:58:14.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Impre-visible","name":"Impre'visible","path":"/Impre-visible","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/69050895?s=80&v=4"},"commit":{"message":"Corriger la signature de la fonction getOthersVideos() dans scans.py","shortMessageHtmlLink":"Corriger la signature de la fonction getOthersVideos() dans scans.py"}},{"before":"b312b7844016b82a4dc5658cb37b736d4145a252","after":"550d2ee3c1a6e2057d69c1fcf6d96bed08d40a98","ref":"refs/heads/dev","pushedAt":"2024-03-27T06:17:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Impre-visible","name":"Impre'visible","path":"/Impre-visible","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/69050895?s=80&v=4"},"commit":{"message":"🔧 (FrontEndRebuilder.py): create static and templates directories if they don't exist to ensure proper file structure for the frontend build process","shortMessageHtmlLink":"🔧 (FrontEndRebuilder.py): create static and templates directories if …"}},{"before":"700294a7aa59c9143c295b63b49e905968ba2bd7","after":"b312b7844016b82a4dc5658cb37b736d4145a252","ref":"refs/heads/dev","pushedAt":"2024-03-27T06:15:44.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Impre-visible","name":"Impre'visible","path":"/Impre-visible","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/69050895?s=80&v=4"},"commit":{"message":"🐛 (FrontEndRebuilder.py): fix issue with missing frontend_temp directory when cloning the ChocolateReact repository\n✨ (FrontEndRebuilder.py): create frontend_temp directory if it doesn't exist before cloning the ChocolateReact repository\n♻️ (FrontEndRebuilder.py): remove unnecessary comment about copying index.html file","shortMessageHtmlLink":"🐛 (FrontEndRebuilder.py): fix issue with missing frontend_temp direct…"}},{"before":"70d43bc5caf5b2d95dc6d87675e7f08f4a990333","after":"700294a7aa59c9143c295b63b49e905968ba2bd7","ref":"refs/heads/dev","pushedAt":"2024-03-26T10:56:36.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Impre-visible","name":"Impre'visible","path":"/Impre-visible","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/69050895?s=80&v=4"},"commit":{"message":"📝 (pyproject.toml): update version from 7.0.9 to 7.1.9 to reflect the latest changes in the project\n📝 (pyproject.toml): reformat authors list to improve readability\n📝 (pyproject.toml): reformat license field to improve readability\n📝 (pyproject.toml): reformat lint list to improve readability\n📝 (pyproject.toml): remove trailing whitespace at the end of the file\n📝 (pyproject.toml): remove unused import in __init__.py\n📝 (pyproject.toml): remove unused import and Flag class in __main__.py\n📝 (pyproject.toml): remove unused imports in scans.py\n📝 (pyproject.toml): remove unused imports in tables.py","shortMessageHtmlLink":"📝 (pyproject.toml): update version from 7.0.9 to 7.1.9 to reflect the…"}},{"before":"a7e53664a97647bb21b2ebe3dddc2ac58884bcad","after":"70d43bc5caf5b2d95dc6d87675e7f08f4a990333","ref":"refs/heads/dev","pushedAt":"2024-03-26T08:18:08.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"Impre-visible","name":"Impre'visible","path":"/Impre-visible","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/69050895?s=80&v=4"},"commit":{"message":"Merge branch 'plugin_html_injection' into dev","shortMessageHtmlLink":"Merge branch 'plugin_html_injection' into dev"}},{"before":"39a587d5e5278bceaf10bef7049ea583d00afdce","after":"b6bc64f8cbc324b9b1d5d98c0491403dbfe8ad17","ref":"refs/heads/plugin_html_injection","pushedAt":"2024-03-26T08:14:58.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"Impre-visible","name":"Impre'visible","path":"/Impre-visible","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/69050895?s=80&v=4"},"commit":{"message":"Feat: Working on intro detection","shortMessageHtmlLink":"Feat: Working on intro detection"}},{"before":"8487dca3bc6d18b5269e7a857b8a3db49057c1db","after":"a7e53664a97647bb21b2ebe3dddc2ac58884bcad","ref":"refs/heads/dev","pushedAt":"2024-03-26T08:10:41.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Impre-visible","name":"Impre'visible","path":"/Impre-visible","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/69050895?s=80&v=4"},"commit":{"message":"📝: fix indentation and add type annotations for better code readability","shortMessageHtmlLink":"📝: fix indentation and add type annotations for better code readability"}},{"before":null,"after":"faec855800fb6d68d66a714da5ef5b5ef8472a55","ref":"refs/heads/intro-detection","pushedAt":"2024-03-26T08:03:33.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Impre-visible","name":"Impre'visible","path":"/Impre-visible","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/69050895?s=80&v=4"},"commit":{"message":"📝: fix indentation and add type annotations for better code readability","shortMessageHtmlLink":"📝: fix indentation and add type annotations for better code readability"}},{"before":"a4f897ea636b6024985e358aafb5d4f5d3b1cdc4","after":"39a587d5e5278bceaf10bef7049ea583d00afdce","ref":"refs/heads/plugin_html_injection","pushedAt":"2024-03-26T07:52:19.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Impre-visible","name":"Impre'visible","path":"/Impre-visible","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/69050895?s=80&v=4"},"commit":{"message":"✨ (FrontEndRebuilder.py): add support for handling new frontend plugins and rebuilding the frontend when changes are detected\n🐛 (FrontEndRebuilder.py): fix issue with deleting frontend temp folder","shortMessageHtmlLink":"✨ (FrontEndRebuilder.py): add support for handling new frontend plugi…"}},{"before":"8487dca3bc6d18b5269e7a857b8a3db49057c1db","after":"a4f897ea636b6024985e358aafb5d4f5d3b1cdc4","ref":"refs/heads/plugin_html_injection","pushedAt":"2024-03-21T17:57:22.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Impre-visible","name":"Impre'visible","path":"/Impre-visible","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/69050895?s=80&v=4"},"commit":{"message":"🔧 (pyproject.toml): add jsbeautifier package as a dependency to improve code formatting\n♻️ (plugins_loader.py): remove unused import of inject_html module\n♻️ (plugins_loader.py): remove unused plugins_dynamic route\n♻️ (plugins_loader.py): remove unused start_chocolate function\n♻️ (plugins_loader.py): remove unused import of FrontEndRebuilder class\n♻️ (plugins_loader.py): remove unused import of inject_html module\n♻️ (plugins_loader.py): remove unused import of inject_html module\n♻️ (plugins_loader.py): remove unused import of inject_html module\n♻️ (plugins_loader.py): remove unused import of inject_html module\n♻️ (plugins_loader.py): remove unused import of inject_html module\n♻️ (plugins_loader.py): remove unused import of inject_html module\n♻️ (plugins_loader.py): remove unused import of inject_html module\n♻️ (plugins_loader.py): remove unused import of inject_html module\n♻️ (plugins_loader.py): remove unused import of inject_html module\n♻️ (plugins_loader.py): remove unused import of inject_html module\n♻️ (plugins_loader.py): remove unused import of inject_html module\n♻️ (plugins_loader.py): remove unused import of inject_html module\n♻️ (plugins_loader.py): remove unused import of inject_html module\n♻️ (plugins_loader.py): remove unused import of inject_html module\n♻️ (plugins_loader.py): remove unused import of inject_html module\n♻️ (plugins_loader.py): remove unused import of inject_html module\n♻️ (plugins_loader.py): remove unused import of inject_html module\n♻️ (plugins_loader.py): remove unused import of inject_html module\n♻️ (plugins_loader.py): remove unused import of inject_html module\n♻️ (plugins_loader.py): remove unused import of inject_html module\n♻️ (plugins_loader.py): remove unused import of inject_html module\n♻️ (plugins_loader.py): remove unused import of inject_html module\n♻️ (plugins_loader.py): remove unused import of inject_html module\n♻️ (plugins_loader.py): remove unused import of inject_html module\n♻️ (plugins_loader.py): remove unused import of inject_html module\n♻️ (plugins_loader.py): remove unused import of inject_html\n\n✨ (FrontEndRebuilder.py): add a new file FrontEndRebuilder.py to handle the rebuilding of the frontend based on installed plugins\n♻️ (events.py): refactor events.py to use a class-based approach for managing events and add constants for event names\n\n🔧 (inject_html.py): remove unused code and functions related to injecting and replacing HTML in a page\n♻️ (loader.py): move plugin files from the root directory to the backend directory to improve project structure\n♻️ (routes.py): add support for specifying HTTP methods for routes to improve flexibility\n♻️ (scans.py): remove unnecessary comments and improve code readability by removing unused code and simplifying logic\n♻️ (utils.py): refactor get_chunk_user_token function to use the Authorization header instead of X-User-Token header for consistency and clarity","shortMessageHtmlLink":"🔧 (pyproject.toml): add jsbeautifier package as a dependency to impro…"}},{"before":null,"after":"8487dca3bc6d18b5269e7a857b8a3db49057c1db","ref":"refs/heads/plugin_html_injection","pushedAt":"2024-03-15T16:20:16.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Impre-visible","name":"Impre'visible","path":"/Impre-visible","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/69050895?s=80&v=4"},"commit":{"message":"📝 (inject_html.py): add new function `plugins_dynamic` to generate and serve dynamic JavaScript code for injecting HTML into the page\n✨ (inject_html.py): add new function `on` to inject HTML into a page based on a pattern and parent query selector\n✨ (inject_html.py): add new function `replace` to replace HTML in a page based on a pattern and parent query selector\n✨ (inject_html.py): add new function `javascript` to add custom JavaScript code\n📝 (inject_html.py): add new function `generate_js` to generate the JavaScript code for injecting HTML\n✨ (index.html): add new script tag to load the dynamic JavaScript code generated by `plugins_dynamic` function","shortMessageHtmlLink":"📝 (inject_html.py): add new function plugins_dynamic to generate an…"}},{"before":"074db5057220cccde8b73d865de311edfb8ef772","after":"8487dca3bc6d18b5269e7a857b8a3db49057c1db","ref":"refs/heads/dev","pushedAt":"2024-03-14T17:42:06.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Impre-visible","name":"Impre'visible","path":"/Impre-visible","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/69050895?s=80&v=4"},"commit":{"message":"📝 (inject_html.py): add new function `plugins_dynamic` to generate and serve dynamic JavaScript code for injecting HTML into the page\n✨ (inject_html.py): add new function `on` to inject HTML into a page based on a pattern and parent query selector\n✨ (inject_html.py): add new function `replace` to replace HTML in a page based on a pattern and parent query selector\n✨ (inject_html.py): add new function `javascript` to add custom JavaScript code\n📝 (inject_html.py): add new function `generate_js` to generate the JavaScript code for injecting HTML\n✨ (index.html): add new script tag to load the dynamic JavaScript code generated by `plugins_dynamic` function","shortMessageHtmlLink":"📝 (inject_html.py): add new function plugins_dynamic to generate an…"}},{"before":"218017764f47b9fa3e5c6cc61bbc8bc5108acf03","after":"074db5057220cccde8b73d865de311edfb8ef772","ref":"refs/heads/dev","pushedAt":"2024-03-14T15:38:14.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"Impre-visible","name":"Impre'visible","path":"/Impre-visible","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/69050895?s=80&v=4"},"commit":{"message":"Patch: Check if season_id exists to prevent errors","shortMessageHtmlLink":"Patch: Check if season_id exists to prevent errors"}},{"before":"b193c62fc288318c9c62015ce619057a5cc9c9e6","after":"218017764f47b9fa3e5c6cc61bbc8bc5108acf03","ref":"refs/heads/dev","pushedAt":"2024-03-14T14:06:13.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Impre-visible","name":"Impre'visible","path":"/Impre-visible","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/69050895?s=80&v=4"},"commit":{"message":"Rebuilded the front end","shortMessageHtmlLink":"Rebuilded the front end"}},{"before":"66f0f0060a2b7ee4dc750536a1054117e567e983","after":"b193c62fc288318c9c62015ce619057a5cc9c9e6","ref":"refs/heads/dev","pushedAt":"2024-03-14T13:54:14.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Impre-visible","name":"Impre'visible","path":"/Impre-visible","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/69050895?s=80&v=4"},"commit":{"message":"New index.html file","shortMessageHtmlLink":"New index.html file"}},{"before":"b5466a95fb1de595f8da07d68e097f8e26e7c990","after":"66f0f0060a2b7ee4dc750536a1054117e567e983","ref":"refs/heads/dev","pushedAt":"2024-03-14T13:01:32.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Impre-visible","name":"Impre'visible","path":"/Impre-visible","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/69050895?s=80&v=4"},"commit":{"message":"🛠️ Add token authorization to chunk play endpoints\n\nThis commit adds token authorization to chunk play endpoints in order to ensure that only authenticated users can access these endpoints. If no valid token is provided, a 401 Unauthorized error will be returned.\n\nChanges include:\n- Added token authorization check to chunk play endpoints for episodes, movies, and other videos.\n- Implemented `get_chunk_user_token` function to retrieve the user token from the request headers.","shortMessageHtmlLink":"🛠️ Add token authorization to chunk play endpoints"}},{"before":"b85116cf1d0eb37d5db94533250d145b6a88d162","after":"b5466a95fb1de595f8da07d68e097f8e26e7c990","ref":"refs/heads/dev","pushedAt":"2024-03-14T11:03:37.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"Impre-visible","name":"Impre'visible","path":"/Impre-visible","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/69050895?s=80&v=4"},"commit":{"message":"Added types hint to generate_log function, and added ip_address in the logs","shortMessageHtmlLink":"Added types hint to generate_log function, and added ip_address in th…"}},{"before":"35d8bbc7d63baedb95abf10cf3b7075643002b16","after":"b85116cf1d0eb37d5db94533250d145b6a88d162","ref":"refs/heads/dev","pushedAt":"2024-03-14T10:14:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Impre-visible","name":"Impre'visible","path":"/Impre-visible","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/69050895?s=80&v=4"},"commit":{"message":"🐛 (routes.py): fix bug in render_template function where the template file was not being correctly identified\n✨ (routes.py): add support for matching the URL path with the defined patterns in ROUTES to correctly identify the template file","shortMessageHtmlLink":"🐛 (routes.py): fix bug in render_template function where the template…"}},{"before":"80b1384ef35e7ad13ec36c33e9e4cef7fa292b3b","after":"35d8bbc7d63baedb95abf10cf3b7075643002b16","ref":"refs/heads/dev","pushedAt":"2024-03-14T09:27:20.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"Impre-visible","name":"Impre'visible","path":"/Impre-visible","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/69050895?s=80&v=4"},"commit":{"message":"📝 (routes.py): add support for rendering templates using Jinja2\n♻️ (routes.py): refactor the `new` decorator to include the file path of the template folder and the allowed methods for the route\n♻️ (routes.py): refactor the `execute_route` function to handle different HTTP methods and return a 405 response if the method is not allowed\n✨ (routes.py): add support for serving static files by returning the file path from the route handler","shortMessageHtmlLink":"📝 (routes.py): add support for rendering templates using Jinja2"}},{"before":"a4466dfddb4ea831f417c3c304eae9dcf4908f49","after":"80b1384ef35e7ad13ec36c33e9e4cef7fa292b3b","ref":"refs/heads/dev","pushedAt":"2024-03-13T23:00:24.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"Impre-visible","name":"Impre'visible","path":"/Impre-visible","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/69050895?s=80&v=4"},"commit":{"message":"✨ (routes.py): add a new file for handling routes in the plugins loader module\n📝 (routes.py): add documentation for the match_rule function\n✨ (routes.py): add a new decorator function called \"new\" for creating new routes\n📝 (routes.py): add documentation for the new decorator function\n✨ (routes.py): add a new function called \"have_route\" for checking if a route exists\n📝 (routes.py): add documentation for the have_route function\n✨ (routes.py): add a new function called \"get_attributes\" for getting the attributes of a path\n📝 (routes.py): add documentation for the get_attributes function\n✨ (routes.py): add a new function called \"execute_route\" for executing a route\n📝 (routes.py): add documentation for the execute_route function","shortMessageHtmlLink":"✨ (routes.py): add a new file for handling routes in the plugins load…"}},{"before":"33a988fb21f393b90eb59743de85d9b028f273c4","after":"a4466dfddb4ea831f417c3c304eae9dcf4908f49","ref":"refs/heads/dev","pushedAt":"2024-03-13T11:39:53.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Impre-visible","name":"Impre'visible","path":"/Impre-visible","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/69050895?s=80&v=4"},"commit":{"message":"🛠️ Refactor paths in init.py\n\n🔧 Updated paths for better compatibility across operating systems and handled permission error.\n\n🔄 Changes:\n\n Updated paths for Linux and Darwin environments.\n Refactored path replacement logic.\n Handled PermissionError when creating directories.\n\n🔍 Details:\n\n Replaced paths for Linux and Darwin environments.\n Refactored path replacement logic.\n Handled PermissionError.","shortMessageHtmlLink":"🛠️ Refactor paths in init.py"}},{"before":"60e76fe09136951b149f5edb67e7725391579eae","after":"33a988fb21f393b90eb59743de85d9b028f273c4","ref":"refs/heads/dev","pushedAt":"2024-03-11T14:40:28.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Impre-visible","name":"Impre'visible","path":"/Impre-visible","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/69050895?s=80&v=4"},"commit":{"message":"📝 (README.md): update start command for Linux and Windows to execute 'python3 -m chocolate_app' in the terminal\n📝 (README.md): update TO-DO list for Chocolate Server:\n- [X] Allow library fusion\n- [X] Create a plugin system\n- [ ] Add the mobile UI of the video player\n- [ ] Add a watchtogether system\n- [ ] Multiple interface\n- [ ] Allow custom CSS\n- [ ] Statistics\n- [ ] Custom intro\n- [ ] Add a system to search for subtitles (with the plugin system)\n- [ ] Send issues directly from the website\n- [ ] Add watched movies and series to TRAKT (with the plugin system)\n- [ ] Add support to TRAKT (with the plugin system)\n- [X] Use the GPU to encode videos if possible\n- [ ] Change season with the buttons\n- [X] Add logs\n- [ ] Design a UI for the path selection instead of a string\n- [ ] Use two pages for books on horizontal screen\n- [ ] NFO support","shortMessageHtmlLink":"📝 (README.md): update start command for Linux and Windows to execute …"}},{"before":"ad11149c5b6171a52452171a98939ded38dd3c8b","after":"60e76fe09136951b149f5edb67e7725391579eae","ref":"refs/heads/dev","pushedAt":"2024-03-11T14:37:09.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Impre-visible","name":"Impre'visible","path":"/Impre-visible","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/69050895?s=80&v=4"},"commit":{"message":"🐛 (settings.py): convert language value to lowercase before saving it to the config file to ensure consistency","shortMessageHtmlLink":"🐛 (settings.py): convert language value to lowercase before saving it…"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEQqKQlQA","startCursor":null,"endCursor":null}},"title":"Activity · ChocolateApp/Chocolate"}