file.go 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. package main
  2. import (
  3. "fmt"
  4. "io"
  5. "log"
  6. "os"
  7. "time"
  8. )
  9. // WriteToFile will print any string of text to a file safely by
  10. // checking for errors and syncing at the end.
  11. func writeToFile(filename string, data string) error {
  12. file, err := os.Create(filename)
  13. if err != nil {
  14. return err
  15. }
  16. defer file.Close()
  17. _, err = io.WriteString(file, data)
  18. if err != nil {
  19. return err
  20. }
  21. return file.Sync()
  22. }
  23. func handlepanic() {
  24. if a := recover(); a != nil {
  25. fmt.Println("OPS!: Recovering from:", a)
  26. }
  27. }
  28. func saveBayesToFile() {
  29. var tmpJSON string
  30. log.Println("Trying to write json file")
  31. tmpJSON = fmt.Sprintln("\nBAD: ")
  32. Classifier.BAD.Range(func(key interface{}, value interface{}) bool {
  33. tmpJSON = fmt.Sprintf("\t%s %-32s: %d\n", tmpJSON, key.(string), value.(int64))
  34. return true
  35. })
  36. tmpJSON = fmt.Sprintf("%s \rGOOD: \n", tmpJSON)
  37. Classifier.GOOD.Range(func(key interface{}, value interface{}) bool {
  38. tmpJSON = fmt.Sprintf("\t%s %-32s: %d\n", tmpJSON, key.(string), value.(int64))
  39. return true
  40. })
  41. tmpJSON = fmt.Sprintf("%s \rMEH: \n", tmpJSON)
  42. Classifier.MEH.Range(func(key interface{}, value interface{}) bool {
  43. tmpJSON = fmt.Sprintf("\t%s %-32s: %d\n", tmpJSON, key.(string), value.(int64))
  44. return true
  45. })
  46. tmpJSON = fmt.Sprintf("%s \rSTATS: \n", tmpJSON)
  47. Classifier.STATS.Range(func(key interface{}, value interface{}) bool {
  48. tmpJSON = fmt.Sprintf("\t%s %-32s: %d\n", tmpJSON, key.(string), value.(int64))
  49. return true
  50. })
  51. if DebugLog {
  52. log.Println(tmpJSON)
  53. } else {
  54. writeToFile("bayes.txt", tmpJSON)
  55. log.Println("File bayes.txt saved: ", len(tmpJSON))
  56. }
  57. }
  58. func jsonEngine() {
  59. for {
  60. log.Println("Zardoz Seniority: ", ProxyFlow.seniority)
  61. saveBayesToFile()
  62. time.Sleep(1 * time.Minute)
  63. }
  64. }
  65. func init() {
  66. log.Printf("File Engine Starting")
  67. go jsonEngine()
  68. log.Printf("FIle Engine Started")
  69. }