Welcome!
This is the community forum for my apps Pythonista and Editorial.
For individual support questions, you can also send an email. If you have a very short question or just want to say hello — I'm @olemoritz on Twitter.
Outliner with drag/drop reordering - part 2
-
@ihf
please read entire post, covers several subjects
I have thought to the fact that it works on my Apple Watch. I told you that I had done some tests with 2022 June 01 before I develop 2042 January 1.
The events of June 2022 do not exist any more but a search on my iPhone shows them. And perhaps the shortcut on Apple Watch shows them also and not the real ones of 2122...But anyway, do you really share all your contacts? Just to be sure we forget this solution.
Or do you prefer something like this (automatically done by a little shortcut which scans my 2042 events).
-
@cvp I think that using Data Jar is preferable . You asked ifI share all of my contacts. I try not to but many platforms ask you to and it would be easy to slip. I presume that there is no way for Pythonista to write a file into the iCloud/DataJar folder thereby obviating the need for a shortcut to be run each time an Outline is changed?
-
@ihf I think that if we write ourselves an iCloud file we will meet new problems thus the best solution will be to run a quick shortcut which will add/update a key/value pair at store level (if you agree).
I have not yet updated outline.py, perhaps tomorrow if you agree this way.
Anyway, here is a shortcut to run only once to create a DataJar key/value for each 2042 event.
And here is a shortcut to get all keys, select one and display the value, also working on Apple Wach
Try them without danger
-
@cvp The Shortcuts worked as expected.
-
@ihf Ok, I stop for today but tomorrow, I'll modify outline.py to update the DataJar via a started shortcut but I'll not yet remove the 2042 event update to be sure at least one thing works.
Thus, hear you tomorrowbut first of all, is this solution ok for you: key/value at DataJar store level?
-
@ihf it is obvious that Outline.py could also manage a keyed file in iCloud Drive like DataJar but you know problems we have had when an iCloud file was not downloaded locally and that we had to assure it was first downloaded before its update... Thus if this app takes care of this problem itself, it is good for me.
-
@ihf Please install shortcut Clipboard_to_DataJar
before installing new version
of outline.pyThen, install V01.36 and outline.versions with
Version V01.36 - in addition to save outline in calendar event on 01 January 2042, copy outline¥content in clipboard and run Clipboard_to_DataJar shortcut to also save outline in DataJar store as pair key=outline name value=outline content
And test, of course. You will see that saving an outline will run a shortcut then comes back to script.
Saving also as 2042 event is still active, I'll remove this code when you decide that DataJar is the right solution.
I advice to not set an automatic save which is too frequent -
@cvp I ran Outline and saved a modified outline. The script ran the Shortcut and hung Shortcuts and after a minute or 2 crashed Shortcuts. I found that the Data Jar beta had expired so I reinstalled it and verified it works and that my outlines are there.
However, when I run the Outlines as DataJar, the newly modified Outline is not present (even after several minutes). I guess it takes awhile for it to show up? Also, the Shortcut lists all my Data Jar contents, not just the outlines.Traceback (most recent call last):
File "/private/var/mobile/Containers/Shared/AppGroup/228D1F3E-E592-4896-BBF5-D6EA74943D0D/Pythonista3/Documents/outline.py", line 3321, in tableview_cell_for_row
v = MyInputAccessoryView(row)
File "/private/var/mobile/Containers/Shared/AppGroup/228D1F3E-E592-4896-BBF5-D6EA74943D0D/Pythonista3/Documents/outline.py", line 503, in init
self.width = mv.get_screen_size()[0] # width of keyboard = screen
File "/private/var/mobile/Containers/Shared/AppGroup/228D1F3E-E592-4896-BBF5-D6EA74943D0D/Pythonista3/Documents/outline.py", line 1168, in get_screen_size
for window in UIApplication.sharedApplication().windows():
File "/var/containers/Bundle/Application/F461CDE3-9B4B-426C-8867-7562C21CF685/Pythonista3.app/Frameworks/Py3Kit.framework/pylib/site-packages/objc_util.py", line 801, in call
ordered_args = list(args) + [kwargs[key] for key in kwarg_order]
TypeError: 'builtin_function_or_method' object is not iterable -
@ihf sorry but I don't really understand what you said and why do you post a traceback while you don't describe any script crash, only shortcuts crash
You said
Also, the Shortcut lists all my Data Jar contents, not just the outlines.
Which shortcut do you run? This one ?
Édit: you're right, my DataJar only contains outlines, thus....
how could we distinguish them? Or we could not add them at store level but a lower level?
Up to you to tell me, I didn't even know DataJar until yesterdayOk, I've a solution: create an entry "Oulines" at store level and store there pairs outlin_name/content
Agree? If yes, I'have to change all, tell me quickly, almost gone away
-
@cvp Sorry about the traceback, I first got a Pythonista error but restarting it cleared it. In regard to Data Jar, I believe that the Outlines could be one key and that key can have values such as lists or dictionaries. The dictionary (or list) could presumably hold each separate outline. However, a bigger problem is that the modified outline has yet to show up on the Watch (it shows up on 2 iPads so it must be on iCloud).
-
@ihf check my previous post please, update while you typed
-
@ihf said
However, a bigger problem is that the modified outline has yet to show up on the Watch (it shows up on 2 iPads so it must be on iCloud).
I ask me if I didn't start DataJar on iPhone before?
Perhaps, you have to run DataJar on your iPhone to force the download of the iCloud file
-
@ihf Even if I can have a shortcut action "set Outlines.name outline_content", thus at level lower than top level of DataJar, I don't find an action to get list of keys of this Outlines level
-
@cvp What happens if you have a key in Data Jar that in turn has a value of a dictionary and the key values in the dictionary are the Outline names with their content. Then the shortcut to get a value based on key from Data Jar would get you the dictionary and the shortcut to get values from a dictionary would get you the outline text. Would that work?
-
@ihf Not sure I understand your question but I have solved I think to have a dictionary named Outlines at store level and dictionary contains pairs key=name value=data.
Outline.py will stay the same but the 3 shortcuts need to be updated.
First,
Clean manually
your outlines in your DataJar- the shortcut to run only once Outlines 2042 Events to DataJar
Run it and check your DataJar
- the shortcut to select an outline and display its content, even on Apple Watch
- the shortcut executed by outline.py
-
@cvp It works! Thank you!
-
@ihf so i deserved my vacation 😀
-
@cvp many times over :-)
-
@ihf please note that I've been obliged to run DataJar on my iPhone to see the outlines on my watch. Not sure it will always be so
Tell me when you want I comment/remove the code to store also the outlines as 2042 event
-
@cvp I am using the latest version which is running the shortcut properly. I have an outline with a blank item at the end and if I try to delete it through the menu “delete with children” it hangs the program.