Compare commits

..

2 Commits

Author SHA1 Message Date
Diogo Cadavez
0514569621 added method to retrieve the active profile 2024-07-08 18:58:57 -07:00
Diogo Cadavez
81c39a2e42 added note modification time to notesIndo and created notesModeTime function 2024-07-08 18:58:57 -07:00
2 changed files with 90 additions and 4 deletions

View File

@ -2132,6 +2132,33 @@ Search parameters are passed to Anki, check the docs for more information: https
``` ```
</details> </details>
#### `getActiveProfile`
* Retrieve the active profile.
<details>
<summary><i>Sample request:</i></summary>
```json
{
"action": "getActiveProfile",
"version": 6
}
```
</details>
<details>
<summary><i>Sample result:</i></summary>
```json
{
"result": "User 1",
"error": null
}
```
</details>
#### `loadProfile` #### `loadProfile`
* Selects the profile specified in request. * Selects the profile specified in request.
@ -4147,8 +4174,8 @@ Search parameters are passed to Anki, check the docs for more information: https
#### `notesInfo` #### `notesInfo`
* Returns a list of objects containing for each note ID the note fields, tags, note type and the cards belonging to * Returns a list of objects containing for each note ID the note fields, tags, note type, modification time,the cards belonging to
the note. the note and the profile where the note was created.
<details> <details>
<summary><i>Sample request:</i></summary> <summary><i>Sample request:</i></summary>
@ -4172,12 +4199,49 @@ Search parameters are passed to Anki, check the docs for more information: https
"result": [ "result": [
{ {
"noteId":1502298033753, "noteId":1502298033753,
"profile": "User_1",
"modelName": "Basic", "modelName": "Basic",
"tags":["tag","another_tag"], "tags":["tag","another_tag"],
"fields": { "fields": {
"Front": {"value": "front content", "order": 0}, "Front": {"value": "front content", "order": 0},
"Back": {"value": "back content", "order": 1} "Back": {"value": "back content", "order": 1}
},
"mod": 1718377864,
"cards": [1498938915662]
} }
],
"error": null
}
```
</details>
s
#### `notesModTime`
* Returns a list of objects containings for each note ID the modification time.
<details>
<summary><i>Sample request:</i></summary>
```json
{
"action": "notesModTime",
"version": 6,
"params": {
"notes": [1502298033753]
}
}
```
</details>
<details>
<summary><i>Sample result:</i></summary>
```json
{
"result": [
{
"noteId": 1498938915662,
"mod": 1629454092
} }
], ],
"error": null "error": null

View File

@ -457,6 +457,9 @@ class AnkiConnect:
def getProfiles(self): def getProfiles(self):
return self.window().pm.profiles() return self.window().pm.profiles()
@util.api()
def getActiveProfile(self):
return self.window().pm.name
@util.api() @util.api()
def loadProfile(self, name): def loadProfile(self, name):
@ -1696,9 +1699,11 @@ class AnkiConnect:
result.append({ result.append({
'noteId': note.id, 'noteId': note.id,
'profile': self.window().pm.name,
'tags' : note.tags, 'tags' : note.tags,
'fields': fields, 'fields': fields,
'modelName': model['name'], 'modelName': model['name'],
'mod': note.mod,
'cards': self.collection().db.list('select id from cards where nid = ? order by ord', note.id) 'cards': self.collection().db.list('select id from cards where nid = ? order by ord', note.id)
}) })
except NotFoundError: except NotFoundError:
@ -1710,6 +1715,23 @@ class AnkiConnect:
return result return result
@util.api()
def notesModTime(self, notes):
result = []
for nid in notes:
try:
note = self.getNote(nid)
result.append({
'noteId': note.id,
'mod': note.mod
})
except NotFoundError:
# Anki will give a NotFoundError if the note ID does not exist.
# Best behavior is probably to add an 'empty card' to the
# returned result, so that the items of the input and return
# lists correspond.
result.append({})
return result
@util.api() @util.api()
def deleteNotes(self, notes): def deleteNotes(self, notes):