feat: Add Cherry Mist Cafe (#2200)
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
const ghostScript = loadedCheerio('script[id*=ghost]');
|
||||
const contentHost = loadedCheerio('#cherry-content-host');
|
||||
|
||||
if (ghostScript.length && contentHost.length) {
|
||||
const poly = ghostScript.attr('data-poly');
|
||||
// data-poly attr provide id
|
||||
// encoded text is stored in attr data-{id}-{number}
|
||||
// create full string of all the data-poly-nums
|
||||
const encoded = Array.from(
|
||||
{ length: +ghostScript.attr('data-total') || 0 },
|
||||
(_, i) => ghostScript.attr(`data-${poly}-${i}`) || '',
|
||||
).join('');
|
||||
|
||||
// technically copypasta from source
|
||||
// var c = s.charCodeAt(i);
|
||||
// if(c>=65 && c<=90)
|
||||
// o+=String.fromCharCode((c-65+13)%26+65);
|
||||
// else if(c>=97&&c<=122)
|
||||
// o+=String.fromCharCode((c-97+13)%26+97);
|
||||
// else
|
||||
// o+=s.charAt(i);
|
||||
if (encoded) {
|
||||
const rot13 = (str) => {
|
||||
return str.replace(/[a-zA-Z]/g, (char) => {
|
||||
const base = char <= 'Z' ? 65 : 97;
|
||||
const shift = ((char.charCodeAt(0) - base + 13) % 26) + base;
|
||||
return String.fromCharCode(shift);
|
||||
});
|
||||
};
|
||||
contentHost.replaceWith(decodeURIComponent(atob(rot13(encoded))));
|
||||
}
|
||||
}
|
||||
|
||||
loadedCheerio('script, ruby').remove();
|
||||
|
||||
loadedCheerio('section#chapter-content p [data-fcnc-rev="1"]').each((_, el) => {
|
||||
const text = loadedCheerio(el).text().trim();
|
||||
if (text) loadedCheerio(el).replaceWith([...text].reverse().join(''));
|
||||
});
|
||||
|
||||
return (
|
||||
loadedCheerio('section#chapter-content > div')
|
||||
.html()
|
||||
?.replace(/\u00A0/g, ' ')
|
||||
?.replace(/[\u2060\u00AD\u202F\u2007\u200B]/g, '') || ''
|
||||
);
|
||||
@@ -53,5 +53,17 @@
|
||||
"down": true,
|
||||
"downSince": 1768289212907
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "cherrymistcafe",
|
||||
"sourceSite": "https://cherrymist.cafe/",
|
||||
"sourceName": "Cherry Mist Cafe",
|
||||
"options": {
|
||||
"customJs": {
|
||||
"chapterTransform": "custom/cherrymistcafe/chapterTransform.js"
|
||||
},
|
||||
"versionIncrements": 1,
|
||||
"browsePage": "stories"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user