parent
							
								
									31419dc003
								
							
						
					
					
						commit
						ebeef65f81
					
				| @ -0,0 +1,7 @@ | |||||||
|  | LinuxOS=CGO_ENABLED=0 GOOS=linux GOARCH=amd64
 | ||||||
|  | MacOS=CGO_ENABLED=0 GOOS=darwin GOARCH=amd64
 | ||||||
|  | Windows=CGO_ENABLED=1 CC=x86_64-w64-mingw32-gcc CXX=x86_64-w64-mingw32-g++ GOOS=windows GOARCH=amd64
 | ||||||
|  | DATE=$(shell date +'%Y-%m-%d %H:%M:%S')
 | ||||||
|  | 
 | ||||||
|  | win: | ||||||
|  | 		$(Windows) go build -o /Users/finkployd/Desktop/hack.exe main.go
 | ||||||
| @ -0,0 +1,138 @@ | |||||||
|  | package core | ||||||
|  | 
 | ||||||
|  | import ( | ||||||
|  | 	"bytes" | ||||||
|  | 	"encoding/json" | ||||||
|  | 	"hack-browser-data/log" | ||||||
|  | 	"hack-browser-data/utils" | ||||||
|  | 	"os" | ||||||
|  | 
 | ||||||
|  | 	"github.com/gocarina/gocsv" | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | func (b BrowserData) OutPutCsv(dir, format string) error { | ||||||
|  | 	switch { | ||||||
|  | 	case len(b.BookmarkSlice) != 0: | ||||||
|  | 		filename := utils.FormatFileName(dir, utils.Bookmarks, format) | ||||||
|  | 		file, err := os.OpenFile(filename, os.O_RDWR|os.O_CREATE|os.O_TRUNC|os.O_APPEND, 0644) | ||||||
|  | 		defer file.Close() | ||||||
|  | 		if err != nil { | ||||||
|  | 			log.Errorf("create file %s fail", filename) | ||||||
|  | 		} | ||||||
|  | 		err = gocsv.MarshalFile(b.BookmarkSlice, file) | ||||||
|  | 		if err != nil { | ||||||
|  | 			log.Error(err) | ||||||
|  | 		} | ||||||
|  | 		fallthrough | ||||||
|  | 	case len(b.LoginDataSlice) != 0: | ||||||
|  | 		filename := utils.FormatFileName(dir, utils.LoginData, format) | ||||||
|  | 		file, err := os.OpenFile(filename, os.O_RDWR|os.O_CREATE|os.O_TRUNC|os.O_APPEND, 0644) | ||||||
|  | 		defer file.Close() | ||||||
|  | 		if err != nil { | ||||||
|  | 			log.Errorf("create file %s fail", filename) | ||||||
|  | 		} | ||||||
|  | 		err = gocsv.MarshalFile(b.LoginDataSlice, file) | ||||||
|  | 		if err != nil { | ||||||
|  | 			log.Error(err) | ||||||
|  | 		} | ||||||
|  | 		fallthrough | ||||||
|  | 	case len(b.CookieMap) != 0: | ||||||
|  | 		filename := utils.FormatFileName(dir, utils.Cookies, format) | ||||||
|  | 		file, err := os.OpenFile(filename, os.O_RDWR|os.O_CREATE|os.O_TRUNC|os.O_APPEND, 0644) | ||||||
|  | 		defer file.Close() | ||||||
|  | 		if err != nil { | ||||||
|  | 			log.Errorf("create file %s fail", filename) | ||||||
|  | 		} | ||||||
|  | 		var tempSlice []cookies | ||||||
|  | 		for _, v := range b.CookieMap { | ||||||
|  | 			tempSlice = append(tempSlice, v...) | ||||||
|  | 		} | ||||||
|  | 		err = gocsv.MarshalFile(tempSlice, file) | ||||||
|  | 		if err != nil { | ||||||
|  | 			log.Error(err) | ||||||
|  | 		} | ||||||
|  | 		fallthrough | ||||||
|  | 	case len(b.HistorySlice) != 0: | ||||||
|  | 		filename := utils.FormatFileName(dir, utils.History, format) | ||||||
|  | 		file, err := os.OpenFile(filename, os.O_RDWR|os.O_CREATE|os.O_TRUNC|os.O_APPEND, 0644) | ||||||
|  | 		defer file.Close() | ||||||
|  | 		if err != nil { | ||||||
|  | 			log.Errorf("create file %s fail", filename) | ||||||
|  | 		} | ||||||
|  | 		err = gocsv.MarshalFile(b.HistorySlice, file) | ||||||
|  | 		if err != nil { | ||||||
|  | 			log.Error(err) | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	return nil | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func (b BrowserData) OutPutJson(dir, format string) error { | ||||||
|  | 	switch { | ||||||
|  | 	case len(b.BookmarkSlice) != 0: | ||||||
|  | 		filename := utils.FormatFileName(dir, utils.Bookmarks, format) | ||||||
|  | 		file, err := os.OpenFile(filename, os.O_RDWR|os.O_CREATE|os.O_TRUNC|os.O_APPEND, 0644) | ||||||
|  | 		defer file.Close() | ||||||
|  | 		if err != nil { | ||||||
|  | 			log.Errorf("create file %s fail", filename) | ||||||
|  | 		} | ||||||
|  | 		w := new(bytes.Buffer) | ||||||
|  | 		enc := json.NewEncoder(w) | ||||||
|  | 		enc.SetEscapeHTML(false) | ||||||
|  | 		enc.SetIndent("", "\t") | ||||||
|  | 		enc.Encode(b.BookmarkSlice) | ||||||
|  | 		file.Write(w.Bytes()) | ||||||
|  | 		fallthrough | ||||||
|  | 	case len(b.CookieMap) != 0: | ||||||
|  | 		filename := utils.FormatFileName(dir, utils.Cookies, format) | ||||||
|  | 		file, err := os.OpenFile(filename, os.O_RDWR|os.O_CREATE|os.O_TRUNC|os.O_APPEND, 0644) | ||||||
|  | 		defer file.Close() | ||||||
|  | 		if err != nil { | ||||||
|  | 			log.Errorf("create file %s fail", filename) | ||||||
|  | 		} | ||||||
|  | 		w := new(bytes.Buffer) | ||||||
|  | 		enc := json.NewEncoder(w) | ||||||
|  | 		enc.SetEscapeHTML(false) | ||||||
|  | 		enc.SetIndent("", "\t") | ||||||
|  | 		err = enc.Encode(b.CookieMap) | ||||||
|  | 		if err != nil { | ||||||
|  | 			log.Println(err) | ||||||
|  | 		} | ||||||
|  | 		file.Write(w.Bytes()) | ||||||
|  | 		fallthrough | ||||||
|  | 	case len(b.HistorySlice) != 0: | ||||||
|  | 		filename := utils.FormatFileName(dir, utils.History, format) | ||||||
|  | 		file, err := os.OpenFile(filename, os.O_RDWR|os.O_CREATE|os.O_TRUNC|os.O_APPEND, 0644) | ||||||
|  | 		defer file.Close() | ||||||
|  | 		if err != nil { | ||||||
|  | 			log.Errorf("create file %s fail", filename) | ||||||
|  | 		} | ||||||
|  | 		w := new(bytes.Buffer) | ||||||
|  | 		enc := json.NewEncoder(w) | ||||||
|  | 		enc.SetEscapeHTML(false) | ||||||
|  | 		enc.SetIndent("", "\t") | ||||||
|  | 		err = enc.Encode(b.HistorySlice) | ||||||
|  | 		if err != nil { | ||||||
|  | 			log.Println(err) | ||||||
|  | 		} | ||||||
|  | 		file.Write(w.Bytes()) | ||||||
|  | 		fallthrough | ||||||
|  | 	case len(b.LoginDataSlice) != 0: | ||||||
|  | 		filename := utils.FormatFileName(dir, utils.LoginData, format) | ||||||
|  | 		file, err := os.OpenFile(filename, os.O_RDWR|os.O_CREATE|os.O_TRUNC|os.O_APPEND, 0644) | ||||||
|  | 		defer file.Close() | ||||||
|  | 		if err != nil { | ||||||
|  | 			log.Errorf("create file %s fail", filename) | ||||||
|  | 		} | ||||||
|  | 		w := new(bytes.Buffer) | ||||||
|  | 		enc := json.NewEncoder(w) | ||||||
|  | 		enc.SetEscapeHTML(false) | ||||||
|  | 		enc.SetIndent("", "\t") | ||||||
|  | 		err = enc.Encode(b.LoginDataSlice) | ||||||
|  | 		if err != nil { | ||||||
|  | 			log.Println(err) | ||||||
|  | 		} | ||||||
|  | 		file.Write(w.Bytes()) | ||||||
|  | 	} | ||||||
|  | 	return nil | ||||||
|  | } | ||||||
| @ -0,0 +1,13 @@ | |||||||
|  | package core | ||||||
|  | 
 | ||||||
|  | func (l LoginDataSlice) Len() int { | ||||||
|  | 	return len(l) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func (l LoginDataSlice) Less(i, j int) bool { | ||||||
|  | 	return l[i].CreateDate.After(l[j].CreateDate) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func (l LoginDataSlice) Swap(i, j int) { | ||||||
|  | 	l[i], l[j] = l[j], l[i] | ||||||
|  | } | ||||||
					Loading…
					
					
				
		Reference in new issue