まだ
このコミットが含まれているのは:
コミット
dab171d533
|
@ -17,7 +17,7 @@ func getpage (url string, path string) {
|
|||
defer curl.Body.Close()
|
||||
body, err2 := io.ReadAll(curl.Body)
|
||||
if err2 != nil {
|
||||
fmt.Println("読込エラ:", err2)
|
||||
fmt.Println("読込エラー:", err2)
|
||||
return
|
||||
}
|
||||
|
||||
|
|
59
scanpage.go
59
scanpage.go
|
@ -7,13 +7,14 @@ import (
|
|||
"net/http"
|
||||
"io"
|
||||
"regexp"
|
||||
"errors"
|
||||
)
|
||||
|
||||
func scanpage (path string, domain string, thisdomain string) {
|
||||
func scanpage (path string, domain string, thisdomain string) error {
|
||||
fn, err := os.ReadFile(path + "/index.html")
|
||||
if err != nil {
|
||||
fmt.Println("ファイルを開けられなかった:", err)
|
||||
return
|
||||
fmt.Println(err)
|
||||
return errors.New("ファイルを開けられなかった:")
|
||||
}
|
||||
|
||||
/* 削除 */
|
||||
|
@ -23,7 +24,17 @@ func scanpage (path string, domain string, thisdomain string) {
|
|||
var video = regexp.MustCompile(`(<video.*</video>)`).ReplaceAllString(string(audio), "")
|
||||
var iframe = regexp.MustCompile(`(<iframe.*</iframe>)`).ReplaceAllString(string(video), "")
|
||||
/* 追加ダウンロード+ローカル化 */
|
||||
var ass = regexp.MustCompile(`(<img.*src="|<meta.*content="|<link.*href=")(.*\.)(png|webm|jpg|jpeg|gif|css)`)
|
||||
var ass = regexp.MustCompile(`(<img.*src="|<meta.*content="|<link.*href=")(.*\.)(png|webm|jpg|jpeg|gif|css|js)`)
|
||||
spath := "static/"
|
||||
if !strings.HasSuffix(path, "/") {
|
||||
spath = "/" + spath
|
||||
}
|
||||
spath = path + spath
|
||||
err1 := os.Mkdir(spath, 0755)
|
||||
if err1 != nil {
|
||||
fmt.Println(err1)
|
||||
return errors.New("失敗:")
|
||||
}
|
||||
|
||||
for _, cssx := range ass.FindAllString(iframe, -1) {
|
||||
s := regexp.MustCompile(`(.*src="|.*content="|.*href=")`).Split(cssx, -1)
|
||||
|
@ -37,10 +48,10 @@ func scanpage (path string, domain string, thisdomain string) {
|
|||
if filename == "" {
|
||||
continue
|
||||
}
|
||||
f, err := os.Create(path + "/" + filename)
|
||||
f, err := os.Create(spath + filename)
|
||||
if err != nil {
|
||||
fmt.Println("2. 作成失敗:", err)
|
||||
return
|
||||
fmt.Println(err)
|
||||
return errors.New("2. 作成失敗:")
|
||||
}
|
||||
defer f.Close()
|
||||
|
||||
|
@ -50,23 +61,39 @@ func scanpage (path string, domain string, thisdomain string) {
|
|||
}
|
||||
i, err := http.Get(af)
|
||||
if err != nil {
|
||||
fmt.Println("2. ダウンロードに失敗:", err)
|
||||
return
|
||||
fmt.Println(err)
|
||||
return errors.New("2. ダウンロードに失敗:")
|
||||
}
|
||||
defer i.Body.Close()
|
||||
_, err = io.Copy(f, i.Body)
|
||||
if err != nil {
|
||||
fmt.Println("2. コピーに失敗:", err)
|
||||
return
|
||||
if strings.HasSuffix(filename, "css") || strings.HasSuffix(filename, "js") {
|
||||
body, err := io.ReadAll(i.Body)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
return errors.New("2. 読込エラー:")
|
||||
}
|
||||
|
||||
_, err2 := f.WriteString(string(body))
|
||||
if err2 != nil {
|
||||
fmt.Println(err)
|
||||
return errors.New("2. ファイル書込エラー:")
|
||||
}
|
||||
} else {
|
||||
_, err = io.Copy(f, i.Body)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
return errors.New("2. コピーに失敗:")
|
||||
}
|
||||
}
|
||||
|
||||
iframe = strings.Replace(iframe, ss[0], "/" + filename, -1)
|
||||
iframe = strings.Replace(iframe, ss[0], "/static/" + filename, -1)
|
||||
}
|
||||
|
||||
err := os.WriteFile(path + "/index.html", []byte(iframe), 0644)
|
||||
if err != nil {
|
||||
fmt.Println("書込に失敗")
|
||||
return
|
||||
fmt.Println(err)
|
||||
return errors.New("書込に失敗")
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
|
読み込み中…
新しいイシューから参照