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

Method search

Extension/Script/resourcescript.cpp:21–55  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

19}
20
21ScriptState ResourceScript::search(const QString &keyword, int page, int &totalPage, QList<ResourceItem> &results, const QString &scene, const QMap<QString, QString> *option)
22{
23 MutexLocker locker(scriptLock);
24 if(!locker.tryLock()) return ScriptState(ScriptState::S_BUSY);
25 QString errInfo;
26 QVariantList params{keyword, page, scene};
27 if(!option)
28 {
29 addSearchOptions(params);
30 }
31 else
32 {
33 QVariantMap optionMap;
34 for(auto iter = option->cbegin(); iter != option->cend(); ++iter)
35 {
36
37 optionMap[iter.key()] = iter.value();
38 }
39 params.append(optionMap);
40 }
41 QVariantList rets = call(searchFunc, params, 2, errInfo);
42 if(!errInfo.isEmpty()) return ScriptState(ScriptState::S_ERROR, errInfo);
43 if(rets[0].type()!=QVariant::List || !rets[1].canConvert(QVariant::Int)) return ScriptState(ScriptState::S_ERROR, "Wrong Return Value Type");
44 totalPage = rets[1].toInt();
45 if(totalPage <= 0) totalPage = 1;
46 auto robjs = rets[0].toList(); //[{title=xx, <magnet=xx>, <time=xx>, <size=xx>, <url=xx>},...]
47 for(auto &r : robjs)
48 {
49 auto robj = r.toMap();
50 QString title = robj.value("title").toString();
51 if(title.isEmpty()) continue;
52 results.append({title, robj.value("time").toString(), robj.value("size").toString(), robj.value("magnet").toString(), robj.value("url").toString()});
53 }
54 return ScriptState(ScriptState::S_NORM);
55}
56
57ScriptState ResourceScript::getDetail(const ResourceItem &oldItem, ResourceItem &newItem, const QString &scene)
58{

Callers

nothing calls this directly

Calls 10

ScriptStateClass · 0.85
valueMethod · 0.80
tryLockMethod · 0.45
cbeginMethod · 0.45
cendMethod · 0.45
appendMethod · 0.45
isEmptyMethod · 0.45
typeMethod · 0.45
toMapMethod · 0.45
toStringMethod · 0.45

Tested by

no test coverage detected