MCPcopy Create free account
hub / github.com/Sigil-Ebook/Sigil / GetMetadataInPython

Method GetMetadataInPython

src/EmbedPython/PythonRoutines.cpp:62–103  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

60
61
62MetadataPieces PythonRoutines::GetMetadataInPython(const QString& opfdata, const QString& version)
63{
64 int rv = 0;
65 QString traceback;
66 MetadataPieces mdp;
67
68 QString module = "metaproc2";
69 if (version.startsWith('3')) module = "metaproc3";
70 QList<QVariant> args;
71 args.append(QVariant(opfdata));
72 EmbeddedPython* epp = EmbeddedPython::instance();
73 QVariant res = epp->runInPython(module, QString("process_metadata"), args, &rv, traceback, true);
74 if (rv) {
75 fprintf(stderr, "process_meta error %d traceback %s\n",rv, traceback.toStdString().c_str());
76 }
77 PyObjectPtr mpo = PyObjectPtr(res);
78 args.clear();
79 res = epp->callPyObjMethod(mpo, QString("get_recognized_metadata"), args, &rv, traceback);
80 if (rv) {
81 fprintf(stderr, "get_recognized_metadata error %d traceback %s\n",rv, traceback.toStdString().c_str());
82 }
83 mdp.data = res.toString();
84 args.clear();
85 res = epp->callPyObjMethod(mpo, QString("get_other_meta_xml"), args, &rv, traceback);
86 if (rv) {
87 fprintf(stderr, "get_other_meta_xml error %d traceback %s\n",rv, traceback.toStdString().c_str());
88 }
89 mdp.otherxml = res.toString();
90 args.clear();
91 res = epp->callPyObjMethod(mpo, QString("get_id_list"), args, &rv, traceback);
92 if (rv) {
93 fprintf(stderr, "get_id_list error %d traceback %s\n",rv, traceback.toStdString().c_str());
94 }
95 mdp.idlist = res.toStringList();
96 args.clear();
97 res = epp->callPyObjMethod(mpo, QString("get_metadata_tag"), args, &rv, traceback);
98 if (rv) {
99 fprintf(stderr, "get_metadata_tag error %d traceback %s\n",rv, traceback.toStdString().c_str());
100 }
101 mdp.metatag = res.toString();
102 return mdp;
103}
104
105
106QString PythonRoutines::SetNewMetadataInPython(const MetadataPieces& mdp, const QString& opfdata, const QString& version)

Callers 1

GetOPFMetadataMethod · 0.80

Calls 6

appendMethod · 0.80
runInPythonMethod · 0.80
clearMethod · 0.80
callPyObjMethodMethod · 0.80
QStringClass · 0.70
PyObjectPtrClass · 0.70

Tested by

no test coverage detected