Outliner with drag/drop reordering - part 2
@ccc thanks for the advice
Shortcut will not work from the watch. It says “could not open app for them URL scheme “Pythonista” because the app is not installed on this device
Normal, Shortcuts app is very limited on the watch. Anyway, you don't have any clipboard on the watch, so...what could you hope to do on the watch even if shortcut was authorized?
Édit: Perhaps you know Pyto shortcuts action "run Pyto code"? Doc says
Run Code will execute the given code with the given arguments. Can be executed in app or without leaving Shortcuts.
I've tried a little shortcut with only this action and a very short script:
path = '/var/mobile/Library/Mobile Documents/iCloud~is~workflow~my~workflows/Documents/a.txt' with open(path, mode='at') as fil: fil.write('test')
And I have executed this shortcut on my Apple Watch and it works...
Thus, you could execute a short Python code on your Apple Watch without opening Pyto on your iPhone. I did not try all but I think that you can only access a file in the ICloud Drive/Shortcuts folder, not in the Pythonista ICloud folder. I also tried to write on a private folder in iCloud Drive: ok on my iPad, not authorized on my watch.
Thus, assume that your outlines are stored in the Shortcuts folder (why not?), with a more complex script (converted from Pythonista to Pyto), you could (perhaps, to be tested ) append a line to an outline file.
Of course, the text could not be added to the clipboard by the watch. But you can imagine you type/say the text into your watch. Your watch could even ask you which outline you want to append.
The script will check in the dir if the file exists, open it in append and write the wanted text.
Not sure it could be useful.
@cvp i dont think it matters since the pythonista url will fail on the watch but I’m not sure what you mean when you say there is no clipboard on the watch. The Shortcut I execute from the Watch asks for input and sets the clipboard and then opens the Pythonista URL with that clipboard as an arg. If I could tell it to run the URL on the phone, then maybe it would work.
Anyway, your pyto idea is good
if I could tell it to run the URL on the phone,
your pyto idea is good
But you would have to store your outlines in the iCloudDrive/Shortcuts/your folder/ folder.
If you don't like it, I will not develop the shortcut and its Pyto script
@cvp That is where I store them (in order to have access from all my iDevices).
@ihf I thought that you stored them in Pythonista iCloud
Can I have the exact folder of your outlines?
@cvp My error. Yes, they are in the Pythonista 3/Outlines (iCloud) folder
@ihf In this case, unfortunately, a shortcut running on an Apple Watch will not access the outlines.
But if you decide to use iCloudDrive/Shortcuts/Oulines as base folder for your outlines, an Apple Watch shortcut could be done for appending a text in an outline, without disturbing the other tasks (I think, not tested)
@ihf I have written a shortcut and its included Pyto code to:
- display a list of outlines in iCloudDrive/Shortcuts/Outlines folder
- ask the user to select one
- ask the user the text to add at end of outline
- add a row to the outline
- save the outline with same name
I keep the same name because the script would not be authorized to modify the outline.prm file with an eventual modified file name because this .prm file is local to Pythonista folder.
Thé script does not update the 2022 event's notes with the new content (used by Apple Watch shortcut to display an outline).
As is, the shortcut works on my iPad, but not on my Apple Watch, without any explanation as usual, during execution of Pyto code. I guess that something of the Pyto code is not authorized in the Watch.
Édit: on my watch, I get an error "impossible to listen to the last recorded vocal message", very helpful 😂
@ihf I don't understand how but the last action of my shortcut was "listen to last recorded vocal message". I guess I added it but not voluntarily.
OF COURSE, I removed this action but the shortcut does not work yet...on my watch
On my watch, the action "get folder content" returns nothing in place of the list of files as it does on iPad.
@ihf I try, in a shortcut on my Apple Watch, to get the list of files of a iCloud shortcuts sub-folder, and, as said previously, action "get folder content" does not work. I just tried an action "run Pyto code" with os.listdir() but it also returns None... on the Watch but is ok on my iPad.
If I want to write a shortcut/Pyto_code, I need to get the full file name, it is annoying.
@ihf I have a little shortcut with an included Pyto code, with these actions:
- Set fixed file name of outline file to be appended
- Ask text to append
- Run Pyto code which will append text to specified outline, without
- changing file name
- updating .prm with last updated file
- changing 2022 event's notes with full file
Not sure this could help you as I can't find myself the full file name because Apple Watch is not authorized to get a list of files of a sub-folder even in shortcuts folder.
If you want to try, this is the shortcut but you have to set manually the full file name.
@ihf I don't know if you want to try this shortcut.
If yes, create subfolder Outlines in ICloudDrive/Shortcuts folder and copy there an outline file.
Type its name (without .outline) in shortcut first text action.
And run shortcut on your watch.
After, you can always check the modified outline in outline.py by setting current path to this path and open the outline.
And please give some feedback
@cvp I haven’t tested the shortcut yet. I just got a new iPhone 13 Pro and have been busy trying to get everything working from my old iPhone. I’ve noticed a problem when running Pythonista and the outline script. Touching the Close X in the left corner or the menu item is hit or miss. I’m not sure you could do anything about it as it may just be a problem with Pythonista on this new phone but I thought I’d let you know.
Touching the Close X in the left corner or the menu item is hit or miss
Not understood, sorry. I'll wait for more info.
@cvp On the iPhone 13, I have found that when I try to touch one of the menu items (e.g., the X to terminate the script), it does not recognize the touch. After several tries, I can get it to work but it is as if the menu bar is too high or the coordinates for the touch are not right for this phone.
@ihf Sorry but I sincerely don'T know what I could do. If the button is visible, how is it possible that the touch area could not be correct.
@cvp I agree but there it is.
@cvp the outline name is actually in the area at the top that ios places its icons for networks and the time and the battery. It could be an ios bug on the iphone 13. This was never an issue on the old iphone.
@ihf I guess that I'm responsible for the problem. The script displays outline name and undo button at 10 pixels from the screen top. And that is obviously not compatible with a device having a notch. I don't have this kind of device (only iPad Air 4 and iPhone SE2) thus I've never remarked a problem.
As you got an iPhone 13Pro as Xmas present, I'll have to quickly develop a new version supporting it 😂.
I'll foresee to not display anything in the safe area of the iDevice. You'll see that even the TableView will be limited just above the horizontal line at bottom.
But Pythonista fullscreen overrides the whole screen.
Wait until my evening.
@cvp I guess all the complaints about the notch were related to more than just aesthetics.