From 144f3a9d9a4f9dd4f5518892a983019f7de10e1f Mon Sep 17 00:00:00 2001 From: windyboy Date: Fri, 2 Aug 2024 12:39:57 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20Add=20support=20for=20parsing=20?= =?UTF-8?q?=E7=BF=94=E9=B9=8F=E8=88=AA=E7=A9=BA=20(8L)=20flight=20schedule?= =?UTF-8?q?=20data?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/parsers/schedule_def.go | 15 +++++++++++++++ internal/parsers/schedule_parser_test.go | 21 +++++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/internal/parsers/schedule_def.go b/internal/parsers/schedule_def.go index 8433684..413e30d 100644 --- a/internal/parsers/schedule_def.go +++ b/internal/parsers/schedule_def.go @@ -221,6 +221,21 @@ var ( 4: Register, }, }, + { + /** + * 翔鹏航空 (8L) + *L59 W/Z 8L9976 B6959 TSN/0510 CTU/0855 KMG + */ + Airlines: []string{"8L"}, + MinLen: 6, + WaypointStart: 4, + Fields: map[int]string{ + 0: Index, + 1: Task, + 2: FlightNumber, + 3: Register, + }, + }, } ) diff --git a/internal/parsers/schedule_parser_test.go b/internal/parsers/schedule_parser_test.go index 67064e2..5c04fe6 100644 --- a/internal/parsers/schedule_parser_test.go +++ b/internal/parsers/schedule_parser_test.go @@ -444,4 +444,25 @@ var _ = Describe("Parse Line with PreDef", func() { }) }) + Context("8L", func() { + It("L59 W/Z 8L9976 B6959 TSN/0510 CTU/0855 KMG", func() { + lineText := "L59 W/Z 8L9976 B6959 TSN/0510 CTU/0855 KMG" + def := FindDef("8L") + Expect(def).NotTo(BeNil()) + schedule := ParseWithDef(lineText, def) + Expect(schedule).NotTo(BeNil()) + Expect(schedule.Index).To(Equal("L59")) + Expect(schedule.Task).To(Equal("W/Z")) + Expect(len(schedule.FlightNumber)).To(Equal(1)) + Expect(schedule.FlightNumber[0]).To(Equal("8L9976")) + Expect(schedule.AircraftReg).To(Equal("B6959")) + Expect(len(schedule.Waypoints)).To(Equal(3)) + Expect(schedule.Waypoints[0].Airport).To(Equal("TSN")) + Expect(schedule.Waypoints[0].DepartureTime).To(Equal("0510")) + Expect(schedule.Waypoints[1].Airport).To(Equal("CTU")) + Expect(schedule.Waypoints[1].DepartureTime).To(Equal("0855")) + Expect(schedule.Waypoints[2].Airport).To(Equal("KMG")) + }) + }) + })