public static void main(String[] args) throws IOException, ParseException, InterruptedException {
		// initialize the time to be one hour later
		Calendar calendar = Calendar.getInstance();
		calendar.setTimeInMillis(calendar.getTimeInMillis() + 1000 * 3600);

		// find “HotSheet” file under input directory
		String inputTextPath = FileUtils.readFirstFileContaningText("input", "HotSheet").getPath();
		Log.logInfo("读取input目录下带有HotSheet字样的txt文件");
		List<SheetModel> models = TranslateText.readerCSV(inputTextPath);
		for (SheetModel model : models) {
			// mls number
			String mlsNumber = model.getMlsNumber();
			Log.logInfo("MLS编码为" + mlsNumber + "的房产的图片和微博正在生成...");
			// generate long image
			Log.logInfo("读取input目录下带有images字样的文件夹");
			File imageDirectory = FileUtils.readFirstFileContaningText("input", "images");
			File[] mlsImages = imageDirectory.listFiles(new MyFileNameFilter(mlsNumber));
			// if images less than 4, then continue it.
			if (mlsImages.length < Integer.parseInt(MyConfig.getValue("minImages"))) {
				Log.logInfo("WARNING!!! MLS编码为" + mlsNumber + "的房产的图片数量少于4个，已跳过。");
				continue;
			}
			Log.logInfo("MLS编码为" + mlsNumber + "的图片正在生成...");
			FileUtils.makeUpOneImg(mlsImages, mlsNumber + ".jpg");

			// generate weibo content and store it into txt file
			Log.logInfo("MLS编码为" + mlsNumber + "的微博内容正在生成...");
			String weiboContent = TranslateText.model2WeiboString(model);
			if (model.getLotSize() < 2000 && TranslateText.getTypeReadString(model.getType()).equals("House")) {
				Log.logInfo("WARNING!!! MLS编码为" + mlsNumber + "的House房产的LotSize小于2000尺，已跳过。");
				continue;
			}
			if (TranslateText.getAreaReadString(model.getArea()).equals("Unknow")) {
				Log.logInfo("WARNING!!! MLS编码为" + mlsNumber + "的房产的Area未知地区，已跳过。");
				continue;
			}
			if (TranslateText.getTypeReadString(model.getType()).equals("Unknow")) {
				Log.logInfo("WARNING!!! MLS编码为" + mlsNumber + "的房产的Type未知类型，已跳过。");
				continue;
			}

			File file = new File("output\\weibo.txt");
			String distributedTime = DateUtils.getNextAvailableDateTime(calendar.getTime());
			FileUtils.appendToFile(mlsNumber + "|" + distributedTime + "|0" + "\n", file);
			FileUtils.appendToFile(weiboContent + "\n", file);
			Log.logInfo("MLS编码为" + mlsNumber + "的图片和微博生成完毕。");
			calendar.setTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(distributedTime));
			if (model != models.get(models.size() - 1)) {
				Log.logInfo("2秒后开始转换下一条记录。");
				Thread.sleep(2 * 1000);
			} else {
				Log.logInfo("所有记录转换完毕。");
			}
		}

	}