Compare commits
2 Commits
c7c1070f74
...
c8278b506a
Author | SHA1 | Date |
---|---|---|
|
c8278b506a | |
|
5fa099bfe1 |
|
@ -89,30 +89,10 @@ class CreateProductionCommand extends Command
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @return list<SentenceNote> */
|
|
||||||
private function getAllSentenceNotes(): array
|
|
||||||
{
|
|
||||||
printf('Getting all SentenceNote...');
|
|
||||||
$allIds = $this->ankiService->getAllSentenceNoteIds();
|
|
||||||
$allNotes = $this->ankiService->getNotes($allIds);
|
|
||||||
printf(" OK (%d)\n", count($allNotes));
|
|
||||||
return $allNotes;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** @return list<SentenceListeningNote> */
|
|
||||||
private function getAllSentenceListeningNotes(): array
|
|
||||||
{
|
|
||||||
printf('Getting all SentenceListeningNote...');
|
|
||||||
$allListeningIds = $this->ankiService->getAllSentenceListeningNoteIds();
|
|
||||||
$allListeningNotes = $this->ankiService->getNotes($allListeningIds);
|
|
||||||
printf(" OK (%d)\n", count($allListeningNotes));
|
|
||||||
return $allListeningNotes;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected function execute(InputInterface $input, OutputInterface $output): int
|
protected function execute(InputInterface $input, OutputInterface $output): int
|
||||||
{
|
{
|
||||||
$allSentenceNotes = $this->getAllSentenceNotes();
|
$allSentenceNotes = $this->ankiService->getAllFromClass(SentenceNote::class, false);
|
||||||
$allListeningNotes = $this->getAllSentenceListeningNotes();
|
$allListeningNotes = $this->ankiService->getAllFromClass(SentenceListeningNote::class, false);
|
||||||
|
|
||||||
// Index of all the Terms indexed by its TermKanji
|
// Index of all the Terms indexed by its TermKanji
|
||||||
$allTerms = []; // ["パレートの法則" => App\Entity\Term]
|
$allTerms = []; // ["パレートの法則" => App\Entity\Term]
|
||||||
|
|
|
@ -5,6 +5,7 @@ namespace App\Entity;
|
||||||
class SentenceNote extends Note
|
class SentenceNote extends Note
|
||||||
{
|
{
|
||||||
const MODEL_NAME = 'Japanese sentences';
|
const MODEL_NAME = 'Japanese sentences';
|
||||||
|
const DECK = '日本語::音読';
|
||||||
|
|
||||||
private ?array $mediaInfo = [];
|
private ?array $mediaInfo = [];
|
||||||
private array $terms = [];
|
private array $terms = [];
|
||||||
|
|
|
@ -77,9 +77,20 @@ class AnkiService
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @return list<int> */
|
/** @return list<int> */
|
||||||
public function getAllIdsFromClass(string $class): array
|
public function getAllIdsFromClass(
|
||||||
{
|
string $class,
|
||||||
$query = sprintf('"note:%s"', constant("$class::MODEL_NAME"));
|
?bool $isSuspended = null,
|
||||||
|
): array {
|
||||||
|
$query = sprintf(
|
||||||
|
'"deck:%s" "note:%s" %s',
|
||||||
|
constant("$class::DECK"),
|
||||||
|
constant("$class::MODEL_NAME"),
|
||||||
|
match ($isSuspended) {
|
||||||
|
null => '',
|
||||||
|
true => 'is:suspended',
|
||||||
|
false => '-is:suspended',
|
||||||
|
}
|
||||||
|
);
|
||||||
return $this->request('findNotes', ['query' => $query]);
|
return $this->request('findNotes', ['query' => $query]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -88,9 +99,9 @@ class AnkiService
|
||||||
* @param class-string<T> $class
|
* @param class-string<T> $class
|
||||||
* @return list<T>
|
* @return list<T>
|
||||||
*/
|
*/
|
||||||
public function getAllFromClass(string $class): array
|
public function getAllFromClass(string $class, ?bool $isSuspended): array
|
||||||
{
|
{
|
||||||
$ids = $this->getAllIdsFromClass($class);
|
$ids = $this->getAllIdsFromClass($class, $isSuspended);
|
||||||
return $this->getNotes($ids);
|
return $this->getNotes($ids);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue