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
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());
|
|
}
|
|
}
|
|
}
|
|
}
|