| 60 | |
| 61 | |
| 62 | MetadataPieces 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 | |
| 106 | QString PythonRoutines::SetNewMetadataInPython(const MetadataPieces& mdp, const QString& opfdata, const QString& version) |
no test coverage detected