AI prompts
base on A full-featured immersion language learning suite for mobile. <p align="center">
<img src="https://github.com/arianneorpilla/jidoujisho/blob/main/yuuna/assets/meta/icon.png" width="250" height="250">
</p>
<h3 align="center">jidoujisho</h3>
<p align="center">A full-featured immersion language learning suite for mobile.</p>
<p align="center">
<a href="https://github.com/arianneorpilla/jidoujisho/releases/tag/2.9.0-preview3">
<img src="https://img.shields.io/github/v/release/arianneorpilla/jidoujisho?include_prereleases" alt="latest release" />
</a>
<a href="https://github.com/arianneorpilla/jidoujisho/commits/main">
<img src="https://img.shields.io/github/last-commit/arianneorpilla/jidoujisho" alt="latest commit" />
</a>
<a href="https://github.com/arianneorpilla/jidoujisho/actions">
<img src="https://img.shields.io/github/actions/workflow/status/arianneorpilla/jidoujisho/main.yml" alt="actions" />
</a>
<a href="https://github.com/arianneorpilla/jidoujisho/stargazers">
<img src="https://img.shields.io/github/stars/arianneorpilla/jidoujisho" alt="stars" />
</a>
<a href="https://github.com/arianneorpilla/jidoujisho/releases/">
<img src="https://img.shields.io/github/downloads/arianneorpilla/jidoujisho/total" alt="downloads" />
</a>
<a href="https://github.com/arianneorpilla/jidoujisho/blob/master/LICENSE">
<img src="https://img.shields.io/github/license/arianneorpilla/jidoujisho" alt="license" />
</a>
<a href="https://crowdin.com/project/jidoujisho">
<img src="https://img.shields.io/badge/translate-crowdin-9C86B8" alt="translate" />
</a>
<a href="https://ko-fi.com/arianneorpilla">
<img src="https://img.shields.io/badge/donate-ko--fi-ff5f5f" alt="donate" />
</a>
</p>
---
<p align="center" style="margin:0"><b>โ๐งช Latest Release:
<a href="https://github.com/arianneorpilla/jidoujisho/releases/tag/2.9.0-preview3">2.9.0-preview3</a>
</b></p>
<b>
<p align="center" style="margin:0"><b>๐ Resources:</b><br>
๐ <a href="https://github.com/arianneorpilla/jidoujisho/wiki">Wiki</a> ยท
โ <a href="https://github.com/arianneorpilla/jidoujisho/wiki/1.-FAQ">FAQ</a> ยท
๐ฉบ <a href="https://github.com/arianneorpilla/jidoujisho/wiki/2.-Troubleshooting">Troubleshooting</a> ยท
๐ <a href="https://github.com/arianneorpilla/jidoujisho/wiki/3.-Getting-Started">Getting Started</a> ยท
๐ <a href="https://github.com/arianneorpilla/jidoujisho/wiki/4.-Flashcard-Creation">Flashcard Creation</a> ยท
๐๏ธ <a href="https://github.com/arianneorpilla/jidoujisho/wiki/5.-Workflow-Setup">Workflow Setup</a> ยท
๐ฅ <a href="https://github.com/arianneorpilla/jidoujisho/wiki/6.-Viewing-Media">Viewing Media</a> ยท
๐ก <a href="https://github.com/arianneorpilla/jidoujisho/wiki/7.-Tips-and-Tricks">Tips and Tricks</a> ยท
๐งโ๐ป <a href="https://github.com/arianneorpilla/jidoujisho/wiki/8.-Development">Development</a> ยท
๐ฅ <a href="https://github.com/arianneorpilla/jidoujisho/wiki/9.-Contribution">Contribution</a> ยท
๐ <a href="https://arianneorpilla.github.io/jidoujisho">API Documentation</a>
</p>
</b>
<p align="center" style="margin:0"><b>๐๏ธ Release Notes:</b><br>
<i>(Legacy)</i> <b><a href="https://github.com/arianneorpilla/jidoujisho/releases/tag/0.3.0-beta">0.3</a> ยท
<a href="https://github.com/arianneorpilla/jidoujisho/releases/tag/0.4-beta">0.4</a> ยท
<a href="https://github.com/arianneorpilla/jidoujisho/releases/tag/0.5.2-beta">0.5</a> ยท
<a href="https://github.com/arianneorpilla/jidoujisho/releases/tag/0.6.1-beta">0.6</a> ยท
<a href="https://github.com/arianneorpilla/jidoujisho/releases/tag/0.7.2-beta">0.7</a> ยท
<a href="https://github.com/arianneorpilla/jidoujisho/releases/tag/0.8.1-beta">0.8</a> ยท
<a href="https://github.com/arianneorpilla/jidoujisho/releases/tag/0.9.3-beta">0.9</a> ยท
<a href="https://github.com/arianneorpilla/jidoujisho/releases/tag/0.10.0-beta">0.10</a> ยท
<a href="https://github.com/arianneorpilla/jidoujisho/releases/tag/0.11.3-beta">0.11</a> ยท
<a href="https://github.com/arianneorpilla/jidoujisho/releases/tag/0.12.4-beta">0.12</a> ยท
<a href="https://github.com/arianneorpilla/jidoujisho/releases/tag/0.13.7-beta">0.13</a> ยท
<a href="https://github.com/arianneorpilla/jidoujisho/releases/tag/0.14.2-beta">0.14</a> ยท
<a href="https://github.com/arianneorpilla/jidoujisho/releases/tag/0.15.8-beta">0.15</a> ยท
<a href="https://github.com/arianneorpilla/jidoujisho/releases/tag/0.16.7-beta">0.16</a> ยท
<a href="https://github.com/arianneorpilla/jidoujisho/releases/tag/0.17.4-beta">0.17</a> ยท
<a href="https://github.com/arianneorpilla/jidoujisho/releases/tag/0.18.1-beta">0.18</a> ยท
<a href="https://github.com/arianneorpilla/jidoujisho/releases/tag/0.19.1-beta">0.19</a> ยท
<a href="https://github.com/arianneorpilla/jidoujisho/releases/tag/0.20.1-beta">0.20</a> ยท
<a href="https://github.com/arianneorpilla/jidoujisho/releases/tag/0.21.2-beta">0.21</a> ยท
<a href="https://github.com/arianneorpilla/jidoujisho/releases/tag/0.22.1-beta">0.22</a> ยท
<a href="https://github.com/arianneorpilla/jidoujisho/releases/tag/0.23.2-beta">0.23</a> ยท
<a href="https://github.com/arianneorpilla/jidoujisho/releases/tag/0.24.5-beta">0.24</a> ยท
<a href="https://github.com/arianneorpilla/jidoujisho/releases/tag/0.25.12-beta">0.25</a> ยท
<a href="https://github.com/arianneorpilla/jidoujisho/releases/tag/0.26.3-beta">0.26</a><br>
</b><i>(Chisa)</i> <b>
<a href="https://github.com/arianneorpilla/jidoujisho/releases/tag/1.0.0">1.0</a> ยท
<a href="https://github.com/arianneorpilla/jidoujisho/releases/tag/1.1">1.1</a><br>
</b><i>(Yuuna)</i> <b>
<a href="https://github.com/arianneorpilla/jidoujisho/releases/tag/2.0.0">2.0</a> ยท
<a href="https://github.com/arianneorpilla/jidoujisho/releases/tag/2.1">2.1</a> ยท
<a href="https://github.com/arianneorpilla/jidoujisho/releases/tag/2.2">2.2</a> ยท
<a href="https://github.com/arianneorpilla/jidoujisho/releases/tag/2.3">2.3</a> ยท
<a href="https://github.com/arianneorpilla/jidoujisho/releases/tag/2.4">2.4</a> ยท
<a href="https://github.com/arianneorpilla/jidoujisho/releases/tag/2.5">2.5</a> ยท
<a href="https://github.com/arianneorpilla/jidoujisho/releases/tag/2.6.0">2.6</a> ยท
<a href="https://github.com/arianneorpilla/jidoujisho/releases/tag/2.7.0">2.7</a> ยท
<a href="https://github.com/arianneorpilla/jidoujisho/releases/tag/2.8.0">2.8</a></b>
</p>
# ๐ฑ Language learning in the palm of your hand
**jidoujisho** is a video player, reading aid, dictionary and card creation toolkit with features specifically helpful for language learners.
* ๐ Tap and drag selection of subtitles and paragraphs allows for **instant dictionary lookups**
* ๐ **Export flashcards to AnkiDroid**, complete with image and audio of the current context
* ๐บ **Watch videos or listen to audio with subtitles** from local device storage, YouTube or stream from a Jellyfin library or a direct URL
* ๐ Read books anywhere and offline, via an **embedded, self-hosted ใใ Ebook Reader**
* ๐ผ๏ธ Read and mine manga pre-processed with **Mokuro**, and export or crop the current image
* ๐ธ๏ธ **WebSocket support** allows convenient use alongside texthookers for visual novels, games and more
* ๐ถ Get lyrics and easily make **dictionary lookups for the current playing song** in your music app
* ๐ค **Interact with ChatGPT** in your target language to get grammar information, example sentences and more
* ๐ **Use Yomichan dictionaries** with pitch and frequency information, and selectively collapse and expand dictionaries by default
* โ **Frictionless sentence mining and flashcard creation workflow** with support for modular enhancements and automations
# ๐๏ธ A glimpse of jidoujisho in action
<p align="center" style="margin:0">
<img src="https://i.postimg.cc/Ls9Dv3FP/Screenshot-20230406-152827.png" width="24%">
<img src="https://i.postimg.cc/hGg27LKM/Screenshot-20230607-232936.png" width="24%">
<img src="https://i.postimg.cc/gJDPQDxP/Screenshot-20230406-152331.png" width="24%">
<img src="https://i.postimg.cc/x1WFhfrZ/Screenshot-20230406-152042.png" width="24%">
</p>
<p align="center" style="margin:0">
<img src="https://i.postimg.cc/yxYnpYzP/Screenshot-20230406-153303.png" width="32%">
<img src="https://i.postimg.cc/TYbWMvYq/Screenshot-20230406-153149.png" width="32%">
<img src="https://i.postimg.cc/bNr3QJgY/Screenshot-20230406-153206.png" width="32%">
</p>
<p align="center" style="margin:0">
<img src="https://i.postimg.cc/ryB97kLM/Screenshot-20230406-151738.png" width="24%">
<img src="https://i.postimg.cc/qM2GT5kn/Screenshot-20230406-152244.png" width="24%">
<img src="https://i.postimg.cc/WzCYHFwv/Screenshot-20230406-150912.png" width="24%">
<img src="https://i.postimg.cc/1XfYBc6B/Screenshot-20230406-151040.png" width="24%">
</p>
<p align="center" style="margin:0">
<img src="https://i.postimg.cc/nLdLQp1m/Screenshot-20230406-155356.png" width="32%">
<img src="https://i.postimg.cc/8Ck55jLD/Screenshot-20230406-155243.png" width="32%">
<img src="https://i.postimg.cc/QtHdQw6y/Screenshot-20230406-155648.png" width="32%">
</p>
# โ๏ธ Current state of the project
**jidoujisho is eagerly looking for contributors.** If you are interested in maintaining a dictionary format, media source, an enhancement or quick action or even a new language for the application, user and developer documentation is coming soon.
Originally built for the Japanese language learning community, jidoujisho is free and open source software, and is <b><a href="https://github.com/arianneorpilla/jidoujisho/releases">available to download here on GitHub.</a></b>
Please note that the development of the app switches between changes being implemented and being left alone for daily use. Update frequency may depend on the gravity of any issues that arise. **Hiatuses provide practical insight on usage and where development should go next.**
# ๐ Using the application
### ๐จ Supported Formats
- jidoujisho will take **video and audio formats as supported by VLC**. SDR video is recommended over HDR. Subtitles may be embedded within the video being played and selected during playback.
- If you have trouble with storage space on your device, you may use the app as an external player for [**Jellyfin**](https://jellyfin.org/) and stream from your PC media library, complete with progress tracking and external subtitles support.
- If you wish to use external subtitles, they may be in **SRT, ASS or SSA format** and you may import them during playback through the menu. You may switch between different audio and subtitle tracks. Image-based subtitles such as PGS are not currently supported.
- **Closed captions** and **auto-generated captions** are available when watching YouTube videos. <b><a href="https://www.youtube.com/watch?v=mZ0sJQC8qkE">Here is a fair sample of</a> <a href="https://www.youtube.com/watch?v=X9zw0QF12Kc">YouTube videos with such subtitles</a> <a href="https://www.youtube.com/watch?v=t1yXDcuwzpY">showcasing some very practical application use cases.</a></b> **Users are strongly advised not to use automatic captions if they cannot reliably discern their correctness.**
- **ใใ Ebook Reader** allows reading of books in **EPUB or HTMLZ** format.
- **Mokuro volumes** must be in HTML format, and have images in the relative directory.
- **Make sure your Android WebView is updated before use**. This will resolve common issues that may occur with ใใ Ebook Reader or Mokuro.
- Users may import <b><a href="https://foosoft.net/projects/yomichan/">Yomichan</a></b> dictionaries for Japanese, <b><a href="https://drive.google.com/drive/folders/1tTdLppnqMfVC5otPlX_cs4ixlIgjv_lH">some can be found here</a></b>. Note that Yomichan dictionaries using `structured-content` are currently unsupported.
- Other supported formats include <b><a href="https://legacy.migaku.io/tools-guides/migaku-dictionary/manual/">Migaku</a></b> and <b><a href="http://lingvo.helpmax.net/en/troubleshooting/dsl-compiler/dsl-dictionary-structure/">DSL</b></a> dictionaries.
### ๐ Getting Started
A primer on the basics of the application is as follows.
* ๐ฒ <a href="https://github.com/arianneorpilla/jidoujisho/releases/"/>**Download and install the latest release**</a> onto your Android device
* โฏ๏ธ Watch a video with the *Player* selecting from your **local media library** or **picking a YouTube video**
* ๐ Start a novel with the *Reader* to launch ใใ Ebook Reader to read an **EPUB** or **HTMLZ** file
* ๐ผ๏ธ Read pre-processed manga in HTML with the **Mokuro** media source
* ๐ **Tap a word** for instant dictionary lookups, and open the **Card Creator** or use **Instant Export**
* โ You can dismiss dictionary popups by **swiping horizontally, using a volume button or tapping on the current selection**
* โ๏ธ **You may swipe vertically in the player to open the transcript** in the player, and pick a time or read subtitles
* โ๏ธ **Swipe horizontally** in the player to repeat the current subtitle audio
### ๐ฒ Exporting to AnkiDroid
* ๐ค You may also export the current context to an **AnkiDroid card, including the current image and audio**
* โ ๏ธ **If AnkiDroid is not running in the background**, you will be prompted to install or launch it
* ๐ **The AnkiDroid deck you last export to will be remembered** for your next export
* ๐ **You may edit the card fields** before exporting to AnkiDroid
* โ๏ธ **Customisation of the Anki export** is possible by creating your own export profile
### ๐ User Tips
* ๐ฏ๐ต Can't find Japanese subtitles for your media? Try finding what you need at <b><a href="https://kitsunekko.net">kitsunekko</a></b> or <b><a href="https://github.com/orgs/Nekomoekissaten-SUB/projects/1">Nekomoekisatten</a></b>
* ๐ฎ Customise your workflow by trying out different **enhancements and quick actions**
* ๐ฒ Monolingually transitioning? **Collapse your bilingual dictionaries by default**, and split your export fields between expanded and collapsed meanings.
* ๐ก You can use [**Jellyfin**](https://jellyfin.org/) to stream media from your PC, complete with progress tracking and external subtitle support
* ๐๏ธ **Double tap on a character** when reading a meaning to **quickly select it as a word and recursively search**
* ๐ **External subtitles with the same name as the selected video file** will be loaded by default
* ๐ฐ You can get **example sentences** from Massif, Tatoeba or ImmersionKit if a sentence you find is too hard
* โฒ๏ธ If your subtitles are off, you can **set the delay** or **pad the exported audio time with an allowance**
* โ **Export a range of multiple subtitles** by holding onto a subtitle aside from the current one in the transcript
* ๐น The quality closest to the **last selected quality** will be selected by default for YouTube videos
* ๐ฌ **If your video has burned-in subtitles,** you may use the blur widget under player options to hide them
* โ๏ธ Reading manga? You can **crop an image** before exporting a card
* ๐ง **Listening to an audiobook?** You can read with subtitles during playback by opening the transcript and clicking on the upper-right icon
* ๐ You can listen in the background by turning on **background play** with
**live subtitle previews in media notifications** with controls
* ๐ชก **Limit export to a single dictionary** by selecting the button on the rightmost tag of a dictionary entry
* ๐ **Tap on a field's icon** in the Card Creator to **lock the field**, which can be useful if exporting the same sentence multiple times
* ๐ค Users may chat in various languages supported by ChatGPT. **Users are advised not to heavily rely on an AI language model if they cannot accurately distinguish its correctness and accuracy.**
# ๐ฅ Contribution and attribution
<!-- readme: contributors -start -->
<table>
<tr>
<td align="center">
<a href="https://github.com/arianneorpilla">
<img src="https://avatars.githubusercontent.com/u/11363922?v=4" width="100;" alt="arianneorpilla"/>
<br />
<sub><b>arianneorpilla</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/m-edlund">
<img src="https://avatars.githubusercontent.com/u/44649263?v=4" width="100;" alt="m-edlund"/>
<br />
<sub><b>m-edlund</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/Aegyo">
<img src="https://avatars.githubusercontent.com/u/4183969?v=4" width="100;" alt="Aegyo"/>
<br />
<sub><b>Aegyo</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/Aquafina-water-bottle">
<img src="https://avatars.githubusercontent.com/u/17107540?v=4" width="100;" alt="Aquafina-water-bottle"/>
<br />
<sub><b>Aquafina-water-bottle</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/Natsume-197">
<img src="https://avatars.githubusercontent.com/u/36428207?v=4" width="100;" alt="Natsume-197"/>
<br />
<sub><b>Natsume-197</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/MarvNC">
<img src="https://avatars.githubusercontent.com/u/17340496?v=4" width="100;" alt="MarvNC"/>
<br />
<sub><b>MarvNC</b></sub>
</a>
</td></tr>
</table>
<!-- readme: contributors -end -->
jidoujisho is written in <b><a href="https://dart.dev/">Dart</a></b> and powered by <b><a href="https://flutter.dev/">Flutter</a></b>, and is made available under the <b><a href="https://www.gnu.org/licenses/gpl-3.0.en.html">GNU General Public License 3.0</a></b>.
Database enabled by <b><a href="https://isar.dev">Isar</a></b> and <b><a href="https://docs.hivedb.dev/">Hive</a></b>. Reader via a self-hosted <b><a href="https://reader.ttsu.app/">ใใ Ebook Reader</b></a>. <b><a href="https://github.com/kha-white/mokuro">Mokuro</b></a> for manga reading. Video streaming via <b><a href="https://youtube.com/">YouTube</a></b>. Chat service via <a href="https://chat.openai.com"><b>ChatGPT</a></b>.
Image search via <b><a href="https://bing.com//">Bing</a></b>. Audio search via <b><a href="https://forvo.com//">Forvo</a></b> and <b><a href="https://www.japanesepod101.com">JapanesePod101</a></b>. Example sentences from <b><a href="https://massif.la">Massif</a></b>, <b><a href="https://tatoeba.org/">Tatoeba</a></b> and <a href="https://www.immersionkit.com/"><b>ImmersionKit</b></a>. Lyrics from <a href="https://google.com"><b>Google</a></b> and <a href="https://uta-net.com"><b>Uta-Net</b></a>.
Natural language processing tools include <b><a href="https://github.com/Kimtaro/ve">Ve</a></b> and <b><a href="https://pub.dev/packages/mecab_dart">MeCab</a></b> for Japanese. Special thanks to the <b><a href="https://foosoft.net/projects/yomichan/">Yomichan</b></a> project.
If you like what I've done so far, you can help me out by testing the application on various devices so that I can gauge the compatibility of the application with different versions of Android, <b><a href="https://www.ko-fi.com/arianneorpilla">making a donation</a></b> or collaborating with me on further improvements.
The logo of the application is both by <b><a href="https://88suzysuzy.carrd.co/">suzy</b></a> and <b><a href="https://www.buymeacoffee.com/marblesaa">Aaron Marbella</a></b>, support their awesome work if you can!
", Assign "at most 3 tags" to the expected json: {"id":"11270","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"