Updated 08202022-153607
Drafts Directory: save drafts from date - text dates
// today_to_file.js
var datename='',drArr=[],t='';
var day = new Date(),tnote='',fm='';
var divider = "\n<><><><><><><><>\n" // will be placed between drafts when consolidated inot one file
var p = Prompt.create();
p.title = "Consolidate day(s) drafts";
p.message = "(defaults to today)";
//
//set choices in picker
p.addTextField("strtDate", "Start date (yyyy-mm-dd)", strftime(day,"%Y-%m-%d") );
p.addTextField("endDate","End date (yyyy-mm-dd)",strftime(day,"%Y-%m-%d"));
p.addSwitch("sw2","modifiedAt <- vs. -> createdAt",false)
p.addSwitch("sw1","early_1st <- vs. -> later_1st",false)
p.addSelect("loc","location:",["all","inbox","archive","trash"],["inbox"], false)
p.addTextField("tgs", "if desired, by Tags (ALL REQD):", "");
p.addTextField("ogs", "if desired, OMIT these Tags:", "");
// a final "go" button
p.addButton("Consolidate drafts");
// now show and choose
var didSelect = p.show();
//
//collect the values from the prompt:
var locat = p.fieldValues["loc"];
var qTags = p.fieldValues["tgs"];
var oTags = p.fieldValues["ogs"];
var sortBy = p.fieldValues["sw2"];
var sortTime = p.fieldValues["sw1"];
var startDate = p.fieldValues["strtDate"];
startDate = new Date(startDate)
var endDate = p.fieldValues["endDate"];
endDate = new Date(endDate);
endDate = new Date(endDate);
if (qTags.trim().length==0) {qTags=[]} else {qTags=qTags.split(",")}
if (oTags.trim().length==0) {oTags=[]} else {oTags=oTags.split(",")}
if (sortBy) {sortBy="created"} else {sortBy="modified"}
startDate.setHours(0, 0, 1)
endDate.setHours(23, 59, 59)
//
if (p.buttonPressed == "Consolidate drafts") {
//
//
drArr = Draft.query("", locat,qTags, oTags,sortBy, sortTime, false);
//found every draft & sorted by modified/created and time ordered
//
var outArr=[]; // define empty results array
tx = '';
strt = startDate.getTime(); //number(msecs post 1970)
endd = endDate.getTime() //number(msecs post 1970)
//? msec conversion gives a SLIGHT speed benefit over library comparisons
for (let n=0;n<drArr.length;n++) {
if (sortBy=="modified") {t = drArr[n].modifiedAt.getTime();}
if (sortBy=="created") {t = drArr[n].createdAt.getTime();}
if ((t>=strt)&&(t<=endd)) {outArr.push(drArr[n]);}
}
//
//
//
//
// BUILD THE FOUND DRAFTS INTO ONE COMBINED NOTE
// 1st, set a suitable filename and a first line for the output body
startDate = strftime(startDate,"%y-%m-%d %a"); // for writing out purposes
endDate = strftime(endDate,"%a %y-%m-%d");
let txtInsert = " daily Drafts", tExt= ".md"; // change as desired, within "...";
if (startDate==endDate) { // set filenames depending on days' matching
targ = endDate + txtInsert + tExt;
tnote ="consolidated "+ outArr.length + " Drafts found for "+startDate; // 1st line txt
} else {
targ = startDate + "--" + endDate + txtInsert + tExt;
tnote="consolidated "+outArr.length+" Draft(s) found between "+startDate+" and "+endDate;
}
// that gives date-sortable titles
// "2022-08-15 daily Drafts.md" or "2022-08-15--2022-08-16 daily Drafts.md"
// now set a suitbale title and a first line for the output body
// construct the rest of the body
for (let t of outArr) {
tnote=tnote + divider + strftime(t.modifiedAt,"%a %y-%m-%d %r")+ "\n" + t.content;
// builds output by one draft content at a time
}
//
// NOW OUTPUT, looping through found drafts,
//
// the next target sets are output, disable any SET OF 3 LINES you might want inactive by adding the double slash(//-- comment) to the front of each (or remove)
// you may change any of the wording (within quotes)
// set an appropriate filename for file systems
// to write to a new draft, uncomment (remove '//':
// d = new Draft();
// d.content = tnote;
// d.update();
//
// to write to the any cloud or local file system Drafts iCloud directory
//leave the next three lines to write to Drafts iCloud
fm = FileManager.createCloud();
fm.createDirectory("Drafts By Day","/");
t = fm.writeString("/Drafts By Day/"+targ,tnote);
//
// leave the next three lines to write to a Bookmark (if one not set, you can set it as this runs)
// let bookmark = Bookmark.findOrCreate("DraftsByDay");
// fm = FileManager.createForBookmark(bookmark);
// t = fm.writeString(targ,tnote);
// end of this script
} // end of if button pressed