dongnelibrary 0.3.17 → 0.3.21

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.
Files changed (99) hide show
  1. package/.claude/settings.json +30 -1
  2. package/.claude/settings.local.json +26 -1
  3. package/.playwright-cli/console-2026-05-15T13-42-50-460Z.log +1 -0
  4. package/.playwright-cli/console-2026-05-15T13-43-40-832Z.log +10 -0
  5. package/.playwright-cli/console-2026-05-18T12-47-04-141Z.log +14 -0
  6. package/.playwright-cli/page-2026-05-07T11-53-37-538Z.yml +836 -0
  7. package/.playwright-cli/page-2026-05-07T11-54-02-314Z.yml +658 -0
  8. package/.playwright-cli/page-2026-05-07T12-03-12-317Z.yml +310 -0
  9. package/.playwright-cli/page-2026-05-08T13-54-43-061Z.yml +276 -0
  10. package/.playwright-cli/page-2026-05-08T13-54-45-094Z.yml +276 -0
  11. package/.playwright-cli/page-2026-05-08T13-54-53-014Z.yml +201 -0
  12. package/.playwright-cli/page-2026-05-08T13-56-02-097Z.yml +726 -0
  13. package/.playwright-cli/page-2026-05-08T13-56-33-697Z.yml +226 -0
  14. package/.playwright-cli/page-2026-05-15T13-42-51-601Z.yml +47 -0
  15. package/.playwright-cli/page-2026-05-15T13-43-40-955Z.yml +47 -0
  16. package/.playwright-cli/page-2026-05-15T13-43-43-563Z.yml +47 -0
  17. package/.playwright-cli/page-2026-05-18T12-47-05-318Z.yml +135 -0
  18. package/README.md +59 -2
  19. package/dist/dongnelibrary.d.ts.map +1 -1
  20. package/dist/dongnelibrary.js +36 -0
  21. package/dist/dongnelibrary.js.map +1 -1
  22. package/dist/localLibraryModule/ansan.d.ts +6 -0
  23. package/dist/localLibraryModule/ansan.d.ts.map +1 -0
  24. package/dist/localLibraryModule/ansan.js +76 -0
  25. package/dist/localLibraryModule/ansan.js.map +1 -0
  26. package/dist/localLibraryModule/bcl.d.ts +6 -0
  27. package/dist/localLibraryModule/bcl.d.ts.map +1 -0
  28. package/dist/localLibraryModule/bcl.js +75 -0
  29. package/dist/localLibraryModule/bcl.js.map +1 -0
  30. package/dist/localLibraryModule/gangnam.d.ts +6 -0
  31. package/dist/localLibraryModule/gangnam.d.ts.map +1 -0
  32. package/dist/localLibraryModule/gangnam.js +100 -0
  33. package/dist/localLibraryModule/gangnam.js.map +1 -0
  34. package/dist/localLibraryModule/gangseo.d.ts +6 -0
  35. package/dist/localLibraryModule/gangseo.d.ts.map +1 -0
  36. package/dist/localLibraryModule/gangseo.js +90 -0
  37. package/dist/localLibraryModule/gangseo.js.map +1 -0
  38. package/dist/localLibraryModule/gbelib.d.ts +6 -0
  39. package/dist/localLibraryModule/gbelib.d.ts.map +1 -0
  40. package/dist/localLibraryModule/gbelib.js +122 -0
  41. package/dist/localLibraryModule/gbelib.js.map +1 -0
  42. package/dist/localLibraryModule/geoje.d.ts +6 -0
  43. package/dist/localLibraryModule/geoje.d.ts.map +1 -0
  44. package/dist/localLibraryModule/geoje.js +75 -0
  45. package/dist/localLibraryModule/geoje.js.map +1 -0
  46. package/dist/localLibraryModule/gimhae.d.ts +6 -0
  47. package/dist/localLibraryModule/gimhae.d.ts.map +1 -0
  48. package/dist/localLibraryModule/gimhae.js +81 -0
  49. package/dist/localLibraryModule/gimhae.js.map +1 -0
  50. package/dist/localLibraryModule/gunsan.d.ts +6 -0
  51. package/dist/localLibraryModule/gunsan.d.ts.map +1 -0
  52. package/dist/localLibraryModule/gunsan.js +89 -0
  53. package/dist/localLibraryModule/gunsan.js.map +1 -0
  54. package/dist/localLibraryModule/gwanak.d.ts +6 -0
  55. package/dist/localLibraryModule/gwanak.d.ts.map +1 -0
  56. package/dist/localLibraryModule/gwanak.js +103 -0
  57. package/dist/localLibraryModule/gwanak.js.map +1 -0
  58. package/dist/localLibraryModule/gwe.d.ts +6 -0
  59. package/dist/localLibraryModule/gwe.d.ts.map +1 -0
  60. package/dist/localLibraryModule/gwe.js +84 -0
  61. package/dist/localLibraryModule/gwe.js.map +1 -0
  62. package/dist/localLibraryModule/junggulib.d.ts +6 -0
  63. package/dist/localLibraryModule/junggulib.d.ts.map +1 -0
  64. package/dist/localLibraryModule/junggulib.js +96 -0
  65. package/dist/localLibraryModule/junggulib.js.map +1 -0
  66. package/dist/localLibraryModule/mokpolib.d.ts +6 -0
  67. package/dist/localLibraryModule/mokpolib.d.ts.map +1 -0
  68. package/dist/localLibraryModule/mokpolib.js +104 -0
  69. package/dist/localLibraryModule/mokpolib.js.map +1 -0
  70. package/dist/localLibraryModule/nowon.d.ts +6 -0
  71. package/dist/localLibraryModule/nowon.d.ts.map +1 -0
  72. package/dist/localLibraryModule/nowon.js +95 -0
  73. package/dist/localLibraryModule/nowon.js.map +1 -0
  74. package/dist/localLibraryModule/paju.d.ts +6 -0
  75. package/dist/localLibraryModule/paju.d.ts.map +1 -0
  76. package/dist/localLibraryModule/paju.js +94 -0
  77. package/dist/localLibraryModule/paju.js.map +1 -0
  78. package/dist/localLibraryModule/pohang.d.ts +6 -0
  79. package/dist/localLibraryModule/pohang.d.ts.map +1 -0
  80. package/dist/localLibraryModule/pohang.js +83 -0
  81. package/dist/localLibraryModule/pohang.js.map +1 -0
  82. package/dist/localLibraryModule/siheung.d.ts +6 -0
  83. package/dist/localLibraryModule/siheung.d.ts.map +1 -0
  84. package/dist/localLibraryModule/siheung.js +65 -0
  85. package/dist/localLibraryModule/siheung.js.map +1 -0
  86. package/dist/localLibraryModule/yangcheon.d.ts +6 -0
  87. package/dist/localLibraryModule/yangcheon.d.ts.map +1 -0
  88. package/dist/localLibraryModule/yangcheon.js +90 -0
  89. package/dist/localLibraryModule/yangcheon.js.map +1 -0
  90. package/dist/localLibraryModule/ydplib.d.ts +6 -0
  91. package/dist/localLibraryModule/ydplib.d.ts.map +1 -0
  92. package/dist/localLibraryModule/ydplib.js +101 -0
  93. package/dist/localLibraryModule/ydplib.js.map +1 -0
  94. package/docs/library-module-python-scripts.md +381 -0
  95. package/docs//355/206/265/355/225/251/353/217/204/354/204/234/302/240/353/204/244/355/212/270/354/233/214/355/201/254-/353/252/251/353/241/235.md +184 -0
  96. package/docs//355/206/265/355/225/251/353/217/204/354/204/234/352/264/200-/353/204/244/355/212/270/354/233/214/355/201/254-/353/252/251/353/241/235.md +19 -19
  97. package/package.json +44 -6
  98. package/scripts/analyze-html-library.sh +300 -0
  99. package/scripts/analyze-library.sh +261 -0
@@ -0,0 +1,122 @@
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.gbelib.kr";
10
+ const SEARCH_URL = "https://www.gbelib.kr/gbelib/intro/totalSearch/index.do";
11
+ const MORE_URL = "https://www.gbelib.kr/gbelib/intro/totalSearch/more.do";
12
+ const DETAIL_BASE = "https://www.gbelib.kr/gbelib/intro/search/detail.do";
13
+ const libraryList = [
14
+ { code: "00147046", name: "경상북도교육청정보센터" },
15
+ { code: "00347034", name: "경상북도교육청연수원" },
16
+ { code: "00147003", name: "경상북도교육청 구미도서관" },
17
+ { code: "00147010", name: "경상북도교육청 안동도서관" },
18
+ { code: "00147011", name: "경상북도교육청 안동도서관용상분관" },
19
+ { code: "00147039", name: "경상북도교육청 안동도서관풍산분관" },
20
+ { code: "00147008", name: "경상북도교육청 상주도서관" },
21
+ { code: "00147040", name: "경상북도교육청 상주도서관화령분관" },
22
+ { code: "00147105", name: "경상북도교육청문화원" },
23
+ { code: "00147013", name: "경상북도교육청 영일도서관" },
24
+ { code: "00147016", name: "경상북도교육청 외동도서관" },
25
+ { code: "00147032", name: "경상북도교육청 영주선비도서관" },
26
+ { code: "00147024", name: "경상북도교육청 영주도서관풍기분관" },
27
+ { code: "00147014", name: "경상북도교육청 금호도서관" },
28
+ { code: "00147020", name: "경상북도교육청 점촌도서관" },
29
+ { code: "00147006", name: "경상북도교육청 점촌도서관가은분관" },
30
+ { code: "00147019", name: "경상북도교육청 의성도서관" },
31
+ { code: "00147022", name: "경상북도교육청 청송도서관" },
32
+ { code: "00147012", name: "경상북도교육청 영양도서관" },
33
+ { code: "00147031", name: "경상북도교육청 영덕도서관" },
34
+ { code: "00147021", name: "경상북도교육청 청도도서관" },
35
+ { code: "00147002", name: "경상북도교육청 고령도서관" },
36
+ { code: "00147009", name: "경상북도교육청 성주도서관" },
37
+ { code: "00147023", name: "경상북도교육청 칠곡도서관" },
38
+ { code: "00147015", name: "경상북도교육청 예천도서관" },
39
+ { code: "00147007", name: "경상북도교육청 봉화도서관" },
40
+ { code: "00147018", name: "경상북도교육청 울진도서관" },
41
+ { code: "00147017", name: "경상북도교육청 울릉도서관" },
42
+ ];
43
+ const getLibraryCode = (0, util_1.createLibraryCodeLookup)(libraryList);
44
+ function parseBookRows(html) {
45
+ const dom = new jsdom_1.JSDOM(html);
46
+ const document = dom.window.document;
47
+ const booklist = [];
48
+ document.querySelectorAll("div.row").forEach((row) => {
49
+ const bif = row.querySelector("div.bif");
50
+ if (!bif)
51
+ return;
52
+ const titleLink = bif.querySelector("a.name.goDetail");
53
+ if (!titleLink)
54
+ return;
55
+ const rawTitle = titleLink.textContent ?? "";
56
+ const bookTitle = rawTitle.replace(/<[^>]+>/g, "").trim();
57
+ if (!bookTitle)
58
+ return;
59
+ const vLoca = titleLink.getAttribute("vLoca") ?? "";
60
+ const vCtrl = titleLink.getAttribute("vCtrl") ?? "";
61
+ const bookUrl = vLoca && vCtrl
62
+ ? `${DETAIL_BASE}?vLoca=${vLoca}&vCtrl=${vCtrl}&menu_idx=150`
63
+ : "";
64
+ const paragraphs = Array.from(bif.querySelectorAll("p"));
65
+ let libName = "";
66
+ for (const p of paragraphs) {
67
+ const text = (p.textContent ?? "").trim();
68
+ if (text &&
69
+ !text.includes("저자") &&
70
+ !text.includes("출판사") &&
71
+ !text.includes("발행")) {
72
+ libName = text;
73
+ break;
74
+ }
75
+ }
76
+ booklist.push({ libraryName: libName, title: bookTitle, bookUrl, exist: false });
77
+ });
78
+ return booklist;
79
+ }
80
+ async function searchImpl(opt) {
81
+ const { title, libraryName, signal } = opt;
82
+ (0, util_1.validateSearchOptions)(opt);
83
+ const lcode = getLibraryCode(libraryName);
84
+ const qs = {
85
+ menu_idx: 150,
86
+ search_text: title,
87
+ search_type: "L_TITLE",
88
+ total_search_type: "TOTAL",
89
+ search_detail_yn: "N",
90
+ book_more_count: 1,
91
+ libraryCodes: lcode,
92
+ };
93
+ const { statusCode, body } = await (0, http_1.get)(SEARCH_URL, { qs, signal });
94
+ if (statusCode !== 200)
95
+ throw new Error(`HTTP ${statusCode}`);
96
+ const dom = new jsdom_1.JSDOM(body);
97
+ const totalText = dom.window.document.getElementById("bookTotalCnt")?.textContent ?? "0";
98
+ const totalBookCount = parseInt(totalText.replace(/,/g, ""), 10) || 0;
99
+ const booklist = parseBookRows(body);
100
+ // fetch more batches in parallel (up to 9 more calls for ~30 books total)
101
+ if (totalBookCount > 3) {
102
+ const batchCount = Math.min(9, Math.ceil((totalBookCount - 3) / 3));
103
+ const moreQs = { ...qs, more_type: "BOOK" };
104
+ const moreFetches = Array.from({ length: batchCount }, (_, i) => {
105
+ return (0, http_1.get)(MORE_URL, {
106
+ qs: { ...moreQs, book_more_count: i + 2 },
107
+ signal,
108
+ }).then(({ body: moreBody }) => parseBookRows(moreBody));
109
+ });
110
+ const moreBatches = await Promise.all(moreFetches);
111
+ for (const batch of moreBatches) {
112
+ booklist.push(...batch);
113
+ }
114
+ }
115
+ return { startPage: opt.startPage, totalBookCount, booklist };
116
+ }
117
+ exports.search = (0, util_1.wrapWithCallback)(searchImpl);
118
+ function getLibraryNames() {
119
+ return (0, util_1.getLibraryNames)(libraryList);
120
+ }
121
+ ({ moduleName: exports.moduleName, homeUrl: exports.homeUrl, search: exports.search, getLibraryNames });
122
+ //# sourceMappingURL=gbelib.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gbelib.js","sourceRoot":"","sources":["../../src/localLibraryModule/gbelib.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { SearchOptions, SearchResult } from "../types";
2
+ export declare const moduleName = "\uAC70\uC81C\uC2DC\uB3C4\uC11C\uAD00";
3
+ export declare const homeUrl = "https://lib.geoje.go.kr";
4
+ export declare const search: (opt: SearchOptions, callback?: import("../types").SearchCallback) => Promise<SearchResult | void>;
5
+ export declare function getLibraryNames(): string[];
6
+ //# sourceMappingURL=geoje.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"geoje.d.ts","sourceRoot":"","sources":["../../src/localLibraryModule/geoje.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;AAmFjD,eAAO,MAAM,MAAM,oGAA+B,CAAC;AAEnD,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAE1C"}
@@ -0,0 +1,75 @@
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.geoje.go.kr";
10
+ const WKCMS_BASE = "https://lib.geoje.go.kr:9080/wkcms";
11
+ const libraryList = [
12
+ { code: "MA", name: "거제시립장평도서관" },
13
+ { code: "MC", name: "거제시립장승포도서관" },
14
+ { code: "MD", name: "거제시립수양도서관" },
15
+ { code: "ME", name: "거제시립하청도서관" },
16
+ { code: "MF", name: "거제시립아주도서관" },
17
+ ];
18
+ const getLibraryCode = (0, util_1.createLibraryCodeLookup)(libraryList);
19
+ async function searchImpl(opt) {
20
+ const { title, libraryName, signal } = opt;
21
+ (0, util_1.validateSearchOptions)(opt);
22
+ const lcode = getLibraryCode(libraryName);
23
+ // JSESSIONID cookie required — init session before searching
24
+ const session = (0, http_1.createSession)();
25
+ await session.get(`${WKCMS_BASE}/KBookSearch/BookSearchPage/MA`, { signal });
26
+ const params = new URLSearchParams({
27
+ search_txt: title,
28
+ book_type: "BOOK",
29
+ pageno: String(opt.startPage ?? 1),
30
+ display: "20",
31
+ detail_search_type: "Nomal",
32
+ manage_code: lcode,
33
+ option: "nomal",
34
+ libcode: "ALL",
35
+ input_search_text: title,
36
+ real_search_text: title,
37
+ now_search_txt: title,
38
+ hidden_book_type: "BOOK",
39
+ orderby: "ASC",
40
+ orderby_item: "TITLE_INFO_SORT",
41
+ });
42
+ const { statusCode, body } = await session.get(`${WKCMS_BASE}/KBookSearch/BookNomalSearch/MA?${params}`, { signal });
43
+ if (statusCode !== 200) {
44
+ throw new Error(`HTTP ${statusCode}`);
45
+ }
46
+ const dom = new jsdom_1.JSDOM(body);
47
+ const document = dom.window.document;
48
+ const h3Text = document.querySelector("div#content h3")?.textContent ?? "";
49
+ const totalMatch = h3Text.match(/총\s*([\d,]+)\s*건/);
50
+ const totalBookCount = totalMatch ? (0, util_1.extractNumber)(totalMatch[1]) : 0;
51
+ const booklist = [];
52
+ document.querySelectorAll("ul.book_info > li").forEach((li) => {
53
+ const bookTitle = li.querySelector("h4")?.textContent?.trim() ?? "";
54
+ const exist = li.querySelector("td.loan_o") !== null;
55
+ const libName = li.querySelector('input[id^="LIB_NAME"]')?.getAttribute("value") ?? "";
56
+ const recKey = li.querySelector('input[id^="REC_KEY"]')?.getAttribute("value") ?? "";
57
+ const bookUrl = recKey
58
+ ? `${WKCMS_BASE}/BookSearch/bookPrintPopup?rec_key=${recKey}&manage_code=${lcode}&book_type=BOOK`
59
+ : "";
60
+ if (bookTitle) {
61
+ booklist.push({ libraryName: libName, title: bookTitle, bookUrl, exist });
62
+ }
63
+ });
64
+ return {
65
+ startPage: opt.startPage,
66
+ totalBookCount,
67
+ booklist,
68
+ };
69
+ }
70
+ exports.search = (0, util_1.wrapWithCallback)(searchImpl);
71
+ function getLibraryNames() {
72
+ return (0, util_1.getLibraryNames)(libraryList);
73
+ }
74
+ ({ moduleName: exports.moduleName, homeUrl: exports.homeUrl, search: exports.search, getLibraryNames });
75
+ //# sourceMappingURL=geoje.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"geoje.js","sourceRoot":"","sources":["../../src/localLibraryModule/geoje.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { SearchOptions, SearchResult } from "../types";
2
+ export declare const moduleName = "\uAE40\uD574\uD1B5\uD569\uB3C4\uC11C\uAD00";
3
+ export declare const homeUrl = "https://lib.gimhae.go.kr";
4
+ export declare const search: (opt: SearchOptions, callback?: import("../types").SearchCallback) => Promise<SearchResult | void>;
5
+ export declare function getLibraryNames(): string[];
6
+ //# sourceMappingURL=gimhae.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gimhae.d.ts","sourceRoot":"","sources":["../../src/localLibraryModule/gimhae.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAIV,aAAa,EACb,YAAY,EACb,MAAM,UAAU,CAAC;AAElB,eAAO,MAAM,UAAU,+CAAY,CAAC;AACpC,eAAO,MAAM,OAAO,6BAA6B,CAAC;AAuFlD,eAAO,MAAM,MAAM,oGAA+B,CAAC;AAEnD,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAE1C"}
@@ -0,0 +1,81 @@
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.gimhae.go.kr";
10
+ const SEARCH_URL = "http://libbook.gimhae.go.kr:8000/bookv2/smartlib/list.php";
11
+ const BOOK_BASE_URL = "http://libbook.gimhae.go.kr:8000/bookv2/smartlib/view.php";
12
+ const libraryList = [
13
+ { code: "CA", name: "칠암도서관" },
14
+ { code: "JY", name: "장유도서관" },
15
+ { code: "HJ", name: "화정글샘도서관" },
16
+ { code: "JH", name: "진영한빛도서관" },
17
+ { code: "KG", name: "김해기적의도서관" },
18
+ { code: "YH", name: "김해율하도서관" },
19
+ { code: "MY", name: "김해어린이영어도서관" },
20
+ ];
21
+ const getLibraryCode = (0, util_1.createLibraryCodeLookup)(libraryList);
22
+ async function searchImpl(opt) {
23
+ const { title, libraryName, signal } = opt;
24
+ (0, util_1.validateSearchOptions)(opt);
25
+ const lcode = getLibraryCode(libraryName);
26
+ const { statusCode, body } = await (0, http_1.get)(SEARCH_URL, {
27
+ qs: {
28
+ skin: "normal",
29
+ stype: "title",
30
+ sstring: title,
31
+ _es: "1",
32
+ "mgns[]": lcode,
33
+ cpage: "1",
34
+ },
35
+ signal,
36
+ });
37
+ if (statusCode !== 200) {
38
+ throw new Error(`HTTP ${statusCode}`);
39
+ }
40
+ const dom = new jsdom_1.JSDOM(body);
41
+ const document = dom.window.document;
42
+ const tbody = document.querySelector("tbody");
43
+ if (!tbody) {
44
+ return { startPage: opt.startPage, totalBookCount: 0, booklist: [] };
45
+ }
46
+ const rows = Array.from(tbody.querySelectorAll("tr"));
47
+ if (rows.length === 0) {
48
+ return { startPage: opt.startPage, totalBookCount: 0, booklist: [] };
49
+ }
50
+ const firstRowTds = rows[0].querySelectorAll("td");
51
+ const totalBookCount = (0, util_1.extractNumber)(firstRowTds[0]?.textContent?.trim());
52
+ const booklist = [];
53
+ for (const row of rows) {
54
+ const tds = row.querySelectorAll("td");
55
+ if (tds.length < 8)
56
+ continue;
57
+ const titleLink = tds[1].querySelector("a.h1");
58
+ const bookTitle = titleLink?.textContent?.trim() ?? "";
59
+ if (!bookTitle)
60
+ continue;
61
+ const href = titleLink?.getAttribute("href") ?? "";
62
+ const recKeyMatch = href.match(/rec_key=(\d+)/);
63
+ const bookUrl = recKeyMatch
64
+ ? `${BOOK_BASE_URL}?rec_key=${recKeyMatch[1]}&data_type=BO`
65
+ : "";
66
+ const statusText = tds[7]?.textContent?.trim() ?? "";
67
+ const exist = statusText.includes("대출가능");
68
+ booklist.push({ libraryName, title: bookTitle, bookUrl, exist });
69
+ }
70
+ return {
71
+ startPage: opt.startPage,
72
+ totalBookCount,
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=gimhae.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gimhae.js","sourceRoot":"","sources":["../../src/localLibraryModule/gimhae.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { SearchOptions, SearchResult } from "../types";
2
+ export declare const moduleName = "\uAD70\uC0B0\uC2DC\uB3C4\uC11C\uAD00";
3
+ export declare const homeUrl = "https://lib.gunsan.go.kr";
4
+ export declare const search: (opt: SearchOptions, callback?: import("../types").SearchCallback) => Promise<SearchResult | void>;
5
+ export declare function getLibraryNames(): string[];
6
+ //# sourceMappingURL=gunsan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gunsan.d.ts","sourceRoot":"","sources":["../../src/localLibraryModule/gunsan.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;AA8FlD,eAAO,MAAM,MAAM,oGAA+B,CAAC;AAEnD,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAE1C"}
@@ -0,0 +1,89 @@
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.gunsan.go.kr";
10
+ const SEARCH_URL = `${exports.homeUrl}/search/include/aggsBookList.do`;
11
+ const DETAIL_URL = `${exports.homeUrl}/web/menu/10003/program/30001/searchResultDetail.do`;
12
+ const libraryList = [
13
+ { code: "MA", name: "군산시립도서관" },
14
+ { code: "SB", name: "늘푸른도서관" },
15
+ { code: "SS", name: "설림도서관" },
16
+ { code: "OG", name: "산들도서관" },
17
+ { code: "KG", name: "금강도서관" },
18
+ { code: "BR", name: "임피채만식도서관" },
19
+ { code: "SG", name: "구암작은도서관" },
20
+ { code: "NP", name: "나포작은도서관" },
21
+ { code: "SY", name: "미룡작은도서관" },
22
+ { code: "SM", name: "미성작은도서관" },
23
+ { code: "SW", name: "월명작은도서관" },
24
+ { code: "SN", name: "흥남작은도서관" },
25
+ { code: "SR", name: "나운작은도서관" },
26
+ { code: "SC", name: "산단작은도서관" },
27
+ { code: "TA", name: "서수작은도서관" },
28
+ { code: "SA", name: "성산작은도서관" },
29
+ { code: "SD", name: "중동작은도서관" },
30
+ { code: "SE", name: "개정작은도서관" },
31
+ { code: "HN", name: "회현작은도서관" },
32
+ { code: "TC", name: "노인종합복지관" },
33
+ { code: "TB", name: "평화작은도서관" },
34
+ { code: "TD", name: "수미작은도서관" },
35
+ { code: "GN", name: "그린작은도서관" },
36
+ ];
37
+ const getLibraryCode = (0, util_1.createLibraryCodeLookup)(libraryList);
38
+ async function searchImpl(opt) {
39
+ const { title, libraryName, signal } = opt;
40
+ (0, util_1.validateSearchOptions)(opt);
41
+ const lcode = getLibraryCode(libraryName);
42
+ const libName = libraryList.find((l) => l.code === lcode)?.name ?? "";
43
+ const { statusCode, body } = await (0, http_1.get)(SEARCH_URL, {
44
+ qs: {
45
+ searchManageCodeArr: lcode,
46
+ searchKeyword: title,
47
+ searchRecordCount: 50,
48
+ searchPageNo: 1,
49
+ },
50
+ signal,
51
+ });
52
+ if (statusCode !== 200) {
53
+ throw new Error(`HTTP ${statusCode}`);
54
+ }
55
+ const countMatch = body.match(/\$\('#totalCnt'\)\.text\("([\d,]+)"\)/);
56
+ const count = (0, util_1.extractNumber)(countMatch?.[1]);
57
+ const dom = new jsdom_1.JSDOM(body);
58
+ const document = dom.window.document;
59
+ const booklist = [];
60
+ const bookItems = document.querySelectorAll("ul.listWrap > li");
61
+ bookItems.forEach((li) => {
62
+ const nameLink = li.querySelector("a.book_name");
63
+ const titleSpan = nameLink?.querySelector("span.kor");
64
+ const bookTitle = titleSpan?.textContent?.trim() ?? "";
65
+ let bookUrl = "";
66
+ const onclick = nameLink?.getAttribute("onclick") ?? "";
67
+ const urlMatch = onclick.match(/fnDetail\('(\d+)',\s*'(\d+)',\s*'([^']+)',\s*'([^']+)'\)/);
68
+ if (urlMatch) {
69
+ const [, bookKey, speciesKey, isbn, pubFormCode] = urlMatch;
70
+ bookUrl = `${DETAIL_URL}?bookKey=${bookKey}&speciesKey=${speciesKey}&isbn=${isbn}&pubFormCode=${pubFormCode}`;
71
+ }
72
+ const statusEl = li.querySelector("div.status p");
73
+ const exist = statusEl?.textContent?.includes("대출가능") ?? false;
74
+ if (bookTitle) {
75
+ booklist.push({ libraryName: libName, title: bookTitle, bookUrl, exist });
76
+ }
77
+ });
78
+ return {
79
+ startPage: opt.startPage,
80
+ totalBookCount: count,
81
+ booklist,
82
+ };
83
+ }
84
+ exports.search = (0, util_1.wrapWithCallback)(searchImpl);
85
+ function getLibraryNames() {
86
+ return (0, util_1.getLibraryNames)(libraryList);
87
+ }
88
+ ({ moduleName: exports.moduleName, homeUrl: exports.homeUrl, search: exports.search, getLibraryNames });
89
+ //# sourceMappingURL=gunsan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gunsan.js","sourceRoot":"","sources":["../../src/localLibraryModule/gunsan.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { SearchOptions, SearchResult } from "../types";
2
+ export declare const moduleName = "\uAD00\uC545\uAD6C\uD1B5\uD569\uB3C4\uC11C\uAD00";
3
+ export declare const homeUrl = "https://lib.gwanak.go.kr";
4
+ export declare const search: (opt: SearchOptions, callback?: import("../types").SearchCallback) => Promise<SearchResult | void>;
5
+ export declare function getLibraryNames(): string[];
6
+ //# sourceMappingURL=gwanak.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gwanak.d.ts","sourceRoot":"","sources":["../../src/localLibraryModule/gwanak.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAIV,aAAa,EACb,YAAY,EACb,MAAM,UAAU,CAAC;AAElB,eAAO,MAAM,UAAU,qDAAa,CAAC;AACrC,eAAO,MAAM,OAAO,6BAA6B,CAAC;AAmHlD,eAAO,MAAM,MAAM,oGAA+B,CAAC;AAEnD,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAE1C"}
@@ -0,0 +1,103 @@
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.gwanak.go.kr";
10
+ const SEARCH_URL = "https://lib.gwanak.go.kr/galib/menu/10003/program/30001/searchResultList.do";
11
+ const DETAIL_URL = "https://lib.gwanak.go.kr/galib/menu/10003/program/30001/searchResultDetail.do";
12
+ const libraryList = [
13
+ { code: "MA", name: "관악중앙도서관" },
14
+ { code: "KJ", name: "글빛정보도서관" },
15
+ { code: "KE", name: "은천동작은도서관" },
16
+ { code: "KW", name: "조원도서관" },
17
+ { code: "G4", name: "고맙습니다하난곡작은도서관" },
18
+ { code: "G3", name: "낙성대공원도서관" },
19
+ { code: "KP", name: "성현동작은도서관" },
20
+ { code: "L5", name: "용꿈꾸는작은도서관" },
21
+ { code: "L3", name: "그림숲그림책작은도서관" },
22
+ { code: "L2", name: "별별창작꿈터 봉현작은도서관" },
23
+ { code: "L4", name: "삼성작은도서관" },
24
+ { code: "M1", name: "굴렁쇠작은도서관" },
25
+ { code: "S7", name: "글사랑작은도서관" },
26
+ { code: "M5", name: "녹두작은도서관" },
27
+ { code: "S4", name: "다사랑작은도서관" },
28
+ { code: "S5", name: "뜰안에작은도서관" },
29
+ { code: "M9", name: "마루작은도서관" },
30
+ { code: "S2", name: "보물섬작은도서관" },
31
+ { code: "N2", name: "새싹작은도서관" },
32
+ { code: "M6", name: "샛별작은도서관" },
33
+ { code: "S8", name: "숯고을작은도서관" },
34
+ { code: "M3", name: "어울작은도서관" },
35
+ { code: "M8", name: "우듬지작은도서관" },
36
+ { code: "S6", name: "우리작은도서관" },
37
+ { code: "M4", name: "울타리작은도서관" },
38
+ { code: "S1", name: "책사랑작은도서관" },
39
+ { code: "M7", name: "책의향기작은도서관" },
40
+ { code: "S9", name: "파랑새작은도서관" },
41
+ { code: "N1", name: "푸른숲작은도서관" },
42
+ { code: "L1", name: "한울작은도서관" },
43
+ { code: "M2", name: "해오름작은도서관" },
44
+ ];
45
+ const getLibraryCode = (0, util_1.createLibraryCodeLookup)(libraryList);
46
+ async function searchImpl(opt) {
47
+ const { title, libraryName, signal } = opt;
48
+ (0, util_1.validateSearchOptions)(opt);
49
+ const lcode = getLibraryCode(libraryName);
50
+ const { statusCode, body } = await (0, http_1.get)(SEARCH_URL, {
51
+ qs: {
52
+ searchType: "SIMPLE",
53
+ searchCategory: "BOOK",
54
+ searchKey: "TITLE",
55
+ searchKeyword: title,
56
+ searchLibraryArr: lcode,
57
+ searchRecordCount: 300,
58
+ },
59
+ signal,
60
+ });
61
+ if (statusCode !== 200) {
62
+ throw new Error(`HTTP ${statusCode}`);
63
+ }
64
+ const dom = new jsdom_1.JSDOM(body);
65
+ const document = dom.window.document;
66
+ const strongEl = document.querySelector("strong.themeFC");
67
+ const count = (0, util_1.extractNumber)(strongEl?.textContent?.match(/총\s*([\d,]+)\s*건/)?.[0]);
68
+ const booklist = [];
69
+ const bookItems = document.querySelectorAll("ul.resultList > li");
70
+ bookItems.forEach((li) => {
71
+ const titleLink = li.querySelector("dl.bookDataWrap dt.tit a");
72
+ const bookTitle = (titleLink?.textContent?.trim() ?? "").replace(/^\d+\.\s*/, "");
73
+ let bookUrl = "";
74
+ const onclick = titleLink?.getAttribute("onclick") ?? "";
75
+ const urlMatch = onclick.match(/fnSearchResultDetail\((\d+),(\d+),'(\w+)'\)/);
76
+ if (urlMatch) {
77
+ const [, recKey, bookKey, publishFormCode] = urlMatch;
78
+ bookUrl = `${DETAIL_URL}?recKey=${recKey}&bookKey=${bookKey}&publishFormCode=${publishFormCode}`;
79
+ }
80
+ const stateEl = li.querySelector("div.bookStateBar p.txt b");
81
+ const exist = stateEl?.textContent?.includes("대출가능") ?? false;
82
+ let libName = "";
83
+ const siteSpan = li.querySelector("dd.site span");
84
+ const siteText = siteSpan?.textContent?.trim() ?? "";
85
+ if (siteText.startsWith("도서관:")) {
86
+ libName = siteText.replace("도서관:", "").trim();
87
+ }
88
+ if (bookTitle) {
89
+ booklist.push({ libraryName: libName, title: bookTitle, bookUrl, exist });
90
+ }
91
+ });
92
+ return {
93
+ startPage: opt.startPage,
94
+ totalBookCount: count,
95
+ booklist,
96
+ };
97
+ }
98
+ exports.search = (0, util_1.wrapWithCallback)(searchImpl);
99
+ function getLibraryNames() {
100
+ return (0, util_1.getLibraryNames)(libraryList);
101
+ }
102
+ ({ moduleName: exports.moduleName, homeUrl: exports.homeUrl, search: exports.search, getLibraryNames });
103
+ //# sourceMappingURL=gwanak.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gwanak.js","sourceRoot":"","sources":["../../src/localLibraryModule/gwanak.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { SearchOptions, SearchResult } from "../types";
2
+ export declare const moduleName = "\uAC15\uC6D0\uD2B9\uBCC4\uC790\uCE58\uB3C4\uAD50\uC721\uCCAD\uB3C4\uC11C\uAD00";
3
+ export declare const homeUrl = "https://lib.gwe.go.kr";
4
+ export declare const search: (opt: SearchOptions, callback?: import("../types").SearchCallback) => Promise<SearchResult | void>;
5
+ export declare function getLibraryNames(): string[];
6
+ //# sourceMappingURL=gwe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gwe.d.ts","sourceRoot":"","sources":["../../src/localLibraryModule/gwe.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAIV,aAAa,EACb,YAAY,EACb,MAAM,UAAU,CAAC;AAElB,eAAO,MAAM,UAAU,mFAAkB,CAAC;AAC1C,eAAO,MAAM,OAAO,0BAA0B,CAAC;AAwF/C,eAAO,MAAM,MAAM,oGAA+B,CAAC;AAEnD,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAE1C"}