refactor: Overhaul Plugin Architecture & Playground UI (#1846)
* refactor: Move Plugins Out and Consolidate with Multisrc * feat: Overhaul Playground UI * feat: Add Filters to New UI * feat: Persist Selected Plugin * feat: Add Direct Parse Novel/Chapter Options and Feedback Toasts [skip ci] * feat: UX Improvements * chore: Update Plugin Path in Publish Workflow * fix: Add Backward Compatibility * chore: Update Plugin Publishing Script
This commit is contained in:
committed by
GitHub
parent
252beff0bf
commit
20c2b75b01
@@ -0,0 +1,288 @@
|
||||
[
|
||||
{
|
||||
"id": "lightnovelfr",
|
||||
"sourceSite": "https://lightnovelfr.com/",
|
||||
"sourceName": "Ligh Novel FR",
|
||||
"options": {
|
||||
"lang": "French",
|
||||
"reverseChapters": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "kolnovel",
|
||||
"sourceSite": "https://kolnovel.site/",
|
||||
"sourceName": "Kol Novel",
|
||||
"options": {
|
||||
"lang": "Arabic",
|
||||
"reverseChapters": true,
|
||||
"customJs": "$('article > style').text().match(/\\.\\w+(?=\\s*[,{])/g)?.forEach(tag => $(`p${tag}`).remove());$('.epcontent .code-block').remove();",
|
||||
"versionIncrements": 9
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "knoxt",
|
||||
"sourceSite": "https://knoxt.space/",
|
||||
"sourceName": "KnoxT",
|
||||
"options": {
|
||||
"lang": "English",
|
||||
"reverseChapters": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "bacalightnovel",
|
||||
"sourceSite": "https://bacalightnovel.co/",
|
||||
"sourceName": "Baca Light Novel",
|
||||
"options": {
|
||||
"lang": "Indonesian",
|
||||
"reverseChapters": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "allnovelread",
|
||||
"sourceSite": "https://allnovelread.com/",
|
||||
"sourceName": "AllNovelRead",
|
||||
"options": {
|
||||
"lang": "Spanish",
|
||||
"reverseChapters": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "daotranslate",
|
||||
"sourceSite": "https://daotranslate.com/",
|
||||
"sourceName": "DaoTranslate",
|
||||
"options": {
|
||||
"lang": "English",
|
||||
"reverseChapters": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "novelsparadise",
|
||||
"sourceSite": "https://novelsparadise.site/",
|
||||
"sourceName": "Novels Paradise",
|
||||
"options": {
|
||||
"lang": "Arabic",
|
||||
"reverseChapters": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "universalnovel",
|
||||
"sourceSite": "https://universalnovel.com/",
|
||||
"sourceName": "Universal Novel",
|
||||
"options": {
|
||||
"lang": "English",
|
||||
"reverseChapters": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "noveltr",
|
||||
"sourceSite": "https://noveltr.com/",
|
||||
"sourceName": "NovelTR",
|
||||
"options": {
|
||||
"lang": "Turkish"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "noblemtl",
|
||||
"sourceSite": "https://noblemtl.com/",
|
||||
"sourceName": "NobleMTL",
|
||||
"options": {
|
||||
"lang": "English",
|
||||
"reverseChapters": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "pandamtl",
|
||||
"sourceSite": "https://pandamtl.com/",
|
||||
"sourceName": "Panda Machine Translations",
|
||||
"options": {
|
||||
"lang": "English",
|
||||
"reverseChapters": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "novelsknight",
|
||||
"sourceSite": "https://novelsknight.punchmanga.online/",
|
||||
"sourceName": "NovelsKnight",
|
||||
"options": {
|
||||
"lang": "English",
|
||||
"reverseChapters": true,
|
||||
"versionIncrements": 2,
|
||||
"customJs": "$('.announ').remove(); return $('.epcontent').eq(-1).find('p').map(function (i, el) { return '<p>' + $(this).text() + '</p>'; }).toArray().join('\\n') || '';"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "centralnovel",
|
||||
"sourceSite": "https://centralnovel.com/",
|
||||
"sourceName": "Central Novel",
|
||||
"options": {
|
||||
"lang": "Portuguese",
|
||||
"reverseChapters": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "whitemoonlightnovels",
|
||||
"sourceSite": "https://whitemoonlightnovels.com/",
|
||||
"sourceName": "White Moonlight Novels",
|
||||
"options": {
|
||||
"lang": "English",
|
||||
"reverseChapters": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "sektenovel",
|
||||
"sourceSite": "https://sektenovel.web.id/",
|
||||
"sourceName": "Sekte Novel",
|
||||
"options": {
|
||||
"lang": "Indonesian",
|
||||
"reverseChapters": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "systemtranslation",
|
||||
"sourceSite": "https://systemtranslation.com/",
|
||||
"sourceName": "System Translation",
|
||||
"options": {
|
||||
"lang": "English",
|
||||
"reverseChapters": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "moonlightnovel",
|
||||
"sourceSite": "https://moonlightnovel.com/",
|
||||
"sourceName": "Moonlight Novels",
|
||||
"options": {
|
||||
"versionIncrements": 1,
|
||||
"lang": "English",
|
||||
"reverseChapters": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "lightnovelbrasil",
|
||||
"sourceSite": "https://lightnovelbrasil.com/",
|
||||
"sourceName": "Light Novel Brasil",
|
||||
"options": {
|
||||
"lang": "Portuguese",
|
||||
"reverseChapters": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "ellotl",
|
||||
"sourceSite": "https://ellotl.com/",
|
||||
"sourceName": "ElloTL",
|
||||
"options": {
|
||||
"lang": "English",
|
||||
"reverseChapters": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "ippotranslations",
|
||||
"sourceSite": "https://ippotranslations.com/",
|
||||
"sourceName": "Ippotranslations",
|
||||
"options": {
|
||||
"lang": "English",
|
||||
"reverseChapters": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "cpunovel",
|
||||
"sourceSite": "https://cpunovel.com/",
|
||||
"sourceName": "CPUnovel",
|
||||
"options": {
|
||||
"lang": "English",
|
||||
"reverseChapters": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "requiemtls",
|
||||
"sourceSite": "https://requiemtls.com/",
|
||||
"sourceName": "Requiem Translations",
|
||||
"options": {
|
||||
"lang": "English",
|
||||
"reverseChapters": true,
|
||||
"customJs": "\n $('div.entry-content script').remove();\n\n const url = this.site + chapterPath.slice(0, -1);\n const offsets = [[0, 12368, 12462], [1, 6960, 7054], [2, 4176, 4270]];\n const idx = url.length * url.charCodeAt(url.length - 1) * 2 % 3;\n const [_, offsetLower, offsetCap] = offsets[idx] ?? offsets[0];\n\n const asciiA = 'A'.charCodeAt(0);\n const asciiz = 'z'.charCodeAt(0);\n\n $('div.entry-content > p').text((_, txt) =>\n txt.split('').map(char => {\n const code = char.charCodeAt(0);\n const offset = (code >= offsetLower + asciiA && code <= offsetLower + asciiz)\n ? offsetLower\n : offsetCap;\n const decoded = code - offset;\n return (decoded >= 32 && decoded <= 126) ? String.fromCharCode(decoded) : char;\n }).join('')\n );\n",
|
||||
"versionIncrements": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "betternovels",
|
||||
"sourceSite": "https://betternovels.net/",
|
||||
"sourceName": "Better Novels",
|
||||
"options": {
|
||||
"lang": "Portuguese"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "arcane",
|
||||
"sourceSite": "https://arcanetranslations.com/",
|
||||
"sourceName": "Arcane Translations",
|
||||
"options": {
|
||||
"reverseChapters": true,
|
||||
"lang": "English",
|
||||
"hasLocked": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "namevt",
|
||||
"sourceSite": "https://namevt.com/",
|
||||
"sourceName": "Namevt",
|
||||
"options": {
|
||||
"reverseChapters": true,
|
||||
"seriesPath": "seri",
|
||||
"lang": "Turkish"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "kodekslibrary",
|
||||
"sourceSite": "https://www.kodekslibrary.com/",
|
||||
"sourceName": "Kodeks Library",
|
||||
"options": {
|
||||
"reverseChapters": true,
|
||||
"lang": "Turkish"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "vandytranslate",
|
||||
"sourceSite": "https://vandytranslate.com",
|
||||
"sourceName": "Vandy Translate",
|
||||
"options": {
|
||||
"reverseChapters": true,
|
||||
"lang": "English"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "lazygirltranslations",
|
||||
"sourceSite": "https://lazygirltranslations.com",
|
||||
"sourceName": "Lazy Girl Translations",
|
||||
"options": {
|
||||
"reverseChapters": false,
|
||||
"lang": "English"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "keopi",
|
||||
"sourceSite": "https://keopitranslations.com",
|
||||
"sourceName": "Keopi Translations",
|
||||
"options": {
|
||||
"lang": "English",
|
||||
"reverseChapters": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "TCSega",
|
||||
"sourceSite": "https://teamchmantranslations.com",
|
||||
"sourceName": "TC & Sega",
|
||||
"options": {
|
||||
"lang": "Spanish",
|
||||
"reverseChapters": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "transweaver",
|
||||
"sourceSite": "https://transweaver.com/",
|
||||
"sourceName": "Translation Weaver",
|
||||
"options": {
|
||||
"lang": "English",
|
||||
"reverseChapters": true
|
||||
}
|
||||
}
|
||||
]
|
||||
Reference in New Issue
Block a user