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.

34 lines
1.3 KiB

package internal.hw.crawler;
import internal.hw.crawler.commands.*;
import internal.hw.crawler.repositories.ArticleRepository;
import internal.hw.crawler.views.ConsoleView;
public class Main {
public static void main(String[] args) {
ConsoleView view = new ConsoleView();
MainController controller = new MainController(view);
ArticleRepository repository = new ArticleRepository();
controller.registerCommand(new ExitCommand(view));
controller.registerCommand(new CrawlCommand(repository, view));
controller.registerCommand(new ListCommand(repository, view));
controller.registerCommand(new SaveCommand(repository, view));
controller.registerCommand(new HelpCommand(controller.getCommands(), view));
view.printSuccess("Welcome to crawler. Type `help` for a list of available commands.");
while (true) {
try {
String line = view.readLine();
// stdin 读取异常时退出
if (line == null) {
controller.handleInput(new ExitCommand(view).getName());
break;
}
controller.handleInput(line);
} catch (Exception e) {
view.printError("Unexpected error: " + e.getMessage());
}
}
}
}