- 此文章由少女乌斯代笔
Mfuns 的非官方 Flutter 客户端 Mfuns Flutter 最近更新很勤(v1.1.3 已于 8 月 14 日发布)。Android 优先,同时支持 Windows 桌面端。今天重点说说它的特色机制——最新页「不友好标记」,顺便带一下项目概况与更新路线。
什么是「不友好标记」
这是客户端为「最新内容聚合流」设计的社区自治机制:看到不友好的帖子,长按即可标记,5 人标记后帖子自动屏蔽并从列表移除。从 v1.1.1 到 v1.1.3,这个功能经历了明显的演进:
v1.1.1 —— 诞生(匿名可标)
- 长按帖子标记为不友好内容,同一用户对同一帖子只计一次
- 达到 5 人标记后帖子自动屏蔽处理并从列表移除
- 已标记帖子显示「已有 X/5 位喵友标记此帖子」,自己标过会显示「我已标记」
- 匿名用户标识自动生成,无需登录即可标记
v1.1.2 —— 收紧(登录 + 隐私最小化)
- 标记改为需登录后使用,标记时仅上传登录用户的 UID,不包含任何其他信息
- 明确隐私说明:不会上传设备信息、位置、通讯录等敏感数据
- 服务端按 UID 记录并去重(同一用户每帖只计一次),5 人标记自动屏蔽
v1.1.3 —— 纠错(可取消)
- 帖子被 5 人标记屏蔽前,已标记用户可随时取消标记(服务端按 UID 删除记录,屏蔽后不可取消)
- 未登录/登录失效时的提示优化:明确提示「登录状态已失效,请重新登录后再操作」,不再暴露原始异常
- 同版本还新增了视频播放保持屏幕唤醒(wakelock_plus)
这个演进思路值得点赞:匿名 → 实名(登录 UID)→ 可撤回,既保留了低门槛参与,又堵住了滥用和误标,还给了用户反悔的余地。屏蔽后不可取消也避免了「被屏蔽的帖子靠反复取消/重标拉扯」的漏洞。
项目概况
功能特性
- 浏览:首页推荐流 / 热榜 / 分区、全站动态时间线(关注/最新/时间线排序切换)、内容搜索、多清晰度播放(360p–1080p 直链)
- 互动:登录与会话安全存储、点赞/点踩/收藏/评论/回复/删除(长按)、私有表情包、私信与通知中心、投稿管理(文章发布/编辑、视频本地上传)、用户主页
- 播放体验:竖屏播放高度限制、横屏自动分栏(左播放器 + 右信息)、多轨道弹幕(滚动/置顶/底部,透明度字号可调)、沉浸式横屏
- 个性化:自定义主题色(默认洛天依蓝 #66CCFF)、默认清晰度与弹幕偏好、我的页面统计
技术栈
- Flutter 3.24 / Dart 3.5
- video_player + video_player_win、flutter_secure_storage、html、flutter_markdown_plus、crypto 等
- 视频上传:VOD 凭证 → 标准 OSS 签名 PUT(纯 Dart 实现)→ upload_complete
- 无第三方状态管理,基于 ChangeNotifier(AppController)+ ThemeExtension 主题
近期更新亮点(v1.1.0 合并 1.0.5~1.0.9)
- 每日签到:签到日历、补签、累计奖励、今日签到排行榜(横屏双栏自适应)
- 自动签到:应用打开状态下每天 00:00 自动签到
- 投币:文章/视频支持投 1/2/5 枚硬币
- 检查更新 + 下载加速配置(自定义 GitHub 加速地址)
- 播放器大量优化:竖屏固定顶部、左右拖动调进度、修复横屏跳回竖屏问题、Windows 真全屏
小结
Mfuns Flutter 作为非官方客户端,功能覆盖已经相当完整,而「不友好标记」这类社区自治机制的设计细节(去重、5 人阈值、隐私最小化、可取消)尤其体现了开发者的用心。项目声明仅用于学习交流,所有数据来源于 Mfuns 社区公开接口。
- 仓库:github.com/ymltsh/Mfuns_Flutter
- 最新版:v1.1.3(APK 与 Windows 压缩包均已提供)





有点类似于B站的“不感兴趣”选项