Files
SatIntel/osint/tleparser.go
2023-05-07 08:32:56 -07:00

94 lines
1.7 KiB
Go

package osint
import (
"fmt"
"os"
"github.com/TwiN/go-color"
"github.com/iskaa02/qalam/gradient"
"io/ioutil"
"bufio"
)
func TLEParser() {
options, _ := ioutil.ReadFile("txt/tle_parser.txt")
opt,_:=gradient.NewGradient("#1179ef", "cyan")
opt.Print("\n" + string(options))
var selection int = Option(0, 3)
if (selection == 1){
TLETextFile()
} else if (selection == 2) {
TLEPlainString()
}
return
}
func TLETextFile() {
fmt.Print("\n ENTER TEXT FILE PATH > ")
var path string
fmt.Scanln(&path)
file, err := os.Open(path)
if err != nil {
fmt.Println(color.Ize(color.Red, " [!] INVALID TEXT FILE"))
}
scanner := bufio.NewScanner(file)
scanner.Split(bufio.ScanLines)
var txtlines []string
var count int = 0
for scanner.Scan() {
txtlines = append(txtlines, scanner.Text())
count += 1
}
file.Close()
if (count < 2 || count > 3) {
fmt.Println(color.Ize(color.Red, " [!] INVALID TLE FORMAT"))
return
}
output := TLE{}
if (count == 3) {
var satelliteName string = txtlines[0]
output = ConstructTLE(satelliteName, txtlines[1], txtlines[2])
} else {
output = ConstructTLE("UNSPECIFIED", txtlines[0], txtlines[1])
}
PrintTLE(output)
}
func TLEPlainString(){
scanner := bufio.NewScanner(os.Stdin)
var lineOne string
var lineTwo string
var lineThree string
fmt.Print("\n ENTER LINE ONE (leave blank for unspecified name) > ")
scanner.Scan()
lineOne = scanner.Text()
fmt.Print("\n ENTER LINE TWO > ")
scanner.Scan()
lineTwo = scanner.Text()
fmt.Print("\n ENTER LINE THREE > ")
scanner.Scan()
lineThree = scanner.Text()
if (lineOne == "") {
lineOne = "UNSPECIFIED"
}
output := TLE{}
output = ConstructTLE(lineOne, lineTwo, lineThree)
PrintTLE(output)
}