망원경에 연결

15948 단어


설정 환경



윈도우 PC에 망원경 환경을 설정해 보았습니다. wsl2와 우분투를 설치했습니다. 나도 지시에 따랐다.
문서의. systemclt start init.d와 같은 일부 명령이 실패했습니다.

그런 다음 이전 MacBook Air를 사용해 보았습니다. 도커는 잘 실행됩니다.


하지만 내가 했을 때npm install 몇 가지 경고가 있었고 내가 달렸을 때npm start 오류가 발생했습니다.



wsl로 돌아가서 RedisElasticsearch를 기본 응용 프로그램으로 설치해야 한다는 것이 답답했습니다. 그리고 백그라운드 데이먼으로 프로그램을 실행하는 방법을 배웠습니다.

Redis-server
ctrl-z
bg


코드를 변경하십시오.



내 linkChecker는 파일에서 URL을 확인할 수 있으며 내 프로그램의 논리는 파일 내용을 문자열로 처리합니다. 그래서 각 게시물의 본문을 문자열로 변환해야 했습니다.
URLhttp:localhost:3000에서 확인하기 위해 하나의 플래그 변수를 추가하고 모든 게시물을 문자열로 추출합니다. 제가 변경한 사항은 다음과 같습니다.

diff --git a/helpers.go b/helpers.go
index 74ffce1..6c2a61e 100644
--- a/helpers.go
+++ b/helpers.go
@@ -17,6 +17,11 @@ import (
    "mvdan.cc/xurls/v2"
 )

+type Post struct {
+   ID  string
+   URL string
+}
+
 // extract all urls from the string and return them as a slice (array)
 func extractURL(str string) []string {
    rxStrict := xurls.Strict()
@@ -24,6 +29,37 @@ func extractURL(str string) []string {
    return foundUrls
 }

+func parseFromTelescope() []string {
+   var allPostBody []byte
+   resp, err := http.Get("http://localhost:3000/posts")
+   if err != nil {
+       panic(err)
+   }
+   defer resp.Body.Close()
+
+   body, err := ioutil.ReadAll(resp.Body)
+   if err != nil {
+       panic(err)
+   }
+   var posts []Post
+   if err := json.Unmarshal(body, &posts); err != nil {
+       panic(err)
+   }
+   for _, post := range posts {
+       resp, err := http.Get("http://localhost:3000" + post.URL)
+       if err != nil {
+           log.Fatal(err)
+       }
+       defer resp.Body.Close()
+       body, err := ioutil.ReadAll(resp.Body)
+       if err != nil {
+           log.Fatal(err)
+       }
+       allPostBody = append(allPostBody, body...)
+   }
+   return extractURL(string(allPostBody))
+}
+
 //Function to parse ignore URLs from provided ignore file path
 func parseIgnoreURL(ignoreFilePath string) []string {
    var ignoreURLs []string
diff --git a/urlChecker.go b/urlChecker.go
index 9c97457..41ab8c4 100644
--- a/urlChecker.go
+++ b/urlChecker.go
@@ -25,6 +25,8 @@ func main() {
    // ignore url flag
    ignoreFlag := flag.BoolP("ignore", "i", false, "ignore url patterns")

+   telescopeFlag := flag.BoolP("telescope", "t", false, "check from telescope")
+
    flag.Parse()
    //deal with non-file path, giving usage message
    if len(os.Args) == 1 {
@@ -113,11 +115,27 @@ func main() {
            return
        }

+       if *telescopeFlag {
+           var urls []string
+           urls = parseFromTelescope()
+           if *jflag {
+
+               checkURLJson(urls)
+           } else {
+
+               fmt.Println()
+               fmt.Println(">>  ***** UrlChecker is working now...... *****  <<")
+               fmt.Println("--------------------------------------------------------------------------------------------------")
+               checkURL(urls)
+           }
+       }
+
        //use for loop to deal with multiple file paths
        i := 1
        for i+1 <= len(os.Args) {

            var urls []string
+
            if os.Args[i][0] != '-' {

                //call functions to check the availability of each url

좋은 웹페이지 즐겨찾기