SearchAsync(string searchTerm)
+ {
+ var result = new BookSearchResult
+ {
+ SiteName = SiteName,
+ SearchTerm = searchTerm,
+ SearchTime = DateTime.Now
+ };
+
+ try
+ {
+ // 검색어 URL 인코딩
+ var encodedSearchTerm = HttpUtility.UrlEncode(searchTerm, Encoding.UTF8);
+
+ // 검색 URL 구성
+ var searchUrl = $"{SiteUrl}?menuCd=L001001001&alpha=&vcindex=¤tPageNo=1&nPageSize=10&searchType=title&search={encodedSearchTerm}&mediaCode=";
+
+ // 도서관 코드가 있으면 추가
+ if (!string.IsNullOrEmpty(AreaCode))
+ {
+ if (AreaCode == "mini")
+ {
+ // 작은도서관의 경우 모든 코드를 포함
+ searchUrl += "&manageCd=AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,BF,BG,BH,BI,BJ,BM,BQ,BS,BW,CA,CB,CC,CD,CE,CF,CG,CH,CI,CJ,CK,CL,CM,CN,CO,CP,CQ,DA,DB,DC,DD,DE,DF,DG,DH,DI,DJ,DK,DL,DS,GD";
+ }
+ else
+ {
+ searchUrl += $"&manageCd={AreaCode}";
+ }
+ }
+
+ Console.WriteLine($"순천시립도서관 검색 URL: {searchUrl}");
+
+ // HTTP GET 요청 실행 (추가 헤더 포함)
+ using (var request = new HttpRequestMessage(HttpMethod.Get, searchUrl))
+ {
+ // 브라우저와 유사한 헤더 추가
+ request.Headers.Add("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
+ request.Headers.Add("Accept-Language", "ko-KR,ko;q=0.8,en-US;q=0.5,en;q=0.3");
+ request.Headers.Add("Accept-Encoding", "gzip, deflate, br");
+ request.Headers.Add("Connection", "keep-alive");
+ request.Headers.Add("Upgrade-Insecure-Requests", "1");
+
+ var response = await _httpClient.SendAsync(request);
+
+ if (!response.IsSuccessStatusCode)
+ {
+ var errorContent = await response.Content.ReadAsStringAsync();
+ throw new HttpRequestException($"HTTP {(int)response.StatusCode} {response.StatusCode}: {errorContent}");
+ }
+
+ var htmlContent = await response.Content.ReadAsStringAsync();
+
+ // 검색 결과 수 추출
+ var resultCount = ExtractBookCount(htmlContent, out string errorMessage);
+
+ if (resultCount == -1)
+ {
+ result.BookCount = 0;
+ result.IsSuccess = false;
+ result.ErrorMessage = errorMessage;
+ }
+ else
+ {
+ result.BookCount = resultCount;
+ result.IsSuccess = true;
+ result.ErrorMessage = $"검색성공({resultCount}권)";
+ }
+ }
+
+ }
+ catch (Exception ex)
+ {
+ result.IsSuccess = false;
+ result.ErrorMessage = $"검색 오류: {ex.Message}";
+ result.BookCount = 0;
+ Console.WriteLine($"순천시립도서관 검색 오류: {ex.Message}");
+ }
+
+ return result;
+ }
+
+ private int ExtractBookCount(string htmlContent, out string errorMessage)
+ {
+ errorMessage = string.Empty;
+
+ try
+ {
+ // HTML에서 "총 N건" 패턴 찾기
+ var patterns = new[]
+ {
+ @"총\s*]*class=""cred""[^>]*>(\d+)\s*건",
+ @"총\s*]*>(\d+)\s*건",
+ @"총\s*(\d+)\s*건",
+ @"]*class=""cred""[^>]*>(\d+)"
+ };
+
+ foreach (var pattern in patterns)
+ {
+ var match = Regex.Match(htmlContent, pattern, RegexOptions.IgnoreCase);
+ if (match.Success)
+ {
+ if (int.TryParse(match.Groups[1].Value, out int count))
+ {
+ if (count == 0)
+ {
+ errorMessage = "검색결과없음";
+ return 0;
+ }
+ errorMessage = $"검색성공({count}권)";
+ return count;
+ }
+ }
+ }
+
+ // 검색 결과가 없다는 메시지 확인
+ if (htmlContent.Contains("검색결과가 없습니다") ||
+ htmlContent.Contains("검색된 자료가 없습니다") ||
+ htmlContent.Contains("자료가 없습니다") ||
+ htmlContent.Contains("총 0건"))
+ {
+ errorMessage = "검색결과없음";
+ return 0;
+ }
+
+ // resultCon 영역에서 더 자세히 검색
+ var resultConPattern = @"]*class=""resultCon[^""]*""[^>]*>.*?총\s*]*>(\d+)\s*건.*?
";
+ var resultConMatch = Regex.Match(htmlContent, resultConPattern, RegexOptions.IgnoreCase | RegexOptions.Singleline);
+ if (resultConMatch.Success)
+ {
+ if (int.TryParse(resultConMatch.Groups[1].Value, out int count))
+ {
+ if (count == 0)
+ {
+ errorMessage = "검색결과없음";
+ return 0;
+ }
+ errorMessage = $"검색성공({count}권)";
+ return count;
+ }
+ }
+
+ // 더 넓은 범위로 숫자 찾기 시도
+ var generalPatterns = new[]
+ {
+ @"검색한\s*결과\s*총\s*]*>(\d+)",
+ @"검색결과를\s*찾았습니다[^>]*>(\d+)",
+ @"]*class=""cred""[^>]*>(\d+)"
+ };
+
+ foreach (var pattern in generalPatterns)
+ {
+ var match = Regex.Match(htmlContent, pattern, RegexOptions.IgnoreCase);
+ if (match.Success)
+ {
+ if (int.TryParse(match.Groups[1].Value, out int count))
+ {
+ if (count == 0)
+ {
+ errorMessage = "검색결과없음";
+ return 0;
+ }
+ errorMessage = $"검색성공({count}권)";
+ return count;
+ }
+ }
+ }
+
+ errorMessage = "검색결과 패턴을 찾을 수 없음";
+ return -1;
+ }
+ catch (Exception ex)
+ {
+ errorMessage = $"결과 분석 오류: {ex.Message}";
+ return -1;
+ }
+ }
+
+ public Task WaitForPageChange(OpenQA.Selenium.Support.UI.WebDriverWait wait)
+ {
+ throw new NotImplementedException();
+ }
+ }
+}
\ No newline at end of file
diff --git a/unimarc/unimarc/SearchModel/WandoLibSearcher.cs b/unimarc/unimarc/SearchModel/WandoLibSearcher.cs
new file mode 100644
index 0000000..e246cbe
--- /dev/null
+++ b/unimarc/unimarc/SearchModel/WandoLibSearcher.cs
@@ -0,0 +1,167 @@
+using System;
+using System.Threading.Tasks;
+using OpenQA.Selenium;
+using OpenQA.Selenium.Chrome;
+using OpenQA.Selenium.Support.UI;
+using System.Text.RegularExpressions;
+using WebDriverManager;
+using WebDriverManager.DriverConfigs.Impl;
+using System.IO;
+using System.Runtime.InteropServices;
+using System.Threading;
+using UniMarc.마크;
+using OpenQA.Selenium.Chromium;
+using UniMarc.SearchModel;
+using System.Runtime.CompilerServices;
+using AR;
+using System.Net.Http;
+
+namespace BokBonCheck
+{
+ public class WandoLibSearcher : ILibrarySearcher
+ {
+ protected string AreaCode { get; set; } = string.Empty;
+ public string SiteName { get; protected set; }
+ public string SiteUrl => "https://wandolib.kr/dls_le/index.php";
+ public bool HttpApiMode { get; set; } = true;
+
+ public int No { get; set; }
+
+ private ChromiumDriver _driver;
+ private static readonly HttpClient _httpClient = new HttpClient();
+
+ public WandoLibSearcher(int no, string areaCode, string areaName)
+ {
+ this.No = no;
+ this.AreaCode = areaCode;
+ this.SiteName = $"완도군립({areaName})";
+ }
+
+ public void StopDriver()
+ {
+ // HTTP 클라이언트 사용으로 별도 정리 불필요
+ }
+
+ public async Task StartDriver(bool showdriver = false)
+ {
+ // HTTP 클라이언트 사용으로 별도 드라이버 불필요
+ await Task.CompletedTask;
+ }
+
+
+ public async Task SearchAsync(string searchTerm)
+ {
+ var result = new BookSearchResult
+ {
+ SiteName = SiteName,
+ SearchTerm = searchTerm,
+ SearchTime = DateTime.Now
+ };
+
+ try
+ {
+ // 검색어 URL 인코딩
+ var encodedSearchTerm = System.Web.HttpUtility.UrlEncode(searchTerm, System.Text.Encoding.UTF8);
+
+ // 검색 URL 구성
+ var searchUrl = $"{SiteUrl}?mod=wdDataSearch&act=searchIList&item=title&word={encodedSearchTerm}";
+
+ // 도서관 코드가 있으면 추가
+ if (!string.IsNullOrEmpty(AreaCode))
+ {
+ searchUrl += $"&manageCode%5B{AreaCode}%5D={AreaCode}";
+ }
+
+ Console.WriteLine($"완도군립도서관 검색 URL: {searchUrl}");
+
+ // HTTP GET 요청 실행
+ var response = await _httpClient.GetAsync(searchUrl);
+ response.EnsureSuccessStatusCode();
+
+ var htmlContent = await response.Content.ReadAsStringAsync();
+
+ // 검색 결과 수 추출
+ var resultCount = ExtractBookCount(htmlContent, out string errorMessage);
+
+ if (resultCount == -1)
+ {
+ result.BookCount = 0;
+ result.IsSuccess = false;
+ result.ErrorMessage = errorMessage;
+ }
+ else
+ {
+ result.BookCount = resultCount;
+ result.IsSuccess = true;
+ result.ErrorMessage = $"검색성공({resultCount}권)";
+ }
+
+ }
+ catch (Exception ex)
+ {
+ result.IsSuccess = false;
+ result.ErrorMessage = ex.Message;
+ result.BookCount = 0;
+ }
+
+ return result;
+ }
+
+ private int ExtractBookCount(string htmlContent, out string errmessage)
+ {
+ errmessage = string.Empty;
+ try
+ {
+ // 검색 결과가 없다는 메시지 확인
+ if (htmlContent.Contains("0권(개)") || htmlContent.Contains("검색결과가 없습니다"))
+ {
+ errmessage = "검색결과없음";
+ return 0;
+ }
+
+ // HTML에서 다양한 패턴 찾기
+ var htmlPatterns = new[]
+ {
+ @"총\s*]*class=""cyan""[^>]*>\s*(\d+)\s*권\(개\)",
+ @"총\s*(\d+)\s*권\(개\)",
+ @"]*class=""cyan""[^>]*>\s*(\d+)\s*권",
+ @"(\d+)\s*권\(개\)"
+ };
+
+ foreach (var pattern in htmlPatterns)
+ {
+ var match = Regex.Match(htmlContent, pattern, RegexOptions.IgnoreCase);
+ if (match.Success)
+ {
+ if (int.TryParse(match.Groups[1].Value, out int count))
+ {
+ if (count == 0)
+ {
+ errmessage = "검색결과없음";
+ return 0;
+ }
+ errmessage = $"검색성공({count}권)";
+ return count;
+ }
+ }
+ }
+
+ errmessage = "결과수량을찾을수없음";
+ return -1;
+
+ }
+ catch (Exception ex)
+ {
+ errmessage = ex.Message;
+ return -1;
+ }
+ }
+
+ // 페이지 변경을 감지하는 메서드 (HTTP 방식에서는 불필요)
+ public async Task WaitForPageChange(WebDriverWait wait)
+ {
+ // HTTP 방식에서는 즉시 응답이 오므로 대기 불필요
+ await Task.CompletedTask;
+ }
+ }
+}
diff --git a/unimarc/unimarc/SearchModel/YeosuLibSearcher.cs b/unimarc/unimarc/SearchModel/YeosuLibSearcher.cs
new file mode 100644
index 0000000..ede6ee1
--- /dev/null
+++ b/unimarc/unimarc/SearchModel/YeosuLibSearcher.cs
@@ -0,0 +1,162 @@
+using System;
+using System.Net.Http;
+using System.Threading.Tasks;
+using System.Text.RegularExpressions;
+using System.Web;
+using UniMarc.SearchModel;
+using System.Text;
+using OpenQA.Selenium.Support.UI;
+
+namespace BokBonCheck
+{
+
+ public class YeosuLibSearcher : ILibrarySearcher
+ {
+ protected string AreaCode { get; set; } = string.Empty;
+ public string SiteName { get; protected set; }
+ public string SiteUrl => "https://yslib.yeosu.go.kr/dls_kapi/index.php";
+
+ public int No { get; set; }
+ public bool HttpApiMode { get; set; } = true;
+
+ private static readonly HttpClient _httpClient = new HttpClient();
+
+ public YeosuLibSearcher(int no, string areaCode, string areaName)
+ {
+ this.No = no;
+ this.AreaCode = areaCode;
+ this.SiteName = $"여수시립({areaName})";
+ }
+
+
+
+ public async Task StartDriver(bool showdriver = false)
+ {
+ // HTTP 클라이언트 사용으로 별도 드라이버 불필요
+ await Task.CompletedTask;
+ }
+
+ public void StopDriver()
+ {
+ // HTTP 클라이언트 사용으로 별도 정리 불필요
+ }
+
+
+
+
+ public async Task SearchAsync(string searchTerm)
+ {
+ var result = new BookSearchResult
+ {
+ SiteName = SiteName,
+ SearchTerm = searchTerm,
+ SearchTime = DateTime.Now
+ };
+
+ try
+ {
+ // 검색어 URL 인코딩
+ var encodedSearchTerm = HttpUtility.UrlEncode(searchTerm, Encoding.UTF8);
+
+ // 검색 URL 구성
+ var searchUrl = $"{SiteUrl}?act=searchResultList&mod=wdDataSearch";
+
+ // 지역코드가 있으면 추가 (전체인 경우 facetManageCode 생략)
+ if (!string.IsNullOrEmpty(AreaCode))
+ {
+ searchUrl += $"&facetManageCode={AreaCode}";
+ }
+
+ searchUrl += $"&searchWord={encodedSearchTerm}&author=&keyword=&publisher=&pubYearS=&pubYearE=&dataSort=rk+desc";
+
+ Console.WriteLine($"여수시립도서관 검색 URL: {searchUrl}");
+
+ // HTTP GET 요청 실행
+ var response = await _httpClient.GetAsync(searchUrl);
+ response.EnsureSuccessStatusCode();
+
+ var htmlContent = await response.Content.ReadAsStringAsync();
+
+ // 검색 결과 수 추출
+ var resultCount = ExtractBookCount(htmlContent, out string errorMessage);
+
+ if (resultCount == -1)
+ {
+ result.BookCount = 0;
+ result.IsSuccess = false;
+ result.ErrorMessage = errorMessage;
+ }
+ else
+ {
+ result.BookCount = resultCount;
+ result.IsSuccess = true;
+ result.ErrorMessage = $"검색성공({resultCount}권)";
+ }
+
+ }
+ catch (Exception ex)
+ {
+ result.IsSuccess = false;
+ result.ErrorMessage = $"검색 오류: {ex.Message}";
+ result.BookCount = 0;
+ Console.WriteLine($"여수시립도서관 검색 오류: {ex.Message}");
+ }
+
+ return result;
+ }
+
+ private int ExtractBookCount(string htmlContent, out string errorMessage)
+ {
+ errorMessage = string.Empty;
+
+ try
+ {
+ // HTML에서 "총 N권(개)" 패턴 찾기
+ var pattern = @"총\s*]*class=""cyan""[^>]*>(\d+)권\(개\)";
+ var match = Regex.Match(htmlContent, pattern, RegexOptions.IgnoreCase);
+
+ if (match.Success)
+ {
+ if (int.TryParse(match.Groups[1].Value, out int count))
+ {
+ errorMessage = $"검색성공({count}권)";
+ return count;
+ }
+ else
+ {
+ errorMessage = $"수량값오류({match.Groups[1].Value})";
+ return -1;
+ }
+ }
+ else
+ {
+ // 패턴을 찾지 못한 경우 다른 패턴으로 시도
+ var alternatePattern = @"총\s*]*>(\d+)권\(개\)";
+ var alternateMatch = Regex.Match(htmlContent, alternatePattern, RegexOptions.IgnoreCase);
+
+ if (alternateMatch.Success)
+ {
+ if (int.TryParse(alternateMatch.Groups[1].Value, out int count))
+ {
+ errorMessage = $"검색성공({count}권)";
+ return count;
+ }
+ }
+
+ errorMessage = "검색결과 패턴을 찾을 수 없음";
+ return -1;
+ }
+ }
+ catch (Exception ex)
+ {
+ errorMessage = $"결과 분석 오류: {ex.Message}";
+ return -1;
+ }
+ }
+
+ public Task WaitForPageChange(WebDriverWait wait)
+ {
+ throw new NotImplementedException();
+ }
+ }
+}
\ No newline at end of file
diff --git a/unimarc/unimarc/Settings.cs b/unimarc/unimarc/Settings.cs
index aee0734..39882a8 100644
--- a/unimarc/unimarc/Settings.cs
+++ b/unimarc/unimarc/Settings.cs
@@ -1,6 +1,22 @@
-namespace UniMarc.Properties {
-
-
+using System.Security.Permissions;
+
+namespace UniMarc.Properties {
+
+
+ public class UserSetting : AR.Setting
+ {
+ public string LastSearchTarget { get; set; }
+ public string LastSearchTargetDLS { get; set; }
+ public override void AfterLoad()
+ {
+
+ }
+
+ public override void AfterSave()
+ {
+
+ }
+ }
// 이 클래스를 사용하여 설정 클래스에 대한 특정 이벤트를 처리할 수 있습니다.
// SettingChanging 이벤트는 설정 값이 변경되기 전에 발생합니다.
// PropertyChanged 이벤트는 설정 값이 변경된 후에 발생합니다.
diff --git a/unimarc/unimarc/UniMarc.csproj b/unimarc/unimarc/UniMarc.csproj
index 1884e89..cb1dd63 100644
--- a/unimarc/unimarc/UniMarc.csproj
+++ b/unimarc/unimarc/UniMarc.csproj
@@ -225,13 +225,27 @@
Reference.svcmap
+
+
+
+
Form
+
+
+
+
-
+
+
+
+
+
+
+
diff --git a/unimarc/unimarc/UniMarc.csproj.user b/unimarc/unimarc/UniMarc.csproj.user
index be8df31..a66c462 100644
--- a/unimarc/unimarc/UniMarc.csproj.user
+++ b/unimarc/unimarc/UniMarc.csproj.user
@@ -1,4 +1,4 @@
-
+
E:\UniMarcApplicationUpdateFiles\|ftp://ftpgloria%401.215.250.130/|ftp://ftpgloria%401.215.250.130:50005/|sftp://ftpgloria%401.215.250.130/|ftp://ftpgloria%401.215.250.130/unimarc/
diff --git a/unimarc/unimarc/마크/Check_Copy_Sub_List.Designer.cs b/unimarc/unimarc/마크/Check_Copy_Sub_List.Designer.cs
index 8644ae2..deca090 100644
--- a/unimarc/unimarc/마크/Check_Copy_Sub_List.Designer.cs
+++ b/unimarc/unimarc/마크/Check_Copy_Sub_List.Designer.cs
@@ -68,7 +68,7 @@ namespace UniMarc.마크
this.dataGridView1.Name = "dataGridView1";
this.dataGridView1.ReadOnly = true;
this.dataGridView1.RowTemplate.Height = 23;
- this.dataGridView1.Size = new System.Drawing.Size(436, 186);
+ this.dataGridView1.Size = new System.Drawing.Size(464, 583);
this.dataGridView1.TabIndex = 1;
this.dataGridView1.CellDoubleClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridView1_CellDoubleClick);
this.dataGridView1.KeyDown += new System.Windows.Forms.KeyEventHandler(this.dataGridView1_KeyDown);
@@ -96,7 +96,7 @@ namespace UniMarc.마크
this.panel1.Dock = System.Windows.Forms.DockStyle.Top;
this.panel1.Location = new System.Drawing.Point(0, 0);
this.panel1.Name = "panel1";
- this.panel1.Size = new System.Drawing.Size(436, 32);
+ this.panel1.Size = new System.Drawing.Size(464, 32);
this.panel1.TabIndex = 2;
//
// btn_Close
@@ -144,14 +144,14 @@ namespace UniMarc.마크
this.panel2.Dock = System.Windows.Forms.DockStyle.Fill;
this.panel2.Location = new System.Drawing.Point(0, 32);
this.panel2.Name = "panel2";
- this.panel2.Size = new System.Drawing.Size(436, 186);
+ this.panel2.Size = new System.Drawing.Size(464, 583);
this.panel2.TabIndex = 3;
//
// Check_Copy_Sub_List
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
- this.ClientSize = new System.Drawing.Size(436, 218);
+ this.ClientSize = new System.Drawing.Size(464, 615);
this.Controls.Add(this.panel2);
this.Controls.Add(this.panel1);
this.Name = "Check_Copy_Sub_List";
diff --git a/unimarc/unimarc/마크/Check_Copy_Sub_List.cs b/unimarc/unimarc/마크/Check_Copy_Sub_List.cs
index 3983018..5ecd796 100644
--- a/unimarc/unimarc/마크/Check_Copy_Sub_List.cs
+++ b/unimarc/unimarc/마크/Check_Copy_Sub_List.cs
@@ -133,7 +133,6 @@ namespace UniMarc.마크
{
var cc2 = cc as Check_copyWD;
cc2.btn_SearchList.Text = list_name;
- cc2.SearchCount.Value = cc2.dv1.Rows.Count - 1;
}
diff --git a/unimarc/unimarc/마크/Check_Copy_Sub_Search.Designer.cs b/unimarc/unimarc/마크/Check_Copy_Sub_Search.Designer.cs
index a7c194e..b89cb8c 100644
--- a/unimarc/unimarc/마크/Check_Copy_Sub_Search.Designer.cs
+++ b/unimarc/unimarc/마크/Check_Copy_Sub_Search.Designer.cs
@@ -67,7 +67,7 @@ namespace UniMarc.마크
this.dataGridView1.Name = "dataGridView1";
this.dataGridView1.ReadOnly = true;
this.dataGridView1.RowTemplate.Height = 23;
- this.dataGridView1.Size = new System.Drawing.Size(514, 261);
+ this.dataGridView1.Size = new System.Drawing.Size(514, 606);
this.dataGridView1.TabIndex = 0;
this.dataGridView1.CellDoubleClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridView1_CellDoubleClick);
this.dataGridView1.RowPostPaint += new System.Windows.Forms.DataGridViewRowPostPaintEventHandler(this.dataGridView1_RowPostPaint);
@@ -119,7 +119,7 @@ namespace UniMarc.마크
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
- this.ClientSize = new System.Drawing.Size(514, 261);
+ this.ClientSize = new System.Drawing.Size(514, 606);
this.Controls.Add(this.dataGridView1);
this.Name = "Check_Copy_Sub_Search";
this.Text = "도서관 검색";
diff --git a/unimarc/unimarc/마크/Check_copyWD.Designer.cs b/unimarc/unimarc/마크/Check_copyWD.Designer.cs
index 1794bf3..bcc1403 100644
--- a/unimarc/unimarc/마크/Check_copyWD.Designer.cs
+++ b/unimarc/unimarc/마크/Check_copyWD.Designer.cs
@@ -42,9 +42,7 @@
this.btn_SearchList = new System.Windows.Forms.Button();
this.btn_Start = new System.Windows.Forms.Button();
this.btn_Stop = new System.Windows.Forms.Button();
- this.SearchCount = new System.Windows.Forms.NumericUpDown();
this.btn_Close = new System.Windows.Forms.Button();
- this.label2 = new System.Windows.Forms.Label();
this.tb_SearchTarget = new System.Windows.Forms.ComboBox();
this.btSearchLibrary = new System.Windows.Forms.Label();
this.panel2 = new System.Windows.Forms.Panel();
@@ -61,16 +59,15 @@
this.panel6 = new System.Windows.Forms.Panel();
this.statusStrip1 = new System.Windows.Forms.StatusStrip();
this.lblStatus = new System.Windows.Forms.ToolStripLabel();
+ this.lbSite = new System.Windows.Forms.ToolStripStatusLabel();
this.panel4 = new System.Windows.Forms.Panel();
this.chk_RemoveBrit = new System.Windows.Forms.CheckBox();
this.btn_ResultEmpty = new System.Windows.Forms.Button();
this.btn_GridReset = new System.Windows.Forms.Button();
this.btn_OpenMemo = new System.Windows.Forms.Button();
this.chk_spChar = new System.Windows.Forms.CheckBox();
- this.lbSite = new System.Windows.Forms.ToolStripStatusLabel();
this.panel1.SuspendLayout();
this.groupBox1.SuspendLayout();
- ((System.ComponentModel.ISupportInitialize)(this.SearchCount)).BeginInit();
this.panel2.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.dv1)).BeginInit();
this.panel3.SuspendLayout();
@@ -228,19 +225,6 @@
this.btn_Stop.UseVisualStyleBackColor = true;
this.btn_Stop.Click += new System.EventHandler(this.btn_Stop_Click);
//
- // SearchCount
- //
- this.SearchCount.Location = new System.Drawing.Point(491, 6);
- this.SearchCount.Maximum = new decimal(new int[] {
- 10000,
- 0,
- 0,
- 0});
- this.SearchCount.Name = "SearchCount";
- this.SearchCount.Size = new System.Drawing.Size(54, 21);
- this.SearchCount.TabIndex = 2;
- this.SearchCount.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
- //
// btn_Close
//
this.btn_Close.Location = new System.Drawing.Point(548, 4);
@@ -251,23 +235,15 @@
this.btn_Close.UseVisualStyleBackColor = true;
this.btn_Close.Click += new System.EventHandler(this.btn_Close_Click);
//
- // label2
- //
- this.label2.AutoSize = true;
- this.label2.Location = new System.Drawing.Point(444, 10);
- this.label2.Name = "label2";
- this.label2.Size = new System.Drawing.Size(45, 12);
- this.label2.TabIndex = 0;
- this.label2.Text = "검색 수";
- //
// tb_SearchTarget
//
this.tb_SearchTarget.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend;
this.tb_SearchTarget.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems;
+ this.tb_SearchTarget.Enabled = false;
this.tb_SearchTarget.ImeMode = System.Windows.Forms.ImeMode.Hangul;
this.tb_SearchTarget.Location = new System.Drawing.Point(66, 6);
this.tb_SearchTarget.Name = "tb_SearchTarget";
- this.tb_SearchTarget.Size = new System.Drawing.Size(243, 20);
+ this.tb_SearchTarget.Size = new System.Drawing.Size(390, 20);
this.tb_SearchTarget.TabIndex = 1;
this.tb_SearchTarget.SelectedIndexChanged += new System.EventHandler(this.tb_SearchTarget_SelectedIndexChanged);
this.tb_SearchTarget.KeyDown += new System.Windows.Forms.KeyEventHandler(this.tb_SearchTarget_KeyDown);
@@ -288,11 +264,9 @@
this.panel2.Controls.Add(this.btn_SiteDenote);
this.panel2.Controls.Add(this.lbl_PW);
this.panel2.Controls.Add(this.lbl_ID);
- this.panel2.Controls.Add(this.SearchCount);
this.panel2.Controls.Add(this.tb_SearchTarget);
this.panel2.Controls.Add(this.btSearchLibrary);
this.panel2.Controls.Add(this.btn_Close);
- this.panel2.Controls.Add(this.label2);
this.panel2.Dock = System.Windows.Forms.DockStyle.Top;
this.panel2.Location = new System.Drawing.Point(0, 0);
this.panel2.Name = "panel2";
@@ -301,7 +275,7 @@
//
// btn_SiteDenote
//
- this.btn_SiteDenote.Location = new System.Drawing.Point(317, 5);
+ this.btn_SiteDenote.Location = new System.Drawing.Point(462, 5);
this.btn_SiteDenote.Name = "btn_SiteDenote";
this.btn_SiteDenote.Size = new System.Drawing.Size(77, 23);
this.btn_SiteDenote.TabIndex = 4;
@@ -432,6 +406,12 @@
this.lblStatus.Size = new System.Drawing.Size(27, 20);
this.lblStatus.Text = "WD";
//
+ // lbSite
+ //
+ this.lbSite.Name = "lbSite";
+ this.lbSite.Size = new System.Drawing.Size(55, 17);
+ this.lbSite.Text = "-- Site --";
+ //
// panel4
//
this.panel4.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
@@ -497,12 +477,6 @@
this.chk_spChar.Text = "특수문자 제거";
this.chk_spChar.UseVisualStyleBackColor = true;
//
- // lbSite
- //
- this.lbSite.Name = "lbSite";
- this.lbSite.Size = new System.Drawing.Size(55, 17);
- this.lbSite.Text = "-- Site --";
- //
// Check_copyWD
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
@@ -510,14 +484,13 @@
this.ClientSize = new System.Drawing.Size(637, 738);
this.Controls.Add(this.panel3);
this.Name = "Check_copyWD";
- this.Text = "복본조사(WebDriver)";
+ this.Text = "복본조사(New)";
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Check_copy_FormClosing);
this.Load += new System.EventHandler(this.Check_copy_Load);
this.panel1.ResumeLayout(false);
this.panel1.PerformLayout();
this.groupBox1.ResumeLayout(false);
this.groupBox1.PerformLayout();
- ((System.ComponentModel.ISupportInitialize)(this.SearchCount)).EndInit();
this.panel2.ResumeLayout(false);
this.panel2.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.dv1)).EndInit();
@@ -536,7 +509,6 @@
private System.Windows.Forms.Panel panel1;
private System.Windows.Forms.Label btSearchLibrary;
- private System.Windows.Forms.Label label2;
private System.Windows.Forms.Panel panel2;
private System.Windows.Forms.Button btn_Close;
private System.Windows.Forms.Button btn_Stop;
@@ -550,7 +522,6 @@
private System.Windows.Forms.Panel panel4;
private System.Windows.Forms.CheckBox chk_spChar;
private System.Windows.Forms.CheckBox chk_RemoveBrit;
- public System.Windows.Forms.NumericUpDown SearchCount;
private System.Windows.Forms.RadioButton rb_isNumber;
private System.Windows.Forms.RadioButton rb_isHave;
private System.Windows.Forms.Button btn_GridReset;
diff --git a/unimarc/unimarc/마크/Check_copyWD.cs b/unimarc/unimarc/마크/Check_copyWD.cs
index ce29f68..3510ece 100644
--- a/unimarc/unimarc/마크/Check_copyWD.cs
+++ b/unimarc/unimarc/마크/Check_copyWD.cs
@@ -10,6 +10,7 @@ using BokBonCheck;
using AR;
using UniMarc.SearchModel;
using System.Linq;
+using UniMarc;
namespace WindowsFormsApp1.Mac
{
@@ -22,6 +23,15 @@ namespace WindowsFormsApp1.Mac
public string SearcherNo;
private bool isStop = false;
Main main;
+
+ bool GetDemoRunAuth
+ {
+ get
+ {
+ return (DateTime.Now <= new DateTime(2025, 09, 30));
+
+ }
+ }
public Check_copyWD(Main _main)
{
InitializeComponent();
@@ -32,56 +42,307 @@ namespace WindowsFormsApp1.Mac
//도서검색(크롤링)
_searchService = new BookSearchService();
- _searchService.AddSearcher(new NamguLibrarySearcher_Munhwa(idx++));
- _searchService.AddSearcher(new NamguLibrarySearcher_Children(idx++));
- _searchService.AddSearcher(new NamguLibrarySearcher_Smart(idx++));
- _searchService.AddSearcher(new NamguLibrarySearcher_Purungil(idx++));
- _searchService.AddSearcher(new NamguLibrarySearcher_Hyocheon(idx++));
+ _searchService.AddSearcher(new NamguLibrarySearcher(idx++, "#libMA", "문화정보도서관"));
+ _searchService.AddSearcher(new NamguLibrarySearcher(idx++, "#libMC", "청소년도서관"));
+ _searchService.AddSearcher(new NamguLibrarySearcher(idx++, "#libSQ", "스마트도서관"));
+ _searchService.AddSearcher(new NamguLibrarySearcher(idx++, "#libMB", "푸른길도서관"));
+ _searchService.AddSearcher(new NamguLibrarySearcher(idx++, "#libSW", "효천어울림도서관"));
- //광주시청도서광
- idx = 30;
- _searchService.AddSearcher(new KwangjuCityLibrarySearcher_central(idx++));
- _searchService.AddSearcher(new KwangjuCityLibrarySearcher_choisangjun(idx++));
- _searchService.AddSearcher(new KwangjuCityLibrarySearcher_dagachi(idx++));
- _searchService.AddSearcher(new KwangjuCityLibrarySearcher_Indi(idx++));
- _searchService.AddSearcher(new KwangjuCityLibrarySearcher_Student(idx++));
- _searchService.AddSearcher(new KwangjuCityLibrarySearcher_Kumho(idx++));
- //전남교육청통합도서관
- idx = 50;
- _searchService.AddSearcher(new JunnamEduSearcher(idx++, "ALL", "전체"));
- _searchService.AddSearcher(new JunnamEduSearcher(idx++, "00146010", "목포"));
- _searchService.AddSearcher(new JunnamEduSearcher(idx++, "00146007", "나주"));
- _searchService.AddSearcher(new JunnamEduSearcher(idx++, "00146006", "남평"));
- _searchService.AddSearcher(new JunnamEduSearcher(idx++, "00146025", "광양"));
- _searchService.AddSearcher(new JunnamEduSearcher(idx++, "00146008", "담양"));
- _searchService.AddSearcher(new JunnamEduSearcher(idx++, "00146005", "구례"));
- _searchService.AddSearcher(new JunnamEduSearcher(idx++, "00146012", "보성"));
- _searchService.AddSearcher(new JunnamEduSearcher(idx++, "00146013", "벌교"));
- _searchService.AddSearcher(new JunnamEduSearcher(idx++, "00146023", "화순"));
- _searchService.AddSearcher(new JunnamEduSearcher(idx++, "00146019", "장흥"));
- _searchService.AddSearcher(new JunnamEduSearcher(idx++, "00146022", "해남"));
- _searchService.AddSearcher(new JunnamEduSearcher(idx++, "00146017", "영암"));
- _searchService.AddSearcher(new JunnamEduSearcher(idx++, "00146011", "무안"));
- _searchService.AddSearcher(new JunnamEduSearcher(idx++, "00146021", "함평"));
- _searchService.AddSearcher(new JunnamEduSearcher(idx++, "00146016", "영광"));
- _searchService.AddSearcher(new JunnamEduSearcher(idx++, "00146018", "장성"));
- _searchService.AddSearcher(new JunnamEduSearcher(idx++, "00146020", "진도"));
- _searchService.AddSearcher(new JunnamEduSearcher(idx++, "00146003", "곡성"));
- _searchService.AddSearcher(new JunnamEduSearcher(idx++, "00146059", "학생교육문화회관"));
- _searchService.AddSearcher(new JunnamEduSearcher(idx++, "00146042", "광양평생"));
- _searchService.AddSearcher(new JunnamEduSearcher(idx++, "00146002", "고흥평생"));
- _searchService.AddSearcher(new JunnamEduSearcher(idx++, "00346002", "교육연수원"));
- _searchService.AddSearcher(new JunnamEduSearcher(idx++, "00324008", "교육연구정보원"));
- _searchService.AddSearcher(new JunnamEduSearcher(idx++, "00346030", "전라남도국제교육원"));
- _searchService.AddSearcher(new JunnamEduSearcher(idx++, "00146180", "순천만생태문화교육원"));
+ if (GetDemoRunAuth == true)
+ {
+
+ //광주시교육청통합도서관
+ idx = 50;
+ _searchService.AddSearcher(new KwangjuCityEduLibrarySearcher(idx++, "MD", "중앙도서관"));
+ _searchService.AddSearcher(new KwangjuCityEduLibrarySearcher(idx++, "MF", "분관최상준도서관"));
+ _searchService.AddSearcher(new KwangjuCityEduLibrarySearcher(idx++, "ME", "송정다가치문화도서관"));
+ _searchService.AddSearcher(new KwangjuCityEduLibrarySearcher(idx++, "MA", "학생독립운동기념회관"));
+ _searchService.AddSearcher(new KwangjuCityEduLibrarySearcher(idx++, "MC", "학생교육문화회관"));
+ _searchService.AddSearcher(new KwangjuCityEduLibrarySearcher(idx++, "MB", "금호평생교육관"));
+
+ //전남교육청통합도서관
+ idx = 100;
+ //_searchService.AddSearcher(new JunnamEduSearcher(idx++, "ALL", "전체"));
+ _searchService.AddSearcher(new JunnamEduSearcher(idx++, "00146010", "목포"));
+ _searchService.AddSearcher(new JunnamEduSearcher(idx++, "00146007", "나주"));
+ _searchService.AddSearcher(new JunnamEduSearcher(idx++, "00146006", "남평"));
+ _searchService.AddSearcher(new JunnamEduSearcher(idx++, "00146025", "광양"));
+ _searchService.AddSearcher(new JunnamEduSearcher(idx++, "00146008", "담양"));
+ _searchService.AddSearcher(new JunnamEduSearcher(idx++, "00146005", "구례"));
+ _searchService.AddSearcher(new JunnamEduSearcher(idx++, "00146012", "보성"));
+ _searchService.AddSearcher(new JunnamEduSearcher(idx++, "00146013", "벌교"));
+ _searchService.AddSearcher(new JunnamEduSearcher(idx++, "00146023", "화순"));
+ _searchService.AddSearcher(new JunnamEduSearcher(idx++, "00146019", "장흥"));
+ _searchService.AddSearcher(new JunnamEduSearcher(idx++, "00146022", "해남"));
+ _searchService.AddSearcher(new JunnamEduSearcher(idx++, "00146017", "영암"));
+ _searchService.AddSearcher(new JunnamEduSearcher(idx++, "00146011", "무안"));
+ _searchService.AddSearcher(new JunnamEduSearcher(idx++, "00146021", "함평"));
+ _searchService.AddSearcher(new JunnamEduSearcher(idx++, "00146016", "영광"));
+ _searchService.AddSearcher(new JunnamEduSearcher(idx++, "00146018", "장성"));
+ _searchService.AddSearcher(new JunnamEduSearcher(idx++, "00146020", "진도"));
+ _searchService.AddSearcher(new JunnamEduSearcher(idx++, "00146003", "곡성"));
+ _searchService.AddSearcher(new JunnamEduSearcher(idx++, "00146059", "학생교육문화회관"));
+ _searchService.AddSearcher(new JunnamEduSearcher(idx++, "00146042", "광양평생"));
+ _searchService.AddSearcher(new JunnamEduSearcher(idx++, "00146002", "고흥평생"));
+ _searchService.AddSearcher(new JunnamEduSearcher(idx++, "00346002", "교육연수원"));
+ _searchService.AddSearcher(new JunnamEduSearcher(idx++, "00324008", "교육연구정보원"));
+ _searchService.AddSearcher(new JunnamEduSearcher(idx++, "00346030", "전라남도국제교육원"));
+ _searchService.AddSearcher(new JunnamEduSearcher(idx++, "00146180", "순천만생태문화교육원"));
+
+ //전남교육청행정자료실
+ idx = 150;
+ _searchService.AddSearcher(new JunnamEduJiheaNuriSearcher(idx++, "00324010", "지혜누리"));
+
+ //여수시립
+ idx = 200;
+ _searchService.AddSearcher(new YeosuLibSearcher(idx++, "MG", "여수이순신도서관"));
+ _searchService.AddSearcher(new YeosuLibSearcher(idx++, "MA", "여수시립쌍봉도서관"));
+ _searchService.AddSearcher(new YeosuLibSearcher(idx++, "MB", "여수시립현암도서관"));
+ _searchService.AddSearcher(new YeosuLibSearcher(idx++, "MC", "여수시립환경도서관"));
+ _searchService.AddSearcher(new YeosuLibSearcher(idx++, "MD", "여수시립돌산도서관"));
+ _searchService.AddSearcher(new YeosuLibSearcher(idx++, "ME", "여수시립소라도서관"));
+ _searchService.AddSearcher(new YeosuLibSearcher(idx++, "MF", "여수시립율촌도서관"));
+ _searchService.AddSearcher(new YeosuLibSearcher(idx++, "PA", "거문도은빛바다도서관"));
+ _searchService.AddSearcher(new YeosuLibSearcher(idx++, "PB", "치매안심센터작은도서관"));
+ _searchService.AddSearcher(new YeosuLibSearcher(idx++, "PC", "청솔글누리작은도서관"));
+ _searchService.AddSearcher(new YeosuLibSearcher(idx++, "PD", "동부도시보건작은도서관"));
+ _searchService.AddSearcher(new YeosuLibSearcher(idx++, "PE", "화양열린작은도서관"));
+ _searchService.AddSearcher(new YeosuLibSearcher(idx++, "PF", "여문늘벗작은도서관"));
+ _searchService.AddSearcher(new YeosuLibSearcher(idx++, "PH", "국동작은도서관"));
+ _searchService.AddSearcher(new YeosuLibSearcher(idx++, "SA", "아주타운아파트작은도서관"));
+ _searchService.AddSearcher(new YeosuLibSearcher(idx++, "SB", "책이랑나랑작은도서관"));
+ _searchService.AddSearcher(new YeosuLibSearcher(idx++, "SC", "현천작은도서관"));
+ _searchService.AddSearcher(new YeosuLibSearcher(idx++, "SE", "꿈꾸는영어전문작은도서관"));
+ _searchService.AddSearcher(new YeosuLibSearcher(idx++, "SF", "학마을작은도서관"));
+ _searchService.AddSearcher(new YeosuLibSearcher(idx++, "SG", "웅천지웰작은도서관"));
+ _searchService.AddSearcher(new YeosuLibSearcher(idx++, "SH", "한려작은도서관"));
+ _searchService.AddSearcher(new YeosuLibSearcher(idx++, "SJ", "주은금고작은도서관"));
+ _searchService.AddSearcher(new YeosuLibSearcher(idx++, "SK", "광림작은도서관"));
+ _searchService.AddSearcher(new YeosuLibSearcher(idx++, "SM", "민들레작은도서관"));
+ _searchService.AddSearcher(new YeosuLibSearcher(idx++, "SO", "원앙작은도서관"));
+ _searchService.AddSearcher(new YeosuLibSearcher(idx++, "SP", "푸른정원작은도서관"));
+ _searchService.AddSearcher(new YeosuLibSearcher(idx++, "SR", "로얄골드빌작은도서관"));
+ _searchService.AddSearcher(new YeosuLibSearcher(idx++, "SS", "꿈을키우는작은도서관"));
+ //_searchService.AddSearcher(new YeosuLibSearcher(idx++, "ST", "KLAS MANAGEMENT"));
+ _searchService.AddSearcher(new YeosuLibSearcher(idx++, "SY", "신기부영작은도서관"));
+ _searchService.AddSearcher(new YeosuLibSearcher(idx++, "SZ", "국동365열린도서관"));
+ _searchService.AddSearcher(new YeosuLibSearcher(idx++, "TA", "지웰2차 작은도서관"));
+ _searchService.AddSearcher(new YeosuLibSearcher(idx++, "TB", "이편한 작은도서관"));
+ _searchService.AddSearcher(new YeosuLibSearcher(idx++, "TC", "채움늘 작은도서관"));
+ _searchService.AddSearcher(new YeosuLibSearcher(idx++, "TD", "웅천글꽃 작은도서관"));
+
+ //고흥군립
+ idx = 300;
+ _searchService.AddSearcher(new GoheungLibSearcher(idx++, "MA", "고흥군립중앙도서관"));
+ _searchService.AddSearcher(new GoheungLibSearcher(idx++, "MB", "고흥군립남부도서관"));
+ _searchService.AddSearcher(new GoheungLibSearcher(idx++, "MC", "고흥군립북부도서관"));
+ _searchService.AddSearcher(new GoheungLibSearcher(idx++, "MD", "과역작은도서관"));
+ _searchService.AddSearcher(new GoheungLibSearcher(idx++, "ME", "나로한빛 작은도서관"));
+ _searchService.AddSearcher(new GoheungLibSearcher(idx++, "MF", "도화푸른꿈 작은도서관"));
+ _searchService.AddSearcher(new GoheungLibSearcher(idx++, "MG", "포두작은도서관"));
+
+ //광주북구 통합도서관
+ idx = 400;
+ _searchService.AddSearcher(new BukguLibSearcher(idx++, "101", "스마트도서관1호점"));
+ _searchService.AddSearcher(new BukguLibSearcher(idx++, "102", "스마트도서관2호점"));
+ _searchService.AddSearcher(new BukguLibSearcher(idx++, "105", "스마트도서관3호점"));
+
+ //광주북구 작은도서관
+ _searchService.AddSearcher(new BukguSlibSearcher(idx++, "729038", "꿈나무작은도서관"));
+ _searchService.AddSearcher(new BukguSlibSearcher(idx++, "129094", "동림동작은도서관"));
+ _searchService.AddSearcher(new BukguSlibSearcher(idx++, "729046", "두암1동작은도서관"));
+ _searchService.AddSearcher(new BukguSlibSearcher(idx++, "129069", "두암2동작은도서관"));
+ _searchService.AddSearcher(new BukguSlibSearcher(idx++, "129068", "두암3동작은도서관"));
+ _searchService.AddSearcher(new BukguSlibSearcher(idx++, "129056", "매곡동작은도서관"));
+ _searchService.AddSearcher(new BukguSlibSearcher(idx++, "129074", "문흥2동작은도서관"));
+ _searchService.AddSearcher(new BukguSlibSearcher(idx++, "129054", "삼각동작은도서관"));
+ _searchService.AddSearcher(new BukguSlibSearcher(idx++, "729068", "시화문화마을작은도서관"));
+ _searchService.AddSearcher(new BukguSlibSearcher(idx++, "129057", "신안동작은도서관"));
+ _searchService.AddSearcher(new BukguSlibSearcher(idx++, "129220", "양산동주민작은도서관"));
+ _searchService.AddSearcher(new BukguSlibSearcher(idx++, "129085", "오치1동작은도서관"));
+ _searchService.AddSearcher(new BukguSlibSearcher(idx++, "129070", "오치2동작은도서관"));
+ _searchService.AddSearcher(new BukguSlibSearcher(idx++, "129055", "용봉작은도서관"));
+ _searchService.AddSearcher(new BukguSlibSearcher(idx++, "129064", "운암1동작은도서관"));
+ _searchService.AddSearcher(new BukguSlibSearcher(idx++, "129071", "운암2동작은도서관"));
+ _searchService.AddSearcher(new BukguSlibSearcher(idx++, "129058", "운암3동작은도서관"));
+ _searchService.AddSearcher(new BukguSlibSearcher(idx++, "729175", "임동작은도서관"));
+ _searchService.AddSearcher(new BukguSlibSearcher(idx++, "729085", "중앙동작은도서관"));
+ _searchService.AddSearcher(new BukguSlibSearcher(idx++, "129075", "중흥1동작은도서관"));
+ _searchService.AddSearcher(new BukguSlibSearcher(idx++, "729155", "징검다리작은도서관"));
+ _searchService.AddSearcher(new BukguSlibSearcher(idx++, "129065", "풍향동작은도서관"));
+ _searchService.AddSearcher(new BukguSlibSearcher(idx++, "729154", "햇살마루작은도서관"));
+
+ //광주북구 공공도서관
+ _searchService.AddSearcher(new BukguPublicLibSearcher(idx++, "124010", "일곡도서관"));
+ _searchService.AddSearcher(new BukguPublicLibSearcher(idx++, "129131", "운암도서관"));
+ _searchService.AddSearcher(new BukguPublicLibSearcher(idx++, "129225", "양산도서관"));
+ _searchService.AddSearcher(new BukguPublicLibSearcher(idx++, "129226", "중흥도서관"));
+ _searchService.AddSearcher(new BukguPublicLibSearcher(idx++, "129227", "신용도서관"));
+
+ //전북교육청도서관
+ idx = 700;
+ _searchService.AddSearcher(new JeonbukEduLibSearcher(idx++, "lib_MV", "고창도서관"));
+ _searchService.AddSearcher(new JeonbukEduLibSearcher(idx++, "lib_MB", "군산학생교육문화관"));
+ _searchService.AddSearcher(new JeonbukEduLibSearcher(idx++, "lib_MC", "군산학생교육문화관 대야분관"));
+ _searchService.AddSearcher(new JeonbukEduLibSearcher(idx++, "lib_MH", "김제학생교육문화관"));
+ _searchService.AddSearcher(new JeonbukEduLibSearcher(idx++, "lib_MJ", "김제학생교육문화관 금산분관"));
+ _searchService.AddSearcher(new JeonbukEduLibSearcher(idx++, "lib_MF", "남원학생교육문화관"));
+ _searchService.AddSearcher(new JeonbukEduLibSearcher(idx++, "lib_MG", "남원학생교육문화관운봉분관"));
+ _searchService.AddSearcher(new JeonbukEduLibSearcher(idx++, "lib_MR", "무주도서관"));
+ _searchService.AddSearcher(new JeonbukEduLibSearcher(idx++, "lib_MK", "부안학생교육문화관"));
+ _searchService.AddSearcher(new JeonbukEduLibSearcher(idx++, "lib_MU", "순창도서관"));
+ _searchService.AddSearcher(new JeonbukEduLibSearcher(idx++, "lib_MP", "완주도서관"));
+ _searchService.AddSearcher(new JeonbukEduLibSearcher(idx++, "lib_MD", "익산학생교육문화관"));
+ _searchService.AddSearcher(new JeonbukEduLibSearcher(idx++, "lib_ME", "익산학생교육문화관 함열분관"));
+ _searchService.AddSearcher(new JeonbukEduLibSearcher(idx++, "lib_MT", "임실도서관"));
+ _searchService.AddSearcher(new JeonbukEduLibSearcher(idx++, "lib_MS", "장수도서관"));
+ _searchService.AddSearcher(new JeonbukEduLibSearcher(idx++, "lib_MA", "전주학생교육문화관"));
+ _searchService.AddSearcher(new JeonbukEduLibSearcher(idx++, "lib_MQ", "진안도서관"));
+ _searchService.AddSearcher(new JeonbukEduLibSearcher(idx++, "lib_MN", "정읍학생복지회관"));
+
+ //광주광산구 통합도서관
+ idx = 800;
+ _searchService.AddSearcher(new GwangsanLibSearcher(idx++, "JM", "장덕도서관"));
+ _searchService.AddSearcher(new GwangsanLibSearcher(idx++, "MB", "이야기꽃도서관"));
+ _searchService.AddSearcher(new GwangsanLibSearcher(idx++, "MA", "첨단도서관"));
+ _searchService.AddSearcher(new GwangsanLibSearcher(idx++, "BR", "신가도서관"));
+ _searchService.AddSearcher(new GwangsanLibSearcher(idx++, "WN", "운남어린이도서관"));
+ _searchService.AddSearcher(new GwangsanLibSearcher(idx++, "MC", "스마트도서관"));
+ _searchService.AddSearcher(new GwangsanLibSearcher(idx++, "CA", "첨단빛누리작은도서관"));
+ _searchService.AddSearcher(new GwangsanLibSearcher(idx++, "CB", "사랑나눔작은도서관"));
+ _searchService.AddSearcher(new GwangsanLibSearcher(idx++, "CC", "혜윰마루작은도서관"));
+ _searchService.AddSearcher(new GwangsanLibSearcher(idx++, "CD", "책놀터작은도서관"));
+ _searchService.AddSearcher(new GwangsanLibSearcher(idx++, "CE", "우산동작은도서관"));
+ _searchService.AddSearcher(new GwangsanLibSearcher(idx++, "CF", "더불어락작은도서관"));
+ _searchService.AddSearcher(new GwangsanLibSearcher(idx++, "CG", "임곡꿈쟁이작은도서관"));
+ _searchService.AddSearcher(new GwangsanLibSearcher(idx++, "CH", "유노윤호HUG작은도서관"));
+ _searchService.AddSearcher(new GwangsanLibSearcher(idx++, "CI", "늘품작은도서관"));
+ _searchService.AddSearcher(new GwangsanLibSearcher(idx++, "CJ", "왁자지껄수다놀이터작은도서관"));
+ _searchService.AddSearcher(new GwangsanLibSearcher(idx++, "CK", "송정다누리작은도서관"));
+
+ //목포시립도서관
+ idx = 900;
+ _searchService.AddSearcher(new MokpoLibSearcher(idx++, "MA", "목포시립도서관"));
+ _searchService.AddSearcher(new MokpoLibSearcher(idx++, "MX", "목포어울림도서관"));
+ _searchService.AddSearcher(new MokpoLibSearcher(idx++, "MJ", "목포어린이도서관"));
+ _searchService.AddSearcher(new MokpoLibSearcher(idx++, "MQ", "목포영어도서관"));
+
+ _searchService.AddSearcher(new MokpoLibSearcher(idx++, "ME", "꿈나무작은도서관"));
+ _searchService.AddSearcher(new MokpoLibSearcher(idx++, "MB", "꿈돌이작은도서관"));
+ _searchService.AddSearcher(new MokpoLibSearcher(idx++, "MS", "노을작은도서관"));
+ _searchService.AddSearcher(new MokpoLibSearcher(idx++, "MW", "늘푸른작은도서관"));
+ _searchService.AddSearcher(new MokpoLibSearcher(idx++, "MH", "무지개작은도서관"));
+ _searchService.AddSearcher(new MokpoLibSearcher(idx++, "MF", "반딧불작은도서관"));
+ _searchService.AddSearcher(new MokpoLibSearcher(idx++, "MP", "삼학작은도서관"));
+ _searchService.AddSearcher(new MokpoLibSearcher(idx++, "MV", "샛별작은도서관"));
+ _searchService.AddSearcher(new MokpoLibSearcher(idx++, "MO", "소나무작은도서관"));
+ _searchService.AddSearcher(new MokpoLibSearcher(idx++, "MN", "숲속작은도서관"));
+ _searchService.AddSearcher(new MokpoLibSearcher(idx++, "MK", "연꽃작은도서관"));
+ _searchService.AddSearcher(new MokpoLibSearcher(idx++, "MD", "옹달샘작은도서관"));
+ _searchService.AddSearcher(new MokpoLibSearcher(idx++, "MC", "은하수작은도서관"));
+ _searchService.AddSearcher(new MokpoLibSearcher(idx++, "MM", "청개구리작은도서관"));
+ _searchService.AddSearcher(new MokpoLibSearcher(idx++, "MI", "초롱초롱작은도서관"));
+ _searchService.AddSearcher(new MokpoLibSearcher(idx++, "ML", "푸른솔작은도서관"));
+ _searchService.AddSearcher(new MokpoLibSearcher(idx++, "MU", "푸른숲작은도서관"));
+ _searchService.AddSearcher(new MokpoLibSearcher(idx++, "MR", "행복마을작은도서관"));
+ _searchService.AddSearcher(new MokpoLibSearcher(idx++, "MT", "호돌이작은도서관"));
+
+ //순천시립도서관
+ idx = 1000;
+ _searchService.AddSearcher(new SuncheonLibSearcher(idx++, "MA", "삼산도서관"));
+ _searchService.AddSearcher(new SuncheonLibSearcher(idx++, "MB", "그림책도서관"));
+ _searchService.AddSearcher(new SuncheonLibSearcher(idx++, "BR", "연향도서관"));
+ _searchService.AddSearcher(new SuncheonLibSearcher(idx++, "MH", "기적의도서관"));
+ _searchService.AddSearcher(new SuncheonLibSearcher(idx++, "MC", "조례호수도서관"));
+ _searchService.AddSearcher(new SuncheonLibSearcher(idx++, "MJ", "신대도서관"));
+ _searchService.AddSearcher(new SuncheonLibSearcher(idx++, "MK", "어울림도서관"));
+ _searchService.AddSearcher(new SuncheonLibSearcher(idx++, "MD", "해룡농어촌도서관"));
+ _searchService.AddSearcher(new SuncheonLibSearcher(idx++, "MG", "풍덕글마루도서관"));
+ _searchService.AddSearcher(new SuncheonLibSearcher(idx++, "mini", "작은도서관"));
+
+ //광주시립도서관
+ idx = 1100;
+ _searchService.AddSearcher(new GwangjuCityLibSearcher(idx++, "124003", "무등도서관"));
+ _searchService.AddSearcher(new GwangjuCityLibSearcher(idx++, "124004", "사직도서관"));
+ _searchService.AddSearcher(new GwangjuCityLibSearcher(idx++, "124008", "산수도서관"));
+ _searchService.AddSearcher(new GwangjuCityLibSearcher(idx++, "129228", "디지털정보도서관"));
+
+ // 완도군립도서관
+ idx = 1200;
+ _searchService.AddSearcher(new WandoLibSearcher(idx++, "MA", "완도군립도서관"));
+ _searchService.AddSearcher(new WandoLibSearcher(idx++, "MB", "노화공공도서관"));
+ _searchService.AddSearcher(new WandoLibSearcher(idx++, "MC", "금일공공도서관"));
+ _searchService.AddSearcher(new WandoLibSearcher(idx++, "MD", "보길윤선도작은도서관"));
+ _searchService.AddSearcher(new WandoLibSearcher(idx++, "ME", "군외동백숲작은도서관"));
+ _searchService.AddSearcher(new WandoLibSearcher(idx++, "MF", "도담도담작은도서관"));
+
+ // 익산시통합도서관
+ idx = 1300;
+ _searchService.AddSearcher(new IksanLibSearcher(idx++, "MO", "모현도서관"));
+ _searchService.AddSearcher(new IksanLibSearcher(idx++, "BR", "영등도서관"));
+ _searchService.AddSearcher(new IksanLibSearcher(idx++, "MA", "마동도서관"));
+ _searchService.AddSearcher(new IksanLibSearcher(idx++, "BU", "부송도서관"));
+ _searchService.AddSearcher(new IksanLibSearcher(idx++, "MC", "유천도서관"));
+ _searchService.AddSearcher(new IksanLibSearcher(idx++, "HW", "황등도서관"));
+ _searchService.AddSearcher(new IksanLibSearcher(idx++, "MB", "금마도서관"));
+ _searchService.AddSearcher(new IksanLibSearcher(idx++, "SX", "모인여행숲도서관"));
+ _searchService.AddSearcher(new IksanLibSearcher(idx++, "SW", "수도산그림책숲도서관"));
+ _searchService.AddSearcher(new IksanLibSearcher(idx++, "UQ", "스마트도서관"));
+ _searchService.AddSearcher(new IksanLibSearcher(idx++, "SI", "글마루작은도서관"));
+ _searchService.AddSearcher(new IksanLibSearcher(idx++, "SD", "깊은샘작은도서관"));
+ _searchService.AddSearcher(new IksanLibSearcher(idx++, "SE", "꿈꾸는뜰작은도서관"));
+ _searchService.AddSearcher(new IksanLibSearcher(idx++, "SO", "꿈드림작은도서관"));
+ _searchService.AddSearcher(new IksanLibSearcher(idx++, "SK", "낭산작은도서관"));
+ _searchService.AddSearcher(new IksanLibSearcher(idx++, "SB", "동산작은도서관"));
+ _searchService.AddSearcher(new IksanLibSearcher(idx++, "SJ", "모현뜰작은도서관"));
+ _searchService.AddSearcher(new IksanLibSearcher(idx++, "SH", "배산작은도서관"));
+ _searchService.AddSearcher(new IksanLibSearcher(idx++, "SC", "봄나루작은도서관"));
+ _searchService.AddSearcher(new IksanLibSearcher(idx++, "SF", "부송작은도서관"));
+ _searchService.AddSearcher(new IksanLibSearcher(idx++, "SA", "삼성동어린이도서관"));
+ _searchService.AddSearcher(new IksanLibSearcher(idx++, "SQ", "어양작은도서관"));
+ _searchService.AddSearcher(new IksanLibSearcher(idx++, "SP", "어울림작은도서관"));
+ _searchService.AddSearcher(new IksanLibSearcher(idx++, "SG", "예솔작은도서관"));
+ _searchService.AddSearcher(new IksanLibSearcher(idx++, "SL", "왕궁작은도서관"));
+ _searchService.AddSearcher(new IksanLibSearcher(idx++, "SN", "울림작은도서관"));
+ _searchService.AddSearcher(new IksanLibSearcher(idx++, "SM", "행복세상작은도서관"));
+ _searchService.AddSearcher(new IksanLibSearcher(idx++, "SR", "그루터기작은도서관"));
+ _searchService.AddSearcher(new IksanLibSearcher(idx++, "SS", "늘봄작은도서관"));
+ _searchService.AddSearcher(new IksanLibSearcher(idx++, "SU", "망성아담작은도서관"));
+ _searchService.AddSearcher(new IksanLibSearcher(idx++, "SV", "함라등대작은도서관"));
+ _searchService.AddSearcher(new IksanLibSearcher(idx++, "SY", "무학정원작은도서관"));
+
+ // 안산시중앙도서관
+ //idx = 1400;
+ //_searchService.AddSearcher(new AnsanLibSearcher(idx++, "MA", "중앙도서관"));
+ //_searchService.AddSearcher(new AnsanLibSearcher(idx++, "MD", "감골도서관"));
+ //_searchService.AddSearcher(new AnsanLibSearcher(idx++, "MB", "관산도서관"));
+ //_searchService.AddSearcher(new AnsanLibSearcher(idx++, "ME", "단원어린이도서관"));
+ //_searchService.AddSearcher(new AnsanLibSearcher(idx++, "ND", "대부도서관"));
+ //_searchService.AddSearcher(new AnsanLibSearcher(idx++, "NF", "미디어도서관"));
+ //_searchService.AddSearcher(new AnsanLibSearcher(idx++, "MH", "반월도서관"));
+ //_searchService.AddSearcher(new AnsanLibSearcher(idx++, "MX", "본오도서관"));
+ //_searchService.AddSearcher(new AnsanLibSearcher(idx++, "ML", "부곡도서관"));
+ //_searchService.AddSearcher(new AnsanLibSearcher(idx++, "NK", "상록수도서관"));
+ //_searchService.AddSearcher(new AnsanLibSearcher(idx++, "MF", "상록어린이도서관"));
+ //_searchService.AddSearcher(new AnsanLibSearcher(idx++, "NC", "선부도서관"));
+ //_searchService.AddSearcher(new AnsanLibSearcher(idx++, "MC", "성포도서관"));
+ //_searchService.AddSearcher(new AnsanLibSearcher(idx++, "MS", "수암도서관"));
+ //_searchService.AddSearcher(new AnsanLibSearcher(idx++, "MR", "원고잔도서관"));
+ //_searchService.AddSearcher(new AnsanLibSearcher(idx++, "NJ", "월피예술도서관"));
+
+ }
+
this.tb_SearchTarget.Items.Clear();
- // this.tb_SearchTarget.Items.Add("-- 검색대상을 선택하세요 --");
- foreach (var item in _searchService.GetAvailableSites().OrderBy(t=>t))
+ // this.tb_SearchTarget.Items.Add("-- 검색대상을 선택하세요 --");
+ foreach (var item in _searchService.GetAvailableSites().OrderBy(t => t))
tb_SearchTarget.Items.Add(item);
-
+ if (PUB.setting.LastSearchTarget.isEmpty() == false)
+ tb_SearchTarget.Text = PUB.setting.LastSearchTarget;
+
+ this.Text = $"복본조사(New:{_searchService.GetAvailableSites().Count})";
}
private void dataGridView1_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
@@ -97,6 +358,7 @@ namespace WindowsFormsApp1.Mac
//크롤링
InitializeChromeDriver();
+ tb_SearchTarget.Enabled = true;
}
@@ -220,10 +482,9 @@ namespace WindowsFormsApp1.Mac
{
Skill_Grid sg = new Skill_Grid();
sg.Excel_to_DataGridView(sender, e);
-
- SearchCount.Value = dv1.Rows.Count;
}
+
async private void btn_Start_Click(object sender, EventArgs e)
{
var searcher = this.GetSearcher();
@@ -233,14 +494,9 @@ namespace WindowsFormsApp1.Mac
return;
}
- SearchCount.Value = dv1.Rows.Count; //250619
- RowCount = 0; //250619
-
dv1.CurrentCell = dv1.Rows[0].Cells[0];
- int SCount = Convert.ToInt32(SearchCount.Value);
-
- if (DateTime.Now > new DateTime(2025, 09, 30))
+ if (GetDemoRunAuth == false)
{
UTIL.MsgE("테스트 기간이 종료되었습니다\n개발자 문의 하세요");
return;
@@ -254,10 +510,12 @@ namespace WindowsFormsApp1.Mac
try
{
+ PUB.setting.LastSearchTarget = this.tb_SearchTarget.Text.Trim();
+ PUB.setting.Save();
this._isSearching = true;
btn_Start.Enabled = false;
- btn_Stop.Enabled = false;
+ btn_Stop.Enabled = true;
await searcher.StartDriver(this.chkShowBrowser.Checked);
byte searchopt = 0; //전체검색
if (radTargetEmpty.Checked) searchopt = 1;
@@ -278,7 +536,7 @@ namespace WindowsFormsApp1.Mac
if (this._isSearching == false)
{
drow.Cells["dvc_remark"].Value = "Cancel";
- continue;
+ break;
}
dv1.CurrentCell = drow.Cells[0];
@@ -340,7 +598,7 @@ namespace WindowsFormsApp1.Mac
}
}
- if (retry == false && chkRetryErrData.Checked)
+ if (_isSearching == true && retry == false && chkRetryErrData.Checked)
{
retry = true;
radTargetErr.Checked = true;
@@ -371,11 +629,8 @@ namespace WindowsFormsApp1.Mac
btn_Start.Enabled = true;
this._isSearching = false;
}
-
-
}
- int RowCount = 0;
///
@@ -521,7 +776,7 @@ namespace WindowsFormsApp1.Mac
dv1.Rows[a].DefaultCellStyle.ForeColor = Color.Black;
dv1.Rows[a].DefaultCellStyle.BackColor = Color.White;
dv1.Rows[a].Cells["Count"].Value = "";
- RowCount = 0;
+ dv1.Rows[a].Cells["dvc_remark"].Value = "";
}
}
@@ -540,7 +795,7 @@ namespace WindowsFormsApp1.Mac
{
if (this.tb_SearchTarget.SelectedIndex < 0) return null;
return this._searchService.Get(tb_SearchTarget.Text);
-
+
}
private void btn_SiteDenote_Click(object sender, EventArgs e)
@@ -567,10 +822,12 @@ namespace WindowsFormsApp1.Mac
var searcher = this._searchService.Get(this.tb_SearchTarget.Text);
if (searcher == null)
{
+ chkShowBrowser.Enabled = true;
lbSite.Text = "-- site --";
return;
}
- this.lbSite.Text = searcher.SiteUrl;
+ chkShowBrowser.Enabled = !searcher.HttpApiMode;
+ this.lbSite.Text = searcher.SiteUrl;
}
}
}
diff --git a/unimarc/unimarc/마크/DLS_Copy.cs b/unimarc/unimarc/마크/DLS_Copy.cs
index 159ea67..ee9b8c3 100644
--- a/unimarc/unimarc/마크/DLS_Copy.cs
+++ b/unimarc/unimarc/마크/DLS_Copy.cs
@@ -9,6 +9,7 @@ using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using System.Windows.Forms;
+using UniMarc;
using UniMarc.SearchModel;
namespace WindowsFormsApp1.Mac
@@ -179,6 +180,8 @@ namespace WindowsFormsApp1.Mac
btn_Search.Enabled = true;
+ PUB.setting.LastSearchTargetDLS = tb_SearchClient.Text.Trim();
+ PUB.setting.Save();
//로그인
_searcher = new DLSSearcher(50);