gitextract_l2o017xa/ ├── .dockerignore ├── .github/ │ ├── CODEOWNERS │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE.md │ ├── release-drafter.yml │ └── workflows/ │ ├── build.yml │ ├── release.yml │ ├── scripts/ │ │ └── flutter_local_font.dart │ ├── test.yml │ └── translator.yml.bak ├── .gitignore ├── CONTRIBUTING.md ├── CONTRIBUTING_ja-JP.md ├── CONTRIBUTING_vi-VN.md ├── CONTRIBUTING_zh-CN.md ├── CONTRIBUTING_zh-TW.md ├── Dockerfile ├── LICENSE ├── README.md ├── README_ja-JP.md ├── README_vi-VN.md ├── README_zh-CN.md ├── README_zh-TW.md ├── _examples/ │ └── basic/ │ └── main.go ├── bind/ │ ├── desktop/ │ │ └── main.go │ └── mobile/ │ └── main.go ├── cmd/ │ ├── api/ │ │ └── main.go │ ├── banner.txt │ ├── gopeed/ │ │ ├── flags.go │ │ └── main.go │ ├── host/ │ │ ├── dail_other.go │ │ ├── dail_windows.go │ │ └── main.go │ ├── server.go │ ├── updater/ │ │ ├── main.go │ │ ├── updater_darwin.go │ │ ├── updater_linux.go │ │ └── updater_windows.go │ └── web/ │ ├── flags.go │ ├── flags_test.go │ └── main.go ├── docker-compose.yml ├── entrypoint.sh ├── go.mod ├── go.sum ├── internal/ │ ├── controller/ │ │ └── controller.go │ ├── fetcher/ │ │ ├── fetcher.go │ │ └── fetcher_test.go │ ├── logger/ │ │ ├── logger.go │ │ └── logger_test.go │ ├── protocol/ │ │ ├── bt/ │ │ │ ├── config.go │ │ │ ├── dns_cache_resolver.go │ │ │ ├── fetcher.go │ │ │ ├── fetcher_test.go │ │ │ └── testdata/ │ │ │ ├── test.torrent │ │ │ ├── test.unclean.torrent │ │ │ └── ubuntu-22.04-live-server-amd64.iso.torrent │ │ ├── ed2k/ │ │ │ ├── config.go │ │ │ ├── fetcher.go │ │ │ └── fetcher_test.go │ │ └── http/ │ │ ├── config.go │ │ ├── fetcher.go │ │ ├── fetcher_manager.go │ │ ├── fetcher_test.go │ │ ├── filename_parse_test.go │ │ ├── helper.go │ │ ├── timeout_reader.go │ │ └── timeout_reader_test.go │ └── test/ │ ├── httptest.go │ └── util.go ├── pkg/ │ ├── base/ │ │ ├── constants.go │ │ ├── info.go │ │ ├── model.go │ │ └── model_test.go │ ├── download/ │ │ ├── downloader.go │ │ ├── downloader_test.go │ │ ├── engine/ │ │ │ ├── engine.go │ │ │ ├── engine_test.go │ │ │ ├── inject/ │ │ │ │ ├── error/ │ │ │ │ │ └── module.go │ │ │ │ ├── file/ │ │ │ │ │ └── module.go │ │ │ │ ├── formdata/ │ │ │ │ │ └── module.go │ │ │ │ ├── vm/ │ │ │ │ │ └── module.go │ │ │ │ └── xhr/ │ │ │ │ ├── module.go │ │ │ │ └── tls_fingerprint.go │ │ │ ├── polyfill/ │ │ │ │ ├── out/ │ │ │ │ │ └── index.js │ │ │ │ ├── package.json │ │ │ │ ├── patches/ │ │ │ │ │ └── whatwg-fetch+3.6.20.patch │ │ │ │ ├── src/ │ │ │ │ │ ├── blob/ │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── crypto/ │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── fetch/ │ │ │ │ │ │ └── index.js │ │ │ │ │ └── index.js │ │ │ │ └── webpack.config.js │ │ │ └── util/ │ │ │ └── util.go │ │ ├── event.go │ │ ├── extension.go │ │ ├── extension_test.go │ │ ├── extract.go │ │ ├── extract_7z.go │ │ ├── extract_queue.go │ │ ├── extract_queue_test.go │ │ ├── extract_rar.go │ │ ├── extract_test.go │ │ ├── extract_zip.go │ │ ├── model.go │ │ ├── model_test.go │ │ ├── script.go │ │ ├── script_test.go │ │ ├── script_unix_test.go │ │ ├── script_windows_test.go │ │ ├── storage.go │ │ ├── testdata/ │ │ │ ├── extensions/ │ │ │ │ ├── basic/ │ │ │ │ │ ├── index.js │ │ │ │ │ └── manifest.json │ │ │ │ ├── extra/ │ │ │ │ │ ├── index.js │ │ │ │ │ └── manifest.json │ │ │ │ ├── function_error/ │ │ │ │ │ ├── index.js │ │ │ │ │ └── manifest.json │ │ │ │ ├── message_error/ │ │ │ │ │ ├── index.js │ │ │ │ │ └── manifest.json │ │ │ │ ├── on_done/ │ │ │ │ │ ├── index.js │ │ │ │ │ └── manifest.json │ │ │ │ ├── on_error/ │ │ │ │ │ ├── index.js │ │ │ │ │ └── manifest.json │ │ │ │ ├── on_start/ │ │ │ │ │ ├── index.js │ │ │ │ │ └── manifest.json │ │ │ │ ├── script_error/ │ │ │ │ │ ├── index.js │ │ │ │ │ └── manifest.json │ │ │ │ ├── settings_all/ │ │ │ │ │ ├── index.js │ │ │ │ │ └── manifest.json │ │ │ │ ├── settings_empty/ │ │ │ │ │ ├── index.js │ │ │ │ │ └── manifest.json │ │ │ │ ├── storage/ │ │ │ │ │ ├── index.js │ │ │ │ │ └── manifest.json │ │ │ │ └── update/ │ │ │ │ ├── index.js │ │ │ │ └── manifest.json │ │ │ └── scripts/ │ │ │ ├── env_dump.bat │ │ │ ├── env_dump.sh │ │ │ ├── move.bat │ │ │ ├── move.sh │ │ │ ├── write_output1.bat │ │ │ ├── write_output1.sh │ │ │ ├── write_output2.bat │ │ │ └── write_output2.sh │ │ ├── webhook.go │ │ └── webhook_test.go │ ├── protocol/ │ │ ├── bt/ │ │ │ └── model.go │ │ ├── ed2k/ │ │ │ └── model.go │ │ └── http/ │ │ └── model.go │ ├── rest/ │ │ ├── api.go │ │ ├── config.go │ │ ├── gizp_middleware.go │ │ ├── model/ │ │ │ ├── extension.go │ │ │ ├── result.go │ │ │ ├── server.go │ │ │ ├── task.go │ │ │ └── webhook.go │ │ ├── server.go │ │ └── server_test.go │ └── util/ │ ├── bytefmt.go │ ├── bytefmt_test.go │ ├── json.go │ ├── json_test.go │ ├── matcher.go │ ├── matcher_test.go │ ├── path.go │ ├── path_other.go │ ├── path_test.go │ ├── path_windows.go │ ├── timer.go │ ├── url.go │ └── url_test.go └── ui/ └── flutter/ ├── .gitignore ├── .metadata ├── analysis_options.yaml ├── android/ │ ├── .gitignore │ ├── app/ │ │ ├── build.gradle │ │ ├── libs/ │ │ │ └── .gitkeep │ │ └── src/ │ │ ├── debug/ │ │ │ └── AndroidManifest.xml │ │ ├── main/ │ │ │ ├── AndroidManifest.xml │ │ │ ├── kotlin/ │ │ │ │ └── com/ │ │ │ │ └── gopeed/ │ │ │ │ └── gopeed/ │ │ │ │ └── MainActivity.kt │ │ │ └── res/ │ │ │ ├── drawable/ │ │ │ │ └── launch_background.xml │ │ │ ├── drawable-v21/ │ │ │ │ └── launch_background.xml │ │ │ ├── values/ │ │ │ │ └── styles.xml │ │ │ └── values-night/ │ │ │ └── styles.xml │ │ └── profile/ │ │ └── AndroidManifest.xml │ ├── build.gradle │ ├── gradle/ │ │ └── wrapper/ │ │ └── gradle-wrapper.properties │ ├── gradle.properties │ └── settings.gradle ├── assets/ │ └── exec/ │ └── .gitkeep ├── build.yaml ├── distribute_options.yaml ├── include/ │ └── libgopeed.h ├── ios/ │ ├── .gitignore │ ├── Flutter/ │ │ ├── AppFrameworkInfo.plist │ │ ├── Debug.xcconfig │ │ └── Release.xcconfig │ ├── Podfile │ ├── Runner/ │ │ ├── AppDelegate.swift │ │ ├── Assets.xcassets/ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ └── Contents.json │ │ │ └── LaunchImage.imageset/ │ │ │ ├── Contents.json │ │ │ └── README.md │ │ ├── Base.lproj/ │ │ │ ├── LaunchScreen.storyboard │ │ │ └── Main.storyboard │ │ ├── Info.plist │ │ ├── Runner-Bridging-Header.h │ │ └── Runner.entitlements │ ├── 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 │ └── ShareExtension/ │ ├── Base.lproj/ │ │ └── MainInterface.storyboard │ ├── Info.plist │ ├── ShareExtension.entitlements │ └── ShareViewController.swift ├── lib/ │ ├── api/ │ │ ├── api.dart │ │ ├── gopeed_site_api.dart │ │ └── model/ │ │ ├── create_task.dart │ │ ├── create_task.g.dart │ │ ├── create_task_batch.dart │ │ ├── create_task_batch.g.dart │ │ ├── downloader_config.dart │ │ ├── downloader_config.g.dart │ │ ├── extension.dart │ │ ├── extension.g.dart │ │ ├── install_extension.dart │ │ ├── install_extension.g.dart │ │ ├── login.dart │ │ ├── login.g.dart │ │ ├── meta.dart │ │ ├── meta.g.dart │ │ ├── options.dart │ │ ├── options.g.dart │ │ ├── request.dart │ │ ├── request.g.dart │ │ ├── resolve_result.dart │ │ ├── resolve_result.g.dart │ │ ├── resolve_task.dart │ │ ├── resolve_task.g.dart │ │ ├── resource.dart │ │ ├── resource.g.dart │ │ ├── result.dart │ │ ├── result.g.dart │ │ ├── store_extension.dart │ │ ├── switch_extension.dart │ │ ├── switch_extension.g.dart │ │ ├── task.dart │ │ ├── task.g.dart │ │ ├── update_check_extension_resp.dart │ │ ├── update_check_extension_resp.g.dart │ │ ├── update_extension_settings.dart │ │ └── update_extension_settings.g.dart │ ├── app/ │ │ ├── modules/ │ │ │ ├── app/ │ │ │ │ ├── bindings/ │ │ │ │ │ └── app_binding.dart │ │ │ │ ├── controllers/ │ │ │ │ │ └── app_controller.dart │ │ │ │ └── views/ │ │ │ │ └── app_view.dart │ │ │ ├── create/ │ │ │ │ ├── bindings/ │ │ │ │ │ └── create_binding.dart │ │ │ │ ├── controllers/ │ │ │ │ │ └── create_controller.dart │ │ │ │ └── views/ │ │ │ │ └── create_view.dart │ │ │ ├── extension/ │ │ │ │ ├── bindings/ │ │ │ │ │ └── extension_binding.dart │ │ │ │ ├── controllers/ │ │ │ │ │ └── extension_controller.dart │ │ │ │ └── views/ │ │ │ │ ├── extension_card.dart │ │ │ │ ├── extension_detail_view.dart │ │ │ │ └── extension_view.dart │ │ │ ├── history/ │ │ │ │ └── views/ │ │ │ │ └── history_view.dart │ │ │ ├── home/ │ │ │ │ ├── bindings/ │ │ │ │ │ └── home_binding.dart │ │ │ │ ├── controllers/ │ │ │ │ │ └── home_controller.dart │ │ │ │ └── views/ │ │ │ │ └── home_view.dart │ │ │ ├── login/ │ │ │ │ ├── bindings/ │ │ │ │ │ └── login_binding.dart │ │ │ │ ├── controllers/ │ │ │ │ │ └── login_controller.dart │ │ │ │ └── views/ │ │ │ │ └── login_view.dart │ │ │ ├── redirect/ │ │ │ │ ├── bindings/ │ │ │ │ │ └── redirect_binding.dart │ │ │ │ ├── controllers/ │ │ │ │ │ └── redirect_controller.dart │ │ │ │ └── views/ │ │ │ │ └── redirect_view.dart │ │ │ ├── root/ │ │ │ │ ├── bindings/ │ │ │ │ │ └── root_binding.dart │ │ │ │ ├── controllers/ │ │ │ │ │ └── root_controller.dart │ │ │ │ └── views/ │ │ │ │ └── root_view.dart │ │ │ ├── setting/ │ │ │ │ ├── bindings/ │ │ │ │ │ └── setting_binding.dart │ │ │ │ ├── controllers/ │ │ │ │ │ └── setting_controller.dart │ │ │ │ └── views/ │ │ │ │ └── setting_view.dart │ │ │ └── task/ │ │ │ ├── bindings/ │ │ │ │ ├── task_binding.dart │ │ │ │ └── task_files_binding.dart │ │ │ ├── controllers/ │ │ │ │ ├── task_controller.dart │ │ │ │ ├── task_downloaded_controller.dart │ │ │ │ ├── task_downloading_controller.dart │ │ │ │ ├── task_files_controller.dart │ │ │ │ └── task_list_controller.dart │ │ │ └── views/ │ │ │ ├── task_downloaded_view.dart │ │ │ ├── task_downloading_view.dart │ │ │ ├── task_files_view.dart │ │ │ └── task_view.dart │ │ ├── routes/ │ │ │ ├── app_pages.dart │ │ │ └── app_routes.dart │ │ ├── rpc/ │ │ │ └── rpc.dart │ │ ├── services/ │ │ │ └── notification_service.dart │ │ └── views/ │ │ ├── breadcrumb_view.dart │ │ ├── buid_task_list_view.dart │ │ ├── check_list_view.dart │ │ ├── compact_checkbox.dart │ │ ├── copy_button.dart │ │ ├── directory_selector.dart │ │ ├── file_icon.dart │ │ ├── file_tree_view.dart │ │ ├── icon_button_loading.dart │ │ ├── open_in_new.dart │ │ ├── outlined_button_loading.dart │ │ ├── responsive_builder.dart │ │ ├── sort_icon_button.dart │ │ └── text_button_loading.dart │ ├── core/ │ │ ├── common/ │ │ │ ├── libgopeed_channel.dart │ │ │ ├── libgopeed_ffi.dart │ │ │ ├── libgopeed_interface.dart │ │ │ ├── start_config.dart │ │ │ └── start_config.g.dart │ │ ├── entry/ │ │ │ ├── libgopeed_boot_browser.dart │ │ │ └── libgopeed_boot_native.dart │ │ ├── ffi/ │ │ │ └── libgopeed_bind.dart │ │ ├── libgopeed_boot.dart │ │ └── libgopeed_boot_stub.dart │ ├── database/ │ │ ├── database.dart │ │ ├── entity.dart │ │ └── entity.g.dart │ ├── i18n/ │ │ ├── langs/ │ │ │ ├── ca_es.dart │ │ │ ├── de_de.dart │ │ │ ├── en_us.dart │ │ │ ├── es_es.dart │ │ │ ├── fa_ir.dart │ │ │ ├── fr_fr.dart │ │ │ ├── hu_hu.dart │ │ │ ├── id_id.dart │ │ │ ├── it_it.dart │ │ │ ├── ja_jp.dart │ │ │ ├── pl_pl.dart │ │ │ ├── pt_br.dart │ │ │ ├── ru_ru.dart │ │ │ ├── ta_ta.dart │ │ │ ├── tr_tr.dart │ │ │ ├── uk_ua.dart │ │ │ ├── vi_vn.dart │ │ │ ├── zh_cn.dart │ │ │ └── zh_tw.dart │ │ └── message.dart │ ├── icon/ │ │ └── gopeed_icons.dart │ ├── main.dart │ ├── theme/ │ │ └── theme.dart │ └── util/ │ ├── analytics.dart │ ├── arch/ │ │ ├── arch.dart │ │ ├── arch_stub.dart │ │ └── entry/ │ │ ├── arch_native.dart │ │ └── arch_web.dart │ ├── browser_download/ │ │ ├── browser_download.dart │ │ ├── browser_download_stub.dart │ │ └── entry/ │ │ └── browser_download_browser.dart │ ├── browser_extension_host/ │ │ ├── browser_extension_host.dart │ │ ├── browser_extension_host_stub.dart │ │ └── entry/ │ │ └── browser_extension_host_native.dart │ ├── extensions.dart │ ├── file_explorer.dart │ ├── github_mirror.dart │ ├── input_formatter.dart │ ├── locale_manager.dart │ ├── log_util.dart │ ├── message.dart │ ├── package_info.dart │ ├── scheme_register/ │ │ ├── entry/ │ │ │ └── scheme_register_native.dart │ │ ├── scheme_register.dart │ │ └── scheme_register_stub.dart │ ├── updater.dart │ ├── util.dart │ └── win32.dart ├── linux/ │ ├── .gitignore │ ├── CMakeLists.txt │ ├── assets/ │ │ └── com.gopeed.Gopeed.desktop │ ├── flutter/ │ │ └── CMakeLists.txt │ ├── main.cc │ ├── my_application.cc │ ├── my_application.h │ └── packaging/ │ ├── appimage/ │ │ └── make_config.yaml │ └── deb/ │ └── make_config.yaml ├── macos/ │ ├── .gitignore │ ├── Flutter/ │ │ ├── Flutter-Debug.xcconfig │ │ └── Flutter-Release.xcconfig │ ├── Podfile │ ├── 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 │ ├── Runner.xcodeproj/ │ │ ├── project.pbxproj │ │ ├── project.xcworkspace/ │ │ │ └── xcshareddata/ │ │ │ └── IDEWorkspaceChecks.plist │ │ └── xcshareddata/ │ │ └── xcschemes/ │ │ └── Runner.xcscheme │ └── Runner.xcworkspace/ │ ├── contents.xcworkspacedata │ └── xcshareddata/ │ └── IDEWorkspaceChecks.plist ├── pubspec.yaml ├── test/ │ └── widget_test.dart ├── web/ │ ├── index.html │ └── manifest.json └── windows/ ├── .gitignore ├── CMakeLists.txt ├── flutter/ │ └── CMakeLists.txt └── runner/ ├── CMakeLists.txt ├── Runner.rc ├── flutter_window.cpp ├── flutter_window.h ├── main.cpp ├── resource.h ├── runner.exe.manifest ├── utils.cpp ├── utils.h ├── win32_window.cpp └── win32_window.h