import com.intellij.psi.PsiManager;
import com.intellij.util.containers.ContainerUtil;
import com.jetbrains.edu.EduNames;
+import com.jetbrains.edu.EduUtils;
import com.jetbrains.edu.courseFormat.Course;
import com.jetbrains.edu.courseFormat.Lesson;
import com.jetbrains.edu.courseFormat.Task;
final File file = new File(courseDirectory, name);
FileUtil.createIfDoesntExist(file);
try {
- FileUtil.writeToFile(file, Base64.decodeBase64(text));
+ if (EduUtils.isImage(name)) {
+ FileUtil.writeToFile(file, Base64.decodeBase64(text));
+ }
+ else {
+ FileUtil.writeToFile(file, text);
+ }
}
catch (IOException e) {
LOG.error("ERROR copying file " + name);
FileUtil.createIfDoesntExist(file);
try {
- FileUtil.writeToFile(file, Base64.decodeBase64(taskFile.text));
+ if (EduUtils.isImage(taskFile.name)) {
+ FileUtil.writeToFile(file, Base64.decodeBase64(taskFile.text));
+ }
+ else {
+ FileUtil.writeToFile(file, taskFile.text);
+ }
+
}
catch (IOException e) {
LOG.error("ERROR copying file " + name);
import com.jetbrains.edu.courseFormat.TaskFile;
import com.jetbrains.edu.oldCourseFormat.OldCourse;
import com.jetbrains.edu.oldCourseFormat.TaskWindow;
+import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
+import javax.imageio.ImageIO;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintWriter;
course.initCourse(false);
return course;
}
+
+ public static boolean isImage(String fileName) {
+ final String[] readerFormatNames = ImageIO.getReaderFormatNames();
+ for (@NonNls String format : readerFormatNames) {
+ final String ext = format.toLowerCase();
+ if (fileName.endsWith(ext)) {
+ return true;
+ }
+ }
+ return false;
+ }
}
for (VirtualFile file : files) {
try {
if (file != null) {
- task.addTestsTexts(file.getName(), Base64.encodeBase64URLSafeString(FileUtil.loadBytes(file.getInputStream())));
+ if (EduUtils.isImage(file.getName())) {
+ task.addTestsTexts(file.getName(), Base64.encodeBase64URLSafeString(FileUtil.loadBytes(file.getInputStream())));
+ }
+ else {
+ task.addTestsTexts(file.getName(), FileUtil.loadTextAndClose(file.getInputStream()));
+ }
}
}
catch (IOException e) {
final VirtualFile file = taskDirectory.findChild(taskFile.name);
try {
if (file != null) {
- taskFile.text = Base64.encodeBase64URLSafeString(FileUtil.loadBytes(file.getInputStream()));
+ if (EduUtils.isImage(taskFile.name)) {
+ taskFile.text = Base64.encodeBase64URLSafeString(FileUtil.loadBytes(file.getInputStream()));
+ }
+ else {
+ taskFile.text = FileUtil.loadTextAndClose(file.getInputStream());
+ }
}
}
catch (IOException e) {