Skip to content

Instantly share code, notes, and snippets.

View eojji's full-sized avatar

Huysep Kim eojji

View GitHub Profile
function triggerSubmit(e) {
//var form = FormApp.getActiveForm();
//var formResponse = form.getResponses()[0];
var formResponse = e.response;
var email = formResponse.getRespondentEmail().trim();
Logger.log('email: %s', email);
// var responseId = formResponse.getId();
// var time = formResponse.getTimestamp();
using Microsoft.Data.Sqlite;
using System;
using System.Collections.Generic;
using System.Diagnostics;
namespace DataAccessLibrary
{
/// <summary>
/// https://docs.microsoft.com/en-us/windows/uwp/data-access/sqlite-databases
/// </summary>
@eojji
eojji / copy.gs
Created November 23, 2019 00:45
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);
@eojji
eojji / findDomainFromSheet.js
Created March 9, 2019 08:14
앱 사용자를 스프레드시트에서 찾습니다. https://blog.naver.com/gsuite-reseller/221484133849
function findDomainFromSheet(sheet, domain) {
var lastRow = sheet.getLastRow();
var startRow = 2;
var rows = lastRow - startRow + 1;
var values = sheet.getRange(startRow, 1, rows, 1).getValues();
for(var i=0; i<rows; i++) {
if (values[i][0] === domain) {
var searchRow = startRow + i;
// console.log('searchRow: %s', searchRow);
var domainKey = domain + 'SheetRow';
if (sheetFiles.getLastRow() > 30000) {
var parentId = sheetFolder.getRange('C3').getValue(); // Copy to folder, id2
var title = copyFolderSs.getName()+'_backup';
// https://developers.google.com/drive/v2/reference/files/copy
var respCopy = copyDriveFile_(title, ssId, parentId);
if (respCopy && respCopy.id) {
rowContents = ['gfolder 스프레드시트 파일 복사', '=HYPERLINK("'+respCopy.alternateLink+'","'+title+'")'];
logSheetAppendRow(logSpreadSheet, rowContents);
// delete: start ~ filesRow - 2
@eojji
eojji / isOpenSharedFileByProp.js
Created August 29, 2018 08:01
Spreadsheet files were shared to G folder copy group members. https://cafe.naver.com/eojji/176
function isOpenSharedFileByProp_() {
var domain = Session.getEffectiveUser().getEmail().split('@')[1];
var myDomain = ['gfolder.net', 'eojji.net', 'eojji.kr', 'eojji.com'];
if (myDomain.indexOf(domain) > -1) {
console.log('True My Domain: %s', domain);
return true;
} else {
console.log('False My Domain: %s', domain);
}
var ss, ssIdsharedGfolderCopy;
@eojji
eojji / Delete duplicate rows.js
Created August 28, 2018 07:33
Find duplicate rows in the spreadsheet with the eq function and delete them. https://cafe.naver.com/eojji/365
function myFunction() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var value;
var i = 0;
var thisRow = 2;
do {
value = sheet.getRange(thisRow, 1).getValue();
if (value) {
thisRow++;
@eojji
eojji / SearchPageScript.js
Created July 27, 2018 08:47
Search for Files and Team Drives, drive 15 - Google App Maker https://cafe.naver.com/eojji/349
function onDropdownAttach(widget) {
var props = app.currentPage.properties;
google.script.run.withSuccessHandler( function(list) {
if(list && list.length > 1) {
var listLength = list.length;
for(var i = 0; i < listLength; i++) {
var drive = list[i];
if (drive.id == props.TeamDriveId) {
widget.value = drive.id;
}
@eojji
eojji / Process Main Client.js
Created July 16, 2018 02:28
Process Main, drive 10 - Google App Maker. https://cafe.naver.com/eojji/337
function onMainPageAttach(page) {
google.script.run.withSuccessHandler( function(resp) {
page.descendants.ToFolderLink.text = resp.title;
page.descendants.ToFolderLink.href = resp.link;
}).getLinkToFolderByProperty();
}
/**
* @param {widget} widget - Button widget.
* @param {event}
@eojji
eojji / ListFilesScript.js
Created July 11, 2018 01:12
google.script.run.getLinkFolderSpreadSheet(); drive 07 - Google App Maker https://cafe.naver.com/eojji/333
/**
* https://developers.google.com/appmaker/tutorials/call-scripts/
* @param {widget} widget - Button widget.
* @param {event}
*/
function onListFilesClick(widget, event) {
var widgets = widget.parent.descendants;
var from = widgets.TextBoxFromFolder.value;
var to = widgets.TextBoxToFolder.value;