Skip to content

Instantly share code, notes, and snippets.

@eojji
Created November 23, 2019 00:45
Show Gist options
  • Save eojji/6e4b20ece8c5bfd915a9c98cb03c405d to your computer and use it in GitHub Desktop.
Save eojji/6e4b20ece8c5bfd915a9c98cb03c405d to your computer and use it in GitHub Desktop.
makeCopy web app https://copy.eojji.kr/make
function inputByForm_(inputString, destinationFolder, logSpreadSheet) {
var startTime = Date.now();
var appMessage = {};
var rowContents;
var respId = getIdFromUrl(inputString);
if (!respId) {
appMessage.message = 'Not found ID';
console.log('%s, input: %s - inputByForm', appMessage.message, inputString);
rowContents = [appMessage.message];
logSheetAppendRow(logSpreadSheet, rowContents);
return appMessage;
}
var file = DriveApp.getFileById(respId);
var respMimeType = file.getMimeType();
if (respMimeType === MimeType.FOLDER) {
console.log('MimeType.FOLDER, ID: %s', respId);
var folder = DriveApp.getFolderById(respId);
rowContents = ['Copying folder', folder.getName(), folder.getUrl()];
logSheetAppendRow(logSpreadSheet, rowContents);
console.log(rowContents);
appMessage.title = destinationFolder.getName();
appMessage.url = destinationFolder.getUrl();
var files = folder.getFiles();
while (files.hasNext()) {
var currTime = (new Date()).getTime();
var elapsedTimeInMS = currTime - startTime;
if (elapsedTimeInMS >= MAX_RUNNING_TIME_MS) {
var rFileToken = files.getContinuationToken();
rUserProperty.setProperty(ITERATOR_KEY, rFileToken);
appMessage.message = 'copyTrigger(1000), time, Limit Exceeded';
triggerAfterByName('copyTrigger', 1000);
rowContents = [appMessage.message, appMessage.title, appMessage.url];
logSheetAppendRow(logSpreadSheet, rowContents);
console.log(rowContents);
return appMessage;
}
var fileN = files.next();
try {
var rMakeCopy = fileN.makeCopy(destinationFolder);
} catch(e) {
rowContents = ['Error', fileN.getUrl(), e.message, e.name];
logSheetAppendRow(logSpreadSheet, rowContents);
console.warn(rowContents);
continue;
}
}
appMessage.message = 'Completed';
rowContents = [appMessage.message, appMessage.title, appMessage.url];
logSheetAppendRow(logSpreadSheet, rowContents);
rUserProperty.deleteProperty(ITERATOR_KEY);
console.log(rowContents);
return appMessage;
}
// if (respMimeType !== MimeType.FOLDER)
console.log('MimeType: %s, ID: %s', respMimeType, respId);
var rMakeCopy = file.makeCopy(destinationFolder);
appMessage.message = 'Created a copy of the file.';
appMessage.title = rMakeCopy.getName();
appMessage.url = rMakeCopy.getUrl();
rowContents = [appMessage.message, appMessage.title, appMessage.url];
logSheetAppendRow(logSpreadSheet, rowContents);
console.log(rowContents);
return appMessage;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment