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,84 @@
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.gwe.go.kr";
10
+ const SEARCH_URL = `${exports.homeUrl}/portal/menu/568/book/search`;
11
+ const DETAIL_BASE = `${exports.homeUrl}/portal/menu/568/book/view`;
12
+ // 서버 하드 리밋 약 360 → 안전값 300 (3.2초 이내)
13
+ const MAX_SIZE = 300;
14
+ const libraryList = [
15
+ { code: "MA", name: "춘천교육문화관" },
16
+ { code: "MC", name: "강릉교육문화관" },
17
+ { code: "ME", name: "삼척교육문화관" },
18
+ { code: "MD", name: "속초교육문화관" },
19
+ { code: "MB", name: "원주교육문화관" },
20
+ { code: "MX", name: "고성교육도서관" },
21
+ { code: "MY", name: "동해교육도서관" },
22
+ { code: "MH", name: "명주교육도서관" },
23
+ { code: "MG", name: "문막교육도서관" },
24
+ { code: "MJ", name: "속초교육도서관" },
25
+ { code: "MV", name: "양구교육도서관" },
26
+ { code: "MK", name: "양양교육도서관" },
27
+ { code: "MQ", name: "영월교육도서관" },
28
+ { code: "MW", name: "인제교육도서관" },
29
+ { code: "MS", name: "정선교육도서관" },
30
+ { code: "MT", name: "철원교육도서관" },
31
+ { code: "MF", name: "춘성교육도서관" },
32
+ { code: "MM", name: "태백교육도서관" },
33
+ { code: "MR", name: "평창교육도서관" },
34
+ { code: "MN", name: "홍천교육도서관" },
35
+ { code: "MU", name: "화천교육도서관" },
36
+ { code: "MP", name: "횡성교육도서관" },
37
+ ];
38
+ const getLibraryCode = (0, util_1.createLibraryCodeLookup)(libraryList);
39
+ async function searchImpl(opt) {
40
+ const { title, libraryName, signal } = opt;
41
+ (0, util_1.validateSearchOptions)(opt);
42
+ const lcode = getLibraryCode(libraryName);
43
+ const { body } = await (0, http_1.get)(SEARCH_URL, {
44
+ qs: {
45
+ search: "true",
46
+ searchInput: title,
47
+ searchCondition: "searchTxt",
48
+ manageCodes: lcode,
49
+ size: String(MAX_SIZE),
50
+ page: "1",
51
+ },
52
+ signal,
53
+ });
54
+ const totalMatch = body.match(/검색결과\s*총\s*<strong>([\d,]+)<\/strong>건/);
55
+ const totalBookCount = totalMatch ? (0, util_1.extractNumber)(totalMatch[1]) : 0;
56
+ const { window: { document }, } = new jsdom_1.JSDOM(body);
57
+ const bookDivs = document.querySelectorAll("div.bookData");
58
+ const booklist = [];
59
+ for (const div of bookDivs) {
60
+ const bookTitle = div.dataset.title?.trim() ?? "";
61
+ const regNo = div.dataset.regNo?.trim() ?? "";
62
+ const libName = div.dataset.libName?.trim() ?? "";
63
+ if (!bookTitle || !regNo)
64
+ continue;
65
+ const bookUrl = `${DETAIL_BASE}/${regNo}?booktype=`;
66
+ booklist.push({
67
+ libraryName: libName,
68
+ title: bookTitle,
69
+ bookUrl,
70
+ exist: false,
71
+ });
72
+ }
73
+ return {
74
+ startPage: opt.startPage,
75
+ totalBookCount,
76
+ booklist,
77
+ };
78
+ }
79
+ exports.search = (0, util_1.wrapWithCallback)(searchImpl);
80
+ function getLibraryNames() {
81
+ return (0, util_1.getLibraryNames)(libraryList);
82
+ }
83
+ ({ moduleName: exports.moduleName, homeUrl: exports.homeUrl, search: exports.search, getLibraryNames });
84
+ //# sourceMappingURL=gwe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gwe.js","sourceRoot":"","sources":["../../src/localLibraryModule/gwe.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { SearchOptions, SearchResult } from "../types";
2
+ export declare const moduleName = "\uC911\uAD6C\uAD6C\uB9BD\uB3C4\uC11C\uAD00";
3
+ export declare const homeUrl = "https://www.junggulib.or.kr";
4
+ export declare const search: (opt: SearchOptions, callback?: import("../types").SearchCallback) => Promise<SearchResult | void>;
5
+ export declare function getLibraryNames(): string[];
6
+ //# sourceMappingURL=junggulib.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"junggulib.d.ts","sourceRoot":"","sources":["../../src/localLibraryModule/junggulib.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAIV,aAAa,EACb,YAAY,EACb,MAAM,UAAU,CAAC;AAElB,eAAO,MAAM,UAAU,+CAAY,CAAC;AACpC,eAAO,MAAM,OAAO,gCAAgC,CAAC;AA2GrD,eAAO,MAAM,MAAM,oGAA+B,CAAC;AAEnD,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAE1C"}
@@ -0,0 +1,96 @@
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.junggulib.or.kr";
10
+ const SEARCH_URL = `${exports.homeUrl}/SJGL/menu/10003/program/30001/searchResultList.do`;
11
+ const DETAIL_URL = `${exports.homeUrl}/SJGL/menu/10003/program/30001/searchResultDetail.do`;
12
+ const libraryList = [
13
+ { code: "MF", name: "가온도서관" },
14
+ { code: "MH", name: "어울림도서관" },
15
+ { code: "MD", name: "남산타운 어린이도서관" },
16
+ { code: "ME", name: "손기정 어린이도서관" },
17
+ { code: "MC", name: "신당누리도서관" },
18
+ { code: "MA", name: "다산성곽도서관" },
19
+ { code: "MB", name: "손기정문화도서관" },
20
+ { code: "CA", name: "장충동 작은도서관" },
21
+ { code: "CK", name: "광희동 작은도서관" },
22
+ { code: "CE", name: "다산동 작은도서관" },
23
+ { code: "CI", name: "동화동 작은도서관" },
24
+ { code: "CH", name: "신당5동 작은도서관" },
25
+ { code: "CD", name: "신당동 작은도서관" },
26
+ { code: "CF", name: "약수동 작은도서관" },
27
+ { code: "CL", name: "중구청 작은도서관" },
28
+ { code: "CG", name: "청구동 작은도서관" },
29
+ { code: "CM", name: "필동 작은도서관" },
30
+ { code: "CB", name: "황학동 작은도서관" },
31
+ { code: "CJ", name: "회현동 작은도서관" },
32
+ ];
33
+ const getLibraryCode = (0, util_1.createLibraryCodeLookup)(libraryList);
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)(SEARCH_URL, {
39
+ qs: {
40
+ searchType: "SIMPLE",
41
+ searchKeyword: title,
42
+ searchManageCodeArr: lcode,
43
+ searchDisplay: 200,
44
+ searchArticle: "SCORE",
45
+ searchOrder: "ASC",
46
+ currentPageNo: 1,
47
+ },
48
+ signal,
49
+ });
50
+ if (statusCode !== 200) {
51
+ throw new Error(`HTTP ${statusCode}`);
52
+ }
53
+ const dom = new jsdom_1.JSDOM(body);
54
+ const document = dom.window.document;
55
+ const count = (0, util_1.extractNumber)(document.querySelector("#totalCnt")?.textContent ?? "");
56
+ const booklist = [];
57
+ const bookItems = document.querySelectorAll("div.bookArea");
58
+ bookItems.forEach((item) => {
59
+ const titleLink = item.querySelector("div.book_name a");
60
+ const bookTitle = titleLink?.querySelector("span.kor.on")?.textContent?.trim() ?? "";
61
+ let bookUrl = "";
62
+ const onclick = titleLink?.getAttribute("onclick") ?? "";
63
+ const match = onclick.match(/fnDetail\('(\d+)',\s*'(\d+)',\s*'([^']*)',\s*'(\w+)'\)/);
64
+ if (match) {
65
+ const [, bookKey, speciesKey, isbn, pubFormCode] = match;
66
+ bookUrl =
67
+ `${DETAIL_URL}?bookKey=${bookKey}&speciesKey=${speciesKey}` +
68
+ `&isbn=${isbn}&pubFormCode=${pubFormCode}`;
69
+ }
70
+ const statusText = item.querySelector("div.book_info.info04 p.emp1")?.textContent ?? "";
71
+ const libName = item
72
+ .querySelector("div.book_info.info03 b.themeFC")
73
+ ?.textContent?.replace(/[\[\]]/g, "")
74
+ .trim() ?? libraryName;
75
+ if (bookTitle) {
76
+ booklist.push({
77
+ libraryName: libName,
78
+ title: bookTitle,
79
+ bookUrl,
80
+ maxoffset: count,
81
+ exist: statusText.includes("대출가능"),
82
+ });
83
+ }
84
+ });
85
+ return {
86
+ startPage: opt.startPage,
87
+ totalBookCount: count,
88
+ booklist,
89
+ };
90
+ }
91
+ exports.search = (0, util_1.wrapWithCallback)(searchImpl);
92
+ function getLibraryNames() {
93
+ return (0, util_1.getLibraryNames)(libraryList);
94
+ }
95
+ ({ moduleName: exports.moduleName, homeUrl: exports.homeUrl, search: exports.search, getLibraryNames });
96
+ //# sourceMappingURL=junggulib.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"junggulib.js","sourceRoot":"","sources":["../../src/localLibraryModule/junggulib.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { SearchOptions, SearchResult } from "../types";
2
+ export declare const moduleName = "\uBAA9\uD3EC\uC2DC\uD1B5\uD569\uB3C4\uC11C\uAD00";
3
+ export declare const homeUrl = "https://www.mokpolib.or.kr";
4
+ export declare const search: (opt: SearchOptions, callback?: import("../types").SearchCallback) => Promise<SearchResult | void>;
5
+ export declare function getLibraryNames(): string[];
6
+ //# sourceMappingURL=mokpolib.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mokpolib.d.ts","sourceRoot":"","sources":["../../src/localLibraryModule/mokpolib.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAIV,aAAa,EACb,YAAY,EACb,MAAM,UAAU,CAAC;AAElB,eAAO,MAAM,UAAU,qDAAa,CAAC;AACrC,eAAO,MAAM,OAAO,+BAA+B,CAAC;AA2GpD,eAAO,MAAM,MAAM,oGAA+B,CAAC;AAEnD,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAE1C"}
@@ -0,0 +1,104 @@
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.mokpolib.or.kr";
10
+ const libraryList = [
11
+ { code: "MA", name: "목포시립도서관" },
12
+ { code: "MX", name: "목포어울림도서관" },
13
+ { code: "MJ", name: "목포어린이도서관" },
14
+ { code: "MQ", name: "목포영어도서관" },
15
+ { code: "ME", name: "꿈나무작은도서관" },
16
+ { code: "MB", name: "꿈돌이작은도서관" },
17
+ { code: "MS", name: "노을작은도서관" },
18
+ { code: "MW", name: "늘푸른작은도서관" },
19
+ { code: "MH", name: "무지개작은도서관" },
20
+ { code: "MF", name: "반딧불작은도서관" },
21
+ { code: "MP", name: "삼학작은도서관" },
22
+ { code: "MV", name: "샛별작은도서관" },
23
+ { code: "MO", name: "소나무작은도서관" },
24
+ { code: "MN", name: "숲속작은도서관" },
25
+ { code: "MK", name: "연꽃작은도서관" },
26
+ { code: "MD", name: "옹달샘작은도서관" },
27
+ { code: "MC", name: "은하수작은도서관" },
28
+ { code: "MM", name: "청개구리작은도서관" },
29
+ { code: "MI", name: "초롱초롱작은도서관" },
30
+ { code: "ML", name: "푸른솔작은도서관" },
31
+ { code: "MU", name: "푸른숲작은도서관" },
32
+ { code: "MR", name: "행복마을작은도서관" },
33
+ { code: "MT", name: "호돌이작은도서관" },
34
+ ];
35
+ const getLibraryCode = (0, util_1.createLibraryCodeLookup)(libraryList);
36
+ const BASE_URL = "https://www.mokpolib.or.kr/dls_lt/index.php";
37
+ async function searchImpl(opt) {
38
+ const { title, libraryName, signal } = opt;
39
+ (0, util_1.validateSearchOptions)(opt);
40
+ const lcode = getLibraryCode(libraryName);
41
+ const { statusCode, body } = await (0, http_1.get)(BASE_URL, {
42
+ qs: {
43
+ mod: "wdDataSearch",
44
+ act: "searchResultList",
45
+ "searchItem[]": "title",
46
+ "searchWord[]": title,
47
+ manageCode: lcode,
48
+ listNum: "50",
49
+ keyword: "",
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 countStrong = document.querySelector("h3 > strong.cyan");
59
+ const count = (0, util_1.extractNumber)(countStrong?.textContent);
60
+ const booklist = [];
61
+ const bookItems = document.querySelectorAll("dl");
62
+ bookItems.forEach((dl) => {
63
+ if (dl.querySelector("#aTitle"))
64
+ return;
65
+ const titleLink = dl.querySelector("dd > div.ico > a");
66
+ const bookTitle = titleLink?.textContent?.trim() ?? "";
67
+ let bookUrl = "";
68
+ const detailHref = dl.querySelector("dt > a")?.getAttribute("href") ?? "";
69
+ const jongKeyMatch = detailHref.match(/jongKey=(\d+)/);
70
+ const dbTypeMatch = detailHref.match(/dbType=([^&]+)/);
71
+ if (jongKeyMatch) {
72
+ const params = new URLSearchParams({
73
+ mod: "wdDataSearch",
74
+ act: "searchResultDetail",
75
+ dbType: dbTypeMatch?.[1] ?? "dan",
76
+ jongKey: jongKeyMatch[1],
77
+ });
78
+ bookUrl = `${BASE_URL}?${params}`;
79
+ }
80
+ const statusText = dl.querySelector("ol > li > strong")?.textContent?.trim() ?? "";
81
+ const exist = statusText.includes("대출가능");
82
+ const libName = dl.querySelector("li.so > span.blue")?.textContent?.trim() ?? "";
83
+ if (bookTitle) {
84
+ booklist.push({
85
+ libraryName: libName || libraryName,
86
+ title: bookTitle,
87
+ bookUrl,
88
+ maxoffset: count,
89
+ exist,
90
+ });
91
+ }
92
+ });
93
+ return {
94
+ startPage: opt.startPage,
95
+ totalBookCount: count,
96
+ booklist,
97
+ };
98
+ }
99
+ exports.search = (0, util_1.wrapWithCallback)(searchImpl);
100
+ function getLibraryNames() {
101
+ return (0, util_1.getLibraryNames)(libraryList);
102
+ }
103
+ ({ moduleName: exports.moduleName, homeUrl: exports.homeUrl, search: exports.search, getLibraryNames });
104
+ //# sourceMappingURL=mokpolib.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mokpolib.js","sourceRoot":"","sources":["../../src/localLibraryModule/mokpolib.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { SearchOptions, SearchResult } from "../types";
2
+ export declare const moduleName = "\uB178\uC6D0\uAD6C\uB9BD\uB3C4\uC11C\uAD00";
3
+ export declare const homeUrl = "https://www.nowonlib.kr";
4
+ export declare const search: (opt: SearchOptions, callback?: import("../types").SearchCallback) => Promise<SearchResult | void>;
5
+ export declare function getLibraryNames(): string[];
6
+ //# sourceMappingURL=nowon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nowon.d.ts","sourceRoot":"","sources":["../../src/localLibraryModule/nowon.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAIV,aAAa,EACb,YAAY,EACb,MAAM,UAAU,CAAC;AAElB,eAAO,MAAM,UAAU,+CAAY,CAAC;AACpC,eAAO,MAAM,OAAO,4BAA4B,CAAC;AA+GjD,eAAO,MAAM,MAAM,oGAA+B,CAAC;AAEnD,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAE1C"}
@@ -0,0 +1,95 @@
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 undici_1 = require("undici");
6
+ const util_1 = require("../util");
7
+ exports.moduleName = "노원구립도서관";
8
+ exports.homeUrl = "https://www.nowonlib.kr";
9
+ const libraryList = [
10
+ { code: "MA", name: "노원중앙도서관" },
11
+ { code: "MB", name: "노원어린이도서관" },
12
+ { code: "MC", name: "월계도서관" },
13
+ { code: "MD", name: "상계도서관" },
14
+ { code: "ME", name: "불암도서관" },
15
+ { code: "MF", name: "화랑도서관" },
16
+ { code: "MG", name: "노원휴먼라이브러리" },
17
+ { code: "MH", name: "하계어린이도서관" },
18
+ { code: "MI", name: "월계어린이도서관" },
19
+ { code: "SA", name: "공릉행복도서관" },
20
+ { code: "SB", name: "노원문화원 작은도서관" },
21
+ { code: "SC", name: "도란도란 작은도서관" },
22
+ { code: "SD", name: "책이랑 친구랑 작은도서관" },
23
+ { code: "SE", name: "푸른숲 작은도서관" },
24
+ { code: "SF", name: "파랑새 작은도서관" },
25
+ { code: "SG", name: "수락 작은도서관" },
26
+ { code: "SH", name: "해솔 작은도서관" },
27
+ { code: "SI", name: "나무작은도서관" },
28
+ { code: "SJ", name: "노원구청 자료실" },
29
+ { code: "SK", name: "메아리 작은도서관" },
30
+ { code: "SL", name: "반디 작은도서관" },
31
+ { code: "SM", name: "상계숲속 작은도서관" },
32
+ { code: "SN", name: "한울 작은도서관" },
33
+ { code: "SO", name: "가온 작은도서관" },
34
+ { code: "SP", name: "꿈꾸는 작은도서관" },
35
+ { code: "SQ", name: "달내 작은도서관" },
36
+ { code: "SR", name: "초안산숲속 작은도서관" },
37
+ { code: "SS", name: "한내지혜의숲도서관" },
38
+ { code: "ST", name: "한내행복발전소" },
39
+ { code: "SU", name: "책누리 작은도서관" },
40
+ { code: "SV", name: "책사랑북카페 작은도서관" },
41
+ { code: "SW", name: "하늘 작은도서관" },
42
+ { code: "SX", name: "향기나무도서관" },
43
+ { code: "SY", name: "중계사랑 작은도서관" },
44
+ { code: "SZ", name: "가재울 지혜마루 작은도서관" },
45
+ { code: "TA", name: "열린작은도서관" },
46
+ ];
47
+ const getLibraryCode = (0, util_1.createLibraryCodeLookup)(libraryList);
48
+ async function searchImpl(opt) {
49
+ const { title, libraryName, signal } = opt;
50
+ (0, util_1.validateSearchOptions)(opt);
51
+ const lcode = getLibraryCode(libraryName);
52
+ const res = await (0, undici_1.request)(`${exports.homeUrl}/api/search`, {
53
+ method: "POST",
54
+ headers: {
55
+ "Content-Type": "application/json",
56
+ "User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
57
+ },
58
+ body: JSON.stringify({
59
+ searchKeyword: title,
60
+ pubFormCode: "ALL",
61
+ display: "1000",
62
+ article: "SCORE",
63
+ order: "DESC",
64
+ manageCode: lcode,
65
+ }),
66
+ signal,
67
+ });
68
+ if (res.statusCode !== 200) {
69
+ throw new Error(`HTTP ${res.statusCode}`);
70
+ }
71
+ const json = (await res.body.json());
72
+ const totalBookCount = json.contents.totalCount;
73
+ const booklist = json.contents.bookList.map((book) => {
74
+ // bookKey and speciesKey may be comma-separated when a book exists in multiple libraries
75
+ const bookKey = book.bookKey.split(",")[0];
76
+ const speciesKey = book.speciesKey.split(",")[0];
77
+ return {
78
+ title: (0, util_1.stripHtml)(book.originalTitle),
79
+ exist: book.loanStatus === "대출가능",
80
+ libraryName: book.libName.split(",")[0],
81
+ bookUrl: `${exports.homeUrl}/bookDetail/${book.pubFormCode}/${bookKey}/${speciesKey}/${book.isbn}`,
82
+ };
83
+ });
84
+ return {
85
+ startPage: opt.startPage,
86
+ totalBookCount,
87
+ booklist,
88
+ };
89
+ }
90
+ exports.search = (0, util_1.wrapWithCallback)(searchImpl);
91
+ function getLibraryNames() {
92
+ return (0, util_1.getLibraryNames)(libraryList);
93
+ }
94
+ ({ moduleName: exports.moduleName, homeUrl: exports.homeUrl, search: exports.search, getLibraryNames });
95
+ //# sourceMappingURL=nowon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nowon.js","sourceRoot":"","sources":["../../src/localLibraryModule/nowon.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { SearchOptions, SearchResult } from "../types";
2
+ export declare const moduleName = "\uD30C\uC8FC\uC2DC\uB3C4\uC11C\uAD00";
3
+ export declare const homeUrl = "https://lib.paju.go.kr";
4
+ export declare const search: (opt: SearchOptions, callback?: import("../types").SearchCallback) => Promise<SearchResult | void>;
5
+ export declare function getLibraryNames(): string[];
6
+ //# sourceMappingURL=paju.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paju.d.ts","sourceRoot":"","sources":["../../src/localLibraryModule/paju.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAIV,aAAa,EACb,YAAY,EACb,MAAM,UAAU,CAAC;AAElB,eAAO,MAAM,UAAU,yCAAW,CAAC;AACnC,eAAO,MAAM,OAAO,2BAA2B,CAAC;AAwGhD,eAAO,MAAM,MAAM,oGAA+B,CAAC;AAEnD,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAE1C"}
@@ -0,0 +1,94 @@
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.paju.go.kr";
10
+ const SEARCH_URL = "https://lib.paju.go.kr/jalib/plusSearchResultList.do";
11
+ const DETAIL_URL = "https://lib.paju.go.kr/jalib/menu/10056/program/30004/plusSearchResultDetail.do";
12
+ const libraryList = [
13
+ { code: "MA", name: "중앙도서관" },
14
+ { code: "MB", name: "금촌도서관" },
15
+ { code: "MC", name: "문산도서관" },
16
+ { code: "MD", name: "법원도서관" },
17
+ { code: "ME", name: "적성도서관" },
18
+ { code: "MQ", name: "교하도서관" },
19
+ { code: "MI", name: "한빛도서관" },
20
+ { code: "MH", name: "해솔도서관" },
21
+ { code: "MN", name: "탄현도서관" },
22
+ { code: "MM", name: "가람도서관" },
23
+ { code: "MF", name: "조리도서관" },
24
+ { code: "MK", name: "금촌3동솔빛도서관" },
25
+ { code: "ML", name: "물푸레도서관" },
26
+ { code: "MP", name: "파평도서관" },
27
+ { code: "MR", name: "한울도서관" },
28
+ { code: "MO", name: "월롱도서관" },
29
+ { code: "MS", name: "광탄도서관" },
30
+ { code: "MJ", name: "술이홀도서관" },
31
+ { code: "SF", name: "금촌무지개작은도서관" },
32
+ { code: "SD", name: "금곡작은도서관" },
33
+ { code: "SA", name: "탄현작은도서관" },
34
+ { code: "SB", name: "부엉이책장" },
35
+ ];
36
+ const getLibraryCode = (0, util_1.createLibraryCodeLookup)(libraryList);
37
+ async function searchImpl(opt) {
38
+ const { title, libraryName, signal } = opt;
39
+ (0, util_1.validateSearchOptions)(opt);
40
+ const lcode = getLibraryCode(libraryName);
41
+ const { statusCode, body } = await (0, http_1.get)(SEARCH_URL, {
42
+ qs: {
43
+ searchType: "SIMPLE",
44
+ searchCategory: "BOOK",
45
+ searchKey: "TITLE",
46
+ searchKeyword: title,
47
+ searchLibraryArr: lcode,
48
+ searchRecordCount: 200,
49
+ },
50
+ signal,
51
+ });
52
+ if (statusCode !== 200) {
53
+ throw new Error(`HTTP ${statusCode}`);
54
+ }
55
+ const dom = new jsdom_1.JSDOM(body);
56
+ const document = dom.window.document;
57
+ const countEl = document.querySelector("p.rtitle b.themeFC");
58
+ const count = (0, util_1.extractNumber)(countEl?.textContent);
59
+ const booklist = [];
60
+ const bookItems = document.querySelectorAll("ul.resultList > li");
61
+ bookItems.forEach((li) => {
62
+ const titleLink = li.querySelector("dl.bookDataWrap dt.tit a");
63
+ const bookTitle = (titleLink?.textContent?.trim() ?? "").replace(/^\d+\.\s*/, "");
64
+ let bookUrl = "";
65
+ const onclick = titleLink?.getAttribute("onclick") ?? "";
66
+ const urlMatch = onclick.match(/fnSearchResultDetail\((\d+),(\d+),'(\w+)'\)/);
67
+ if (urlMatch) {
68
+ const [, recKey, bookKey, publishFormCode] = urlMatch;
69
+ bookUrl = `${DETAIL_URL}?recKey=${recKey}&bookKey=${bookKey}&publishFormCode=${publishFormCode}`;
70
+ }
71
+ const stateEl = li.querySelector("div.bookStateBar p.txt b");
72
+ const exist = stateEl?.textContent?.includes("대출가능") ?? false;
73
+ let libName = "";
74
+ const siteSpan = li.querySelector("dd.site span");
75
+ const siteText = siteSpan?.textContent?.trim() ?? "";
76
+ if (siteText.startsWith("도서관:")) {
77
+ libName = siteText.replace("도서관:", "").trim();
78
+ }
79
+ if (bookTitle) {
80
+ booklist.push({ libraryName: libName, title: bookTitle, bookUrl, exist });
81
+ }
82
+ });
83
+ return {
84
+ startPage: opt.startPage,
85
+ totalBookCount: count,
86
+ booklist,
87
+ };
88
+ }
89
+ exports.search = (0, util_1.wrapWithCallback)(searchImpl);
90
+ function getLibraryNames() {
91
+ return (0, util_1.getLibraryNames)(libraryList);
92
+ }
93
+ ({ moduleName: exports.moduleName, homeUrl: exports.homeUrl, search: exports.search, getLibraryNames });
94
+ //# sourceMappingURL=paju.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paju.js","sourceRoot":"","sources":["../../src/localLibraryModule/paju.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { SearchOptions, SearchResult } from "../types";
2
+ export declare const moduleName = "\uD3EC\uD56D\uC2DC\uB9BD\uB3C4\uC11C\uAD00";
3
+ export declare const homeUrl = "https://phlib.pohang.go.kr";
4
+ export declare const search: (opt: SearchOptions, callback?: import("../types").SearchCallback) => Promise<SearchResult | void>;
5
+ export declare function getLibraryNames(): string[];
6
+ //# sourceMappingURL=pohang.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pohang.d.ts","sourceRoot":"","sources":["../../src/localLibraryModule/pohang.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAIV,aAAa,EACb,YAAY,EACb,MAAM,UAAU,CAAC;AAElB,eAAO,MAAM,UAAU,+CAAY,CAAC;AACpC,eAAO,MAAM,OAAO,+BAA+B,CAAC;AA2FpD,eAAO,MAAM,MAAM,oGAA+B,CAAC;AAEnD,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAE1C"}