MoE Code · 更新记录
1.26.0
Potentially breaking:
• Action "Select Map Bounding Box Coordinates": Changed value usage from minutes to seconds, but the old default value of 10 minutes is preserved in the new default value of 600 seconds.
Functional changes / improvements:
• Action "Make HTTP Request": Added usage of LongRunningIntent if on iOS 27 and the timeout is greater than 30 seconds to extend the runtime well past the traditional limit.
• Action "Set Circular Widget / Complication Value": Added parameter "Is Charging".
• Circular gauge widgets and complications:
◦ Added an overlaid lightning bolt symbol if the above is true.
◦ Slightly increased SF symbol size to match built-in ones.
• Action "Remove Photos Items' Locations": Removed unnecessary restriction to iOS 27.
• Action "Select Map Bounding Box Coordinates": Added parameter for existing coordinates string to be drawn on the map for adjustments.
• Action "Select Map Bounding Box Coordinates" and "Is Location In Bounding Box?": Following the above, merged code for validation.
• Actions "Make HTTP Request" and "Select Map Bounding Box Coordinates": Merged code for running UI pop-ups as a LongRunningIntent if on iOS 27.
• Action "Sync And Reload Widgets / Complications": Removed legacy, now-redundant public permissions.
• All iOS actions: Implemented standard code layout and best practice / Principle of Least Privilege permissions.
Cosmetic changes / improvements:
• Action "Select Map Bounding Box Coordinates (Legacy)": Renamed to "Select Map Bounding Box Coordinates (Deprecated)", following the above.
1.17.0
Created:
• Action "Subtract Lists".
• Action "Change Existing Images' / Videos' Locations".
• Action "Get Certificate Chain".
• Action "Boolean".
• Action "Pretty Print Dictionaries".
Functional changes / improvements:
• Action "Set Nested Dictionary Value": Marked existing one as deprecated (necessary so not to disrupt current usage, as the value parameter's data type needed to be changed) and created new version that supports setting a value that's an array of one item, unlike the native action which always unwraps in this scenario.
• Parameter "Correct Data Types": Fixed bug where this wouldn't happen if a list / array only contained one item.
• Action "Make HTTP Request": Corrected handling of scenario where a timeout has occurred but a custom timeout message hasn't been provided - the default error of "The request timed out" will now throw, rather than "(iOS_App.HTTPRequestError, 1)".
• Actions "Add Value(s) To List / Merge Lists", "Remove Value(s) From List", and "Transform JSON Using JQ": Fixed bug where JSON wouldn't be correctly serialised to string.
Cosmetic changes / improvements:
• Action "Change Images' / Videos' Creation Dates": Renamed to "Change Existing Images' / Videos' Creation Dates".
• Action "Make HTTP Request": Changed summary from "Request URL" to "Make HTTP request to URL".
Attempted changes:
• Actions "Is Internet-Connected?" and "Make HTTP Request": Attempted to add parameter to ignore TLS certificate failures but discovered that per-domain App Transport Security (ATS) exceptions are needed.
1.16.1
-Created-
• Action "Show Markdown".
• Action "Find Invalid Variable References".
-Functional changes-
• Action "Make HTTP Request": Added parameter for custom timeout message.
• Actions "Get Value Position In List", "List Contains Value(s)?", and "Remove Value(s) From List": Added specific handling for dictionaries so that key order doesn't matter.
• Action "Sort Keys Of Dicts In List": Added graceful handling (skipping) of an error scenario where the value that's meant to be a dict is malformed.
• Actions "Convert JSON Array To Shortcuts List" and "List Contains List?": Added parameter for correcting data types.
• Action "Extract Action Blocks": Added an error throw for if a +++ comment doesn't end with a label.
• Action "Set Circular Widget / Complication Value": Added trimming of SF symbol name.
• Action "Transform JSON Using JQ": Added parameters for output list type, pretty print, and correct data types.
• Action "Multi Replace Text": Split up parameter for delimiter into one for targets and one for substitutions.
• Data correction parameters: Expanded to convert full strings "true" and "false" to their literal Boolean equivalents.
• Below actions: Changed Shortcuts list output so that if correcting of data type is enabled then true and false will be converted to "Yes" and "No" respectively.
◦ "Add Value(s) To List / Merge Lists"
◦ "Remove Value(s) From List"
• Implemented improved / proper parsing of list parameters for the following actions, including allowing empty inputs more broadly and removing requirement for a string list delimiter. An unavoidable side effect of this is that parameters / variables need to be re-linked, so I chose to create new versions and mark the old ones as deprecated to be removed in the future, rather than break anything.
◦ "List Contains List?"
◦ "List Contains Value(s)?"
◦ "Convert String / Shortcuts List To JSON Array"
◦ "Add Value(s) To List / Merge Lists"
◦ "Remove Value(s) From List"
◦ "Sort Keys Of Dicts In List"
◦ "Get Value Position In List"
◦ "Multi Replace Text"
◦ "Extract Action Blocks"
◦ "Change Images' / Videos' Creation Dates"
◦ "Mark Photos / Videos"
• String-to-array conversions: Changed handling of no delimiter from throwing an error to returning the original string, as I've now removed a default from parameters, adding a default that's guaranteed to not appear in strings is difficult, and it should be obvious that the string hasn't been converted to an array.
• Action "Get Device Type": Tried to change output from string to an AppEnum of possible values to make it easier to use, but it was rejected as it contained product names. Instead, I tried to added a link to the documentation where the possible values can be found, but that was rejected too. So, it now just provides a relative link.
-Cosmetic changes / improvements-
• Action "Remove Value From List": Renamed to "Remove Value(s) From List"
• Action "List Contains Value?": Renamed to "List Contains Value(s)?"
• Category "Widget / Complication": Renamed to "Widgets / Complications"
• Action "Mark Photos / Videos": Renamed to "Mark Images / Videos As Favourited, Unfavourited, Or Hidden"
• Below actions: Changed parameter summary to be similar to the title.
◦ "List Contains Value(s)?"
◦ "Change Images' / Videos' Creation Dates"
◦ "Mark Images / Videos As Favourited, Unfavourited, Or Hidden"
1.15.0
Changes are in decreasing order of importance.
Removed:
• Action "Extract Strings From Binary To JSON Array", as superseded by new version of "Extract Strings From Binary".
Added:
• Action "Remove Value From List": Created.
• Action "Get File / Folder Properties": Created.
• Action "Open Settings Deep Link": Created.
• Action "Get Device Type": Created.
• Action "Extract Action Blocks": Created.
Changed:
• Action "Merge Lists":
◦ Fixed bug where, when filtering of duplicates was disabled, array add mode was always suffix.
◦ Fixed likely bug where, when filtering of duplicates was enabled and array add mode was set to prefix, order of added items would be reversed.
◦ Renamed to "Add Value(s) To List / Merge Lists".
◦ Reworded / cleaned up summary.
• Action "Extract Strings From Binary To Shortcuts List":
◦ Added parameter for output list type (as I figured out how to output either a Shortcuts-compatible list or a JSON array string, despite one AppIntent being limited to one output data type).
◦ Renamed to "Extract Strings From Binary".
• Action "Sort Keys Of Dicts In List": Added parameters for JSON array output.
• Action "Set Nested Dictionary Value": Added parameter for pretty printing JSON.
• Actions "Get Value Position In List" and "Merge Lists":
◦ Allowed list to be empty.
• Action "Get Value Position In List":
◦ Changed the auto linking from the list variable to the value variable.
◦ Reworded summary.
• Action "Extract HTML Elements": Renamed to "Extract HTML Elements Using SwiftSoup".
• Action "Resize With Fill (HDR)": Renamed to "Resize Image With Fill (HDR)"
• Various category changes.
1.12.0
• Created new data actions:
= "Extract Strings From Binary"
= "Convert Action PLIST Binary To JSON"
• All widgets and complications and related actions:
= Implemented usage of WatchConnectivity so the iOS actions can get watchOS to request that it sync with iCloud KVS and reload the complications. This increases reliability, but it's still not guaranteed immediacy by any means.
= Adjusted code so that actions can have default values set for user reference, but they only take effect if the respective mode is "Shortcut-Set".
• Circular complication:
= Split colour parameter into separate ones for symbol and gauge.
= Made symbol name, symbol colour, and gauge colour set-able by the action.
• Action "Sync And Reload App Widgets": Made available on watchOS.
• Actions "Is Internet-Connected?", "Is Apple Intelligence-Capable?", and "Is Apple Intelligence Functional?": Changed summaries to make use of "Invert Output?"