Skip to content

Instantly share code, notes, and snippets.

// karatu-demo.js
// Demo source for App Store reviewers and first-launch testing.
// Returns a small fixed catalog with placeholder photos from picsum.photos.
(function () {
'use strict';
// Build a stable seeded picsum URL so the same manga always shows the same
// cover, the same chapter shows the same pages, etc.
function picsum(seed, w, h) {
{
"name": "Karatu Demo Repository",
"description": "Demo source for App Store reviewers. Returns placeholder content from picsum.photos.",
"sources": [
{
"id": "karatu-demo",
"name": "Karatu Demo Source",
"language": "en",
"version": 1,
"scriptUrl": "https://gist.githubusercontent.com/jackofallm/b8003958e19e860d8408ed9342138fc8/raw/karatu-demo.js",
// karatu-suwayomi.js
// Karatu source plugin that wraps a self-hosted Suwayomi server, exposing
// every Suwayomi-installed extension as one aggregate Karatu source.
//
// - getPopular -> the user's Suwayomi Library (manga added there)
// - search -> fanout across every installed Suwayomi source via
// /quick-search; results merged + de-duplicated
// - getMangaDetails / getChapterPages -> Suwayomi REST v1
//
// Uses Suwayomi's REST API at /api/v1/. The newer GraphQL surface would be
// mangadex-ja.js — generated, paste as-is
(function () {
'use strict';
function createMangaDexSource(config) {
var BASE = 'https://api.mangadex.org';
var COVER_BASE = 'https://uploads.mangadex.org/covers';
var PAGE_LIMIT = 24;
function buildQuery(params) {
// comick-en.js
// Comick source for Karatu. Uses Comick's public JSON API at api.comick.fun.
//
// Composite ID format: "<hid>:<slug>" — Comick uses hids for chapter-list
// and slugs for comic-detail, so we keep both available.
(function () {
'use strict';
var API = 'https://api.comick.fun';
// mangadex-en.js — generated, paste as-is
(function () {
'use strict';
function createMangaDexSource(config) {
var BASE = 'https://api.mangadex.org';
var COVER_BASE = 'https://uploads.mangadex.org/covers';
var PAGE_LIMIT = 24;
function buildQuery(params) {
{
"name": "Karatu Sources",
"description": "MangaDex + self-hosted Suwayomi sources for Karatu.",
"sources": [
{
"id": "mangadex-en",
"name": "MangaDex",
"language": "en",
"version": 4,
"scriptUrl": "https://gist.githubusercontent.com/jackofallm/889bdd1b2bedcd18b0386b04fb5436e3/raw/d275b443093a6d76315c0652c7122c4b0d09554c/mangadex-en.js",