diff --git a/.env.example b/.env.example index ded48c13..1bfca606 100644 --- a/.env.example +++ b/.env.example @@ -1,8 +1,3 @@ -# Optional override for Google OAuth client ID at build/dev time. -# Client secret is NOT used in the extension — token exchange is on accounts.betterseqta.org. -# See docs/GOOGLE_CALENDAR_ACCOUNTS_CALLBACK.md - +# Optional OAuth client ID overrides (secrets live on accounts.betterseqta.org) # GOOGLE_OAUTH_CLIENT_ID=your-id.apps.googleusercontent.com - -# Outlook / Microsoft Graph (see docs/OUTLOOK_CALENDAR_ACCOUNTS_CALLBACK.md) # OUTLOOK_OAUTH_CLIENT_ID=your-azure-application-client-id diff --git a/README.md b/README.md index 8b8c83fa..463a3c5c 100644 --- a/README.md +++ b/README.md @@ -3,11 +3,11 @@
- A beautiful 🤩 Chrome Extension that adds additional features and gives an overall better experience for SEQTA Learn. Currently looking for contributors 🔥 + A beautiful 🤩 browser extension that transforms SEQTA with modern themes, powerful customization, productivity tools, and an improved user experience. Contributions are always welcome!
@@ -16,15 +16,16 @@- This removes all BetterSEQTA+ timetable events from your {providerLabel} Calendar for this school. - Your connection stays active — you can sync again later. -
-- Your synced timetable events will stay in {providerLabel} Calendar, but BetterSEQTA+ will stop - updating them until you connect again. -
-- Syncs {syncWeeksAhead} weeks ahead on connect and manual sync. Weekly auto-sync adds each new week forward. -
-+ Stops BetterSEQTA+ from updating your calendar. Synced classes stay in {providerLabel} Calendar + until you delete them or connect again. +
++ Removes every BetterSEQTA+ timetable event from your {providerLabel} Calendar for this school. + Your account stays connected — use Update calendar to sync again. +
+{wa=a;if(q)throw Qc(a),"unwind";Cc(a)},N=[],Kc=[],Rc=[],O={};function Sc(){for(var a=e.numThreads-1;a--;)Ic();Hc.unshift(()=>{Ua++;Tc(()=>Wa())})}var Vc=a=>{var b=a.Ab;delete O[b];N.push(a);Kc.splice(Kc.indexOf(a),1);a.Ab=0;Uc(b)};function Na(){Rc.forEach(a=>a())} +var Jc=a=>new Promise(b=>{a.onmessage=g=>{g=g.data;var h=g.Bb;if(g.Gb&&g.Gb!=Ka()){var l=O[g.Gb];l?l.postMessage(g,g.Mb):x(`Internal error! Worker sent a message "${h}" to target pthread ${g.Gb}, but that thread no longer exists!`)}else if("checkMailbox"===h)Ra();else if("spawnThread"===h)Lc(g);else if("cleanupThread"===h)Vc(O[g.hc]);else if("loaded"===h)a.loaded=!0,n&&!a.Ab&&a.unref(),b(a);else if("alert"===h)alert(`Thread ${g.ic}: ${g.text}`);else if("setimmediate"===g.target)a.postMessage(g);else if("callHandler"=== +h)e[g.Qb](...g.args);else h&&x(`worker sent an unknown command ${h}`)};a.onerror=g=>{x(`${"worker sent an error!"} ${g.filename}:${g.lineno}: ${g.message}`);throw g;};n&&(a.on("message",g=>a.onmessage({data:g})),a.on("error",g=>a.onerror(g)));var c=[],d=[],f;for(f of d)e.propertyIsEnumerable(f)&&c.push(f);a.postMessage({Bb:"load",Rb:c,kc:z,lc:va})});function Tc(a){q?a():Promise.all(N.map(Jc)).then(a)} +function Ic(){var a=new Worker(new URL(import.meta.url),{type:"module",workerData:"em-pthread",name:"em-pthread"});N.push(a)}var La=a=>{E();var b=I()[a+52>>>2>>>0];a=I()[a+56>>>2>>>0];Wc(b,b-a);Pc(b)},Qa=(a,b)=>{P=0;a=Xc(a,b);0
>>=0;var d=new Zc(a);b>>>=0;c>>>=0;I()[d.Ib+16>>>2>>>0]=0;I()[d.Ib+4>>>2>>>0]=b;I()[d.Ib+8>>>2>>>0]=c;$c=a;ad++;throw $c;}
+function bd(a,b,c,d){return q?Q(2,1,a,b,c,d):fb(a,b,c,d)}function fb(a,b,c,d){a>>>=0;b>>>=0;c>>>=0;d>>>=0;if("undefined"==typeof SharedArrayBuffer)return 6;var f=[];if(q&&0===f.length)return bd(a,b,c,d);a={ec:c,Ab:a,Hb:d,Mb:f};return q?(a.Bb="spawnThread",postMessage(a,f),0):Lc(a)}
+var cd="undefined"!=typeof TextDecoder?new TextDecoder:void 0,dd=(a,b=0,c=NaN)=>{b>>>=0;var d=b+c;for(c=b;a[c]&&!(c>=d);)++c;if(16 >>=0;"function"===typeof Atomics.jc&&(Atomics.jc(H(),a>>>2,a).value.then(Ra),a+=128,Atomics.store(H(),a>>>2,1))}var Ra=()=>{var a=Ka();a&&(Oa(a),zd(Ad))};function Eb(a,b){a>>>=0;a==b>>>0?setTimeout(Ra):q?postMessage({Gb:a,Bb:"checkMailbox"}):(a=O[a])&&a.postMessage({Bb:"checkMailbox"})}var Bd=[];function Fb(a,b,c,d,f){b>>>=0;d/=2;Bd.length=d;c=f>>>0>>>3;for(f=0;f