Code
Hub
Workspaces
Following
Trending
Connect
MCP
copy
Index your code
hub
/
github.com/cropflre/nowen-video
/ functions
Functions
4,383 in github.com/cropflre/nowen-video
⨍
Functions
4,383
◇
Types & classes
1,256
↳
Endpoints
3
↓ 10 callers
Function
init
()
web/src/components/admin/AdultScraperTab.tsx:158
↓ 10 callers
Method
tmdbGetWithRetry
tmdbGetWithRetry 带重试的 TMDb GET 请求 超时后自动重试 1 次(共 2 次尝试),仍然失败则返回错误 每次请求携带随机 User-Agent 和浏览器级请求头,重试间隔 2-4 秒随机化
internal/service/metadata.go:121
↓ 10 callers
Function
updateAdvanced
( key: K, value: LibraryAdvancedSettings[K] )
web/src/components/EditLibraryModal.tsx:250
↓ 10 callers
Function
updateAdvanced
( key: K, value: LibraryAdvancedSettings[K] )
web/src/components/CreateLibraryModal.tsx:239
↓ 9 callers
Method
DeleteByMediaID
(mediaID string)
internal/repository/repo_social.go:174
↓ 9 callers
Method
GetCache
==================== 缓存 ==================== GetCache 从缓存获取(双层:先查内存,再查持久化存储)
internal/service/ai.go:482
↓ 9 callers
Method
Register
Register 用户注册
internal/service/auth.go:133
↓ 9 callers
Method
Start
Start 启动 UDP 监听。返回 nil 表示成功启动。 已启动时重复调用会被忽略。
internal/handler/emby/discovery.go:68
↓ 9 callers
Function
absUrl
(value)
browser-extension/src/content.js:10
↓ 9 callers
Method
addItem
addItem 追加脏数据条目
cmd/clean-dirty/main.go:183
↓ 9 callers
Method
auditFromContext
auditFromContext 从 Gin 上下文中提取操作者信息并记录审计日志
internal/handler/admin.go:298
↓ 9 callers
Method
broadcastScanEvent
broadcastScanEvent 广播扫描事件
internal/service/scanner.go:2845
↓ 9 callers
Function
cleanJSONResponse
cleanJSONResponse 清理 LLM 返回的 JSON(去除 markdown 代码块等)
internal/service/ai_search.go:125
↓ 9 callers
Method
excludeDuplicates
excludeDuplicates 在前端列表查询里统一过滤掉"同片副本", 仅保留主版本(duplicate_of 为空)。这是"同片多版本折叠"的核心约束。 注意:仅用于面向用户的列表/海报墙;管理后台、版本切换、扫描器、清理工具 等需要看到全部记录的场景请直接走 r.db。
internal/repository/repo_media.go:82
↓ 9 callers
Function
getRandomUserAgent
getRandomUserAgent 从 User-Agent 池中随机选取一个
internal/service/scrape_delay.go:50
↓ 9 callers
Function
invoke
安全调用 invoke —— 桌面端才有效
web/src/desktop/bridge.ts:172
↓ 9 callers
Function
javdbPanelValue
(labels)
browser-extension/src/content.js:147
↓ 9 callers
Method
joinPath
joinPath 路径拼接(webdav:// 用正斜杠)
internal/service/nfo.go:73
↓ 9 callers
Function
sanitizeFilename
sanitizeFilename 清理文件名中不合法的字符
internal/service/adult_extra_media.go:247
↓ 9 callers
Function
setupAuthService
setupAuthService 创建测试用的AuthService
internal/service/auth_test.go:28
↓ 9 callers
Function
vfsJoin
vfsJoin 拼接路径:对 webdav:// 前缀的路径使用正斜杠,避免 filepath.Join 在 Windows 下把前缀破坏为 webdav:\
internal/service/scanner.go:473
↓ 8 callers
Function
AdminOnly
AdminOnly 管理员权限中间件
internal/middleware/middleware.go:202
↓ 8 callers
Method
DeleteByLibraryID
(libraryID string)
internal/repository/repo_media.go:216
↓ 8 callers
Function
FeatureScaffold
android/app/src/main/java/com/nowen/video/ui/screen/features/MobileFeatureScreens.kt:104
↓ 8 callers
Method
GetOutputDir
GetOutputDir 获取转码输出目录
internal/service/transcode.go:281
↓ 8 callers
Method
GetStatus
(c *gin.Context)
internal/handler/v2_handlers.go:699
↓ 8 callers
Method
ListByMediaID
(mediaID string)
internal/repository/repo_person.go:74
↓ 8 callers
Method
ScrapeMedia
ScrapeMedia 为单个媒体刮削元数据 mode: "primary" 表示主数据源(覆盖写入),"supplement" 表示补充源(仅填充缺失字段)
internal/service/metadata_provider.go:65
↓ 8 callers
Method
append
(e IngestJournalEntry)
internal/service/ingest_journal.go:75
↓ 8 callers
Method
broadcast
==================== 进度推送 ====================
internal/service/ingest_lazy.go:1022
↓ 8 callers
Method
broadcastDownloadEvent
broadcastDownloadEvent 广播下载事件
internal/service/offline_download.go:485
↓ 8 callers
Method
broadcastTaskUpdate
broadcastTaskUpdate 广播任务更新
internal/service/scrape_manager.go:870
↓ 8 callers
Method
broadcastTranscodeEvent
broadcastTranscodeEvent 广播转码事件
internal/service/transcode.go:674
↓ 8 callers
Function
collapseWhitespace
collapseWhitespace 把多空白合一并 trim
internal/service/smart_rename.go:1314
↓ 8 callers
Function
formatEmbyTime
formatEmbyTime 将 time.Time 转为 Emby 客户端期望的 ISO8601 时间字符串。
internal/handler/emby/dto.go:336
↓ 8 callers
Function
formatSize
(bytes: number)
web/src/utils/format.ts:7
↓ 8 callers
Function
getIntQuery
getIntQuery 从 query 中读取整数参数,缺省返回 def。
internal/handler/emby/auth.go:233
↓ 8 callers
Function
invalidateMediaListCaches
()
web/src/utils/invalidateMediaCaches.ts:25
↓ 8 callers
Function
parseVTTTimeMs
==================== 时间工具函数 ==================== parseVTTTimeMs 解析 VTT 时间戳为毫秒数 支持格式: "HH:MM:SS.mmm" 或 "MM:SS.mmm"
internal/service/subtitle_cleaner.go:714
↓ 8 callers
Method
probeMediaInfo
probeMediaInfo 使用FFprobe提取视频元数据(.strm 文件走特殊逻辑)
internal/service/scanner.go:2896
↓ 8 callers
Method
scanExternalSubtitles
scanExternalSubtitles 扫描外挂字幕文件
internal/service/scanner.go:3051
↓ 8 callers
Method
search
android/app/src/main/java/com/nowen/video/data/remote/NowenApiService.kt:108
↓ 8 callers
Function
seek
(seconds: number)
web/src/components/VideoPlayer.tsx:736
↓ 8 callers
Function
setStatus
(message, data)
browser-extension/src/popup.js:13
↓ 8 callers
Function
showTmdbMessage
(type: 'success' | 'error' | 'info', text: string)
web/src/pages/AdminPage.tsx:524
↓ 7 callers
Function
BuildStandardNames
BuildStandardNames 一处渲染,三处共用。规则以一键入库为标准。
internal/service/naming_standard.go:120
↓ 7 callers
Function
CyberClickItem
android/app/src/main/java/com/nowen/video/ui/screen/settings/PlayerSettingsScreen.kt:346
↓ 7 callers
Function
CyberSelectionDialog
android/app/src/main/java/com/nowen/video/ui/screen/settings/PlayerSettingsScreen.kt:432
↓ 7 callers
Method
FindByFolderPath
(folderPath string)
internal/repository/repo_series.go:37
↓ 7 callers
Method
GetDirectStreamInfo
GetDirectStreamInfo 获取直接播放的文件路径和MIME类型 对于 STRM 文件,返回特殊标记,由 handler 层走代理逻辑
internal/service/stream.go:376
↓ 7 callers
Function
NormalizeForCompare
NormalizeForCompare 归一化标题用于分组 key 匹配(忽略全半角、空白、常见标点差异)。 用途: - 合集名 / 分组 key 的稳定比较 - 避免 "逃学威龙" 与 "逃学威龙 " / "逃学 威龙" / "逃学威龙:" 被误判为不同
internal/matcher/title.go:111
↓ 7 callers
Function
NormalizeSeriesTitle
NormalizeSeriesTitle 对任意来源的 Series 标题做最后一轮清洗, 用于:入库前 / 搜索前 / 合并前的归一化。 规则: - 去发行组/广告【xxx压制】【Q群xxx】 - 去站点标签 [yyh3d.com] - 去编码/来源噪声 - 剥离末尾季号(S1 / 第一季 /
internal/service/episode_parser.go:252
↓ 7 callers
Method
Register
Register 注册数据源(按优先级自动排序)
internal/service/metadata_provider.go:171
↓ 7 callers
Method
SearchSeries
==================== 核心方法 ==================== SearchSeries 搜索剧集
internal/service/thetvdb.go:253
↓ 7 callers
Method
SearchSubjects
==================== Bangumi API 调用 ==================== SearchSubjects 通过 Bangumi API 搜索条目
internal/service/bangumi.go:287
↓ 7 callers
Method
Type
Type 返回文件系统类型标识
internal/service/vfs.go:60
↓ 7 callers
Method
addErrorLog
==================== 错误日志 ==================== addErrorLog 添加错误日志
internal/service/ai.go:1081
↓ 7 callers
Method
broadcastEvent
(eventType string, task *model.PreprocessTask)
internal/service/preprocess.go:2573
↓ 7 callers
Method
clear
clear 清空缓存(例如文件关闭时)
internal/service/webdav_cache.go:104
↓ 7 callers
Method
deleteSourceDuplicateIfOrganized
findOrganizedHardlinkRecord 判断当前源路径是否已经被 AI 整理后的硬链接记录代表。 当 Media.FilePath 已同步为 OrganizeOutputDir 下的路径时,后续扫描源目录不能再把源文件当新媒体入库。
internal/service/scanner.go:1097
↓ 7 callers
Method
downloadToFile
downloadToFile 下载文件到指定路径(带重试)
internal/service/metadata.go:2503
↓ 7 callers
Method
encodeStats
(stats LazyIngestStats)
internal/service/ingest_lazy.go:860
↓ 7 callers
Function
escapeHtml
(value)
browser-extension/src/popup.js:66
↓ 7 callers
Method
extractSeasonFromDirName
extractSeasonFromDirName 从目录名中提取季号 例如: "一拳超人 S2" → 2, "Breaking Bad Season 1" → 1, "一拳超人 第二季" → 2
internal/service/scanner.go:1976
↓ 7 callers
Method
findOrganizedHardlinkRecord
(library *model.Library, sourcePath string, sourceInfo os.FileInfo)
internal/service/scanner.go:1113
↓ 7 callers
Function
formatBitRate
格式化码率为可读格式
web/src/components/media/MediaTechSpecs.tsx:33
↓ 7 callers
Function
formatCodecName
格式化编码器名称
web/src/components/media/MediaTechSpecs.tsx:72
↓ 7 callers
Function
formatDate
(dateStr: string)
web/src/utils/format.ts:34
↓ 7 callers
Method
isCancelled
==================== 辅助方法 ====================
internal/service/subtitle_preprocess.go:1221
↓ 7 callers
Function
isVideoExt
isVideoExt 判断是否为视频扩展名
internal/service/emby_compat.go:1331
↓ 7 callers
Method
mapMediaToItem
mapMediaToItem 将 Media(电影或剧集单集)转成 Emby BaseItemDto。 kind = "Movie" / "Episode" / "Video"。
internal/handler/emby/handler.go:115
↓ 7 callers
Function
map_err
libmpv2::Error -> anyhow::Error 桥接(libmpv2::Error 未实现 StdError,不能用 .context())
desktop/src-tauri/src/mpv.rs:397
↓ 7 callers
Method
mustLoadJob
(id string)
internal/service/ingest_lazy.go:841
↓ 7 callers
Method
parseEpisodeInfo
parseEpisodeInfo 从文件名解析剧集信息 支持的命名格式: 标准格式: [字幕组][剧名][One-Punch Man][01][1280x720][简体] 季集格式: [HYSUB][ONE PUNCH MAN S2][OVA01][GB_MP4][1280X720].mp4
internal/service/scanner.go:2461
↓ 7 callers
Method
searchDouban
==================== 豆瓣 API 调用 ==================== searchDouban 通过豆瓣搜索API获取结果 使用豆瓣 frodo API(移动端接口,较稳定)
internal/service/douban.go:190
↓ 7 callers
Method
sendDLNAAction
sendDLNAAction 发送DLNA SOAP控制指令
internal/service/cast.go:531
↓ 7 callers
Method
statPath
statPath 获取文件信息(支持 webdav://)
internal/service/nfo.go:51
↓ 6 callers
Function
CyberItemDivider
android/app/src/main/java/com/nowen/video/ui/screen/settings/PlayerSettingsScreen.kt:423
↓ 6 callers
Method
DeleteByLibraryMediaIDs
(libraryID string)
internal/repository/repo_social.go:178
↓ 6 callers
Method
FindByUserID
(userID string)
internal/repository/repo_admin.go:52
↓ 6 callers
Method
FindOrCreate
(name string, tmdbID int)
internal/repository/repo_person.go:40
↓ 6 callers
Method
GetMediaTask
GetMediaTask 获取媒体的预处理状态
internal/handler/preprocess.go:113
↓ 6 callers
Method
GetPlanWithItems
GetPlanWithItems 取规划任务并预加载条目
internal/repository/repo_smart_rename.go:50
↓ 6 callers
Method
IncrTokenVersion
IncrTokenVersion 令牌版本号自增(用于吊销所有旧Token)
internal/repository/repo_user.go:59
↓ 6 callers
Function
NewNFOService
(logger *zap.SugaredLogger)
internal/service/nfo.go:26
↓ 6 callers
Method
SearchTMDb
SearchTMDb 公开的TMDb搜索方法(用于手动元数据匹配)
internal/service/metadata.go:1755
↓ 6 callers
Method
Start
Start 启动 mDNS 广播服务。
internal/service/mdns.go:94
↓ 6 callers
Method
UpdateFileInfo
==================== 文件编辑 ==================== UpdateFileInfo 更新文件信息
internal/service/file_manager.go:573
↓ 6 callers
Method
UpdateMediaCount
UpdateMediaCount 更新合集的电影数量和年份范围 media_count 按 version_group 去重(同一部电影的不同版本算 1 部),贴合前端"系列里有几部电影"的语义; file_count 为原始文件总数(每个版本各算一个)。
internal/repository/repo_collection.go:262
↓ 6 callers
Method
UpdatePlanFields
UpdatePlanFields 部分字段更新
internal/repository/repo_smart_rename.go:36
↓ 6 callers
Method
WriteMediaNFO
WriteMediaNFO 为普通媒体生成同名 .nfo 文件。 自动刮削路径默认选择 skip,避免覆盖用户已有的手写 NFO。
internal/service/nfo_writer.go:45
↓ 6 callers
Function
abs
(x float64)
internal/service/ai_scene.go:977
↓ 6 callers
Method
addOperation
addOperation 添加操作记录
internal/service/ai_assistant.go:1093
↓ 6 callers
Function
boolToStr
(b bool)
internal/handler/admin_system.go:268
↓ 6 callers
Method
broadcastEvent
(eventType string, task *model.SubtitlePreprocessTask)
internal/service/subtitle_preprocess.go:1291
↓ 6 callers
Method
broadcastTaskEvent
processOne 处理单个视频文件
internal/service/adult_folder_scan.go:377
↓ 6 callers
Method
buildUserItemData
buildUserItemData 组装 Emby UserData。
internal/handler/emby/items.go:742
↓ 6 callers
Function
canMediaPlayDirectly
canMediaPlayDirectly 包级判定:判断该媒体是否可在浏览器端零转码播放。 抽成包级函数的原因:PreprocessService 需要在"自动批量提交"路径上据此跳过 已经能直接播放/Remux 的媒体,但 PreprocessService 与 StreamService 之间
internal/service/stream.go:244
↓ 6 callers
Method
checkEnabled
(name string)
cmd/clean-dirty/main.go:175
↓ 6 callers
Method
connect
* 建立 WebSocket 连接 */
android/app/src/main/java/com/nowen/video/data/remote/WebSocketManager.kt:118
← previous
next →
101–200 of 4,383, ranked by callers