Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Wrapper app overview #7

Open
mikedawson opened this issue Nov 25, 2024 · 1 comment
Open

Wrapper app overview #7

mikedawson opened this issue Nov 25, 2024 · 1 comment

Comments

@mikedawson
Copy link
Member

mikedawson commented Nov 25, 2024

Use case:

Allow the creation of a wrapper app that would allow user to access and download content pieces.

Zim2Xapi tasks:

a) For any branch or topic generate an [OPDS](https://opds.io] xml (non-paginated) e.g.

  • /index.opds
    • /topic1/index.opds (branch)
      • /topic1/lesson/index.opds (topic)

We would need to support recursive branch export (e.g. scraping).

By default - when exporting recursively, use a shared assets directory and update generated HTML accordingly (e.g. if we have /topic1/lesson/index.html it would use assets from ../../assets/perseus-etc/) .

b) For each topic (e.g. exercise of video - which would be downloadable in app) - generate a text file containing a list of all files within as a relative path (e.g. manifest)

assets/perseus/script.js
assets/perseus/style.css
topicid/index.html
...

The link to this manifest should be added as a <link rel='tobedetermined' href='manifest.txt'/> and possibly should also be added to the opds.

c) When Zim2Xapi exports a Khan Academy video - this should not include extra javascript libraries (eg. no assets folder).

Wrapper app tasks:

  1. Download/index OPDS feeds into local db.
  2. OpdsList screen - show list of entries in feed (e.g. /index.opds, /topic/index.opds, etc)
  3. Topics can be opened in webview (HTML) or video player (for videos - e.g. using ExoPlayer)

Offline support:

  1. Downloading in app would be done by passing the manifest list for the lesson selected by the user to the cache library
@SamihMustafa
Copy link
Collaborator

Task Details
share-assets Flag:
Type: Boolean.
Function: When enabled, the assets folder will use a relative link (e.g., ../../.../shared-assets/assets) instead of duplicating assets.

OPDS Handling:
Navigation OPDS: Generated for branches (topics).
Acquisition OPDS: Generated for exercises/videos. Will be included in the zip

XAPI File Creation:
When a user decides to download an exercise:
If share-assets is enabled, the XAPI file (xapi-content.zip) will not be created.

manifest.txt Updates:
The manifest.txt should include references to assets with their relative paths (e.g., ../../.../shared-assets/assets).

TBD:
For an exercise's index.opds, determine the appropriate acquisition link:
Should it point to:
index.html, tincan.xml, manifest.txt

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants