|
|
@@ -5,11 +5,10 @@ import ( |
|
|
|
"net" |
|
|
|
"bytes" |
|
|
|
"io/ioutil" |
|
|
|
"crypto/rand" |
|
|
|
"io" |
|
|
|
"os" |
|
|
|
"os/exec" |
|
|
|
"flag" |
|
|
|
|
|
|
|
"github.com/writeas/writeas-telnet/store" |
|
|
|
) |
|
|
|
|
|
|
|
var ( |
|
|
@@ -153,7 +152,7 @@ func readInput(c net.Conn) { |
|
|
|
} |
|
|
|
|
|
|
|
if checkExit(b, n) { |
|
|
|
file, err := savePost(post.Bytes()) |
|
|
|
file, err := store.SavePost(outDir, post.Bytes()) |
|
|
|
if err != nil { |
|
|
|
fmt.Printf("There was an error saving: %s\n", err) |
|
|
|
output(c, "Something went terribly wrong, sorry. Try again later?\n\n") |
|
|
@@ -176,35 +175,3 @@ func readInput(c net.Conn) { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
func savePost(post []byte) (string, error) { |
|
|
|
filename := generateFileName() |
|
|
|
f, err := os.Create(outDir + "/" + filename) |
|
|
|
if err != nil { |
|
|
|
return "", err |
|
|
|
} |
|
|
|
|
|
|
|
defer f.Close() |
|
|
|
|
|
|
|
out := post[:0] |
|
|
|
for _, b := range post { |
|
|
|
if b < 32 && b != 10 && b != 13 { |
|
|
|
continue |
|
|
|
} |
|
|
|
out = append(out, b) |
|
|
|
} |
|
|
|
_, err = io.Copy(f, bytes.NewReader(out)) |
|
|
|
|
|
|
|
return filename, err |
|
|
|
} |
|
|
|
|
|
|
|
func generateFileName() string { |
|
|
|
c := nameLen |
|
|
|
var dictionary string = "0123456789abcdefghijklmnopqrstuvwxyz" |
|
|
|
var bytes = make([]byte, c) |
|
|
|
rand.Read(bytes) |
|
|
|
for k, v := range bytes { |
|
|
|
bytes[k] = dictionary[v%byte(len(dictionary))] |
|
|
|
} |
|
|
|
return string(bytes) |
|
|
|
} |