/* -------------------------------------------------------------------------- */ /* searchForKanji related classes */ /* -------------------------------------------------------------------------- */ class YomiExample { String example; String reading; String meaning; YomiExample({this.example, this.reading, this.meaning}); Map toJson() => {'example': example, 'reading': reading, 'meaning': meaning}; } class Radical { String symbol; List forms; String meaning; Radical({this.symbol, this.forms, this.meaning}); Map toJson() => {'symbol': symbol, 'forms': forms, 'meaning': meaning}; } class KanjiResult { String query; bool found; String taughtIn; String jlptLevel; int newspaperFrequencyRank; int strokeCount; String meaning; List kunyomi; List onyomi; List kunyomiExamples; List onyomiExamples; Radical radical; List parts; String strokeOrderDiagramUri; String strokeOrderSvgUri; String strokeOrderGifUri; String uri; KanjiResult( {this.query, this.found, this.taughtIn, this.jlptLevel, this.newspaperFrequencyRank, this.strokeCount, this.meaning, this.kunyomi, this.onyomi, this.kunyomiExamples, this.onyomiExamples, this.radical, this.parts, this.strokeOrderDiagramUri, this.strokeOrderSvgUri, this.strokeOrderGifUri, this.uri}); Map toJson() { return { 'query': query, 'found': found, 'taughtIn': taughtIn, 'jlptLevel': jlptLevel, 'newspaperFrequencyRank': newspaperFrequencyRank, 'strokeCount': strokeCount, 'meaning': meaning, 'kunyomi': kunyomi, 'onyomi': onyomi, 'onyomiExamples': onyomiExamples, 'kunyomiExamples': kunyomiExamples, 'radical': (radical != null) ? radical.toJson() : null, 'parts': parts, 'strokeOrderDiagramUri': strokeOrderDiagramUri, 'strokeOrderSvgUri': strokeOrderSvgUri, 'strokeOrderGifUri': strokeOrderGifUri, 'uri': uri }; } } /* -------------------------------------------------------------------------- */ /* searchForExamples related classes */ /* -------------------------------------------------------------------------- */ class ExampleSentencePiece { String lifted; String unlifted; ExampleSentencePiece({this.lifted, this.unlifted}); Map toJson() { return {'lifted': lifted, 'unlifted': unlifted}; } } class ExampleResultData { String kanji; String kana; String english; List pieces; ExampleResultData({this.english, this.kanji, this.kana, this.pieces}); Map toJson() { return {'english': english, 'kanji': kanji, 'kana': kana, 'pieces': pieces}; } } class ExampleResults { String query; bool found; String uri; List results; String phrase; ExampleResults({this.query, this.found, this.results, this.uri, this.phrase}); Map toJson() { return { 'query': query, 'found': found, 'results': results, 'uri': uri, 'phrase': phrase }; } } /* -------------------------------------------------------------------------- */ /* scrapeForPhrase related classes */ /* -------------------------------------------------------------------------- */ class PhraseScrapeSentence { String english; String japanese; List pieces; PhraseScrapeSentence({this.english, this.japanese, this.pieces}); Map toJson() => {'english': english, 'japanese': japanese, 'pieces': pieces}; } class PhraseScrapeMeaning { List seeAlsoTerms; List sentences; String definition; List supplemental; String definitionAbstract; List tags; PhraseScrapeMeaning( {this.seeAlsoTerms, this.sentences, this.definition, this.supplemental, this.definitionAbstract, this.tags}); Map toJson() => { 'seeAlsoTerms': seeAlsoTerms, 'sentences': sentences, 'definition': definition, 'supplemental': supplemental, 'definitionAbstract': definitionAbstract, 'tags': tags }; } class KanjiKanaPair { String kanji; String kana; KanjiKanaPair({this.kanji, this.kana}); Map toJson() => {'kanji': kanji, 'kana': kana}; } class PhrasePageScrapeResult { bool found; String query; String uri; List tags; List meanings; List otherForms; List notes; PhrasePageScrapeResult( {this.found, this.query, this.uri, this.tags, this.meanings, this.otherForms, this.notes}); Map toJson() => { 'found': found, 'query': query, 'uri': uri, 'tags': tags, 'meanings': meanings, 'otherForms': otherForms, 'notes': notes }; } /* -------------------------------------------------------------------------- */ /* searchForPhrase related classes */ /* -------------------------------------------------------------------------- */ class JishoJapaneseWord { String word; String reading; JishoJapaneseWord({this.word, this.reading}); factory JishoJapaneseWord.fromJson(Map json) { return JishoJapaneseWord( word: json['word'] as String, reading: json['reading'] as String); } Map toJson() => {'word': word, 'reading': reading}; } class JishoSenseLink { String text; String url; JishoSenseLink({this.text, this.url}); factory JishoSenseLink.fromJson(Map json) { return JishoSenseLink( text: json['text'] as String, url: json['url'] as String); } Map toJson() => {'text': text, 'url': url}; } class JishoWordSense { List english_definitions; List parts_of_speech; List links; List tags; List see_also; List antonyms; List source; List info; List restrictions; JishoWordSense( {this.english_definitions, this.parts_of_speech, this.links, this.tags, this.see_also, this.antonyms, this.source, this.info, this.restrictions}); factory JishoWordSense.fromJson(Map json) { return JishoWordSense( english_definitions: (json['english_definitions'] as List) .map((result) => result as String) .toList(), parts_of_speech: (json['parts_of_speech'] as List) .map((result) => result as String) .toList(), links: (json['links'] as List) .map((result) => JishoSenseLink.fromJson(result)) .toList(), tags: (json['tags'] as List).map((result) => result as String).toList(), see_also: (json['see_also'] as List) .map((result) => result as String) .toList(), antonyms: (json['antonyms'] as List) .map((result) => result as String) .toList(), source: json['source'] as List, info: (json['info'] as List).map((result) => result as String).toList(), restrictions: json['restrictions'] as List); } Map toJson() => { 'english_definitions': english_definitions, 'parts_of_speech': parts_of_speech, 'links': links, 'tags': tags, 'see_also': see_also, 'antonyms': antonyms, 'source': source, 'info': info, 'restrictions': restrictions }; } class JishoAttribution { bool jmdict; bool jmnedict; String dbpedia; JishoAttribution({this.jmdict, this.jmnedict, this.dbpedia}); factory JishoAttribution.fromJson(Map json) { return JishoAttribution( jmdict: (json['jmdict'].toString() == 'true'), jmnedict: (json['jmnedict'].toString() == 'true'), dbpedia: (json['dbpedia'].toString() != 'false') ? json['dbpedia'].toString() : null); } Map toJson() => {'jmdict': jmdict, 'jmnedict': jmnedict, 'dbpedia': dbpedia}; } class JishoResult { String slug; bool is_common; List tags; List jlpt; List japanese; List senses; JishoAttribution attribution; JishoResult( {this.slug, this.is_common, this.tags, this.jlpt, this.japanese, this.senses, this.attribution}); factory JishoResult.fromJson(Map json) { return JishoResult( slug: json['slug'] as String, is_common: json['is_common'] as bool, tags: (json['tags'] as List).map((result) => result as String).toList(), jlpt: (json['jlpt'] as List).map((result) => result as String).toList(), japanese: (json['japanese'] as List) .map((result) => JishoJapaneseWord.fromJson(result)) .toList(), senses: (json['senses'] as List) .map((result) => JishoWordSense.fromJson(result)) .toList(), attribution: JishoAttribution.fromJson(json['attribution'])); } Map toJson() => { 'slug': slug, 'is_common': is_common, 'tags': tags, 'jlpt': jlpt, 'japanese': japanese, 'senses': senses, 'attribution': attribution }; } class JishoResultMeta { int status; JishoResultMeta({this.status}); factory JishoResultMeta.fromJson(Map json) { return JishoResultMeta(status: json['status'] as int); } Map toJson() => {'status': status}; } class JishoAPIResult { JishoResultMeta meta; List data; JishoAPIResult({this.meta, this.data}); factory JishoAPIResult.fromJson(Map json) { return JishoAPIResult( meta: JishoResultMeta.fromJson(json['meta']), data: (json['data'] as List) .map((result) => JishoResult.fromJson(result)) .toList()); } Map toJson() => {'meta': meta.toJson(), 'data': data}; }