dongnelibrary 0.3.8 → 0.3.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.playwright-mcp/console-2026-03-07T15-37-14-935Z.log +3 -0
- package/.playwright-mcp/console-2026-03-07T16-05-56-891Z.log +1 -0
- package/.playwright-mcp/console-2026-03-07T16-21-56-709Z.log +1 -0
- package/.playwright-mcp/console-2026-03-07T16-24-32-498Z.log +1 -0
- package/API.md +61 -9
- package/README.md +9 -1
- package/dist/dongnelibrary.d.ts +31 -9
- package/dist/dongnelibrary.d.ts.map +1 -1
- package/dist/dongnelibrary.js +136 -21
- package/dist/dongnelibrary.js.map +1 -1
- package/dist/localLibraryModule/gg.d.ts +6 -0
- package/dist/localLibraryModule/gg.d.ts.map +1 -0
- package/dist/localLibraryModule/gg.js +96 -0
- package/dist/localLibraryModule/gg.js.map +1 -0
- package/dist/localLibraryModule/gunpo.d.ts +6 -0
- package/dist/localLibraryModule/gunpo.d.ts.map +1 -0
- package/dist/localLibraryModule/gunpo.js +81 -0
- package/dist/localLibraryModule/gunpo.js.map +1 -0
- package/dist/localLibraryModule/hscity.d.ts +6 -0
- package/dist/localLibraryModule/hscity.d.ts.map +1 -0
- package/dist/localLibraryModule/hscity.js +100 -0
- package/dist/localLibraryModule/hscity.js.map +1 -0
- package/dist/localLibraryModule/jeju.d.ts +6 -0
- package/dist/localLibraryModule/jeju.d.ts.map +1 -0
- package/dist/localLibraryModule/jeju.js +77 -0
- package/dist/localLibraryModule/jeju.js.map +1 -0
- package/dist/localLibraryModule/osan.d.ts +6 -0
- package/dist/localLibraryModule/osan.d.ts.map +1 -0
- package/dist/localLibraryModule/osan.js +102 -0
- package/dist/localLibraryModule/osan.js.map +1 -0
- package/dist/localLibraryModule/snlib.d.ts +6 -0
- package/dist/localLibraryModule/snlib.d.ts.map +1 -0
- package/dist/localLibraryModule/snlib.js +102 -0
- package/dist/localLibraryModule/snlib.js.map +1 -0
- package/dist/localLibraryModule/suwon.d.ts +6 -0
- package/dist/localLibraryModule/suwon.d.ts.map +1 -0
- package/dist/localLibraryModule/suwon.js +117 -0
- package/dist/localLibraryModule/suwon.js.map +1 -0
- package/dist/localLibraryModule/yjlib.d.ts +6 -0
- package/dist/localLibraryModule/yjlib.d.ts.map +1 -0
- package/dist/localLibraryModule/yjlib.js +109 -0
- package/dist/localLibraryModule/yjlib.js.map +1 -0
- package/dist/localLibraryModule/yongin.d.ts +6 -0
- package/dist/localLibraryModule/yongin.d.ts.map +1 -0
- package/dist/localLibraryModule/yongin.js +141 -0
- package/dist/localLibraryModule/yongin.js.map +1 -0
- package/dist/types.d.ts +23 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { SearchOptions, SearchResult } from "../types";
|
|
2
|
+
export declare const moduleName = "\uAD70\uD3EC\uC2DC\uB3C4\uC11C\uAD00";
|
|
3
|
+
export declare const homeUrl = "https://www.gunpolib.go.kr";
|
|
4
|
+
export declare const search: (opt: SearchOptions, callback?: import("../types").SearchCallback) => Promise<SearchResult | void>;
|
|
5
|
+
export declare function getLibraryNames(): string[];
|
|
6
|
+
//# sourceMappingURL=gunpo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gunpo.d.ts","sourceRoot":"","sources":["../../src/localLibraryModule/gunpo.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAIV,aAAa,EACb,YAAY,EACb,MAAM,UAAU,CAAC;AAElB,eAAO,MAAM,UAAU,yCAAW,CAAC;AACnC,eAAO,MAAM,OAAO,+BAA+B,CAAC;AAmGpD,eAAO,MAAM,MAAM,oGAA+B,CAAC;AAEnD,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAE1C"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.search = exports.homeUrl = exports.moduleName = void 0;
|
|
7
|
+
exports.getLibraryNames = getLibraryNames;
|
|
8
|
+
const http_1 = require("../http");
|
|
9
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
10
|
+
const util_1 = require("../util");
|
|
11
|
+
exports.moduleName = "군포시도서관";
|
|
12
|
+
exports.homeUrl = "https://www.gunpolib.go.kr";
|
|
13
|
+
const libraryList = [
|
|
14
|
+
{ code: "1", name: "산본도서관" },
|
|
15
|
+
{ code: "2", name: "당동도서관" },
|
|
16
|
+
{ code: "3", name: "대야도서관" },
|
|
17
|
+
{ code: "4", name: "어린이도서관" },
|
|
18
|
+
{ code: "5", name: "이동도서관" },
|
|
19
|
+
{ code: "6", name: "군포중앙도서관" },
|
|
20
|
+
{ code: "7", name: "누리천문대" },
|
|
21
|
+
{ code: "8", name: "시청북카페밥상머리" },
|
|
22
|
+
{ code: "9", name: "부곡도서관" },
|
|
23
|
+
{ code: "10", name: "당정문화도서관" },
|
|
24
|
+
{ code: "11", name: "동화나무어린이도서관" },
|
|
25
|
+
{ code: "12", name: "금정작은도서관" },
|
|
26
|
+
{ code: "13", name: "재궁꿈나무도서관" },
|
|
27
|
+
{ code: "14", name: "궁내동작은도서관" },
|
|
28
|
+
{ code: "15", name: "노루목작은도서관" },
|
|
29
|
+
{ code: "16", name: "버드나무에부는바람작은도서관" },
|
|
30
|
+
{ code: "17", name: "꿈쟁이도서관" },
|
|
31
|
+
{ code: "18", name: "우리마을도서관" },
|
|
32
|
+
{ code: "19", name: "북카페사랑아이엔지" },
|
|
33
|
+
{ code: "20", name: "산본역도서관" },
|
|
34
|
+
{ code: "21", name: "하늘정원작은도서관" },
|
|
35
|
+
{ code: "22", name: "꿈이지" },
|
|
36
|
+
{ code: "23", name: "꿈드림작은도서관" },
|
|
37
|
+
{ code: "24", name: "여담작은도서관" },
|
|
38
|
+
];
|
|
39
|
+
const getLibraryCode = (0, util_1.createLibraryCodeLookup)(libraryList);
|
|
40
|
+
function getBookList(json) {
|
|
41
|
+
return lodash_1.default.map(json.data ? json.data.list : [], function (book) {
|
|
42
|
+
return {
|
|
43
|
+
title: book.titleStatement,
|
|
44
|
+
exist: book.branchVolumes.some((vol) => vol.cState.includes("대출가능")),
|
|
45
|
+
libraryName: book.branchVolumes.map((vol) => vol.name).join(","),
|
|
46
|
+
bookUrl: book.id
|
|
47
|
+
? `https://www.gunpolib.go.kr/#/search/detail/${book.id}`
|
|
48
|
+
: "",
|
|
49
|
+
};
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Search for books in Gunpo City Libraries.
|
|
54
|
+
*/
|
|
55
|
+
async function searchImpl(opt) {
|
|
56
|
+
const { title, libraryName, signal } = opt;
|
|
57
|
+
(0, util_1.validateSearchOptions)(opt);
|
|
58
|
+
const branch = getLibraryCode(libraryName);
|
|
59
|
+
const { statusCode, body } = await (0, http_1.get)("https://www.gunpolib.go.kr/pyxis-api/1/collections/1/search", {
|
|
60
|
+
qs: {
|
|
61
|
+
all: `k|a|${title}`,
|
|
62
|
+
branch,
|
|
63
|
+
max: 1000,
|
|
64
|
+
},
|
|
65
|
+
signal,
|
|
66
|
+
});
|
|
67
|
+
if (statusCode !== 200) {
|
|
68
|
+
throw new Error(`HTTP ${statusCode}`);
|
|
69
|
+
}
|
|
70
|
+
const booklist = getBookList(JSON.parse(body));
|
|
71
|
+
return {
|
|
72
|
+
totalBookCount: booklist.length,
|
|
73
|
+
booklist,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
exports.search = (0, util_1.wrapWithCallback)(searchImpl);
|
|
77
|
+
function getLibraryNames() {
|
|
78
|
+
return (0, util_1.getLibraryNames)(libraryList);
|
|
79
|
+
}
|
|
80
|
+
({ moduleName: exports.moduleName, homeUrl: exports.homeUrl, search: exports.search, getLibraryNames });
|
|
81
|
+
//# sourceMappingURL=gunpo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gunpo.js","sourceRoot":"","sources":["../../src/localLibraryModule/gunpo.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { SearchOptions, SearchResult } from "../types";
|
|
2
|
+
export declare const moduleName = "\uD654\uC131\uC2DC\uB9BD\uB3C4\uC11C\uAD00";
|
|
3
|
+
export declare const homeUrl = "https://hscitylib.or.kr";
|
|
4
|
+
export declare const search: (opt: SearchOptions, callback?: import("../types").SearchCallback) => Promise<SearchResult | void>;
|
|
5
|
+
export declare function getLibraryNames(): string[];
|
|
6
|
+
//# sourceMappingURL=hscity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hscity.d.ts","sourceRoot":"","sources":["../../src/localLibraryModule/hscity.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAIV,aAAa,EACb,YAAY,EACb,MAAM,UAAU,CAAC;AAElB,eAAO,MAAM,UAAU,+CAAY,CAAC;AACpC,eAAO,MAAM,OAAO,4BAA4B,CAAC;AAqGjD,eAAO,MAAM,MAAM,oGAA+B,CAAC;AAEnD,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAE1C"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.search = exports.homeUrl = exports.moduleName = void 0;
|
|
4
|
+
exports.getLibraryNames = getLibraryNames;
|
|
5
|
+
const util_1 = require("../util");
|
|
6
|
+
const http_1 = require("../http");
|
|
7
|
+
const jsdom_1 = require("jsdom");
|
|
8
|
+
exports.moduleName = "화성시립도서관";
|
|
9
|
+
exports.homeUrl = "https://hscitylib.or.kr";
|
|
10
|
+
const libraryList = [
|
|
11
|
+
{ code: "MA", name: "남양도서관" },
|
|
12
|
+
{ code: "MB", name: "태안도서관" },
|
|
13
|
+
{ code: "MC", name: "삼괴도서관" },
|
|
14
|
+
{ code: "MD", name: "병점도서관" },
|
|
15
|
+
{ code: "ME", name: "샘내도서관" },
|
|
16
|
+
{ code: "MF", name: "두빛나래어린이도서관" },
|
|
17
|
+
{ code: "MG", name: "봉담도서관" },
|
|
18
|
+
{ code: "MH", name: "둥지나래어린이도서관" },
|
|
19
|
+
{ code: "MI", name: "목동이음터도서관" },
|
|
20
|
+
{ code: "MJ", name: "기아행복마루도서관" },
|
|
21
|
+
{ code: "MK", name: "화성동탄중앙도서관" },
|
|
22
|
+
{ code: "ML", name: "송산도서관" },
|
|
23
|
+
{ code: "MM", name: "정남도서관" },
|
|
24
|
+
{ code: "MN", name: "비봉도서관" },
|
|
25
|
+
{ code: "MO", name: "진안도서관" },
|
|
26
|
+
{ code: "MP", name: "중앙이음터도서관" },
|
|
27
|
+
{ code: "MQ", name: "양감도서관" },
|
|
28
|
+
{ code: "MR", name: "다원이음터도서관" },
|
|
29
|
+
{ code: "MS", name: "송린이음터도서관" },
|
|
30
|
+
{ code: "MT", name: "팔탄도서관" },
|
|
31
|
+
{ code: "MU", name: "마도도서관" },
|
|
32
|
+
{ code: "MV", name: "봉담커피앤북도서관" },
|
|
33
|
+
{ code: "MW", name: "왕배푸른숲도서관" },
|
|
34
|
+
{ code: "MX", name: "노을빛도서관" },
|
|
35
|
+
{ code: "MY", name: "서연이음터도서관" },
|
|
36
|
+
{ code: "MZ", name: "호연이음터도서관" },
|
|
37
|
+
{ code: "NA", name: "향남복합문화센터도서관" },
|
|
38
|
+
{ code: "NB", name: "봉담와우도서관" },
|
|
39
|
+
{ code: "TA", name: "늘봄이음터도서관" },
|
|
40
|
+
{ code: "TB", name: "달빛나래어린이도서관" },
|
|
41
|
+
];
|
|
42
|
+
const getLibraryCode = (0, util_1.createLibraryCodeLookup)(libraryList);
|
|
43
|
+
/**
|
|
44
|
+
* Search for books in Hwaseong City Libraries.
|
|
45
|
+
*/
|
|
46
|
+
async function searchImpl(opt) {
|
|
47
|
+
const { title, libraryName, signal } = opt;
|
|
48
|
+
(0, util_1.validateSearchOptions)(opt);
|
|
49
|
+
const lcode = getLibraryCode(libraryName);
|
|
50
|
+
const url = `https://hscitylib.or.kr/intro/menu/10008/program/30001/searchResultList.do`;
|
|
51
|
+
const { statusCode, body } = await (0, http_1.post)(url, {
|
|
52
|
+
form: {
|
|
53
|
+
searchType: "SIMPLE",
|
|
54
|
+
searchKeyword: title,
|
|
55
|
+
searchManageCodeArr: lcode,
|
|
56
|
+
searchDisplay: 1000,
|
|
57
|
+
},
|
|
58
|
+
signal,
|
|
59
|
+
});
|
|
60
|
+
if (statusCode !== 200) {
|
|
61
|
+
throw new Error(`HTTP ${statusCode}`);
|
|
62
|
+
}
|
|
63
|
+
const dom = new jsdom_1.JSDOM(body);
|
|
64
|
+
const document = dom.window.document;
|
|
65
|
+
const countText = document.querySelector("#totalCnt")?.textContent ?? "";
|
|
66
|
+
const count = (0, util_1.extractNumber)(countText);
|
|
67
|
+
const booklist = [];
|
|
68
|
+
const bookItems = document.querySelectorAll(".bookArea");
|
|
69
|
+
bookItems.forEach((item) => {
|
|
70
|
+
const titleElement = item.querySelector("p.book_name.kor.on > a");
|
|
71
|
+
const bookTitle = titleElement?.getAttribute("title") ?? "";
|
|
72
|
+
const onclick = titleElement?.getAttribute("onclick") ?? "";
|
|
73
|
+
const match = onclick.match(/fnDetail\('(\d+)',\s*'(\d+)',\s*'([^']*)',\s*'(\w+)'\)/);
|
|
74
|
+
let bookUrl = "";
|
|
75
|
+
if (match) {
|
|
76
|
+
const [, bookKey, speciesKey, isbn, pubFormCode] = match;
|
|
77
|
+
bookUrl = `https://hscitylib.or.kr/intro/menu/10008/program/30001/searchResultDetail.do?bookKey=${bookKey}&speciesKey=${speciesKey}&isbn=${isbn}&pubFormCode=${pubFormCode}`;
|
|
78
|
+
}
|
|
79
|
+
const availability = item.querySelector("span.emp8")?.textContent?.trim() ?? "";
|
|
80
|
+
const libName = item.querySelector("b.themeFC")?.textContent?.trim() ?? "";
|
|
81
|
+
booklist.push({
|
|
82
|
+
libraryName: libName.replace(/[\[\]]/g, ""),
|
|
83
|
+
title: bookTitle,
|
|
84
|
+
bookUrl,
|
|
85
|
+
maxoffset: count,
|
|
86
|
+
exist: availability.includes("대출가능"),
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
return {
|
|
90
|
+
startPage: opt.startPage,
|
|
91
|
+
totalBookCount: count,
|
|
92
|
+
booklist,
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
exports.search = (0, util_1.wrapWithCallback)(searchImpl);
|
|
96
|
+
function getLibraryNames() {
|
|
97
|
+
return (0, util_1.getLibraryNames)(libraryList);
|
|
98
|
+
}
|
|
99
|
+
({ moduleName: exports.moduleName, homeUrl: exports.homeUrl, search: exports.search, getLibraryNames });
|
|
100
|
+
//# sourceMappingURL=hscity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hscity.js","sourceRoot":"","sources":["../../src/localLibraryModule/hscity.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { SearchOptions, SearchResult } from "../types";
|
|
2
|
+
export declare const moduleName = "\uC81C\uC8FC\uC2DC\uB3C4\uC11C\uAD00";
|
|
3
|
+
export declare const homeUrl = "https://www.jeju.go.kr/";
|
|
4
|
+
export declare const search: (opt: SearchOptions, callback?: import("../types").SearchCallback) => Promise<SearchResult | void>;
|
|
5
|
+
export declare function getLibraryNames(): string[];
|
|
6
|
+
//# sourceMappingURL=jeju.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jeju.d.ts","sourceRoot":"","sources":["../../src/localLibraryModule/jeju.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAIV,aAAa,EACb,YAAY,EACb,MAAM,UAAU,CAAC;AAElB,eAAO,MAAM,UAAU,yCAAW,CAAC;AACnC,eAAO,MAAM,OAAO,4BAA4B,CAAC;AA8GjD,eAAO,MAAM,MAAM,oGAA+B,CAAC;AAEnD,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAE1C"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.search = exports.homeUrl = exports.moduleName = void 0;
|
|
4
|
+
exports.getLibraryNames = getLibraryNames;
|
|
5
|
+
const util_1 = require("../util");
|
|
6
|
+
const http_1 = require("../http");
|
|
7
|
+
exports.moduleName = "제주시도서관";
|
|
8
|
+
exports.homeUrl = "https://www.jeju.go.kr/";
|
|
9
|
+
const libraryList = [
|
|
10
|
+
{ code: "MJ", name: "한라도서관" },
|
|
11
|
+
{ code: "MK", name: "우당도서관" },
|
|
12
|
+
{ code: "ML", name: "탐라도서관" },
|
|
13
|
+
{ code: "MM", name: "제주시기적의도서관" },
|
|
14
|
+
{ code: "MP", name: "애월도서관" },
|
|
15
|
+
{ code: "MN", name: "조천읍도서관" },
|
|
16
|
+
{ code: "MQ", name: "한경도서관" },
|
|
17
|
+
{ code: "MA", name: "삼매봉도서관" },
|
|
18
|
+
{ code: "MB", name: "중앙도서관" },
|
|
19
|
+
{ code: "MC", name: "동부도서관" },
|
|
20
|
+
{ code: "MD", name: "서부도서관" },
|
|
21
|
+
{ code: "ME", name: "서귀포기적의도서관" },
|
|
22
|
+
{ code: "MH", name: "성산일출도서관" },
|
|
23
|
+
{ code: "MF", name: "안덕산방도서관" },
|
|
24
|
+
{ code: "MG", name: "표선도서관" },
|
|
25
|
+
{ code: "XY", name: "꿈바당어린이도서관" },
|
|
26
|
+
];
|
|
27
|
+
const getLibraryCode = (0, util_1.createLibraryCodeLookup)(libraryList);
|
|
28
|
+
async function fetchRentStat(recKey, signal) {
|
|
29
|
+
try {
|
|
30
|
+
const { statusCode, body } = await (0, http_1.get)("https://www.jeju.go.kr/tool/lib/rent-stat.jsp", { qs: { key: recKey }, signal });
|
|
31
|
+
if (statusCode !== 200)
|
|
32
|
+
return false;
|
|
33
|
+
const stat = JSON.parse(body);
|
|
34
|
+
return stat.total - stat.rent > 0;
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
async function searchImpl(opt) {
|
|
41
|
+
const { title, libraryName, signal } = opt;
|
|
42
|
+
(0, util_1.validateSearchOptions)(opt);
|
|
43
|
+
const lcode = getLibraryCode(libraryName);
|
|
44
|
+
const qs = { q: title };
|
|
45
|
+
if (lcode) {
|
|
46
|
+
qs.lib = lcode;
|
|
47
|
+
}
|
|
48
|
+
const { statusCode, body } = await (0, http_1.get)("https://www.jeju.go.kr/tool/lib/search.jsp", { qs, signal });
|
|
49
|
+
if (statusCode !== 200) {
|
|
50
|
+
throw new Error(`HTTP ${statusCode}`);
|
|
51
|
+
}
|
|
52
|
+
const json = JSON.parse(body);
|
|
53
|
+
if (json.error) {
|
|
54
|
+
throw new Error("Search API returned an error");
|
|
55
|
+
}
|
|
56
|
+
const books = json.books ?? [];
|
|
57
|
+
const booklist = await Promise.all(books.map(async (book) => {
|
|
58
|
+
const exist = await fetchRentStat(book.recKey, signal);
|
|
59
|
+
return {
|
|
60
|
+
title: book.title,
|
|
61
|
+
exist,
|
|
62
|
+
libraryName: libraryList.find((l) => l.code === book.manageCode)?.name ?? libraryName,
|
|
63
|
+
bookUrl: `https://www.jeju.go.kr/lib/service/search/simple.htm?q=${encodeURIComponent(title)}`,
|
|
64
|
+
};
|
|
65
|
+
}));
|
|
66
|
+
return {
|
|
67
|
+
startPage: opt.startPage,
|
|
68
|
+
totalBookCount: books.length,
|
|
69
|
+
booklist,
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
exports.search = (0, util_1.wrapWithCallback)(searchImpl);
|
|
73
|
+
function getLibraryNames() {
|
|
74
|
+
return (0, util_1.getLibraryNames)(libraryList);
|
|
75
|
+
}
|
|
76
|
+
({ moduleName: exports.moduleName, homeUrl: exports.homeUrl, search: exports.search, getLibraryNames });
|
|
77
|
+
//# sourceMappingURL=jeju.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jeju.js","sourceRoot":"","sources":["../../src/localLibraryModule/jeju.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { SearchOptions, SearchResult } from "../types";
|
|
2
|
+
export declare const moduleName = "\uC624\uC0B0\uC2DC\uB3C4\uC11C\uAD00";
|
|
3
|
+
export declare const homeUrl = "https://www.osanlibrary.go.kr";
|
|
4
|
+
export declare const search: (opt: SearchOptions, callback?: import("../types").SearchCallback) => Promise<SearchResult | void>;
|
|
5
|
+
export declare function getLibraryNames(): string[];
|
|
6
|
+
//# sourceMappingURL=osan.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"osan.d.ts","sourceRoot":"","sources":["../../src/localLibraryModule/osan.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAIV,aAAa,EACb,YAAY,EACb,MAAM,UAAU,CAAC;AAElB,eAAO,MAAM,UAAU,yCAAW,CAAC;AACnC,eAAO,MAAM,OAAO,kCAAkC,CAAC;AA6GvD,eAAO,MAAM,MAAM,oGAA+B,CAAC;AAEnD,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAE1C"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.search = exports.homeUrl = exports.moduleName = void 0;
|
|
4
|
+
exports.getLibraryNames = getLibraryNames;
|
|
5
|
+
const util_1 = require("../util");
|
|
6
|
+
const http_1 = require("../http");
|
|
7
|
+
const jsdom_1 = require("jsdom");
|
|
8
|
+
exports.moduleName = "오산시도서관";
|
|
9
|
+
exports.homeUrl = "https://www.osanlibrary.go.kr";
|
|
10
|
+
const libraryList = [
|
|
11
|
+
{ code: "MA", name: "오산중앙도서관" },
|
|
12
|
+
{ code: "MG", name: "꿈두레도서관" },
|
|
13
|
+
{ code: "ME", name: "초평도서관" },
|
|
14
|
+
{ code: "MC", name: "햇살마루도서관" },
|
|
15
|
+
{ code: "MB", name: "청학도서관" },
|
|
16
|
+
{ code: "MD", name: "양산도서관" },
|
|
17
|
+
{ code: "MI", name: "소리울도서관" },
|
|
18
|
+
{ code: "MY", name: "무지개도서관" },
|
|
19
|
+
{ code: "MH", name: "고현초꿈키움도서관" },
|
|
20
|
+
{ code: "MJ", name: "쌍용예가시민개방도서관" },
|
|
21
|
+
];
|
|
22
|
+
const getLibraryCode = (0, util_1.createLibraryCodeLookup)(libraryList);
|
|
23
|
+
/**
|
|
24
|
+
* Search for books in Osan City Libraries.
|
|
25
|
+
*/
|
|
26
|
+
async function searchImpl(opt) {
|
|
27
|
+
const { title, libraryName, signal } = opt;
|
|
28
|
+
(0, util_1.validateSearchOptions)(opt);
|
|
29
|
+
const lcode = getLibraryCode(libraryName);
|
|
30
|
+
const { statusCode, body } = await (0, http_1.get)(`https://www.osanlibrary.go.kr/intro/program/plusSearchResultList.do`, {
|
|
31
|
+
qs: {
|
|
32
|
+
searchType: "SIMPLE",
|
|
33
|
+
searchCategory: "ALL",
|
|
34
|
+
searchLibraryArr: lcode,
|
|
35
|
+
searchKey: "ALL",
|
|
36
|
+
searchKeyword: title,
|
|
37
|
+
searchRecordCount: 1000,
|
|
38
|
+
},
|
|
39
|
+
signal,
|
|
40
|
+
});
|
|
41
|
+
if (statusCode !== 200) {
|
|
42
|
+
throw new Error(`HTTP ${statusCode}`);
|
|
43
|
+
}
|
|
44
|
+
const dom = new jsdom_1.JSDOM(body);
|
|
45
|
+
const document = dom.window.document;
|
|
46
|
+
// Extract total count from "총 <span class="highlight">44</span>건"
|
|
47
|
+
const highlightSpan = document.querySelector("span.highlight");
|
|
48
|
+
const count = (0, util_1.extractNumber)(highlightSpan?.textContent);
|
|
49
|
+
const booklist = [];
|
|
50
|
+
const bookItems = document.querySelectorAll(".bookList .listWrap > li");
|
|
51
|
+
bookItems.forEach((li) => {
|
|
52
|
+
// Get title and book URL from .book_name link
|
|
53
|
+
const titleLink = li.querySelector(".book_name");
|
|
54
|
+
const titleEl = titleLink ? titleLink.querySelector("span") : null;
|
|
55
|
+
const bookTitle = titleEl ? (titleEl.textContent?.trim() ?? "") : "";
|
|
56
|
+
// Extract book URL from onclick handler
|
|
57
|
+
let bookUrl = "";
|
|
58
|
+
const onclick = titleLink ? titleLink.getAttribute("onclick") || "" : "";
|
|
59
|
+
const urlMatch = onclick.match(/fnSearchResultDetail\((\d+),(\d+),'(\w+)'\)/);
|
|
60
|
+
if (urlMatch) {
|
|
61
|
+
const [, recKey, bookKey, publishFormCode] = urlMatch;
|
|
62
|
+
bookUrl = `https://www.osanlibrary.go.kr/intro/menu/10003/program/30004/plusSearchResultDetail.do?recKey=${recKey}&bookKey=${bookKey}&publishFormCode=${publishFormCode}`;
|
|
63
|
+
}
|
|
64
|
+
// Get availability status from .status p
|
|
65
|
+
const statusEl = li.querySelector(".status p");
|
|
66
|
+
const statusText = statusEl ? (statusEl.textContent?.trim() ?? "") : "";
|
|
67
|
+
const exist = statusText.includes("대출가능");
|
|
68
|
+
// Get library name from ".book_info .fb p" containing "소장도서관"
|
|
69
|
+
let libName = "";
|
|
70
|
+
const fbParagraphs = li.querySelectorAll(".book_info .fb p");
|
|
71
|
+
fbParagraphs.forEach((p) => {
|
|
72
|
+
const text = p.textContent;
|
|
73
|
+
if (text?.includes("소장도서관")) {
|
|
74
|
+
// Format: "[공공]오산시중앙도서관" - extract library name after "]"
|
|
75
|
+
const match = text.match(/\](.+)$/);
|
|
76
|
+
if (match) {
|
|
77
|
+
libName = match[1].trim();
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
if (bookTitle) {
|
|
82
|
+
booklist.push({
|
|
83
|
+
libraryName: libName,
|
|
84
|
+
title: bookTitle,
|
|
85
|
+
bookUrl,
|
|
86
|
+
maxoffset: count,
|
|
87
|
+
exist: exist,
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
return {
|
|
92
|
+
startPage: opt.startPage,
|
|
93
|
+
totalBookCount: count,
|
|
94
|
+
booklist,
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
exports.search = (0, util_1.wrapWithCallback)(searchImpl);
|
|
98
|
+
function getLibraryNames() {
|
|
99
|
+
return (0, util_1.getLibraryNames)(libraryList);
|
|
100
|
+
}
|
|
101
|
+
({ moduleName: exports.moduleName, homeUrl: exports.homeUrl, search: exports.search, getLibraryNames });
|
|
102
|
+
//# sourceMappingURL=osan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"osan.js","sourceRoot":"","sources":["../../src/localLibraryModule/osan.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { SearchOptions, SearchResult } from "../types";
|
|
2
|
+
export declare const moduleName = "\uC131\uB0A8\uC2DC\uB3C4\uC11C\uAD00";
|
|
3
|
+
export declare const homeUrl = "https://www.snlib.go.kr";
|
|
4
|
+
export declare const search: (opt: SearchOptions, callback?: import("../types").SearchCallback) => Promise<SearchResult | void>;
|
|
5
|
+
export declare function getLibraryNames(): string[];
|
|
6
|
+
//# sourceMappingURL=snlib.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snlib.d.ts","sourceRoot":"","sources":["../../src/localLibraryModule/snlib.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAIV,aAAa,EACb,YAAY,EACb,MAAM,UAAU,CAAC;AAElB,eAAO,MAAM,UAAU,yCAAW,CAAC;AACnC,eAAO,MAAM,OAAO,4BAA4B,CAAC;AA4GjD,eAAO,MAAM,MAAM,oGAA+B,CAAC;AAEnD,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAE1C"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.search = exports.homeUrl = exports.moduleName = void 0;
|
|
4
|
+
exports.getLibraryNames = getLibraryNames;
|
|
5
|
+
const util_1 = require("../util");
|
|
6
|
+
const http_1 = require("../http");
|
|
7
|
+
const jsdom_1 = require("jsdom");
|
|
8
|
+
exports.moduleName = "성남시도서관";
|
|
9
|
+
exports.homeUrl = "https://www.snlib.go.kr";
|
|
10
|
+
const libraryList = [
|
|
11
|
+
{ code: "BF", name: "논골도서관" },
|
|
12
|
+
{ code: "CK", name: "중원어린이도서관" },
|
|
13
|
+
{ code: "MA", name: "성남중앙도서관" },
|
|
14
|
+
{ code: "MB", name: "분당도서관" },
|
|
15
|
+
{ code: "MD", name: "고등도서관" },
|
|
16
|
+
{ code: "MG", name: "구미도서관" },
|
|
17
|
+
{ code: "MH", name: "해오름도서관" },
|
|
18
|
+
{ code: "MJ", name: "중원도서관" },
|
|
19
|
+
{ code: "MM", name: "무지개도서관" },
|
|
20
|
+
{ code: "MO", name: "수내도서관" },
|
|
21
|
+
{ code: "MP", name: "판교도서관" },
|
|
22
|
+
{ code: "MR", name: "위례도서관" },
|
|
23
|
+
{ code: "MS", name: "수정도서관" },
|
|
24
|
+
{ code: "MT", name: "책테마파크도서관" },
|
|
25
|
+
{ code: "MU", name: "운중도서관" },
|
|
26
|
+
{ code: "MV", name: "서현도서관" },
|
|
27
|
+
{ code: "MW", name: "복정도서관" },
|
|
28
|
+
{ code: "PK", name: "판교어린이도서관" },
|
|
29
|
+
];
|
|
30
|
+
const getLibraryCode = (0, util_1.createLibraryCodeLookup)(libraryList);
|
|
31
|
+
/**
|
|
32
|
+
* Search for books in Seongnam City Libraries.
|
|
33
|
+
*/
|
|
34
|
+
async function searchImpl(opt) {
|
|
35
|
+
const { title, libraryName, signal } = opt;
|
|
36
|
+
(0, util_1.validateSearchOptions)(opt);
|
|
37
|
+
const lcode = getLibraryCode(libraryName);
|
|
38
|
+
const { statusCode, body } = await (0, http_1.get)("https://www.snlib.go.kr/intro/menu/10041/program/30009/plusSearchResultList.do", {
|
|
39
|
+
qs: {
|
|
40
|
+
currentPageNo: 1,
|
|
41
|
+
searchBookClass: "ALL",
|
|
42
|
+
searchCategory: "BOOK",
|
|
43
|
+
searchKey: "ALL",
|
|
44
|
+
searchKeyword: title,
|
|
45
|
+
searchLibraryArr: lcode,
|
|
46
|
+
searchOrder: "DESC",
|
|
47
|
+
searchRecordCount: 1000,
|
|
48
|
+
searchSort: "SIMILAR",
|
|
49
|
+
searchType: "SIMPLE",
|
|
50
|
+
},
|
|
51
|
+
signal,
|
|
52
|
+
});
|
|
53
|
+
if (statusCode !== 200) {
|
|
54
|
+
throw new Error(`HTTP ${statusCode}`);
|
|
55
|
+
}
|
|
56
|
+
const dom = new jsdom_1.JSDOM(body);
|
|
57
|
+
const document = dom.window.document;
|
|
58
|
+
const countText = document.querySelector("strong.themeFC")?.textContent ?? "";
|
|
59
|
+
const count = (0, util_1.extractNumber)(countText);
|
|
60
|
+
const booklist = [];
|
|
61
|
+
if (count) {
|
|
62
|
+
const bookItems = document.querySelectorAll(".resultList > li");
|
|
63
|
+
bookItems.forEach((item) => {
|
|
64
|
+
const titleElement = item.querySelector(".tit a");
|
|
65
|
+
const bookTitle = titleElement?.textContent?.trim() ?? "";
|
|
66
|
+
const onclick = titleElement?.getAttribute("onclick") ?? "";
|
|
67
|
+
const match = onclick.match(/fnSearchResultDetail\((\d+),(\d+),'(\w+)'\)/);
|
|
68
|
+
let bookUrl = "";
|
|
69
|
+
if (match) {
|
|
70
|
+
const [, recKey, bookKey, publishFormCode] = match;
|
|
71
|
+
bookUrl = `https://www.snlib.go.kr/intro/menu/10041/program/30009/plusSearchResultDetail.do?recKey=${recKey}&bookKey=${bookKey}&publishFormCode=${publishFormCode}`;
|
|
72
|
+
}
|
|
73
|
+
const availability = item.querySelector(".bookStateBar .txt b")?.textContent ?? "";
|
|
74
|
+
// Format: "소장처:도서관이름" - split by colon to extract library name
|
|
75
|
+
const siteText = item.querySelector(".site > span:first-child")?.textContent ?? "";
|
|
76
|
+
const libraryNameParts = siteText.split(":");
|
|
77
|
+
const libName = libraryNameParts && libraryNameParts[1]
|
|
78
|
+
? libraryNameParts[1].trim()
|
|
79
|
+
: "";
|
|
80
|
+
if (bookTitle) {
|
|
81
|
+
booklist.push({
|
|
82
|
+
libraryName: libName,
|
|
83
|
+
title: bookTitle,
|
|
84
|
+
bookUrl,
|
|
85
|
+
maxoffset: count,
|
|
86
|
+
exist: availability.includes("대출가능"),
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
return {
|
|
92
|
+
startPage: opt.startPage,
|
|
93
|
+
totalBookCount: count,
|
|
94
|
+
booklist,
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
exports.search = (0, util_1.wrapWithCallback)(searchImpl);
|
|
98
|
+
function getLibraryNames() {
|
|
99
|
+
return (0, util_1.getLibraryNames)(libraryList);
|
|
100
|
+
}
|
|
101
|
+
({ moduleName: exports.moduleName, homeUrl: exports.homeUrl, search: exports.search, getLibraryNames });
|
|
102
|
+
//# sourceMappingURL=snlib.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snlib.js","sourceRoot":"","sources":["../../src/localLibraryModule/snlib.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { SearchOptions, SearchResult } from "../types";
|
|
2
|
+
export declare const moduleName = "\uC218\uC6D0\uC2DC\uB3C4\uC11C\uAD00";
|
|
3
|
+
export declare const homeUrl = "https://www.suwonlib.go.kr";
|
|
4
|
+
export declare const search: (opt: SearchOptions, callback?: import("../types").SearchCallback) => Promise<SearchResult | void>;
|
|
5
|
+
export declare function getLibraryNames(): string[];
|
|
6
|
+
//# sourceMappingURL=suwon.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"suwon.d.ts","sourceRoot":"","sources":["../../src/localLibraryModule/suwon.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAIV,aAAa,EACb,YAAY,EACb,MAAM,UAAU,CAAC;AAElB,eAAO,MAAM,UAAU,yCAAW,CAAC;AACnC,eAAO,MAAM,OAAO,+BAA+B,CAAC;AA0IpD,eAAO,MAAM,MAAM,oGAA+B,CAAC;AAEnD,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAE1C"}
|