我使用名爲Anki的flashcard程序,它是用Python編寫的。我想寫我的第一個插件。我是Python的新手。我不是技術人員,但是我有幾年在Java,C++,C#等其他人的代碼中跳躍的經驗。這些參數的含義?
閃存卡顯示一個問題,例如「法國首都?」。當按下「顯示答案」按鈕時,Anki顯示答案「巴黎」。
我想在顯示之前抓住這個文本「巴黎」。
我已經到達了Anki碼的這一點。此時,卡片顯示「法國首都?」。答案仍然是空白的。我想我能夠抓住「val」(我認爲是「Paris」)並將其用在我的附加組件中。
def _getTypedAnswer(self):
self.web.evalWithCallback("typeans ? typeans.value : null", self._onTypedAnswer)
def _onTypedAnswer(self, val):
self.typedAnswer = val
self._showAnswer()
我一直在谷歌上搜索,試圖找到這個意思:
("typeans ? typeans.value : null", self._onTypedAnswer)
我可以訪問所有的代碼,我可以提供,可能是有用的反應的任何代碼。
謝謝。
補充:在回答者提問後。
Anki可以在電腦上或互聯網上運行。所有研究卡片的結果都是同步的,所以就最終用戶而言,一種方法或另一種方法沒有區別。
從 「網頁視圖」 類:
def evalWithCallback(self, js, cb):
self.page().runJavaScript(js, cb)
的 「評者」 級顯示問題和答案。書評窗口「MW」(即「主窗口」)
下面是類「評者」
def __init__(self, mw):
self.mw = mw
self.web = mw.web
這不是Python語法,但它被稱爲「三元如果」 - 請參閱https://en.wikipedia.org/wiki/%3F: –
這似乎是調用某種外部語言,可能是JavaScript(由於「 web「中的方法名稱)。對於Python,''「typeans?typeans.value:null」'只是一個字符串;無論是使用它,因爲代碼是Python之外的東西。什麼是'self.web'?你有'evalWithCallback'的代碼嗎? – BrenBarn
我認爲self._showAnswer()會是一個更好的地方來定位你的攔截。 TypedAnswer建議您收集...鍵入的內容。這可能不是按鈕被點擊時出現的答案,很難說。 – dodell