Чтобы сделать существующую колоду Anki частью другой существующей колоды Anki, вы можете использовать API AnkiConnect, который обеспечивает программное управление Anki посредством HTTP-запросов. Вот несколько методов, которые вы можете использовать, а также примеры кода:
Метод 1: использование AnkiConnect и функции deckRename
import requests
import json
def make_subdeck(parent_deck_name, subdeck_name):
url = 'http://localhost:8765'
headers = {'Content-Type': 'application/json'}
# Rename the existing subdeck to include the parent deck name
payload = {
'action': 'deckRename',
'version': 6,
'params': {
'currentName': subdeck_name,
'newName': f'{parent_deck_name}::{subdeck_name}'
}
}
response = requests.post(url, headers=headers, data=json.dumps(payload))
print(response.text)
Метод 2: использование AnkiConnect и функции deckConfigId
import requests
import json
def make_subdeck(parent_deck_name, subdeck_name):
url = 'http://localhost:8765'
headers = {'Content-Type': 'application/json'}
# Get the config ID of the parent deck
payload = {
'action': 'deckConfigId',
'version': 6,
'params': {
'deck': parent_deck_name
}
}
response = requests.post(url, headers=headers, data=json.dumps(payload))
config_id = response.json()['result']
# Update the existing subdeck's configuration to use the parent deck's config ID
payload = {
'action': 'deckUpdateConfigs',
'version': 6,
'params': {
'decks': [subdeck_name],
'configId': config_id
}
}
response = requests.post(url, headers=headers, data=json.dumps(payload))
print(response.text)
Метод 3: использование AnkiConnect и функции deckSetParent
import requests
import json
def make_subdeck(parent_deck_name, subdeck_name):
url = 'http://localhost:8765'
headers = {'Content-Type': 'application/json'}
# Set the parent deck for the existing subdeck
payload = {
'action': 'deckSetParent',
'version': 6,
'params': {
'deck': subdeck_name,
'parent': parent_deck_name
}
}
response = requests.post(url, headers=headers, data=json.dumps(payload))
print(response.text)
Чтобы использовать любой из этих методов, вам необходимо установить и запустить AnkiConnect. В примерах предполагается, что AnkiConnect работает локально на порту по умолчанию (8765). При необходимости измените URL-адрес.