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,117 @@
|
|
|
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.suwonlib.go.kr";
|
|
9
|
+
const libraryList = [
|
|
10
|
+
{ code: "141025", name: "선경도서관" },
|
|
11
|
+
{ code: "141024", name: "수원중앙도서관" },
|
|
12
|
+
{ code: "141549", name: "창룡도서관" },
|
|
13
|
+
{ code: "141572", name: "화서다산도서관" },
|
|
14
|
+
{ code: "141552", name: "호매실도서관" },
|
|
15
|
+
{ code: "141093", name: "서수원도서관" },
|
|
16
|
+
{ code: "141542", name: "한림도서관" },
|
|
17
|
+
{ code: "141550", name: "버드내도서관" },
|
|
18
|
+
{ code: "141092", name: "북수원도서관" },
|
|
19
|
+
{ code: "141537", name: "대추골도서관" },
|
|
20
|
+
{ code: "141557", name: "일월도서관" },
|
|
21
|
+
{ code: "141551", name: "광교홍재도서관" },
|
|
22
|
+
{ code: "141301", name: "태장마루도서관" },
|
|
23
|
+
{ code: "141595", name: "광교푸른숲도서관" },
|
|
24
|
+
{ code: "141596", name: "매여울도서관" },
|
|
25
|
+
{ code: "141612", name: "망포글빛도서관" },
|
|
26
|
+
{ code: "141085", name: "슬기샘도서관" },
|
|
27
|
+
{ code: "141086", name: "지혜샘어린이도서관" },
|
|
28
|
+
{ code: "141087", name: "바른샘어린이도서관" },
|
|
29
|
+
{ code: "141064", name: "한아름도서관" },
|
|
30
|
+
{ code: "141138", name: "반달어린이도서관" },
|
|
31
|
+
{ code: "341147", name: "사랑샘도서관" },
|
|
32
|
+
{ code: "141107", name: "희망샘도서관" },
|
|
33
|
+
];
|
|
34
|
+
const getLibraryCode = (0, util_1.createLibraryCodeLookup)(libraryList);
|
|
35
|
+
function stripHtml(str) {
|
|
36
|
+
return str ? str.replace(/<[^>]*>/g, "") : "";
|
|
37
|
+
}
|
|
38
|
+
function getBookList(data) {
|
|
39
|
+
if (!data.SEARCH_RESULT || !data.SEARCH_RESULT.SEARCH_LIST) {
|
|
40
|
+
return [];
|
|
41
|
+
}
|
|
42
|
+
return data.SEARCH_RESULT.SEARCH_LIST.map(function (book) {
|
|
43
|
+
let bookUrl = "";
|
|
44
|
+
if (book.MANAGE_CODE && book.ISBN && book.BOOK_KEY) {
|
|
45
|
+
bookUrl = `https://search.suwonlib.go.kr/detail/${book.MANAGE_CODE}/${book.ISBN}/${book.BOOK_KEY}`;
|
|
46
|
+
}
|
|
47
|
+
return {
|
|
48
|
+
title: stripHtml(book.TITLE_INFO || ""),
|
|
49
|
+
exist: book.LOAN_CODE === "OK",
|
|
50
|
+
libraryName: book.LIB_NAME || "",
|
|
51
|
+
bookUrl,
|
|
52
|
+
};
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Search for books in Suwon City Libraries.
|
|
57
|
+
*/
|
|
58
|
+
async function searchImpl(opt) {
|
|
59
|
+
const { title, libraryName, signal } = opt;
|
|
60
|
+
(0, util_1.validateSearchOptions)(opt);
|
|
61
|
+
const lcode = getLibraryCode(libraryName);
|
|
62
|
+
// Create a session to maintain cookies
|
|
63
|
+
const session = (0, http_1.createSession)();
|
|
64
|
+
// First, visit the search page to initialize session
|
|
65
|
+
await session.get("https://search.suwonlib.go.kr/search", { signal });
|
|
66
|
+
// Now make the API call with the session cookies
|
|
67
|
+
const { statusCode, body } = await session.post("https://search.suwonlib.go.kr/getSearchResult/normal", {
|
|
68
|
+
form: {
|
|
69
|
+
searchTxt: title,
|
|
70
|
+
kCid: "",
|
|
71
|
+
kdcValue: "",
|
|
72
|
+
searchKind: "book",
|
|
73
|
+
manageCode: lcode,
|
|
74
|
+
isInnerSearch: "F",
|
|
75
|
+
innerSearchTxt: "",
|
|
76
|
+
keywordSearch: false,
|
|
77
|
+
displayNo: "1000",
|
|
78
|
+
orderbyItem: "ACCURACY_SORT",
|
|
79
|
+
orderby: "DESC",
|
|
80
|
+
pageNo: "1",
|
|
81
|
+
facetLib: "",
|
|
82
|
+
facetLibName: "",
|
|
83
|
+
facetAuthor: "",
|
|
84
|
+
facetPublisher: "",
|
|
85
|
+
facetPubYear: "",
|
|
86
|
+
facetSubject: "",
|
|
87
|
+
facetSubjectName: "",
|
|
88
|
+
facetMedia: "",
|
|
89
|
+
facetMediaName: "",
|
|
90
|
+
},
|
|
91
|
+
headers: {
|
|
92
|
+
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
|
|
93
|
+
Referer: "https://search.suwonlib.go.kr/search",
|
|
94
|
+
"X-Requested-With": "XMLHttpRequest",
|
|
95
|
+
ajax: "true",
|
|
96
|
+
},
|
|
97
|
+
signal,
|
|
98
|
+
});
|
|
99
|
+
if (statusCode !== 200) {
|
|
100
|
+
throw new Error(`HTTP ${statusCode}`);
|
|
101
|
+
}
|
|
102
|
+
const data = JSON.parse(body);
|
|
103
|
+
const booklist = getBookList(data);
|
|
104
|
+
const totalCount = data.SEARCH_RESULT && data.SEARCH_RESULT.SEARCH_COUNT
|
|
105
|
+
? data.SEARCH_RESULT.SEARCH_COUNT
|
|
106
|
+
: booklist.length;
|
|
107
|
+
return {
|
|
108
|
+
totalBookCount: totalCount,
|
|
109
|
+
booklist,
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
exports.search = (0, util_1.wrapWithCallback)(searchImpl);
|
|
113
|
+
function getLibraryNames() {
|
|
114
|
+
return (0, util_1.getLibraryNames)(libraryList);
|
|
115
|
+
}
|
|
116
|
+
({ moduleName: exports.moduleName, homeUrl: exports.homeUrl, search: exports.search, getLibraryNames });
|
|
117
|
+
//# sourceMappingURL=suwon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"suwon.js","sourceRoot":"","sources":["../../src/localLibraryModule/suwon.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { SearchOptions, SearchResult } from "../types";
|
|
2
|
+
export declare const moduleName = "\uC5EC\uC8FC\uC2DC\uB9BD\uB3C4\uC11C\uAD00";
|
|
3
|
+
export declare const homeUrl = "https://www.yjlib.go.kr";
|
|
4
|
+
export declare const search: (opt: SearchOptions, callback?: import("../types").SearchCallback) => Promise<SearchResult | void>;
|
|
5
|
+
export declare function getLibraryNames(): string[];
|
|
6
|
+
//# sourceMappingURL=yjlib.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"yjlib.d.ts","sourceRoot":"","sources":["../../src/localLibraryModule/yjlib.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;AAsHjD,eAAO,MAAM,MAAM,oGAA+B,CAAC;AAEnD,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAE1C"}
|
|
@@ -0,0 +1,109 @@
|
|
|
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.yjlib.go.kr";
|
|
10
|
+
const libraryList = [
|
|
11
|
+
// Public libraries (시립도서관)
|
|
12
|
+
{ code: "MA", name: "여주도서관" },
|
|
13
|
+
{ code: "MB", name: "세종도서관" },
|
|
14
|
+
{ code: "ME", name: "점동도서관" },
|
|
15
|
+
{ code: "MH", name: "여주기적의도서관" },
|
|
16
|
+
{ code: "MI", name: "흥천도서관" },
|
|
17
|
+
{ code: "MG", name: "금사도서관" },
|
|
18
|
+
{ code: "MF", name: "대신도서관" },
|
|
19
|
+
// Small libraries (작은도서관)
|
|
20
|
+
{ code: "MC", name: "산북작은도서관" },
|
|
21
|
+
{ code: "MD", name: "북내작은도서관" },
|
|
22
|
+
// Smart libraries (스마트도서관)
|
|
23
|
+
{ code: "SA", name: "여주역스마트도서관" },
|
|
24
|
+
{ code: "SB", name: "이마트스마트도서관" },
|
|
25
|
+
];
|
|
26
|
+
const getLibraryCode = (0, util_1.createLibraryCodeLookup)(libraryList);
|
|
27
|
+
/**
|
|
28
|
+
* Search for books in Yeoju City Libraries.
|
|
29
|
+
*/
|
|
30
|
+
async function searchImpl(opt) {
|
|
31
|
+
const { title, libraryName, signal } = opt;
|
|
32
|
+
(0, util_1.validateSearchOptions)(opt);
|
|
33
|
+
const lcode = getLibraryCode(libraryName);
|
|
34
|
+
const { statusCode, body } = await (0, http_1.get)("https://www.yjlib.go.kr/web/menu/10036/program/30001/searchResultList.do", {
|
|
35
|
+
qs: {
|
|
36
|
+
searchType: "SIMPLE",
|
|
37
|
+
searchCategory: "ALL",
|
|
38
|
+
searchLibraryArr: lcode,
|
|
39
|
+
searchField: "ALL",
|
|
40
|
+
searchWord: title,
|
|
41
|
+
searchRecordCount: 1000,
|
|
42
|
+
},
|
|
43
|
+
signal,
|
|
44
|
+
});
|
|
45
|
+
if (statusCode !== 200) {
|
|
46
|
+
throw new Error(`HTTP ${statusCode}`);
|
|
47
|
+
}
|
|
48
|
+
const dom = new jsdom_1.JSDOM(body);
|
|
49
|
+
const document = dom.window.document;
|
|
50
|
+
// Extract total count from "총 <strong class="highlight">15</strong> 건"
|
|
51
|
+
const resultText = document.querySelector(".result_box .result_screen")?.textContent ?? "";
|
|
52
|
+
const countMatch = resultText.match(/총\s*(\d+)\s*건/);
|
|
53
|
+
const count = countMatch ? countMatch[1] : "0";
|
|
54
|
+
const booklist = [];
|
|
55
|
+
const bookItems = document.querySelectorAll(".bookList .bookArea");
|
|
56
|
+
bookItems.forEach((item) => {
|
|
57
|
+
// Get title from .book_name span (remove highlight spans)
|
|
58
|
+
const titleElement = item.querySelector(".book_name a span");
|
|
59
|
+
let bookTitle = "";
|
|
60
|
+
if (titleElement) {
|
|
61
|
+
// Clone and get text content (this preserves the text without highlight spans)
|
|
62
|
+
bookTitle = titleElement.textContent?.trim() ?? "";
|
|
63
|
+
}
|
|
64
|
+
// Extract book URL from onclick handler
|
|
65
|
+
// fnSearchResultDetail(speciesKey, bookKey, publishFormCode) submits a form via POST,
|
|
66
|
+
// but the same endpoint accepts GET requests with speciesKey parameter
|
|
67
|
+
let bookUrl = "";
|
|
68
|
+
const titleLink = item.querySelector(".book_name a");
|
|
69
|
+
const onclick = titleLink?.getAttribute("onclick") ?? "";
|
|
70
|
+
const urlMatch = onclick.match(/fnSearchResultDetail\(['"]?(\d+)['"]?,\s*['"]?(\d+)['"]?,\s*['"]?(\w+)['"]?\)/);
|
|
71
|
+
if (urlMatch) {
|
|
72
|
+
const [, speciesKey, bookKey, publishFormCode] = urlMatch;
|
|
73
|
+
bookUrl = `https://www.yjlib.go.kr/web/menu/10036/program/30001/searchResultDetail.do?speciesKey=${speciesKey}&bookKey=${bookKey}&publishFormCode=${publishFormCode}`;
|
|
74
|
+
}
|
|
75
|
+
// Get library name from .book_info.info03 first strong element
|
|
76
|
+
let libName = "";
|
|
77
|
+
const info03 = item.querySelector(".book_info.info03");
|
|
78
|
+
if (info03) {
|
|
79
|
+
const firstStrong = info03.querySelector("p strong");
|
|
80
|
+
if (firstStrong) {
|
|
81
|
+
libName = firstStrong.textContent?.trim() ?? "";
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
// Get availability status from .bookBtnWrap
|
|
85
|
+
const statusEl = item.querySelector(".bookBtnWrap");
|
|
86
|
+
const statusText = statusEl?.textContent ?? "";
|
|
87
|
+
const exist = statusText.includes("대출가능");
|
|
88
|
+
if (bookTitle) {
|
|
89
|
+
booklist.push({
|
|
90
|
+
libraryName: libName,
|
|
91
|
+
title: bookTitle,
|
|
92
|
+
bookUrl,
|
|
93
|
+
maxoffset: count,
|
|
94
|
+
exist,
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
return {
|
|
99
|
+
startPage: opt.startPage,
|
|
100
|
+
totalBookCount: (0, util_1.extractNumber)(count),
|
|
101
|
+
booklist,
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
exports.search = (0, util_1.wrapWithCallback)(searchImpl);
|
|
105
|
+
function getLibraryNames() {
|
|
106
|
+
return (0, util_1.getLibraryNames)(libraryList);
|
|
107
|
+
}
|
|
108
|
+
({ moduleName: exports.moduleName, homeUrl: exports.homeUrl, search: exports.search, getLibraryNames });
|
|
109
|
+
//# sourceMappingURL=yjlib.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"yjlib.js","sourceRoot":"","sources":["../../src/localLibraryModule/yjlib.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { SearchOptions, SearchResult } from "../types";
|
|
2
|
+
export declare const moduleName = "\uC6A9\uC778\uC2DC\uB3C4\uC11C\uAD00";
|
|
3
|
+
export declare const homeUrl = "https://lib.yongin.go.kr";
|
|
4
|
+
export declare const search: (opt: SearchOptions, callback?: import("../types").SearchCallback) => Promise<SearchResult | void>;
|
|
5
|
+
export declare function getLibraryNames(): string[];
|
|
6
|
+
//# sourceMappingURL=yongin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"yongin.d.ts","sourceRoot":"","sources":["../../src/localLibraryModule/yongin.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAIV,aAAa,EACb,YAAY,EACb,MAAM,UAAU,CAAC;AAElB,eAAO,MAAM,UAAU,yCAAW,CAAC;AACnC,eAAO,MAAM,OAAO,6BAA6B,CAAC;AAmJlD,eAAO,MAAM,MAAM,oGAA+B,CAAC;AAEnD,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAE1C"}
|
|
@@ -0,0 +1,141 @@
|
|
|
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://lib.yongin.go.kr";
|
|
10
|
+
const libraryList = [
|
|
11
|
+
// Public libraries (시립도서관)
|
|
12
|
+
{ code: "MB", name: "수지도서관" },
|
|
13
|
+
{ code: "MI", name: "구갈희망누리도서관" },
|
|
14
|
+
{ code: "MD", name: "구성도서관" },
|
|
15
|
+
{ code: "MK", name: "기흥도서관" },
|
|
16
|
+
{ code: "MY", name: "남사도서관" },
|
|
17
|
+
{ code: "MF", name: "동백도서관" },
|
|
18
|
+
{ code: "NA", name: "동천도서관" },
|
|
19
|
+
{ code: "ML", name: "모현도서관" },
|
|
20
|
+
{ code: "MM", name: "보라도서관" },
|
|
21
|
+
{ code: "MO", name: "상현도서관" },
|
|
22
|
+
{ code: "MZ", name: "서농도서관" },
|
|
23
|
+
{ code: "NB", name: "성복도서관" },
|
|
24
|
+
{ code: "MA", name: "용인중앙도서관" },
|
|
25
|
+
{ code: "MJ", name: "양지해밀도서관" },
|
|
26
|
+
{ code: "NN", name: "영덕도서관" },
|
|
27
|
+
{ code: "MX", name: "이동꿈틀도서관" },
|
|
28
|
+
{ code: "ME", name: "죽전도서관" },
|
|
29
|
+
{ code: "MP", name: "청덕도서관" },
|
|
30
|
+
{ code: "MC", name: "포곡도서관" },
|
|
31
|
+
{ code: "MN", name: "흥덕도서관" },
|
|
32
|
+
// Smart libraries (스마트도서관)
|
|
33
|
+
{ code: "NO", name: "기흥동행정복지센터스마트도서관" },
|
|
34
|
+
{ code: "NJ", name: "기흥역스마트도서관" },
|
|
35
|
+
{ code: "NF", name: "동천동행정복지센터스마트도서관" },
|
|
36
|
+
{ code: "NS", name: "마북동행정복지센터스마트도서관" },
|
|
37
|
+
{ code: "NG", name: "보정동행정복지센터스마트도서관" },
|
|
38
|
+
{ code: "NP", name: "상갈동행정복지센터스마트도서관" },
|
|
39
|
+
{ code: "NT", name: "상하동행정복지센터스마트도서관" },
|
|
40
|
+
{ code: "NH", name: "성복역스마트도서관" },
|
|
41
|
+
{ code: "NL", name: "시청스마트도서관" },
|
|
42
|
+
{ code: "NI", name: "신봉동행정복지센터스마트도서관" },
|
|
43
|
+
{ code: "NR", name: "역북동행정복지센터스마트도서관" },
|
|
44
|
+
{ code: "NM", name: "용인중앙시장역스마트도서관" },
|
|
45
|
+
{ code: "ND", name: "원삼면스마트도서관" },
|
|
46
|
+
{ code: "NQ", name: "유방어린이공원스마트도서관" },
|
|
47
|
+
{ code: "NK", name: "죽전역스마트도서관" },
|
|
48
|
+
// Small libraries (작은도서관)
|
|
49
|
+
{ code: "NC", name: "고림다온작은도서관" },
|
|
50
|
+
{ code: "MS", name: "남사맑은누리작은도서관" },
|
|
51
|
+
{ code: "MT", name: "백암면작은도서관" },
|
|
52
|
+
{ code: "MW", name: "상현1동작은도서관" },
|
|
53
|
+
{ code: "MQ", name: "상현2동작은도서관" },
|
|
54
|
+
{ code: "MV", name: "이동천리작은도서관" },
|
|
55
|
+
];
|
|
56
|
+
const getLibraryCode = (0, util_1.createLibraryCodeLookup)(libraryList);
|
|
57
|
+
/**
|
|
58
|
+
* Search for books in Yongin City Libraries.
|
|
59
|
+
*/
|
|
60
|
+
async function searchImpl(opt) {
|
|
61
|
+
const { title, libraryName, signal } = opt;
|
|
62
|
+
(0, util_1.validateSearchOptions)(opt);
|
|
63
|
+
const lcode = getLibraryCode(libraryName);
|
|
64
|
+
const { statusCode, body } = await (0, http_1.get)(`https://lib.yongin.go.kr/intro/menu/10003/program/30012/plusSearchResultList.do`, {
|
|
65
|
+
qs: {
|
|
66
|
+
searchType: "SIMPLE",
|
|
67
|
+
searchCategory: "ALL",
|
|
68
|
+
searchLibraryArr: lcode,
|
|
69
|
+
searchKey: "ALL",
|
|
70
|
+
searchKeyword: title,
|
|
71
|
+
searchRecordCount: 1000,
|
|
72
|
+
},
|
|
73
|
+
signal,
|
|
74
|
+
});
|
|
75
|
+
if (statusCode !== 200) {
|
|
76
|
+
throw new Error(`HTTP ${statusCode}`);
|
|
77
|
+
}
|
|
78
|
+
const dom = new jsdom_1.JSDOM(body);
|
|
79
|
+
const document = dom.window.document;
|
|
80
|
+
// Extract total count from "총<strong class="highlight">44</strong> 건"
|
|
81
|
+
// Note: First .highlight element contains search term, second contains the count
|
|
82
|
+
const highlightElems = document.querySelectorAll(".highlight");
|
|
83
|
+
const count = (0, util_1.extractNumber)(highlightElems[1]?.textContent);
|
|
84
|
+
const booklist = [];
|
|
85
|
+
const bookItems = document.querySelectorAll(".bookList .listWrap > li");
|
|
86
|
+
bookItems.forEach((li) => {
|
|
87
|
+
// Get title and book URL from .book_name link
|
|
88
|
+
const titleLink = li.querySelector(".book_name a");
|
|
89
|
+
// Title is the text content of the link, excluding the book_kind badge
|
|
90
|
+
let bookTitle = "";
|
|
91
|
+
if (titleLink) {
|
|
92
|
+
// Clone the node and remove the book_kind element to get clean title
|
|
93
|
+
const clone = titleLink.cloneNode(true);
|
|
94
|
+
const bookKind = clone.querySelector(".book_kind");
|
|
95
|
+
if (bookKind)
|
|
96
|
+
bookKind.remove();
|
|
97
|
+
bookTitle = clone.textContent?.trim() ?? "";
|
|
98
|
+
}
|
|
99
|
+
// Extract book URL from onclick handler
|
|
100
|
+
let bookUrl = "";
|
|
101
|
+
const onclick = titleLink ? titleLink.getAttribute("onclick") || "" : "";
|
|
102
|
+
const urlMatch = onclick.match(/fnSearchResultDetail\((\d+),(\d+),'(\w+)'\)/);
|
|
103
|
+
if (urlMatch) {
|
|
104
|
+
const [, recKey, bookKey, publishFormCode] = urlMatch;
|
|
105
|
+
bookUrl = `https://lib.yongin.go.kr/intro/menu/10003/program/30012/plusSearchResultDetail.do?recKey=${recKey}&bookKey=${bookKey}&publishFormCode=${publishFormCode}`;
|
|
106
|
+
}
|
|
107
|
+
// Get availability status from .status p
|
|
108
|
+
const statusEl = li.querySelector(".status p");
|
|
109
|
+
const statusText = statusEl ? (statusEl.textContent?.trim() ?? "") : "";
|
|
110
|
+
const exist = statusText.includes("대출가능");
|
|
111
|
+
// Get library name from ".book_info.info03 p" (first p contains library name)
|
|
112
|
+
let libName = "";
|
|
113
|
+
const info03 = li.querySelector(".book_info.info03");
|
|
114
|
+
if (info03) {
|
|
115
|
+
const firstP = info03.querySelector("p");
|
|
116
|
+
if (firstP) {
|
|
117
|
+
libName = firstP.textContent?.trim() ?? "";
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
if (bookTitle) {
|
|
121
|
+
booklist.push({
|
|
122
|
+
libraryName: libName,
|
|
123
|
+
title: bookTitle,
|
|
124
|
+
bookUrl,
|
|
125
|
+
maxoffset: count,
|
|
126
|
+
exist: exist,
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
});
|
|
130
|
+
return {
|
|
131
|
+
startPage: opt.startPage,
|
|
132
|
+
totalBookCount: count,
|
|
133
|
+
booklist,
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
exports.search = (0, util_1.wrapWithCallback)(searchImpl);
|
|
137
|
+
function getLibraryNames() {
|
|
138
|
+
return (0, util_1.getLibraryNames)(libraryList);
|
|
139
|
+
}
|
|
140
|
+
({ moduleName: exports.moduleName, homeUrl: exports.homeUrl, search: exports.search, getLibraryNames });
|
|
141
|
+
//# sourceMappingURL=yongin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"yongin.js","sourceRoot":"","sources":["../../src/localLibraryModule/yongin.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -89,4 +89,27 @@ export interface LibraryRegistryEntry {
|
|
|
89
89
|
search: LibraryModule["search"];
|
|
90
90
|
homeUrl: string;
|
|
91
91
|
}
|
|
92
|
+
/**
|
|
93
|
+
* Callback function signature for search completion
|
|
94
|
+
*/
|
|
95
|
+
export type SearchCompleteCallback = (err: SearchError | null, results?: SearchResult[]) => void;
|
|
96
|
+
/**
|
|
97
|
+
* Options for the main search API
|
|
98
|
+
*/
|
|
99
|
+
export interface SearchOptionsMain {
|
|
100
|
+
title: string;
|
|
101
|
+
libraryName: string | string[];
|
|
102
|
+
signal?: AbortSignal;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Public API interface for DongneLibrary
|
|
106
|
+
*/
|
|
107
|
+
export interface DongneLibraryAPI {
|
|
108
|
+
getAllLibraryNames: () => string[];
|
|
109
|
+
getAllModuleNames: () => string[];
|
|
110
|
+
getModuleHomeUrls: () => Record<string, string>;
|
|
111
|
+
isModuleName: (name: string) => boolean;
|
|
112
|
+
searchAsync: (opt: SearchOptionsMain, onResult?: SearchCallback) => Promise<SearchResult[]>;
|
|
113
|
+
search: (opt: SearchOptionsMain | undefined | null, onResult?: SearchCallback, onComplete?: SearchCompleteCallback) => void;
|
|
114
|
+
}
|
|
92
115
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,IAAI;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,GAAG,MAAM,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,IAAI,EAAE,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,CAC3B,GAAG,EAAE,WAAW,GAAG,IAAI,EACvB,MAAM,CAAC,EAAE,YAAY,KAClB,IAAI,CAAC;AAEV;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/D,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;CACjE;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,CACN,GAAG,EAAE,aAAa,EAClB,QAAQ,CAAC,EAAE,cAAc,KACtB,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IAClC,eAAe,EAAE,MAAM,MAAM,EAAE,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;CACjB"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,IAAI;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,GAAG,MAAM,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,IAAI,EAAE,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,CAC3B,GAAG,EAAE,WAAW,GAAG,IAAI,EACvB,MAAM,CAAC,EAAE,YAAY,KAClB,IAAI,CAAC;AAEV;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/D,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;CACjE;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,CACN,GAAG,EAAE,aAAa,EAClB,QAAQ,CAAC,EAAE,cAAc,KACtB,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IAClC,eAAe,EAAE,MAAM,MAAM,EAAE,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,CACnC,GAAG,EAAE,WAAW,GAAG,IAAI,EACvB,OAAO,CAAC,EAAE,YAAY,EAAE,KACrB,IAAI,CAAC;AAEV;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC/B,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,kBAAkB,EAAE,MAAM,MAAM,EAAE,CAAC;IACnC,iBAAiB,EAAE,MAAM,MAAM,EAAE,CAAC;IAClC,iBAAiB,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChD,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IACxC,WAAW,EAAE,CACX,GAAG,EAAE,iBAAiB,EACtB,QAAQ,CAAC,EAAE,cAAc,KACtB,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAC7B,MAAM,EAAE,CACN,GAAG,EAAE,iBAAiB,GAAG,SAAS,GAAG,IAAI,EACzC,QAAQ,CAAC,EAAE,cAAc,EACzB,UAAU,CAAC,EAAE,sBAAsB,KAChC,IAAI,CAAC;CACX"}
|