Timed Adventures for Jake & Finn - projects mngmnt

Discuss and share scripts and script files...
Post Reply
SkyFrontier
Posts: 2341
Joined: 04 Jan 2010 14:27
Location: Pasárgada (eu vou!)

Timed Adventures for Jake & Finn - projects mngmnt

Post by SkyFrontier »

Premise: "add notes within folders then associate that to a to-do list which you can access the notes with the folders which the notes are associated with from the menu". (asked by CookieMonster; reference: Notes in Folder)

With that in mind, I bring you 'Timed Adventures for Jake & Finn', a mix of session planner, task scheduler and project manager, plain-text based.

Quick setup:

1. Download the attached "JakeAndFinn.xys" file and put it under <xyscripts>;

2. Set a Custom Keyboard Shortcut (CKS) to this script (the 'main menu':

Code: Select all

 load("JakeAndFinn","_ 000;_ 001;_ 011;_ 003;_ 012;_ 014;_ 015;_ 016;_ 017;_ 022;_ 021");
3. Set a Portable File Association (PFA):

Code: Select all

 xvx> load("JakeAndFinn","_ 019"); 
4. create a Tasks file (suggested extension: .xyt, but it can be anything *plain text-based*) within a dedicated folder - this is important as each operation demanding automatic manipulation of such file will create a corresponding numbered backup file, as well as each Tasks file verification will store invalid/non-existent entries in a similar file.
The default .xyt file set within the script is:
D:\re\XYtasks.xyt
(this can be easily search & replaced by your favorite text editor - but be aware that there are several of those entries spread all over the modules that build this script).

Voilá - you are ready to start creating control 'companion' files, adding them to a central repository which will warn you when a deadline approaches, and at any time can display, launch or list respectively notes, programs/files/folders or pertinent item(s) to a given project, always permitting a quick, flexible manipulation of all those elements via human readable, cross-platform, universally edit-able plain text files.

The Tasks file will be, more or less automatically (user choices), filled with entries like:

Code: Select all

14/05/2017 09:40|C:\TMP\tests2\a test file.xvx
06/06/2017 14:30|D:\TMP\bob.xvx
< crlf > [this is a convention to tell that *this last line must be blank*, and this mandatory]
So there are 2 core concepts working behind TA:J&F:
- .xvx (this convention should not be changed unless proper adaptations on main script are made) companion files which are designed to stay along with their 'fellow files': functionally identical to .lnk files, they are meant to contain:
a. a path to the the item (file or folder) it refers to, as well as other associated item(s) " | "-separated ['<space>|<space>'] which will be either opened (in tabs, in case of folders) or launched (programs or documents) if a proper Portable File Association (PFA) is set;
b. notes, which can be anything, of any size*, in any format;
c. "Companion File(s) and/or Folder(s)", listed one per line, which will be displayed in so to speak 'passive mode' on a paperfolder, if any.
None of these are mandatory: any combination of associated items, notes and/or attached items will be handled properly by the script.

*Arbitrary limit: 70,69 MB, due to some sc readfile limits. It applies to either .xvx files as well as to the following

- .xyt (or any other text-based - this extension will never be checked) Tasks file, as mentioned a central repository containing scheduled dates as well as .xvx file path(s) those dates belong to, like this:
  • 03/05/2017 19:10|C:\TMP\tests2\a test file.xvx
    08/05/2017 20:52|C:\TMP\Ubuntu12.xvx
    09/05/2017 22:24|C:\w98_vBox.xvx
    09/05/2017 23:02|C:\UP\EAW_OneDrive.xvx
    09/05/2017 16:00|C:\UP\cd\WinampPortable.xvx
    06/06/2017 14:30|D:\TMP\bob.xvx
Once the'JakeAndFinn.xys' is placed under <xyscripts> and

Code: Select all

xvx> load("JakeAndFinn","_ 019"); 
is set as a PFA, the Tasks file "D:\re\XYtasks.xyt" (you can search and replace this with any file path to a Tasks file at the 'JakeAndFinn.xys' file) will be checked each time a .xvx companion file is executed; the first Task entry is base to trigger alarms and reminders (which can or cannot be set under the script); if the task is due, the script will pop a reminder and teleport you to the referred .xvx file - then, a short menu appears offering options to open it with notepad, launching it along with its 'felow item(s)', quick preview it or delete its entry at the .xyt Tasks file.

*IMPORTANT*: regional settings will severely interfere throughout the script usage; I tried to mark** inside the script the proper areas which may be checked so the date formats match your settings; feel free to post any comments asking for help, adding the relevant info concerning the date format. In case, the format is 'dd/mm/yyyy hh:nn' (the "/" separator can vary, too). Long ago I fought and lost against a method to auto-determine regional settings, now I'm planning to do a revanche and in case it's a win, I'll publish an update.
The small code can help me decrypt which settings you have:

Code: Select all

::text now(""); 
// '08/05/2017 21:48:37' as of now - but knowing that '08' corresponds to 'dd' and '05' to 'mm' avoids confusion, so the 'dd/mm/yyyy hh:nn' will make a difference here

**Marking:

Code: Select all

//_____________________________REGsetts!!!
As said, the script's main menu can be invoked by using the following code:

Code: Select all

 load("JakeAndFinn","_ 000;_ 001;_ 011;_ 003;_ 012;_ 014;_ 015;_ 016;_ 017;_ 022;_ 021");
-which is meant to be attached to a Custom Keyboard Shortcut (CKS) and brings the following tools:

"J - Just Open (anything with Notepad)"
-will try to open any file with Notepad (originally designed to check and edit .xvx files only, which is why it's called via the PFA version); no size or extension checks are made

"F - Full All Out (for .xvx files only)"
-the launcher for .xvx files, bringing active item(s) related to the 'felow item' they are attached to, as well as passive item(s) (ie, the ones that will merely be listed in a paperfolder) and, in the end, will open the according .xvx virtual container so related notes can be read and edited during the work session

"K - Create Companion File(s)"
-this will create .xvx files for the selected item(s) (files and/or folders; multi-items can later be added: please use " | " ['<space>|<space>'] as items' separators), with proper format (1st line: the item the .xvx refers to; a 'notes' field; 'Companion File(s) and/or Folder(s)' section for the passive mode, one item per line); everything is optional and can be filled in any combination

"1 - Check Next Task"
-alternative 'manual check' to the next task, triggering alarm or reminder if/when it fits

"2 - Validate Tasks File and Preview .xvx(s)"
-this small tool will ensure that the soonest task is always on top of the Tasks file listing (prerequisite for the system to work), as well as a 'live preview' of internally (on module execution) selected .xvx file(s) - especially useful if descriptive text or project status' notes are written as the first line of the 'notes' field. Optionally, you'll have a number of options to deal with the .xvx contents

"3 - Insert New Task(s) into the Tasks File"
-allows for easy insertion of task(s), with options to globally shift dates or on a per entry basis; performs validation in the background, too

"4 - Full Preview of Tasks File"
-raw quick view of the tasks file, offering quick close with 'ok' (already focused) and a button to copy content to clipboard

"5 - Preview the selected"
-same as above, applied to the currently selected item (only one), assuming it's a .txt-based file under the predefined limit of ~70 MB

"Y - Go to the Tasks file"
-self descriptive.

"Z - Eliminate Due Task from Tasks File"
-self descriptive.

Main menu:
JakeAndFinn_MainMenu.png
JakeAndFinn_MainMenu.png (14.62 KiB) Viewed 1075 times
Full menu, with extra options used for my convenience:

Code: Select all

 load("JakeAndFinn","_ 000;_ 001;_ 011;_ 003;_ 012;_ 014;_ 015;_ 016;_ 017;_ 006;_ 007;_ 008;_ 009;_ 004;_ 005;_ 010;_ 022;_ 021");
Preview:
JakeAndFinn_FullMenu.png
JakeAndFinn_FullMenu.png (22.95 KiB) Viewed 1075 times
Stuff you'll find interesting to play with:

Code: Select all

Several occurrences ('replace all' may adjust them all at once):
-(8 occurrences) the path to Tasks file:
   $xyt = "D:\re\XYtasks.xyt";
-(11 occurrences) the size limit for sc readfile:
   $chkSZ = "74123456";
-(several occurrences)
'xvx' (the base extension for companion files - think carefully on changing this!)

"F - Full All Out (for .xvx files only)|:fvs : _ 002"
"F - Full ALL Out (for .xvx files only)|:fvs : _ 011"
-milisseconds; amount used to launch exes or items
   $WE = "2000"; //DELAY TIME FOR EXEs
   $WF = "500"; //delay time for non-EXEs

"1 - Check Next Task|:select : _ 012"
"Check Next Task|:select : _ 019"
-amount and time unit under which the reminder will show up; if missing one or both, no reminders will nag on next task's arrival
-reminders will persist until the due task is removed or manually postponed at the Tasks file (default: .xyt)
   $reminder = "30"; // 1 - 24 for hours, 1 - 60 for minutes; empty: no reminder
        $unit = "M"; // m/M(inutes) or h/H(ours)?;            empty: no reminder

-the lower the values, the faster the message of when the next task will go; 
-the chars and their amount used for the message animation can also be changed at will - "?" is used as separator, here
 - some of these are responsible for the script file being written as UNICODE document
     $chars = ".?,?;?i?°?•?????*?o?O?@?O?o?*?????•?°?!?;?,?.";
   $max = 48; //default: 48 [perfect ending for wait 120]
...
   wait 60; //40-120 is ok; default: 120 or 60 [for max=48]

Code: Select all

***toDo: 
 - add parent .xyt(s) as trackback; 
 - 'Full All Out' (other ops too?) should also validate .xyt (exists $tst == 1);
 - "Eliminate Due Task from Tasks File" should check and warn if the task is NOT due;
 - go to <self>;
 - paperfolder: non-existent listed companion should be reported?
An early (2014) take on this can be found here.

---
To J, with Love. Loving as usual...
Attachments
JakeAndFinn.xys
(64.71 KiB) Downloaded 135 times
New User's Ref. Guide and Quick Setup Guide can help a bit! Check XYplorer Resources Index for many useful links!
Want a new XYperience? XY MOD - surfYnXoard
-coz' the aim of computing is to free us to LIVE...

Post Reply