Add tbib.org and fix categories not working on some gelbooru-likes
parent
030d21ace9
commit
3770d722f3
|
|
@ -7,6 +7,8 @@ enum Version {
|
||||||
v025, // 0.2.5
|
v025, // 0.2.5
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type CategoryMap = Record<string, TagCategory>;
|
||||||
|
|
||||||
export default class Gelbooru implements ScrapeEngine {
|
export default class Gelbooru implements ScrapeEngine {
|
||||||
name = "gelbooru";
|
name = "gelbooru";
|
||||||
|
|
||||||
|
|
@ -14,7 +16,8 @@ export default class Gelbooru implements ScrapeEngine {
|
||||||
return (
|
return (
|
||||||
url.host == "safebooru.org" ||
|
url.host == "safebooru.org" ||
|
||||||
url.host == "gelbooru.com" ||
|
url.host == "gelbooru.com" ||
|
||||||
url.host == "rule34.xxx"
|
url.host == "rule34.xxx" ||
|
||||||
|
url.host == "tbib.org"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -24,6 +27,7 @@ export default class Gelbooru implements ScrapeEngine {
|
||||||
switch (document.location.host) {
|
switch (document.location.host) {
|
||||||
case "safebooru.org":
|
case "safebooru.org":
|
||||||
case "rule34.xxx":
|
case "rule34.xxx":
|
||||||
|
case "tbib.org":
|
||||||
version = Version.v020;
|
version = Version.v020;
|
||||||
break;
|
break;
|
||||||
case "gelbooru.com":
|
case "gelbooru.com":
|
||||||
|
|
@ -111,20 +115,20 @@ export default class Gelbooru implements ScrapeEngine {
|
||||||
|
|
||||||
let category: TagCategory | undefined;
|
let category: TagCategory | undefined;
|
||||||
|
|
||||||
switch (el.className) {
|
const classNameToCategoryMap: CategoryMap = {
|
||||||
case "tag-type-copyright":
|
"tag-type-copyright": "copyright",
|
||||||
category = "copyright";
|
"tag-type-character": "character",
|
||||||
break;
|
"tag-type-artist": "artist",
|
||||||
case "tag-type-character":
|
"tag-type-metadata": "meta"
|
||||||
category = "character";
|
};
|
||||||
break;
|
|
||||||
case "tag-type-artist":
|
// Loop over all classes, because some websites use multiple. E.g. `class="tag tag-type-copyright"`
|
||||||
category = "artist";
|
for (const className of el.classList) {
|
||||||
break;
|
if (classNameToCategoryMap[className]) {
|
||||||
case "tag-type-metadata":
|
category = classNameToCategoryMap[className];
|
||||||
category = "meta";
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
let tag = new ScrapedTag(tagName, category);
|
let tag = new ScrapedTag(tagName, category);
|
||||||
post.tags.push(tag);
|
post.tags.push(tag);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue