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");
Code: Select all
xvx> load("JakeAndFinn","_ 019");
The default .xyt file set within the script is:
(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).D:\re\XYtasks.xyt
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]
- .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
Code: Select all
xvx> load("JakeAndFinn","_ 019");
*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("");
**Marking:
Code: Select all
//_____________________________REGsetts!!!
Code: Select all
load("JakeAndFinn","_ 000;_ 001;_ 011;_ 003;_ 012;_ 014;_ 015;_ 016;_ 017;_ 022;_ 021");
"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:
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");
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?
---
To J, with Love. Loving as usual...