MCPcopy Create free account
hub / github.com/KikoPlayProject/KikoPlay / match

Method match

Extension/Script/matchscript.cpp:20–57  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

18}
19
20ScriptState MatchScript::match(const QString &path, MatchResult &result)
21{
22 MutexLocker locker(scriptLock);
23 if(!locker.tryLock()) return ScriptState(ScriptState::S_BUSY);
24 QString errInfo;
25 QVariantList rets = call(matchFunc, {path}, 1, errInfo);
26 if(!errInfo.isEmpty()) return ScriptState(ScriptState::S_ERROR, errInfo);
27 if(rets[0].metaType().id() != QMetaType::QVariantMap) return ScriptState(ScriptState::S_ERROR, "Wrong Return Value Type");
28 auto m = rets[0].toMap(); //{success=xx, anime={name=xx,data=xx}, ep={name=xx, index=number, <type=xx>}}
29 do
30 {
31 if (!m.value("success", false).toBool()) break;
32 if (!m.contains("anime") || !m.contains("ep")) break;
33 auto anime = m.value("anime"), ep = m.value("ep");
34 if (anime.metaType().id() != QMetaType::QVariantMap || ep.metaType().id() != QMetaType::QVariantMap) break;
35 auto aobj = anime.toMap(), epobj = ep.toMap();
36 QString animeName = aobj.value("name").toString();
37 QString scriptData = aobj.value("data").toString();
38 QString scriptId = aobj.value("scriptId").toString();
39 QString epName = epobj.value("name").toString();
40 double epIndex = epobj.value("index", -1).toDouble();
41 if (animeName.isEmpty() || epName.isEmpty() || epIndex < 0) break;
42 result.success = true;
43 result.name = animeName;
44 if (!scriptData.isEmpty() && !scriptId.isEmpty())
45 {
46 result.scriptId = scriptId;
47 result.scriptData = scriptData;
48 }
49 EpInfo &epinfo = result.ep;
50 epinfo.localFile = path;
51 epinfo.index = epIndex; epinfo.name = epName;
52 epinfo.type = EpType(qBound(1, epobj.value("type", 1).toInt(), int(EpType::Other)));
53 return ScriptState(ScriptState::S_NORM);
54 } while (false);
55 result.success = false;
56 return ScriptState(ScriptState::S_NORM);
57}

Callers 2

supportURLMethod · 0.45
regexFindMethod · 0.45

Calls 9

ScriptStateClass · 0.85
valueMethod · 0.80
EpTypeEnum · 0.50
tryLockMethod · 0.45
isEmptyMethod · 0.45
idMethod · 0.45
toMapMethod · 0.45
containsMethod · 0.45
toStringMethod · 0.45

Tested by

no test coverage detected