Kuingsmile/PicHoro
43.1
Weak · 19 September 2026
50.3k
lines of production code
Dart
primary language
1
measurement over time
What this system is
This is a cross-platform mobile application designed for uploading, managing, and browsing images across a wide variety of cloud storage and image hosting providers. It supports diverse backends including AWS S3, Aliyun OSS, FTP/SFTP, WebDAV, GitHub, and specialized hosts like Imgur and LskyPro, allowing users to configure, authenticate, and interact with these services directly. The system features a unified interface for uploading images with compression and format options, managing file structures within remote buckets, and handling local album data with tools for database maintenance and log viewing.
Features
Add Aliyun OSS management interface
The app now includes a dedicated management interface for Alibaba Cloud OSS (Aliyun Object Storage Service). Users can view a list of their storage buckets, create new buckets with configurable regions and access control lists (ACLs), and explore the file structure within each bucket. The interface also provides detailed information views for both buckets and individual files, including copyable links and metadata.
_lib/picture\_host\manage/aliyun · high confidence
Add GitHub repository management interface
The app now includes a dedicated GitHub management section, allowing users to view their GitHub profile, browse and filter repositories by visibility, create new repositories with custom gitignore and license templates, and explore file contents within those repositories. This feature also supports viewing detailed file and repository metadata, downloading files, and copying shareable URLs.
_lib/picture\_host\manage/github · high confidence
Add Lskypro picture host management interface
The app now includes a dedicated management UI for Lskypro (Lan Kong) image hosting accounts. This change introduces the home dashboard (displaying user profile and storage usage), a file explorer for browsing albums and images, and a detailed file information page with copyable links and security hashes, enabling users to manage their Lskypro content directly within the application.
_lib/picture\_host\manage/lskypro · high confidence
Add S3-compatible storage bucket management UI
The app now includes a dedicated interface for managing S3-compatible object storage buckets. Users can view a list of buckets grouped by region, create new buckets by specifying a name and optional region, and explore the contents of each bucket. The file explorer supports navigating folders, viewing file details (name, size, creation date, ETag), and generating shareable URLs for supported file types, with logic to handle both standard AWS S3 endpoints and custom S3-compatible API endpoints.
_lib/picture\_host\manage/aws · high confidence
Add Upyun (UCloud) storage management interface
This location introduces the complete UI layer for managing UCloud (Upyun) storage buckets. It adds new pages for logging in and managing authentication tokens, listing and configuring storage buckets, browsing the file explorer with support for previewing images, PDFs, and text files, and viewing detailed information for both buckets and individual files.
_lib/picture\_host\manage/upyun · high confidence
Add WebDAV file management and preview capabilities
Users can now manage and browse files stored on WebDAV servers through a new file explorer interface. This update introduces dedicated UI components for listing WebDAV directories, viewing file metadata (such as name, size, and modification time), and previewing content. Supported preview formats include images (with pinch-to-zoom), PDFs, and text files, all authenticated via WebDAV credentials.
_lib/picture\_host\manage/webdav · high confidence
Expanded default picture host selection with new storage providers
The default picture host configuration screen now includes additional options for users to select their preferred image storage backend. New supported providers include S3-compatible platforms, AList V3, and WebDAV, alongside existing support for FTP/SSH/SFTP. The interface is organized into three categories: cloud storage providers (Qiniu, Tencent, Aliyun, Upyun, S3), public image hosts (lsky.pro, SM.MS, GitHub, Imgur), and self-hosted solutions (AList, FTP, WebDAV), allowing users to easily switch between these services.
_lib/picture\_host\configure · high confidence
Initial Android app configuration with OTA updates and image sharing support
The Android application module has been initialized with the necessary configuration files to support core features. The app now declares permissions for camera access, external storage management, and media reading, enabling users to capture and manage images. An intent filter has been added to allow the app to receive shared images from other applications via the system's share sheet. Additionally, Over-The-Air (OTA) update capabilities have been enabled by registering the necessary provider and receiver components in the manifest, while the Impeller rendering engine has been explicitly disabled for the main activity.
android/app · high confidence
Introduces a file-based backup and restore system for picture host configurations
The application now persists picture host settings to local JSON files, enabling users to export and import their configuration data. This change adds a new \ConfigureStoreFile\ component that handles reading, writing, and resetting configuration maps for supported hosts (including Alist, WebDAV, FTP, and various cloud providers) on the device's document directory. A new \ConfigureStorePage\ UI allows users to view these configurations and access export/import actions via a bottom sheet, while \ConfigureTemplate\ defines the specific field structures for each host type.
_lib/picture\_host\_configure/configure\store · high confidence
Introduction of centralized utility infrastructure and new platform support
The application now includes a dedicated utility layer in lib/utils that introduces several new capabilities and structural changes. A new AnalyticsService tracks app opens and sends device and app information to a remote endpoint, while a CacheUtil allows users to view and clear temporary storage. Image handling has been enhanced with an ImageCompressor that supports AVIF format alongside existing JPEG, PNG, and WebP options. The app now supports a wider range of image hosting providers, including AList, WebDAV, and Upyun, with unified entry points in uploader.dart and deleter.dart for managing uploads and deletions across these services. Additionally, a new event bus system facilitates communication between UI components for album and home photo refreshes, and the theme management has been updated to support automatic light/dark mode switching based on the time of day.
lib/utils · high confidence
New Alist V3 storage management interface
The app now includes a dedicated management interface for Alist V3 storage backends. This update introduces new pages to list and filter storage buckets, view detailed bucket configurations (such as driver type, mount path, and cache expiration), and explore files within those buckets. Users can now preview images, PDFs, and text files directly from the Alist file explorer, copy file metadata and access links, and manage uploads with integrated image compression support.
_lib/picture\_host\manage/alist · high confidence
New Imgur account management and file browsing interface
Users can now manage their Imgur hosting account directly within the app. This change introduces a new login screen to configure the Imgur username, Client ID, and Access Token, along with a token management page to view current credentials and log out. Additionally, a new file explorer allows users to browse their Imgur albums and images, view detailed file information (such as ID, dimensions, and links), and perform actions like copying links or deleting files.
_lib/picture\_host\manage/imgur · high confidence
New Qiniu Cloud storage management interface
Added a complete set of UI pages for managing Qiniu Cloud storage buckets, including bucket listing with search, domain and region configuration, file browsing with preview support, and file details. This enables users to create, configure, and manage Qiniu buckets directly within the app.
_lib/picture\_host\manage/qiniu · high confidence
New and updated configuration pages for Alist, S3, FTP, and other image hosts
The configuration interface has been expanded and refactored to support additional image hosting providers. New dedicated configuration pages have been added for Alist (including admin token and web path settings), S3-compatible storage (with path-style and SSL options), and FTP/SFTP (supporting anonymous login and custom domains). Existing configuration pages for Aliyun, GitHub, Imgur, Lskypro, and Qiniu have also been updated with new UI layouts and fields, such as custom URLs and proxy settings, allowing users to manage their storage backends more flexibly.
_lib/picture\_host\_configure/configure\page · high confidence
New common configuration and image management UI pages
The app introduces a new 'Common Settings' page (通用设置) that centralizes upload options (file renaming, auto-copy link, URL encoding), image processing controls (compression toggle and detailed size/quality/format settings), and deletion behaviors (syncing local/cloud removal). It also adds dedicated UI for selecting link formats (URL, HTML, BBcode, Markdown, custom) and importing host configurations via QR code scanning for services like sm.ms, AWS S3, Alist, GitHub, and Lsky Pro.
_lib/configure\_page/common\configure · high confidence
New configuration page with background OTA update checks
A new ConfigurePage has been added to the application, providing a settings interface that includes a card-based layout for user options. This page introduces an Over-The-Air (OTA) update mechanism that automatically checks for new versions in the background every 10 minutes by querying a remote JSON endpoint. If a newer version is detected, users are prompted via a dialog to download and install the update using the ota\_update package, with progress and status messages displayed via toast notifications.
_lib/configure\page · high confidence
New dedicated configuration edit pages for all supported image hosts
The application now provides specific, dedicated UI forms for editing backup configuration settings for every supported image host, including Alist, Aliyun OSS, AWS S3, FTP, GitHub, Imgur, Lsky Pro, Qiniu, SM.MS, Tencent COS, Upyun, and WebDAV. Each page in this directory implements a tailored form layout with appropriate input fields, validation rules, and save/import actions for its respective provider, replacing the previous generic or less structured configuration approach.
_lib/picture\_host\_configure/configure\_store/configure\_store\_edit\page · high confidence
New image hosting providers added: Alist, Aliyun, AWS S3, FTP, and Tencent COS
The application now supports uploading and deleting images to Alist, Alibaba Cloud OSS, AWS S3 (via Minio), FTP/SFTP servers, and Tencent Cloud COS. These new providers are implemented in the \lib/api\ module (e.g., \alist\_api.dart\, \aliyun\_api.dart\, \aws\_api.dart\, \ftp\_api.dart\, \tencent\_api.dart\) and exported via \api.dart\, expanding the range of supported storage backends.
lib/api · high confidence
New picture host management APIs for Alist, Aliyun, AWS, FTP, GitHub, Imgur, LskyPro, Qiniu, SM.MS, and Tencent
The application now includes dedicated API management modules for a wide range of cloud storage and image hosting providers. This change adds new implementation files for Alist (including admin token support and web path configuration), Aliyun OSS (with multi-AZ region support), AWS S3 (via Minio), FTP/SFTP, GitHub (repository and user management), Imgur (with proxy support), LskyPro (Lan Kong), Qiniu (including ap-southeast-2 region support), SM.MS, and Tencent Cloud COS. These modules enable users to configure, authenticate, and manage buckets, repositories, and albums directly within the app for these specific services.
_lib/picture\_host\_manage/manage\api · high confidence
New picture host management entry point with draggable grid navigation
The \lib/picture\_host\_manage\ area now includes a new \picture\_host\_manage\_entry.dart\ file that serves as the main entry point for managing picture hosts. This file introduces a \PsHostHomePage\ widget displaying a draggable grid of cards for various cloud storage providers (Tencent Cloud, SM.MS, Aliyun, Qiniu, Upyun, LskyPro, GitHub, Imgur). The implementation handles navigation to specific management routes for each provider, with specific logic for Upyun and Imgur to check configuration status and redirect to login if needed.
_lib/picture\_host\manage · high confidence
New shared UI components and widgets introduced
The lib/widgets directory now includes several new reusable components: common\_widgets.dart provides a flexible space gradient and a standard back-arrow leading icon; configure\_widgets.dart offers a suite of settings UI elements including setting cards, list items, form fields, and a configured app bar; custom\_speed\_dial.dart implements a custom animated floating action button menu; load\_state\_change.dart defines a default loading and error state handler for images; net\_loading\_dialog.dart adds a network activity loading dialog; and web\_view.dart introduces a dedicated page for displaying web content with configurable JavaScript support.
lib/widgets · high confidence
New software log viewing page
A new LogPage has been added to the application, allowing users to view, search, and filter application logs. The page displays log entries with color-coded severity levels (ERROR, WARNING, INFO, DEBUG) and supports filtering by class name, method name, log content, and timestamp. It integrates with the f\_logs package to retrieve logs and presents them in a scrollable list with expandable details.
_lib/configure\page/logger · high confidence
New theme selection UI and structured theme data
The app now includes a dedicated theme selection screen (lib/configure\_page/others/select\_theme.dart) that allows users to switch between Light, Dark, and Auto modes, as well as six accent colors (Green, Purple, Orange, Pink, Cyan, Gold). This is backed by a new theme data structure (lib/configure\_page/others/theme\_data.dart) that defines these themes using Material 3 color schemes and system fonts. Additionally, the update log page (lib/configure\_page/others/update\_log.dart) has been enhanced with improved Markdown styling, selectable text, and better image handling.
_lib/configure\page/others · high confidence
SFTP file management support added to FTP picture host
Users can now manage files on SFTP servers through the existing FTP picture host interface. This change introduces new UI components for browsing SFTP directories, viewing detailed file information (such as permissions, ownership, and timestamps), and previewing images directly from SFTP storage, extending the current FTP capabilities to include SFTP protocol support.
_lib/picture\_host\manage/ftp · high confidence
Behavioural changes
Added Flutter environment export script for iOS builds
A new flutter\_export\_environment.sh script has been added to the ios/Flutter directory to configure build environment variables for the iOS target. This file defines the Flutter root, application path, and build settings (such as build name 3.0.1 and obfuscation status) required for the iOS build process to locate the Flutter engine and assets correctly.
ios · medium confidence
App initialization and UI layer refactored with EasyLoading and system font support
The application entry point (lib/main.dart) has been restructured to initialize core services before launching the UI. This includes integrating flutter\_easyloading for global loading indicators, setting up analytics tracking on app open, and configuring the theme provider via MultiProvider. The UI layer now leverages NativeFeatures.loadSystemFont() for custom font handling and uses Application.router.generator for route management, replacing previous initialization patterns.
lib · high confidence
Redesigned Tencent Cloud COS management interface
The Tencent Cloud COS management section has been completely refactored with new pages for managing storage buckets and files. Users can now view detailed bucket information (name, region, access domain) and file metadata (name, size, ETag) on dedicated information pages with copy-to-clipboard actions. The bucket list page now supports searching and sorting, while the file explorer provides a unified interface for browsing, uploading, and previewing files (images, PDFs, text, video) with improved navigation and error handling.
_lib/picture\_host\manage/tencent · high confidence
Redesigned album management with new UI components and database clearing tools
The album interface has been refactored to improve usability and visual consistency. A new reusable ActionButton widget is introduced for consistent action styling. The main album page now features a more robust image loading mechanism with batched loading and scroll listeners, alongside an updated UI for selecting image paste formats. Additionally, a new EmptyDatabase screen has been added, allowing users to selectively clear database tables for specific image hosts (such as FTP, S3, AList, and WebDAV) or clear all data at once, providing better control over local storage.
lib/album · high confidence
Redesigned home page with new upload management and intent handling
The home page has been completely rewritten to support a new upload workflow. Users can now receive images via Android share intents, which are automatically compressed and added to the upload queue. The upload process is managed by a new background service that supports pausing, resuming, and canceling tasks, with real-time progress indicators and status updates (queued, uploading, completed, failed) visible in the UI. Upon completion, upload links are automatically copied to the clipboard and stored for easy access. The page also integrates with the album system to refresh the gallery after uploads.
lib/pages · high confidence
Refactored file management and download infrastructure
The file management interface has been restructured to use a new base class (BaseFileExplorer) that standardizes file listing, selection, and action sheets, while the download system has been rewritten with a new common service layer (BaseDownloadManager) that supports a new 'uninitialized' status and passes configuration maps to specific download managers for providers like Alist, Aliyun, and AWS.
_lib/picture\_host\manage/common · high confidence
Replaced navigation system with Fluro-based routing
The application's navigation layer has been rewritten to use the Fluro library, introducing a new centralized routing structure in lib/router. This change adds comprehensive route definitions and handlers for managing multiple cloud storage providers (including Alist, WebDAV, GitHub, Aliyun, Tencent, Qiniu, Upyun, Imgur, FTP, and AWS), along with new configuration, file explorer, and preview pages. Users will experience this as the underlying mechanism for page transitions and deep linking, supporting the expanded set of hosted storage management features.
lib/router · high confidence
SM.MS image hosting management UI overhaul
The SM.MS picture host management interface has been completely redesigned with a modern UI. The new home page displays user profile details and storage usage statistics with animated transitions. A new file explorer page allows browsing, selecting, and deleting images, while a dedicated file information page provides detailed metadata and quick-copy actions for links and filenames. The upload flow now supports batch selection from device assets and includes image compression options before uploading.
_lib/picture\_host\manage/smms · high confidence
Dependencies
Android Gradle wrapper updated to version 8.10.2
The Android build system now uses Gradle 8.10.2 for project initialization and builds. This ensures consistent build environments across development and CI/CD pipelines by pinning the wrapper to this specific distribution.
android/gradle · high confidence
Initial project setup with Flutter 3.0 and extensive dependency list
This change introduces the initial configuration for the Horopic mobile application, establishing the project structure with Flutter SDK version 3.0.0 and Dart 3.0.0. It adds a comprehensive set of dependencies for image handling (camera, image\_picker, flutter\_image\_compress, flutter\_avif), file management (file\_picker, dio, webdav\_client, minio, ftpconnect), and UI components (flutter\_slidable, flutter\_speed\_dial, webview\_flutter). The Android build is configured with compile SDK 35, NDK 27.0.12077973, and Java 21, while also integrating custom Git-hosted packages for system font loading and PDF viewing.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Baseline
- First survey — no prior run to compare against. CAI 43.
Lenses
- Code Health 70
- Architecture 95
- Maturity 46
- Readiness 17
- Security 95
- Domain Modelling 100
Changes since last survey
- 300 commits — 289 feature/other, 11 fixes
By area
- lib/picture_host_manage — 107 commits
- (root) — 51 commits
- lib/utils — 29 commits
- lib/configure_page — 26 commits
- lib/api — 20 commits
- lib/picture_host_configure — 17 commits
- lib/pages — 16 commits
- lib/album — 9 commits
- android/.gradle — 6 commits
- assets/icons — 4 commits
- lib/main.dart — 4 commits
- (repo) — 2 commits
- assets/images — 2 commits
- lib/router — 2 commits
- android/app — 1 commit
- android/local.properties — 1 commit
- assets/app_icon.png — 1 commit
- assets/launch_pic.png — 1 commit
- linux/flutter — 1 commit
Notable commits
- fix: chore: update version to 3.0.1 and fix file path issue in image compression
- fix: fix: Fix capitalization of BBcode format in select_link_format.dart and home_page.dart close #82
- fix: fix: Fix case sensitivity issue in GitHub username comparison close [Bug]: 私有的倉庫無法顯示 close #76
- fix: fix: Fix network URL parsing close #73
- fix: fix: Fix problem of qiniu configure file check
- fix: fix: Handle repeated image upload and retrieve picture key
- fix: fix: Refactor intent image handling in HomePageState
- fix: fix: Remove error toast message when image retrieval fails
- fix: fix: Reorder API exports alphabetically
- fix: fix: improve file path handling for compressed images in HomePage close [Bug]: 无法压缩上传 #110,[Bug]: 上傳S3後圖檔路徑有多餘的 ./ #109
- fix: fix: remove video column from file preview support table in README
- change: Merge branch 'main' of https://github.com/Kuingsmile/PicHoro
- change: Merge branch 'main' of https://github.com/Kuingsmile/PicHoro
- change: Release: V2.1.1
- change: Remove files that should be ignored
- change: Update README.md
- change: add wechat group
- change: chore: Remove WeChat image and update development progress links
- change: chore: change gitignore
- change: chore: remove files should not be tracked
- …and 280 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
Kuingsmile/PicHoro was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 19 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 07f356e410ecbc62cbaf7ffc99326b0df7dd3eb0 — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-13a154b7f5d1.