saveOnlineMetaCache method

Future<void> saveOnlineMetaCache(
  1. String classId,
  2. Map<String, dynamic> data
)

保存在线模式下的 metadata 数据到本地缓存

data 为 metadata 接口返回的 response.data['data'] 原始 JSON。 写入时附加 _cached_at 时间戳,供后续过期策略使用。

Implementation

Future<void> saveOnlineMetaCache(
  String classId,
  Map<String, dynamic> data,
) async {
  classId = _trimClassId(classId);
  if (classId.isEmpty) return;
  try {
    final cacheDir = await _ensureCacheDir();
    final safeId = _safeId(classId);
    final cacheFile = File(
      p.join(cacheDir.path, '$safeId-online-meta-cache.json'),
    );
    final cacheData = Map<String, dynamic>.from(data);
    cacheData['_cached_at'] = DateTime.now().toIso8601String();
    await cacheFile.writeAsString(jsonEncode(cacheData));
  } catch (e) {
    TCICLog.error(
      '[PlayBackController] saveOnlineMetaCache error classId=$classId: $e',
      actionModule: ActionModule.playBackController.name,
      actionName: 'saveOnlineMetaCache',
    );
  }
}