망원경에 연결
설정 환경
윈도우 PC에 망원경 환경을 설정해 보았습니다. wsl2와 우분투를 설치했습니다. 나도 지시에 따랐다.
문서의.
systemclt start
init.d
와 같은 일부 명령이 실패했습니다.그런 다음 이전 MacBook Air를 사용해 보았습니다. 도커는 잘 실행됩니다.
하지만 내가 했을 때
npm install
몇 가지 경고가 있었고 내가 달렸을 때npm start
오류가 발생했습니다.wsl로 돌아가서
Redis
및 Elasticsearch
를 기본 응용 프로그램으로 설치해야 한다는 것이 답답했습니다. 그리고 백그라운드 데이먼으로 프로그램을 실행하는 방법을 배웠습니다.Redis-server
ctrl-z
bg
코드를 변경하십시오.
내 linkChecker는 파일에서 URL을 확인할 수 있으며 내 프로그램의 논리는 파일 내용을 문자열로 처리합니다. 그래서 각 게시물의 본문을 문자열로 변환해야 했습니다.
URL
http: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
Reference
이 문제에 관하여(망원경에 연결), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/isabellaliu77/telescope-1oia텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)