You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
1.3 KiB
63 lines
1.3 KiB
using System; |
|
using System.Text.Json; |
|
using System.Threading.Tasks; |
|
using InfoferScraper; |
|
using InfoferScraper.Scrapers; |
|
|
|
while (true) { |
|
Console.WriteLine("1. Scrape Train"); |
|
Console.WriteLine("2. Scrape Station"); |
|
Console.WriteLine("0. Exit"); |
|
|
|
var input = Console.ReadLine()?.Trim(); |
|
switch (input) { |
|
case "1": |
|
await PrintTrain(); |
|
break; |
|
case "2": |
|
await PrintStation(); |
|
break; |
|
case null: |
|
case "0": |
|
goto INPUT_LOOP_BREAK; |
|
} |
|
Console.WriteLine(); |
|
} |
|
INPUT_LOOP_BREAK:; |
|
|
|
async Task PrintTrain() { |
|
Console.Write("Train number: "); |
|
var trainNumber = Console.ReadLine()?.Trim(); |
|
|
|
if (trainNumber == null) { |
|
return; |
|
} |
|
|
|
Console.WriteLine( |
|
JsonSerializer.Serialize( |
|
await TrainScraper.Scrape(trainNumber), |
|
new JsonSerializerOptions { |
|
PropertyNamingPolicy = JsonNamingPolicy.CamelCase, |
|
WriteIndented = true, |
|
} |
|
) |
|
); |
|
} |
|
async Task PrintStation() { |
|
Console.Write("Station name: "); |
|
var stationName = Console.ReadLine()?.Trim(); |
|
|
|
if (stationName == null) { |
|
return; |
|
} |
|
|
|
Console.WriteLine( |
|
JsonSerializer.Serialize( |
|
await StationScraper.Scrape(stationName), |
|
new JsonSerializerOptions { |
|
PropertyNamingPolicy = JsonNamingPolicy.CamelCase, |
|
WriteIndented = true, |
|
} |
|
) |
|
); |
|
}
|
|
|