5 changed files with 96 additions and 0 deletions
@ -0,0 +1,21 @@ |
|||||
|
package command; |
||||
|
|
||||
|
import controller.CrawlerController; |
||||
|
|
||||
|
public class HelpCommand implements Command { |
||||
|
private CrawlerController controller; |
||||
|
|
||||
|
public HelpCommand(CrawlerController controller) { |
||||
|
this.controller = controller; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public void execute() { |
||||
|
controller.getView().showHelp(); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public String getDescription() { |
||||
|
return "显示帮助信息"; |
||||
|
} |
||||
|
} |
||||
Binary file not shown.
@ -0,0 +1,35 @@ |
|||||
|
package command; |
||||
|
|
||||
|
import controller.CrawlerController; |
||||
|
import java.util.List; |
||||
|
import model.Article; |
||||
|
|
||||
|
public class ListCommand implements Command { |
||||
|
private CrawlerController controller; |
||||
|
|
||||
|
public ListCommand(CrawlerController controller) { |
||||
|
this.controller = controller; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public void execute() { |
||||
|
List<Article> articles = controller.getArticles(); |
||||
|
if (articles.isEmpty()) { |
||||
|
controller.getView().showMessage("暂无数据"); |
||||
|
return; |
||||
|
} |
||||
|
|
||||
|
controller.getView().showMessage("\n已爬取的数据列表:"); |
||||
|
for (int i = 0; i < articles.size(); i++) { |
||||
|
Article article = articles.get(i); |
||||
|
controller.getView().showMessage( |
||||
|
String.format("[%d] %s - %s", i + 1, article.getSource(), article.getTitle()) |
||||
|
); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public String getDescription() { |
||||
|
return "显示已爬取的数据列表"; |
||||
|
} |
||||
|
} |
||||
Binary file not shown.
@ -0,0 +1,40 @@ |
|||||
|
package command; |
||||
|
|
||||
|
import model.Article; |
||||
|
import controller.CrawlerController; |
||||
|
import util.FileUtil; |
||||
|
import java.util.List; |
||||
|
|
||||
|
public class SaveCommand implements Command { |
||||
|
private CrawlerController controller; |
||||
|
|
||||
|
public SaveCommand(CrawlerController controller) { |
||||
|
this.controller = controller; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public void execute() { |
||||
|
try { |
||||
|
List<Article> articles = controller.getArticles(); |
||||
|
if (articles.isEmpty()) { |
||||
|
controller.getView().showMessage("没有数据可保存"); |
||||
|
return; |
||||
|
} |
||||
|
|
||||
|
for (Article article : articles) { |
||||
|
FileUtil.saveArticle(article); |
||||
|
} |
||||
|
|
||||
|
FileUtil.saveArticles(articles, "summary.txt"); |
||||
|
|
||||
|
controller.getView().showMessage("已保存 " + articles.size() + " 条数据到 data/ 目录"); |
||||
|
} catch (Exception e) { |
||||
|
controller.getView().showError("保存失败: " + e.getMessage()); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public String getDescription() { |
||||
|
return "保存数据到文件"; |
||||
|
} |
||||
|
} |
||||
Loading…
Reference in new issue