mirror of
https://github.com/kissyjpf/rtm-sync.git
synced 2026-07-22 07:02:51 +00:00
35 lines
19 KiB
JavaScript
35 lines
19 KiB
JavaScript
/*
|
|
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
|
|
if you want to view the source, please visit the github repository of this plugin
|
|
*/
|
|
|
|
var H=Object.create;var v=Object.defineProperty;var G=Object.getOwnPropertyDescriptor;var z=Object.getOwnPropertyNames;var Q=Object.getPrototypeOf,Y=Object.prototype.hasOwnProperty;var E=(h,u)=>()=>(u||h((u={exports:{}}).exports,u),u.exports),Z=(h,u)=>{for(var s in u)v(h,s,{get:u[s],enumerable:!0})},B=(h,u,s,o)=>{if(u&&typeof u=="object"||typeof u=="function")for(let i of z(u))!Y.call(h,i)&&i!==s&&v(h,i,{get:()=>u[i],enumerable:!(o=G(u,i))||o.enumerable});return h};var J=(h,u,s)=>(s=h!=null?H(Q(h)):{},B(u||!h||!h.__esModule?v(s,"default",{value:h,enumerable:!0}):s,h)),X=h=>B(v({},"__esModule",{value:!0}),h);var O=E((it,M)=>{(function(){var h="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",u={rotl:function(s,o){return s<<o|s>>>32-o},rotr:function(s,o){return s<<32-o|s>>>o},endian:function(s){if(s.constructor==Number)return u.rotl(s,8)&16711935|u.rotl(s,24)&4278255360;for(var o=0;o<s.length;o++)s[o]=u.endian(s[o]);return s},randomBytes:function(s){for(var o=[];s>0;s--)o.push(Math.floor(Math.random()*256));return o},bytesToWords:function(s){for(var o=[],i=0,c=0;i<s.length;i++,c+=8)o[c>>>5]|=s[i]<<24-c%32;return o},wordsToBytes:function(s){for(var o=[],i=0;i<s.length*32;i+=8)o.push(s[i>>>5]>>>24-i%32&255);return o},bytesToHex:function(s){for(var o=[],i=0;i<s.length;i++)o.push((s[i]>>>4).toString(16)),o.push((s[i]&15).toString(16));return o.join("")},hexToBytes:function(s){for(var o=[],i=0;i<s.length;i+=2)o.push(parseInt(s.substr(i,2),16));return o},bytesToBase64:function(s){for(var o=[],i=0;i<s.length;i+=3)for(var c=s[i]<<16|s[i+1]<<8|s[i+2],d=0;d<4;d++)i*8+d*6<=s.length*8?o.push(h.charAt(c>>>6*(3-d)&63)):o.push("=");return o.join("")},base64ToBytes:function(s){s=s.replace(/[^A-Z0-9+\/]/ig,"");for(var o=[],i=0,c=0;i<s.length;c=++i%4)c!=0&&o.push((h.indexOf(s.charAt(i-1))&Math.pow(2,-2*c+8)-1)<<c*2|h.indexOf(s.charAt(i))>>>6-c*2);return o}};M.exports=u})()});var C=E((at,V)=>{var b={utf8:{stringToBytes:function(h){return b.bin.stringToBytes(unescape(encodeURIComponent(h)))},bytesToString:function(h){return decodeURIComponent(escape(b.bin.bytesToString(h)))}},bin:{stringToBytes:function(h){for(var u=[],s=0;s<h.length;s++)u.push(h.charCodeAt(s)&255);return u},bytesToString:function(h){for(var u=[],s=0;s<h.length;s++)u.push(String.fromCharCode(h[s]));return u.join("")}}};V.exports=b});var j=E((ot,K)=>{K.exports=function(h){return h!=null&&(U(h)||tt(h)||!!h._isBuffer)};function U(h){return!!h.constructor&&typeof h.constructor.isBuffer=="function"&&h.constructor.isBuffer(h)}function tt(h){return typeof h.readFloatLE=="function"&&typeof h.slice=="function"&&U(h.slice(0,0))}});var q=E((ct,W)=>{(function(){var h=O(),u=C().utf8,s=j(),o=C().bin,i=function(c,d){c.constructor==String?d&&d.encoding==="binary"?c=o.stringToBytes(c):c=u.stringToBytes(c):s(c)?c=Array.prototype.slice.call(c,0):!Array.isArray(c)&&c.constructor!==Uint8Array&&(c=c.toString());for(var n=h.bytesToWords(c),m=c.length*8,r=1732584193,e=-271733879,t=-1732584194,a=271733878,l=0;l<n.length;l++)n[l]=(n[l]<<8|n[l]>>>24)&16711935|(n[l]<<24|n[l]>>>8)&4278255360;n[m>>>5]|=128<<m%32,n[(m+64>>>9<<4)+14]=m;for(var f=i._ff,g=i._gg,y=i._hh,k=i._ii,l=0;l<n.length;l+=16){var w=r,S=e,A=t,F=a;r=f(r,e,t,a,n[l+0],7,-680876936),a=f(a,r,e,t,n[l+1],12,-389564586),t=f(t,a,r,e,n[l+2],17,606105819),e=f(e,t,a,r,n[l+3],22,-1044525330),r=f(r,e,t,a,n[l+4],7,-176418897),a=f(a,r,e,t,n[l+5],12,1200080426),t=f(t,a,r,e,n[l+6],17,-1473231341),e=f(e,t,a,r,n[l+7],22,-45705983),r=f(r,e,t,a,n[l+8],7,1770035416),a=f(a,r,e,t,n[l+9],12,-1958414417),t=f(t,a,r,e,n[l+10],17,-42063),e=f(e,t,a,r,n[l+11],22,-1990404162),r=f(r,e,t,a,n[l+12],7,1804603682),a=f(a,r,e,t,n[l+13],12,-40341101),t=f(t,a,r,e,n[l+14],17,-1502002290),e=f(e,t,a,r,n[l+15],22,1236535329),r=g(r,e,t,a,n[l+1],5,-165796510),a=g(a,r,e,t,n[l+6],9,-1069501632),t=g(t,a,r,e,n[l+11],14,643717713),e=g(e,t,a,r,n[l+0],20,-373897302),r=g(r,e,t,a,n[l+5],5,-701558691),a=g(a,r,e,t,n[l+10],9,38016083),t=g(t,a,r,e,n[l+15],14,-660478335),e=g(e,t,a,r,n[l+4],20,-405537848),r=g(r,e,t,a,n[l+9],5,568446438),a=g(a,r,e,t,n[l+14],9,-1019803690),t=g(t,a,r,e,n[l+3],14,-187363961),e=g(e,t,a,r,n[l+8],20,1163531501),r=g(r,e,t,a,n[l+13],5,-1444681467),a=g(a,r,e,t,n[l+2],9,-51403784),t=g(t,a,r,e,n[l+7],14,1735328473),e=g(e,t,a,r,n[l+12],20,-1926607734),r=y(r,e,t,a,n[l+5],4,-378558),a=y(a,r,e,t,n[l+8],11,-2022574463),t=y(t,a,r,e,n[l+11],16,1839030562),e=y(e,t,a,r,n[l+14],23,-35309556),r=y(r,e,t,a,n[l+1],4,-1530992060),a=y(a,r,e,t,n[l+4],11,1272893353),t=y(t,a,r,e,n[l+7],16,-155497632),e=y(e,t,a,r,n[l+10],23,-1094730640),r=y(r,e,t,a,n[l+13],4,681279174),a=y(a,r,e,t,n[l+0],11,-358537222),t=y(t,a,r,e,n[l+3],16,-722521979),e=y(e,t,a,r,n[l+6],23,76029189),r=y(r,e,t,a,n[l+9],4,-640364487),a=y(a,r,e,t,n[l+12],11,-421815835),t=y(t,a,r,e,n[l+15],16,530742520),e=y(e,t,a,r,n[l+2],23,-995338651),r=k(r,e,t,a,n[l+0],6,-198630844),a=k(a,r,e,t,n[l+7],10,1126891415),t=k(t,a,r,e,n[l+14],15,-1416354905),e=k(e,t,a,r,n[l+5],21,-57434055),r=k(r,e,t,a,n[l+12],6,1700485571),a=k(a,r,e,t,n[l+3],10,-1894986606),t=k(t,a,r,e,n[l+10],15,-1051523),e=k(e,t,a,r,n[l+1],21,-2054922799),r=k(r,e,t,a,n[l+8],6,1873313359),a=k(a,r,e,t,n[l+15],10,-30611744),t=k(t,a,r,e,n[l+6],15,-1560198380),e=k(e,t,a,r,n[l+13],21,1309151649),r=k(r,e,t,a,n[l+4],6,-145523070),a=k(a,r,e,t,n[l+11],10,-1120210379),t=k(t,a,r,e,n[l+2],15,718787259),e=k(e,t,a,r,n[l+9],21,-343485551),r=r+w>>>0,e=e+S>>>0,t=t+A>>>0,a=a+F>>>0}return h.endian([r,e,t,a])};i._ff=function(c,d,n,m,r,e,t){var a=c+(d&n|~d&m)+(r>>>0)+t;return(a<<e|a>>>32-e)+d},i._gg=function(c,d,n,m,r,e,t){var a=c+(d&m|n&~m)+(r>>>0)+t;return(a<<e|a>>>32-e)+d},i._hh=function(c,d,n,m,r,e,t){var a=c+(d^n^m)+(r>>>0)+t;return(a<<e|a>>>32-e)+d},i._ii=function(c,d,n,m,r,e,t){var a=c+(n^(d|~m))+(r>>>0)+t;return(a<<e|a>>>32-e)+d},i._blocksize=16,i._digestsize=16,W.exports=function(c,d){if(c==null)throw new Error("Illegal argument "+c);var n=h.wordsToBytes(i(c,d));return d&&d.asBytes?n:d&&d.asString?o.bytesToString(n):h.bytesToHex(n)}})()});var nt={};Z(nt,{default:()=>x});module.exports=X(nt);var p=require("obsidian"),T=J(q(),1),et="https://www.rememberthemilk.com/services/auth/",R="https://api.rememberthemilk.com/services/rest/",st={apiKey:"",sharedSecret:"",authToken:"",defaultDueForNewTask:"none",noteCreationFolder:"",importWithNotesAndLink:!1},x=class extends p.Plugin{constructor(){super(...arguments);this.timeline=null}async onload(){await this.loadSettings(),this.addSettingTab(new P(this.app,this)),this.addCommand({id:"import-rtm-tasks",name:"Download all incomplete tasks",editorCallback:async(s,o)=>{this.checkAuth()&&await this.fetchAndProcessTasks("status:incomplete",!1,i=>{this.insertTasksToEditor(s,i)})}}),this.addCommand({id:"select-rtm-tasks",name:"Select and import tasks",editorCallback:async(s,o)=>{this.checkAuth()&&await this.fetchAndProcessTasks("status:incomplete",!0,i=>{this.insertTasksToEditor(s,i)})}}),this.addCommand({id:"import-rtm-tasks-custom",name:"Download tasks (Custom Filter)",editorCallback:async(s,o)=>{this.checkAuth()&&new _(this.app,async i=>{await this.fetchAndProcessTasks(i,!0,c=>{this.insertTasksToEditor(s,c)})}).open()}}),this.addCommand({id:"create-note-from-rtm-task",name:"Create note from RTM task",callback:async()=>{this.checkAuth()&&await this.fetchAndProcessTasks("status:incomplete",!0,s=>{this.createNotesFromTasks(s)})}}),this.addCommand({id:"add-rtm-task",name:"Add cursor line to RTM",editorCallback:async(s,o)=>{this.checkAuth()&&await this.addTaskFromEditor(s,o)}}),this.addCommand({id:"complete-rtm-task",name:"Complete task at cursor",editorCallback:async(s,o)=>{this.checkAuth()&&await this.completeTaskInEditor(s)}})}checkAuth(){return!this.settings.apiKey||!this.settings.sharedSecret?(new p.Notice("Please set your API Key and Secret in settings."),!1):this.settings.authToken?!0:(new p.Notice("Please authenticate with RTM from settings."),!1)}async fetchListsMap(){let s={};try{let o=await this.callRtmApi("rtm.lists.getList");if(o.rsp.lists&&o.rsp.lists.list){let i=Array.isArray(o.rsp.lists.list)?o.rsp.lists.list:[o.rsp.lists.list];for(let c of i)c&&c.id&&c.name&&(s[c.id]=c.name)}}catch(o){console.error("List fetch error:",o)}return s}async fetchAndProcessTasks(s,o,i){new p.Notice("Fetching tasks...");try{let c=await this.fetchListsMap(),d=await this.callRtmApi("rtm.tasks.getList",{filter:s,notes:"1"});if(!d.rsp.tasks||!d.rsp.tasks.list){new p.Notice("No tasks found.");return}let n=[],m=Array.isArray(d.rsp.tasks.list)?d.rsp.tasks.list:[d.rsp.tasks.list];for(let r of m){if(!r.taskseries)continue;let e=Array.isArray(r.taskseries)?r.taskseries:[r.taskseries];for(let t of e){let a=t.name,l=Array.isArray(t.task)?t.task[0]:t.task,f=r.id;!f&&t.list_id&&(f=t.list_id),f||(f="MISSING");let g="";l.due&&l.due!==""&&(g=`\u{1F4C5} ${l.due.split("T")[0]}`);let y="";l.start&&l.start!==""&&(y=`\u{1F6EB} ${l.start.split("T")[0]}`);let k="";switch(l.priority){case"1":k="\u{1F53A}";break;case"2":k="\u{1F53C}";break;case"3":k="\u{1F53D}";break}let w="",S=c[f];S&&(w=S);let A=[];t.tags&&t.tags.tag&&(Array.isArray(t.tags.tag)?t.tags.tag:[t.tags.tag]).forEach($=>A.push($));let F=[];t.notes&&t.notes.note&&(Array.isArray(t.notes.note)?t.notes.note:[t.notes.note]).forEach($=>{let L=$.$t||$.toString();L&&F.push(L)}),n.push({name:a,due:g,start:y,priority:k,listName:w,tags:A,notes:F,rtmId:{list:f,series:t.id,task:l.id},rawPriority:l.priority,rawDue:l.due})}}o?new I(this.app,n,r=>{i(r)}).open():i(n)}catch(c){console.error(c),new p.Notice("Fetch error.")}}insertTasksToEditor(s,o){if(o.length===0){new p.Notice("No tasks selected.");return}let i="";for(let c of o){let d="";c.listName&&(d=` #${c.listName.replace(/[\s,.]+/g,"_")}`);let n=c.tags.map(t=>` #${t}`).join(""),m=`[\u{1F42E}](rtm:${c.rtmId.list}:${c.rtmId.series}:${c.rtmId.task})`,r=c.priority?` ${c.priority}`:"",e=c.due?` ${c.due}`:"";if(i+=`- [ ] ${m} ${c.name}${r}${e}${d}${n}
|
|
`,this.settings.importWithNotesAndLink){let t=`https://www.rememberthemilk.com/app/#all/${c.rtmId.task}`;i+=` - RTM Link: ${t}
|
|
`,c.notes&&c.notes.length>0&&c.notes.forEach(a=>{a.split(`
|
|
`).forEach(f=>{f.trim()!==""&&(i+=` - Note: ${f}
|
|
`)})})}}s.replaceSelection(i),new p.Notice(`${o.length} tasks inserted.`)}async createNotesFromTasks(s){if(s.length===0){new p.Notice("No tasks selected.");return}let o=0;for(let i of s){let c=i.name.replace(/[\\/:*?"<>|]/g,"-"),d=this.settings.noteCreationFolder.trim();d.endsWith("/")&&(d=d.slice(0,-1)),d.startsWith("/")&&(d=d.slice(1)),d&&await this.ensureFolderExists(d);let n=d?`${d}/${c}.md`:`${c}.md`;this.app.vault.getAbstractFileByPath(n)&&(n=d?`${d}/${c}-${Date.now()}.md`:`${c}-${Date.now()}.md`);let m=i.tags.map(t=>`#${t}`).join(" "),r=i.listName?`#${i.listName.replace(/[\s,.]+/g,"_")}`:"",e=`# ${i.name}
|
|
|
|
`;e+=`- **RTM Link**: [\u{1F42E} Open Task](rtm:${i.rtmId.list}:${i.rtmId.series}:${i.rtmId.task})
|
|
`,i.due&&(e+=`- **Due**: ${i.due}
|
|
`),i.start&&(e+=`- **Start**: ${i.start}
|
|
`),i.priority&&(e+=`- **Priority**: ${i.priority}
|
|
`),(r||m)&&(e+=`- **Tags**: ${r} ${m}
|
|
`),e+=`
|
|
---
|
|
|
|
`,i.notes.length>0?(e+=`## Notes
|
|
|
|
`,i.notes.forEach(t=>{e+=`${t}
|
|
|
|
`})):e+=`(No notes in RTM)
|
|
`;try{await this.app.vault.create(n,e),o++}catch(t){console.error(`Failed to create file: ${n}`,t),new p.Notice(`Failed to create note for "${i.name}"`)}}new p.Notice(`${o} notes created.`)}async addTaskFromEditor(s,o){let i=s.getCursor(),d=s.getLine(i.line).replace(/^[-*] \[[ x]\] /,"").replace(/^[-*] /,"").trim();if(!d){new p.Notice("Task name is empty.");return}new p.Notice(`Adding: ${d}`);let n=o.file?o.file.basename:"";try{let m=await this.getTimeline(),r=await this.callRtmApi("rtm.tasks.add",{timeline:m,name:d,parse:"1"}),e=Array.isArray(r.rsp.list)?r.rsp.list[0]:r.rsp.list,t=e.id,a=Array.isArray(e.taskseries)?e.taskseries[0]:e.taskseries,l=a.id,g=(Array.isArray(a.task)?a.task[0]:a.task).id;if(this.settings.defaultDueForNewTask==="today")try{await this.callRtmApi("rtm.tasks.setDueDate",{timeline:m,list_id:t,taskseries_id:l,task_id:g,due:"today",parse:"1"})}catch(w){console.error("Failed to set due date",w)}if(n)try{await this.callRtmApi("rtm.tasks.notes.add",{timeline:m,list_id:t,taskseries_id:l,task_id:g,note_title:"Obsidian Link",note_text:`From Obsidian Note: [[${n}]]`})}catch(w){console.error("Failed to add note to RTM task",w)}let k=`- [ ] ${`[\u{1F42E}](rtm:${t}:${l}:${g})`} ${d}`;s.setLine(i.line,k),new p.Notice("Added to RTM!")}catch(m){console.error("Add Task Error:",m),new p.Notice("Add error.")}}async completeTaskInEditor(s){let o=s.getCursor(),i=s.getLine(o.line),c=/\(rtm:([\w\d]+):([\w\d]+):([\w\d]+)\)/,d=i.match(c);if(!d){new p.Notice("Error: No RTM Link found.");return}let n=d[1],m=d[2],r=d[3];if(!n||n==="MISSING"){new p.Notice("Error: List ID invalid.");return}new p.Notice("Completing task...");try{let e=await this.getTimeline();await this.callRtmApi("rtm.tasks.complete",{timeline:e,list_id:n,taskseries_id:m,task_id:r});let t=i.replace("- [ ]","- [x]");s.setLine(o.line,t),new p.Notice("Task completed!")}catch(e){console.error("Completion Error:",e),new p.Notice("Completion error.")}}async getTimeline(){if(this.timeline)return this.timeline;let s=await this.callRtmApi("rtm.timelines.create");return this.timeline=s.rsp.timeline,this.timeline}async callRtmApi(s,o={}){var t;let i=this.settings.apiKey,c=this.settings.sharedSecret;if(!i||!c)throw new Error("API Key/Secret missing");let d={...o,method:s,api_key:i,format:"json",auth_token:this.settings.authToken},n=Object.keys(d).sort(),m=c;for(let a of n)m+=a+d[a];d.api_sig=(0,T.default)(m);let r=`${R}?${new URLSearchParams(d).toString()}`,e=await(0,p.requestUrl)({url:r});if(e.json.rsp.stat!=="ok")throw console.error("API Error:",e.json),new Error(`API Error: ${(t=e.json.rsp.err)==null?void 0:t.msg}`);return e.json}async ensureFolderExists(s){if(!s)return;let o=s.split("/"),i="";for(let c of o)if(c&&(i=i===""?c:`${i}/${c}`,!this.app.vault.getAbstractFileByPath(i)))try{await this.app.vault.createFolder(i)}catch(d){console.error(`Failed to create folder: ${i}`,d)}}async loadSettings(){this.settings=Object.assign({},st,await this.loadData())}async saveSettings(){await this.saveData(this.settings)}},I=class extends p.Modal{constructor(u,s,o){super(u),this.tasks=s,this.selected=new Array(s.length).fill(!1),this.onSubmit=o}onOpen(){let{contentEl:u}=this;u.createEl("h2",{text:`Select Tasks (${this.tasks.length})`});let s=u.createDiv();s.style.maxHeight="400px",s.style.overflowY="auto",s.style.marginBottom="10px",this.tasks.forEach((d,n)=>{var a;let m=s.createDiv();m.style.display="flex",m.style.alignItems="center",m.style.padding="5px 0",m.style.borderBottom="1px solid var(--background-modifier-border)";let r=m.createEl("input",{type:"checkbox"});r.checked=(a=this.selected[n])!=null?a:!1,r.onchange=l=>{this.selected[n]=l.target.checked};let e=m.createSpan();e.style.marginLeft="10px";let t=`<b>${d.name}</b>`;d.listName&&(t+=` <small style="color:var(--text-muted)">[${d.listName}]</small>`),d.due&&(t+=` <small style="color:var(--text-accent)">${d.due}</small>`),d.notes&&d.notes.length>0&&(t+=" <small>\u{1F4DD}</small>"),e.innerHTML=t});let o=u.createDiv();o.style.display="flex",o.style.justifyContent="flex-end",o.style.gap="10px";let i=o.createEl("button",{text:"Select All"});i.onclick=()=>{let d=this.selected.every(Boolean);this.selected.fill(!d),s.querySelectorAll('input[type="checkbox"]').forEach(m=>m.checked=!d),i.textContent=d?"Select All":"Deselect All"};let c=o.createEl("button",{text:"Process Selected"});c.className="mod-cta",c.onclick=()=>{let d=this.tasks.filter((n,m)=>this.selected[m]);this.onSubmit(d),this.close()}}onClose(){this.contentEl.empty()}},_=class extends p.Modal{constructor(u,s){super(u),this.onSubmit=s}onOpen(){let{contentEl:u}=this;u.createEl("h3",{text:"Filter RTM Tasks"}),new p.Setting(u).setName("Search Query").setDesc("e.g. list:Inbox, due:today").addText(s=>s.setValue("status:incomplete").onChange(o=>{}).inputEl.addEventListener("keydown",o=>{o.key==="Enter"&&(this.onSubmit(s.getValue()),this.close())})),new p.Setting(u).addButton(s=>s.setButtonText("Search").setCta().onClick(()=>{let o=u.querySelector("input");o&&(this.onSubmit(o.value),this.close())}))}onClose(){this.contentEl.empty()}},P=class extends p.PluginSettingTab{constructor(u,s){super(u,s),this.plugin=s}display(){let{containerEl:u}=this;u.empty(),u.createEl("h2",{text:"Remember The Milk Settings"});let s="6/4/2026, 8:12:05 AM";u.createEl("p",{text:`Version: ${this.plugin.manifest.version} (Build: ${s})`,cls:"setting-item-description"}).style.marginBottom="2em",new p.Setting(u).setName("API Key").addText(o=>o.setValue(this.plugin.settings.apiKey).onChange(async i=>{this.plugin.settings.apiKey=i,await this.plugin.saveSettings()})),new p.Setting(u).setName("Shared Secret").addText(o=>o.setValue(this.plugin.settings.sharedSecret).onChange(async i=>{this.plugin.settings.sharedSecret=i,await this.plugin.saveSettings()})),new p.Setting(u).setName("Auth").addButton(o=>o.setButtonText("Start Auth").onClick(async()=>await this.startAuthProcess())),new p.Setting(u).setName("Default Due Date").setDesc("Setting for new tasks created from editor").addDropdown(o=>o.addOption("none","No Due Date").addOption("today","Today").setValue(this.plugin.settings.defaultDueForNewTask).onChange(async i=>{this.plugin.settings.defaultDueForNewTask=i,await this.plugin.saveSettings()})),new p.Setting(u).setName("Note Creation Folder").setDesc("Folder to create notes from RTM tasks.").addDropdown(o=>{o.addOption("","/ (Vault Root)"),this.app.vault.getAllLoadedFiles().filter(c=>c instanceof p.TFolder).forEach(c=>{c.path!=="/"&&o.addOption(c.path,c.path)}),o.setValue(this.plugin.settings.noteCreationFolder),o.onChange(async c=>{this.plugin.settings.noteCreationFolder=c,await this.plugin.saveSettings()})}),new p.Setting(u).setName("Import with Notes and RTM Link").setDesc("When inserting tasks to the editor, also include RTM task notes and links as sub-items.").addToggle(o=>o.setValue(this.plugin.settings.importWithNotesAndLink).onChange(async i=>{this.plugin.settings.importWithNotesAndLink=i,await this.plugin.saveSettings()}))}async startAuthProcess(){let u=this.plugin,s=u.settings.apiKey,o=u.settings.sharedSecret;if(!s||!o){new p.Notice("Enter keys first");return}let i={method:"rtm.auth.getFrob",api_key:s,format:"json"},c=o;Object.keys(i).sort().forEach(t=>c+=t+i[t]),i.api_sig=(0,T.default)(c);let n=(await(0,p.requestUrl)({url:`${R}?${new URLSearchParams(i).toString()}`})).json.rsp.frob,m={api_key:s,perms:"delete",frob:n},r=o;Object.keys(m).sort().forEach(t=>r+=t+m[t]);let e=(0,T.default)(r);window.open(`${et}?api_key=${s}&perms=delete&frob=${n}&api_sig=${e}`),new D(this.app,n,u,async()=>{this.display()}).open()}},D=class extends p.Modal{constructor(u,s,o,i){super(u),this.frob=s,this.plugin=o,this.onSuccess=i}onOpen(){let{contentEl:u}=this;new p.Setting(u).addButton(s=>s.setButtonText("Finish Auth").setCta().onClick(async()=>{let o=this.plugin.settings.apiKey,i=this.plugin.settings.sharedSecret,c={method:"rtm.auth.getToken",api_key:o,format:"json",frob:this.frob},d=i;Object.keys(c).sort().forEach(n=>d+=n+c[n]),c.api_sig=(0,T.default)(d);try{let n=await(0,p.requestUrl)({url:`${R}?${new URLSearchParams(c).toString()}`});n.json.rsp.auth?(this.plugin.settings.authToken=n.json.rsp.auth.token,await this.plugin.saveSettings(),new p.Notice("Success!"),this.onSuccess(),this.close()):new p.Notice("Failed.")}catch(n){new p.Notice("Error.")}}))}onClose(){this.contentEl.empty()}};
|
|
/*! Bundled license information:
|
|
|
|
is-buffer/index.js:
|
|
(*!
|
|
* Determine if an object is a Buffer
|
|
*
|
|
* @author Feross Aboukhadijeh <https://feross.org>
|
|
* @license MIT
|
|
*)
|
|
*/
|