gitextract_7r81mo3e/ ├── .gitattributes ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug.yml │ │ └── other.yml │ └── workflows/ │ ├── pr.yaml │ └── release.yaml ├── .gitignore ├── .gitmodules ├── .metadata ├── .vscode/ │ └── settings.json ├── LICENSE ├── README.md ├── analysis_options.yaml ├── android/ │ ├── .gitignore │ ├── app/ │ │ ├── build.gradle │ │ └── src/ │ │ ├── debug/ │ │ │ └── AndroidManifest.xml │ │ ├── main/ │ │ │ ├── AndroidManifest.xml │ │ │ ├── kotlin/ │ │ │ │ └── com/ │ │ │ │ └── example/ │ │ │ │ └── kazumi/ │ │ │ │ └── MainActivity.kt │ │ │ └── res/ │ │ │ ├── drawable/ │ │ │ │ └── launch_background.xml │ │ │ ├── drawable-v21/ │ │ │ │ └── launch_background.xml │ │ │ ├── mipmap-anydpi-v26/ │ │ │ │ └── ic_launcher.xml │ │ │ ├── values/ │ │ │ │ ├── colors.xml │ │ │ │ └── styles.xml │ │ │ └── values-night/ │ │ │ └── styles.xml │ │ └── profile/ │ │ └── AndroidManifest.xml │ ├── build.gradle │ ├── gradle/ │ │ └── wrapper/ │ │ └── gradle-wrapper.properties │ ├── gradle.properties │ └── settings.gradle ├── assets/ │ ├── bbcode/ │ │ └── BBCode.g4 │ ├── linux/ │ │ ├── DEBIAN/ │ │ │ ├── postinst │ │ │ └── postrm │ │ └── io.github.Predidit.Kazumi.desktop │ ├── plugins/ │ │ ├── 7sefun.json │ │ ├── AGE.json │ │ └── DM84.json │ ├── shaders/ │ │ ├── Anime4K_AutoDownscalePre_x2.glsl │ │ ├── Anime4K_AutoDownscalePre_x4.glsl │ │ ├── Anime4K_Clamp_Highlights.glsl │ │ ├── Anime4K_Restore_CNN_M.glsl │ │ ├── Anime4K_Restore_CNN_S.glsl │ │ ├── Anime4K_Restore_CNN_VL.glsl │ │ ├── Anime4K_Upscale_CNN_x2_M.glsl │ │ ├── Anime4K_Upscale_CNN_x2_S.glsl │ │ ├── Anime4K_Upscale_CNN_x2_VL.glsl │ │ └── LICENSE │ └── statements/ │ └── statements.txt ├── devtools_options.yaml ├── fastlane/ │ └── metadata/ │ └── android/ │ ├── en-US/ │ │ ├── full_description.txt │ │ ├── short_description.txt │ │ └── title.txt │ └── zh-CN/ │ ├── full_description.txt │ ├── short_description.txt │ └── title.txt ├── ios/ │ ├── .gitignore │ ├── Flutter/ │ │ ├── AppFrameworkInfo.plist │ │ ├── Debug.xcconfig │ │ └── Release.xcconfig │ ├── Podfile │ ├── Runner/ │ │ ├── AppDelegate.swift │ │ ├── Assets.xcassets/ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ └── Contents.json │ │ │ ├── LaunchBackground.imageset/ │ │ │ │ └── Contents.json │ │ │ └── LaunchImage.imageset/ │ │ │ ├── Contents.json │ │ │ └── README.md │ │ ├── Base.lproj/ │ │ │ ├── LaunchScreen.storyboard │ │ │ └── Main.storyboard │ │ ├── Info.plist │ │ └── Runner-Bridging-Header.h │ ├── Runner.xcodeproj/ │ │ ├── project.pbxproj │ │ ├── project.xcworkspace/ │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata/ │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ └── WorkspaceSettings.xcsettings │ │ └── xcshareddata/ │ │ └── xcschemes/ │ │ └── Runner.xcscheme │ ├── Runner.xcworkspace/ │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata/ │ │ ├── IDEWorkspaceChecks.plist │ │ └── WorkspaceSettings.xcsettings │ └── RunnerTests/ │ └── RunnerTests.swift ├── lib/ │ ├── app_module.dart │ ├── app_widget.dart │ ├── bbcode/ │ │ ├── README.md │ │ ├── bbcode_base_listener.dart │ │ ├── bbcode_elements.dart │ │ ├── bbcode_widget.dart │ │ └── generated/ │ │ ├── BBCode.tokens │ │ ├── BBCodeLexer.dart │ │ ├── BBCodeListener.dart │ │ └── BBCodeParser.dart │ ├── bean/ │ │ ├── appbar/ │ │ │ ├── drag_to_move_bar.dart │ │ │ ├── safe_mediaquery_warpper.dart │ │ │ └── sys_app_bar.dart │ │ ├── card/ │ │ │ ├── bangumi_card.dart │ │ │ ├── bangumi_history_card.dart │ │ │ ├── bangumi_info_card.dart │ │ │ ├── bangumi_timeline_card.dart │ │ │ ├── character_card.dart │ │ │ ├── character_comments_card.dart │ │ │ ├── comments_card.dart │ │ │ ├── episode_comments_card.dart │ │ │ ├── network_img_layer.dart │ │ │ ├── palette_card.dart │ │ │ └── staff_card.dart │ │ ├── dialog/ │ │ │ └── dialog_helper.dart │ │ ├── settings/ │ │ │ ├── color_type.dart │ │ │ └── theme_provider.dart │ │ └── widget/ │ │ ├── collect_button.dart │ │ ├── custom_dropdown_menu.dart │ │ ├── embedded_native_control_area.dart │ │ ├── error_widget.dart │ │ └── scrollable_wrapper.dart │ ├── hive_registrar.g.dart │ ├── main.dart │ ├── modules/ │ │ ├── bangumi/ │ │ │ ├── bangumi_item.dart │ │ │ ├── bangumi_item.g.dart │ │ │ ├── bangumi_tag.dart │ │ │ ├── bangumi_tag.g.dart │ │ │ ├── episode_item.dart │ │ │ └── weekday_item.dart │ │ ├── character/ │ │ │ └── character_full_item.dart │ │ ├── characters/ │ │ │ ├── actor_item.dart │ │ │ ├── character_item.dart │ │ │ └── characters_response.dart │ │ ├── collect/ │ │ │ ├── collect_change_module.dart │ │ │ ├── collect_change_module.g.dart │ │ │ ├── collect_module.dart │ │ │ ├── collect_module.g.dart │ │ │ └── collect_type.dart │ │ ├── comments/ │ │ │ ├── comment_item.dart │ │ │ └── comment_response.dart │ │ ├── danmaku/ │ │ │ ├── danmaku_episode_response.dart │ │ │ ├── danmaku_module.dart │ │ │ └── danmaku_search_response.dart │ │ ├── download/ │ │ │ ├── download_module.dart │ │ │ └── download_module.g.dart │ │ ├── history/ │ │ │ ├── history_module.dart │ │ │ └── history_module.g.dart │ │ ├── plugin/ │ │ │ └── plugin_http_module.dart │ │ ├── roads/ │ │ │ └── road_module.dart │ │ ├── search/ │ │ │ ├── plugin_search_module.dart │ │ │ ├── search_history_module.dart │ │ │ └── search_history_module.g.dart │ │ └── staff/ │ │ ├── staff_item.dart │ │ └── staff_response.dart │ ├── pages/ │ │ ├── about/ │ │ │ ├── about_module.dart │ │ │ └── about_page.dart │ │ ├── collect/ │ │ │ ├── collect_controller.dart │ │ │ ├── collect_controller.g.dart │ │ │ ├── collect_module.dart │ │ │ └── collect_page.dart │ │ ├── download/ │ │ │ ├── download_controller.dart │ │ │ ├── download_controller.g.dart │ │ │ ├── download_episode_sheet.dart │ │ │ ├── download_page.dart │ │ │ └── download_page_module.dart │ │ ├── error/ │ │ │ └── storage_error_page.dart │ │ ├── history/ │ │ │ ├── history_controller.dart │ │ │ ├── history_controller.g.dart │ │ │ ├── history_module.dart │ │ │ └── history_page.dart │ │ ├── index_module.dart │ │ ├── index_page.dart │ │ ├── info/ │ │ │ ├── character_page.dart │ │ │ ├── info_controller.dart │ │ │ ├── info_controller.g.dart │ │ │ ├── info_module.dart │ │ │ ├── info_page.dart │ │ │ ├── info_tabview.dart │ │ │ └── source_sheet.dart │ │ ├── init_page.dart │ │ ├── logs/ │ │ │ └── logs_page.dart │ │ ├── menu/ │ │ │ └── menu.dart │ │ ├── my/ │ │ │ ├── my_controller.dart │ │ │ ├── my_controller.g.dart │ │ │ ├── my_module.dart │ │ │ └── my_page.dart │ │ ├── player/ │ │ │ ├── episode_comments_sheet.dart │ │ │ ├── player_controller.dart │ │ │ ├── player_controller.g.dart │ │ │ ├── player_item.dart │ │ │ ├── player_item_panel.dart │ │ │ ├── player_item_surface.dart │ │ │ └── smallest_player_item_panel.dart │ │ ├── plugin_editor/ │ │ │ ├── plugin_editor_page.dart │ │ │ ├── plugin_module.dart │ │ │ ├── plugin_shop_page.dart │ │ │ ├── plugin_test_page.dart │ │ │ └── plugin_view_page.dart │ │ ├── popular/ │ │ │ ├── popular_controller.dart │ │ │ ├── popular_controller.g.dart │ │ │ ├── popular_module.dart │ │ │ └── popular_page.dart │ │ ├── router.dart │ │ ├── search/ │ │ │ ├── search_controller.dart │ │ │ ├── search_controller.g.dart │ │ │ ├── search_module.dart │ │ │ └── search_page.dart │ │ ├── settings/ │ │ │ ├── danmaku/ │ │ │ │ ├── danmaku_module.dart │ │ │ │ ├── danmaku_settings.dart │ │ │ │ ├── danmaku_settings_sheet.dart │ │ │ │ └── danmaku_shield_settings.dart │ │ │ ├── decoder_settings.dart │ │ │ ├── displaymode_settings.dart │ │ │ ├── download_settings.dart │ │ │ ├── interface_settings.dart │ │ │ ├── keyboard_settings.dart │ │ │ ├── player_settings.dart │ │ │ ├── proxy/ │ │ │ │ ├── proxy_editor_page.dart │ │ │ │ ├── proxy_module.dart │ │ │ │ └── proxy_settings_page.dart │ │ │ ├── renderer_settings.dart │ │ │ ├── settings_module.dart │ │ │ ├── super_resolution_settings.dart │ │ │ └── theme_settings_page.dart │ │ ├── timeline/ │ │ │ ├── timeline_controller.dart │ │ │ ├── timeline_controller.g.dart │ │ │ ├── timeline_module.dart │ │ │ └── timeline_page.dart │ │ ├── video/ │ │ │ ├── video_controller.dart │ │ │ ├── video_controller.g.dart │ │ │ ├── video_module.dart │ │ │ └── video_page.dart │ │ └── webdav_editor/ │ │ ├── webdav_editor_page.dart │ │ ├── webdav_module.dart │ │ └── webdav_setting.dart │ ├── plugins/ │ │ ├── anti_crawler_config.dart │ │ ├── plugin_cookie_manager.dart │ │ ├── plugin_install_time_tracker.dart │ │ ├── plugin_validity_tracker.dart │ │ ├── plugins.dart │ │ ├── plugins_controller.dart │ │ └── plugins_controller.g.dart │ ├── providers/ │ │ ├── captcha/ │ │ │ └── captcha_provider.dart │ │ └── video/ │ │ ├── providers.dart │ │ ├── video_source_provider.dart │ │ └── webview_video_source_provider.dart │ ├── repositories/ │ │ ├── collect_crud_repository.dart │ │ ├── collect_repository.dart │ │ ├── download_repository.dart │ │ ├── history_repository.dart │ │ └── search_history_repository.dart │ ├── request/ │ │ ├── api.dart │ │ ├── bangumi.dart │ │ ├── damaku.dart │ │ ├── interceptor.dart │ │ ├── plugin.dart │ │ ├── query_manager.dart │ │ └── request.dart │ ├── shaders/ │ │ ├── shaders_controller.dart │ │ └── shaders_controller.g.dart │ ├── utils/ │ │ ├── anime_season.dart │ │ ├── auto_updater.dart │ │ ├── background_download_service.dart │ │ ├── constants.dart │ │ ├── download_manager.dart │ │ ├── extension.dart │ │ ├── external_player.dart │ │ ├── format_utils.dart │ │ ├── logger.dart │ │ ├── m3u8_ad_filter.dart │ │ ├── m3u8_parser.dart │ │ ├── mortis.dart │ │ ├── proxy_manager.dart │ │ ├── proxy_utils.dart │ │ ├── remote.dart │ │ ├── search_parser.dart │ │ ├── storage.dart │ │ ├── string_match.dart │ │ ├── syncplay.dart │ │ ├── syncplay_endpoint.dart │ │ ├── timed_shutdown_service.dart │ │ ├── utils.dart │ │ └── webdav.dart │ └── webview/ │ ├── captcha/ │ │ ├── captcha_webview_controller.dart │ │ └── impl/ │ │ ├── captcha_webview_inappwebview_impl.dart │ │ ├── captcha_webview_linux_impl.dart │ │ └── captcha_webview_windows_impl.dart │ └── video/ │ ├── impl/ │ │ ├── video_webview_android_impl.dart │ │ ├── video_webview_apple_impl.dart │ │ ├── video_webview_impl.dart │ │ ├── video_webview_linux_impl.dart │ │ └── video_webview_windows_impl.dart │ └── video_webview_controller.dart ├── linux/ │ ├── .gitignore │ ├── CMakeLists.txt │ ├── flutter/ │ │ ├── CMakeLists.txt │ │ ├── generated_plugin_registrant.cc │ │ ├── generated_plugin_registrant.h │ │ └── generated_plugins.cmake │ ├── main.cc │ ├── my_application.cc │ └── my_application.h ├── macos/ │ ├── .gitignore │ ├── Flutter/ │ │ ├── Flutter-Debug.xcconfig │ │ ├── Flutter-Release.xcconfig │ │ └── GeneratedPluginRegistrant.swift │ ├── Runner/ │ │ ├── AppDelegate.swift │ │ ├── Assets.xcassets/ │ │ │ └── AppIcon.appiconset/ │ │ │ └── Contents.json │ │ ├── Base.lproj/ │ │ │ └── MainMenu.xib │ │ ├── Configs/ │ │ │ ├── AppInfo.xcconfig │ │ │ ├── Debug.xcconfig │ │ │ ├── Release.xcconfig │ │ │ └── Warnings.xcconfig │ │ ├── DebugProfile.entitlements │ │ ├── Info.plist │ │ ├── MainFlutterWindow.swift │ │ ├── Release.entitlements │ │ ├── en-GB.lproj/ │ │ │ └── MainMenu.strings │ │ ├── en.lproj/ │ │ │ └── MainMenu.strings │ │ └── zh-Hans.lproj/ │ │ └── MainMenu.strings │ ├── Runner.xcodeproj/ │ │ ├── project.pbxproj │ │ ├── project.xcworkspace/ │ │ │ └── xcshareddata/ │ │ │ └── IDEWorkspaceChecks.plist │ │ └── xcshareddata/ │ │ └── xcschemes/ │ │ └── Runner.xcscheme │ ├── Runner.xcworkspace/ │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata/ │ │ └── IDEWorkspaceChecks.plist │ └── RunnerTests/ │ └── RunnerTests.swift ├── pubspec.yaml ├── test/ │ ├── m3u8_parser_test.dart │ └── widget_test.dart ├── web/ │ ├── index.html │ └── manifest.json └── windows/ ├── .gitignore ├── CMakeLists.txt ├── flutter/ │ ├── CMakeLists.txt │ ├── generated_plugin_registrant.cc │ ├── generated_plugin_registrant.h │ └── generated_plugins.cmake └── runner/ ├── CMakeLists.txt ├── Runner.rc ├── external_player_utils.cpp ├── external_player_utils.h ├── flutter_window.cpp ├── flutter_window.h ├── fullscreen_utils.cpp ├── fullscreen_utils.h ├── main.cpp ├── resource.h ├── runner.exe.manifest ├── utils.cpp ├── utils.h ├── win32_window.cpp └── win32_window.h