Created
August 7, 2016 16:39
-
-
Save leoherzog/2c0db9d0dc711d7a6b2199f32851af28 to your computer and use it in GitHub Desktop.
Muzei extension for Tasker that gets local weather photos from #ProjectWeather
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Muzei Weather Wallpaper Updater v2 (39) | |
<Kill the task if Wi-Fi isn't connected and the "Wi-Fi Only" setting is on> | |
A1: Stop [ With Error:Off Task:Muzei Weather Wallpaper Updater v2 ] If [ %WIFII !~ *CONNECTION* & %WWWIFIONLY ~ true ] | |
<Kill the task if the battery is low and the "Don't run on low battery" setting is on> | |
A2: Stop [ With Error:Off Task:Muzei Weather Wallpaper Updater v2 ] If [ %BATT < 15 & %WWDONTRUNONLOWBATTERY ~ true ] | |
A3: Variable Set [ Name:%flickrapikey To:0952e1ceeeca7a0e1b3867533ba4beff Do Maths:Off Append:Off ] | |
<#ProjectWeather Flickr Group ID> | |
A4: Variable Set [ Name:%projectweathergroupid To:1463451@N25 Do Maths:Off Append:Off ] | |
A5: Get Location [ Source:Net Timeout (Seconds):15 Continue Task Immediately:Off Keep Tracking:Off ] | |
<Turn network LAT,LONG into two variables> | |
A6: Variable Split [ Name:%LOCN Splitter:, Delete Base:Off ] | |
<Change this to your Wunderground API Key> | |
A7: Variable Set [ Name:%WWFORECASTAPIKEY To:{Your Wunderground API Key} Do Maths:Off Append:Off ] | |
<Get the current weather condition at your location from Wunderground> | |
A8: AutoTools Json Read [ Configuration:Input Format: Json | |
Json: https://api.wunderground.com/api/%WWFORECASTAPIKEY/conditions/q/%LOCN.json | |
Fields: current_observation.icon | |
Sort Array Invert: false | |
Get Parent Values: false | |
Variable Name: forecastcondition | |
Separator: , Timeout (Seconds):60 ] | |
<There aren't many pictures that match "tstorms", so correct to "storms" if that is the condition> | |
A9: Variable Set [ Name:%forecastcondition To:storms Do Maths:Off Append:Off ] If [ %forecastcondition ~ tstorms ] | |
A10: Variable Set [ Name:%forecastconditionemoji To:☀️ Do Maths:Off Append:Off ] If [ %forecastcondition ~ *clear* | %forecastcondition ~ *sunny* ] | |
A11: Variable Set [ Name:%forecastconditionemoji To:☁️ Do Maths:Off Append:Off ] If [ %forecastcondition ~ *cloudy* | %forecastcondition ~ *hazy* ] | |
A12: Variable Set [ Name:%forecastconditionemoji To:🌤️ Do Maths:Off Append:Off ] If [ %forecastcondition ~ *partlysunny* | %forecastcondition ~ *mostlysunny* ] | |
A13: Variable Set [ Name:%forecastconditionemoji To:⛅ Do Maths:Off Append:Off ] If [ %forecastcondition ~ *partlycloudy* | %forecastcondition ~ *mostlycloudy* ] | |
A14: Variable Set [ Name:%forecastconditionemoji To:🌧️ Do Maths:Off Append:Off ] If [ %forecastcondition ~ *rain* | %forecastcondition ~ *sleet* ] | |
A15: Variable Set [ Name:%forecastconditionemoji To:🌩️ Do Maths:Off Append:Off ] If [ %forecastcondition ~ *storms* ] | |
A16: Variable Set [ Name:%forecastconditionemoji To:🌨️ Do Maths:Off Append:Off ] If [ %forecastcondition ~ *snow* | %forecastcondition ~ *flurries* ] | |
A17: Variable Set [ Name:%forecastconditionemoji To:🌫️ Do Maths:Off Append:Off ] If [ %forecastcondition ~ *wind* ] | |
A18: Variable Set [ Name:%forecastconditionemoji To:🌁 Do Maths:Off Append:Off ] If [ %forecastcondition ~ *fog* ] | |
A19: Variable Set [ Name:%forecastconditionemoji To:⛈️ Do Maths:Off Append:Off ] If [ %forecastconditionemoji !Set ] | |
<Search for photos around you that match the current weather from Flickr's #ProjectWeather group. Returns arrays of Photo IDs, Titles, Owners, and URLs.> | |
A20: AutoTools Json Read [ Configuration:Input Format: Json | |
Json: https://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=%flickrapikey&group_id=%projectweathergroupid&text=%forecastcondition&lat=%LOCN1&lon=%LOCN2&radius=20&format=json&nojsoncallback=1&extras=url_l,url_o&sort=interestingness-desc | |
Fields: photos.photo.title(), photos.photo.id(), photos.photo.owner(), photos.photo.url_o(), photos.photo.url_l() | |
Sort Array Invert: false | |
Get Parent Values: false | |
Separator: , Timeout (Seconds):60 ] | |
<Every photo has an ID, so get the number of Photos by seeing how many IDs we have> | |
A21: Variable Set [ Name:%numberofphotos To:%photos_photo_id(#) Do Maths:Off Append:Off ] | |
<Format the subtitle for Muzei> | |
A22: Variable Set [ Name:%byline To:%numberofphotos local %forecastconditionemoji photos found Do Maths:Off Append:Off ] | |
<Format the subtitle for Muzei to say worldwide if there's no local ones> | |
A23: Variable Set [ Name:%byline To:🌎 %forecastcondition photos from around the world Do Maths:Off Append:Off ] If [ %numberofphotos = 0 ] | |
<If there aren't any local photos, run the Flickr search again, but for results not constrained by location> | |
A24: AutoTools Json Read [ Configuration:Input Format: Json | |
Json: https://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=%flickrapikey&group_id=%projectweathergroupid&text=%forecastcondition&format=json&nojsoncallback=1&extras=url_l,url_o&sort=interestingness-desc | |
Fields: photos.photo.title(), photos.photo.id(), photos.photo.owner(), photos.photo.url_o(), photos.photo.url_l() | |
Sort Array Invert: false | |
Get Parent Values: false | |
Separator: , Timeout (Seconds):60 ] If [ %numberofphotos = 0 ] | |
<Grab the total number of photos from the new worldwide search, so we can loop through them below (in case it was 0 before)> | |
A25: Variable Set [ Name:%numberofphotos To:%photos_photo_id(#) Do Maths:Off Append:Off ] | |
<Build an array of Flickr Photo pages> | |
A26: For [ Variable:%index Items:1:%numberofphotos ] | |
<Assemble the website URL for the current photo...> | |
A27: Variable Set [ Name:%flickrphotourl To:https://www.flickr.com/photos/%photos_photo_owner(%index)/%photos_photo_id(%index) Do Maths:Off Append:Off ] | |
<...and add the URL a new array> | |
A28: Array Push [ Name:%photos_photo_flickrpage Position:%index Value:%flickrphotourl Fill Spaces:Off ] | |
A29: End For | |
<Build a new array of original file URLs> | |
A30: For [ Variable:%index Items:1:%numberofphotos ] | |
<Add the "original quality" URL if there is one...> | |
A31: Array Push [ Name:%photos_photo_url Position:%index Value:%photos_photo_url_o(%index) Fill Spaces:Off ] If [ %photos_photo_url_o(%index) Set ] | |
<...or the "high quality" version if there isn't> | |
A32: Array Push [ Name:%photos_photo_url Position:%index Value:%photos_photo_url_l(%index) Fill Spaces:Off ] If [ %photos_photo_url_o(%index) !Set ] | |
A33: End For | |
<Take all of the arrays and shuffle the order of the items, while still keeping the same order amongst them all> | |
A34: AutoTools Arrays [ Configuration:Input Arrays: %photos_photo_title(), %photos_photo_id(), %photos_photo_owner(), %photos_photo_url(), %photos_photo_flickrpage() | |
Vertical Mode: false | |
Separator: , | |
Item Separator: , | |
Input Is File: false | |
Names: photos_photo_title, photos_photo_id, photos_photo_owner, photos_photo_url, photos_photo_flickrpage | |
Output Variables Separator: , | |
Sort Arrays: false | |
Invert: false | |
Randomize: true | |
Merge Arrays: false | |
Merged Array Name: atmergedarray | |
Unique: false | |
Exact: false | |
Regex: false | |
Case Insensitive: false | |
Contains All: false | |
Clear For Name: false | |
Clear For All: false Timeout (Seconds):60 ] | |
<Send the URL and metadata off to Muzei> | |
A35: AutoTools Muzei [ Configuration:Images: %photos_photo_url() | |
Titles: %photos_photo_title() | |
Subtexts: %byline | |
View URLs: %photos_photo_flickrpage() | |
Next Image: true | |
Schedule: 600 Timeout (Seconds):60 ] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<TaskerData sr="" dvi="1" tv="4.8u5m"> | |
<Task sr="task39"> | |
<cdate>1458152913165</cdate> | |
<edate>1470587793146</edate> | |
<id>39</id> | |
<nme>Muzei Weather Wallpaper Updater v2</nme> | |
<pri>100</pri> | |
<Kid sr="Kid"> | |
<feat0>android.hardware.location.network:y</feat0> | |
<feat1>android.hardware.location:y</feat1> | |
<launchID>19</launchID> | |
<pkg>eqs.wdr.ynk</pkg> | |
<vnme>v2</vnme> | |
<vnum>3</vnum> | |
</Kid> | |
<Action sr="act0" ve="7"> | |
<code>137</code> | |
<label>Kill the task if Wi-Fi isn't connected and the "Wi-Fi Only" setting is on</label> | |
<Int sr="arg0" val="0"/> | |
<Str sr="arg1" ve="3">Muzei Weather Wallpaper Updater v2</Str> | |
<ConditionList sr="if"> | |
<bool0>And</bool0> | |
<Condition sr="c0" ve="3"> | |
<lhs>%WIFII</lhs> | |
<op>3</op> | |
<rhs>*CONNECTION*</rhs> | |
</Condition> | |
<Condition sr="c1" ve="3"> | |
<lhs>%WWWIFIONLY</lhs> | |
<op>2</op> | |
<rhs>true</rhs> | |
</Condition> | |
</ConditionList> | |
</Action> | |
<Action sr="act1" ve="7"> | |
<code>137</code> | |
<label>Kill the task if the battery is low and the "Don't run on low battery" setting is on</label> | |
<Int sr="arg0" val="0"/> | |
<Str sr="arg1" ve="3">Muzei Weather Wallpaper Updater v2</Str> | |
<ConditionList sr="if"> | |
<bool0>And</bool0> | |
<Condition sr="c0" ve="3"> | |
<lhs>%BATT</lhs> | |
<op>6</op> | |
<rhs>15</rhs> | |
</Condition> | |
<Condition sr="c1" ve="3"> | |
<lhs>%WWDONTRUNONLOWBATTERY</lhs> | |
<op>2</op> | |
<rhs>true</rhs> | |
</Condition> | |
</ConditionList> | |
</Action> | |
<Action sr="act10" ve="7"> | |
<code>547</code> | |
<Str sr="arg0" ve="3">%forecastconditionemoji</Str> | |
<Str sr="arg1" ve="3">☁️</Str> | |
<Int sr="arg2" val="0"/> | |
<Int sr="arg3" val="0"/> | |
<ConditionList sr="if"> | |
<bool0>Or</bool0> | |
<Condition sr="c0" ve="3"> | |
<lhs>%forecastcondition</lhs> | |
<op>2</op> | |
<rhs>*cloudy*</rhs> | |
</Condition> | |
<Condition sr="c1" ve="3"> | |
<lhs>%forecastcondition</lhs> | |
<op>2</op> | |
<rhs>*hazy*</rhs> | |
</Condition> | |
</ConditionList> | |
</Action> | |
<Action sr="act11" ve="7"> | |
<code>547</code> | |
<Str sr="arg0" ve="3">%forecastconditionemoji</Str> | |
<Str sr="arg1" ve="3">🌤️</Str> | |
<Int sr="arg2" val="0"/> | |
<Int sr="arg3" val="0"/> | |
<ConditionList sr="if"> | |
<bool0>Or</bool0> | |
<Condition sr="c0" ve="3"> | |
<lhs>%forecastcondition</lhs> | |
<op>2</op> | |
<rhs>*partlysunny*</rhs> | |
</Condition> | |
<Condition sr="c1" ve="3"> | |
<lhs>%forecastcondition</lhs> | |
<op>2</op> | |
<rhs>*mostlysunny*</rhs> | |
</Condition> | |
</ConditionList> | |
</Action> | |
<Action sr="act12" ve="7"> | |
<code>547</code> | |
<Str sr="arg0" ve="3">%forecastconditionemoji</Str> | |
<Str sr="arg1" ve="3">⛅</Str> | |
<Int sr="arg2" val="0"/> | |
<Int sr="arg3" val="0"/> | |
<ConditionList sr="if"> | |
<bool0>Or</bool0> | |
<Condition sr="c0" ve="3"> | |
<lhs>%forecastcondition</lhs> | |
<op>2</op> | |
<rhs>*partlycloudy*</rhs> | |
</Condition> | |
<Condition sr="c1" ve="3"> | |
<lhs>%forecastcondition</lhs> | |
<op>2</op> | |
<rhs>*mostlycloudy*</rhs> | |
</Condition> | |
</ConditionList> | |
</Action> | |
<Action sr="act13" ve="7"> | |
<code>547</code> | |
<Str sr="arg0" ve="3">%forecastconditionemoji</Str> | |
<Str sr="arg1" ve="3">🌧️</Str> | |
<Int sr="arg2" val="0"/> | |
<Int sr="arg3" val="0"/> | |
<ConditionList sr="if"> | |
<bool0>Or</bool0> | |
<Condition sr="c0" ve="3"> | |
<lhs>%forecastcondition</lhs> | |
<op>2</op> | |
<rhs>*rain*</rhs> | |
</Condition> | |
<Condition sr="c1" ve="3"> | |
<lhs>%forecastcondition</lhs> | |
<op>2</op> | |
<rhs>*sleet*</rhs> | |
</Condition> | |
</ConditionList> | |
</Action> | |
<Action sr="act14" ve="7"> | |
<code>547</code> | |
<Str sr="arg0" ve="3">%forecastconditionemoji</Str> | |
<Str sr="arg1" ve="3">🌩️</Str> | |
<Int sr="arg2" val="0"/> | |
<Int sr="arg3" val="0"/> | |
<ConditionList sr="if"> | |
<Condition sr="c0" ve="3"> | |
<lhs>%forecastcondition</lhs> | |
<op>2</op> | |
<rhs>*storms*</rhs> | |
</Condition> | |
</ConditionList> | |
</Action> | |
<Action sr="act15" ve="7"> | |
<code>547</code> | |
<Str sr="arg0" ve="3">%forecastconditionemoji</Str> | |
<Str sr="arg1" ve="3">🌨️</Str> | |
<Int sr="arg2" val="0"/> | |
<Int sr="arg3" val="0"/> | |
<ConditionList sr="if"> | |
<bool0>Or</bool0> | |
<Condition sr="c0" ve="3"> | |
<lhs>%forecastcondition</lhs> | |
<op>2</op> | |
<rhs>*snow*</rhs> | |
</Condition> | |
<Condition sr="c1" ve="3"> | |
<lhs>%forecastcondition</lhs> | |
<op>2</op> | |
<rhs>*flurries*</rhs> | |
</Condition> | |
</ConditionList> | |
</Action> | |
<Action sr="act16" ve="7"> | |
<code>547</code> | |
<Str sr="arg0" ve="3">%forecastconditionemoji</Str> | |
<Str sr="arg1" ve="3">🌫️</Str> | |
<Int sr="arg2" val="0"/> | |
<Int sr="arg3" val="0"/> | |
<ConditionList sr="if"> | |
<Condition sr="c0" ve="3"> | |
<lhs>%forecastcondition</lhs> | |
<op>2</op> | |
<rhs>*wind*</rhs> | |
</Condition> | |
</ConditionList> | |
</Action> | |
<Action sr="act17" ve="7"> | |
<code>547</code> | |
<Str sr="arg0" ve="3">%forecastconditionemoji</Str> | |
<Str sr="arg1" ve="3">🌁</Str> | |
<Int sr="arg2" val="0"/> | |
<Int sr="arg3" val="0"/> | |
<ConditionList sr="if"> | |
<Condition sr="c0" ve="3"> | |
<lhs>%forecastcondition</lhs> | |
<op>2</op> | |
<rhs>*fog*</rhs> | |
</Condition> | |
</ConditionList> | |
</Action> | |
<Action sr="act18" ve="7"> | |
<code>547</code> | |
<Str sr="arg0" ve="3">%forecastconditionemoji</Str> | |
<Str sr="arg1" ve="3">⛈️</Str> | |
<Int sr="arg2" val="0"/> | |
<Int sr="arg3" val="0"/> | |
<ConditionList sr="if"> | |
<Condition sr="c0" ve="3"> | |
<lhs>%forecastconditionemoji</lhs> | |
<op>13</op> | |
<rhs>fog</rhs> | |
</Condition> | |
</ConditionList> | |
</Action> | |
<Action sr="act19" ve="7"> | |
<code>1446874931</code> | |
<label>Search for photos around you that match the current weather from Flickr's #ProjectWeather group. Returns arrays of Photo IDs, Titles, Owners, and URLs.</label> | |
<Bundle sr="arg0"> | |
<Vals sr="val"> | |
<Average><null></Average> | |
<Average-type>java.lang.String</Average-type> | |
<Field>photos.photo.title(), photos.photo.id(), photos.photo.owner(), photos.photo.url_o(), photos.photo.url_l()</Field> | |
<Field-type>java.lang.String</Field-type> | |
<FilterInvert>false</FilterInvert> | |
<FilterInvert-type>java.lang.Boolean</FilterInvert-type> | |
<GetParentValues>false</GetParentValues> | |
<GetParentValues-type>java.lang.Boolean</GetParentValues-type> | |
<InputFormat>0</InputFormat> | |
<InputFormat-type>java.lang.String</InputFormat-type> | |
<JoinOutputArray><null></JoinOutputArray> | |
<JoinOutputArray-type>java.lang.String</JoinOutputArray-type> | |
<Json>https://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=%flickrapikey&group_id=%projectweathergroupid&text=%forecastcondition&lat=%LOCN1&lon=%LOCN2&radius=20&format=json&nojsoncallback=1&extras=url_l,url_o&sort=interestingness-desc</Json> | |
<Json-type>java.lang.String</Json-type> | |
<JsonRootVariable><null></JsonRootVariable> | |
<JsonRootVariable-type>java.lang.String</JsonRootVariable-type> | |
<MatchField><null></MatchField> | |
<MatchField-type>java.lang.String</MatchField-type> | |
<MatchValue><null></MatchValue> | |
<MatchValue-type>java.lang.String</MatchValue-type> | |
<MatchesCaseInsensitive>false</MatchesCaseInsensitive> | |
<MatchesCaseInsensitive-type>java.lang.Boolean</MatchesCaseInsensitive-type> | |
<MatchesContainsAll>false</MatchesContainsAll> | |
<MatchesContainsAll-type>java.lang.Boolean</MatchesContainsAll-type> | |
<MatchesExact>false</MatchesExact> | |
<MatchesExact-type>java.lang.Boolean</MatchesExact-type> | |
<MatchesRegex>false</MatchesRegex> | |
<MatchesRegex-type>java.lang.Boolean</MatchesRegex-type> | |
<Max><null></Max> | |
<Max-type>java.lang.String</Max-type> | |
<MaxResults><null></MaxResults> | |
<MaxResults-type>java.lang.String</MaxResults-type> | |
<Min><null></Min> | |
<Min-type>java.lang.String</Min-type> | |
<Query><null></Query> | |
<Query-type>java.lang.String</Query-type> | |
<Separator>,</Separator> | |
<Separator-type>java.lang.String</Separator-type> | |
<SimpleMode>false</SimpleMode> | |
<SimpleMode-type>java.lang.Boolean</SimpleMode-type> | |
<SortArrayInvert>false</SortArrayInvert> | |
<SortArrayInvert-type>java.lang.Boolean</SortArrayInvert-type> | |
<SortArrayKey><null></SortArrayKey> | |
<SortArrayKey-type>java.lang.String</SortArrayKey-type> | |
<SortArrayObjectKey><null></SortArrayObjectKey> | |
<SortArrayObjectKey-type>java.lang.String</SortArrayObjectKey-type> | |
<Sum><null></Sum> | |
<Sum-type>java.lang.String</Sum-type> | |
<VariableName><null></VariableName> | |
<VariableName-type>java.lang.String</VariableName-type> | |
<com.twofortyfouram.locale.intent.extra.BLURB>Input Format: Json | |
Json: https://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=%flickrapikey&group_id=%projectweathergroupid&text=%forecastcondition&lat=%LOCN1&lon=%LOCN2&radius=20&format=json&nojsoncallback=1&extras=url_l,url_o&sort=interestingness-desc | |
Fields: photos.photo.title(), photos.photo.id(), photos.photo.owner(), photos.photo.url_o(), photos.photo.url_l() | |
Sort Array Invert: false | |
Get Parent Values: false | |
Separator: ,</com.twofortyfouram.locale.intent.extra.BLURB> | |
<com.twofortyfouram.locale.intent.extra.BLURB-type>java.lang.String</com.twofortyfouram.locale.intent.extra.BLURB-type> | |
<net.dinglisch.android.tasker.RELEVANT_VARIABLES><StringArray sr=""><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0>%photos_photo_id() | |
Json Values | |
Values of the fields you got from the json text</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES1>%photos_photo_owner() | |
Json Values | |
Values of the fields you got from the json text</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES1><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES2>%photos_photo_title() | |
Json Values | |
Values of the fields you got from the json text</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES2><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES3>%photos_photo_url_l() | |
Json Values | |
Values of the fields you got from the json text</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES3><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES4>%photos_photo_url_o() | |
Json Values | |
Values of the fields you got from the json text</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES4><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES5>%err | |
Error Code | |
Only available if you select &lt;b&gt;Continue Task After Error&lt;/b&gt; and the action ends in error</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES5><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES6>%errmsg | |
Error Message | |
Only available if you select &lt;b&gt;Continue Task After Error&lt;/b&gt; and the action ends in error</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES6></StringArray></net.dinglisch.android.tasker.RELEVANT_VARIABLES> | |
<net.dinglisch.android.tasker.RELEVANT_VARIABLES-type>[Ljava.lang.String;</net.dinglisch.android.tasker.RELEVANT_VARIABLES-type> | |
<net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS>Json Field Separator InputFormat plugininstanceid plugintypeid </net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS> | |
<net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS-type>java.lang.String</net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS-type> | |
<net.dinglisch.android.tasker.subbundled>true</net.dinglisch.android.tasker.subbundled> | |
<net.dinglisch.android.tasker.subbundled-type>java.lang.Boolean</net.dinglisch.android.tasker.subbundled-type> | |
<plugininstanceid>076f37fa-b9be-488a-801f-af5e97dd62a0</plugininstanceid> | |
<plugininstanceid-type>java.lang.String</plugininstanceid-type> | |
<plugintypeid>com.joaomgcd.autotools.intent.IntentJson</plugintypeid> | |
<plugintypeid-type>java.lang.String</plugintypeid-type> | |
</Vals> | |
</Bundle> | |
<Str sr="arg1" ve="3">com.joaomgcd.autotools</Str> | |
<Str sr="arg2" ve="3">com.joaomgcd.autotools.activity.ActivityConfigJson</Str> | |
<Int sr="arg3" val="60"/> | |
</Action> | |
<Action sr="act2" ve="7"> | |
<code>547</code> | |
<Str sr="arg0" ve="3">%flickrapikey</Str> | |
<Str sr="arg1" ve="3">0952e1ceeeca7a0e1b3867533ba4beff</Str> | |
<Int sr="arg2" val="0"/> | |
<Int sr="arg3" val="0"/> | |
</Action> | |
<Action sr="act20" ve="7"> | |
<code>547</code> | |
<label>Every photo has an ID, so get the number of Photos by seeing how many IDs we have</label> | |
<Str sr="arg0" ve="3">%numberofphotos</Str> | |
<Str sr="arg1" ve="3">%photos_photo_id(#)</Str> | |
<Int sr="arg2" val="0"/> | |
<Int sr="arg3" val="0"/> | |
</Action> | |
<Action sr="act21" ve="7"> | |
<code>547</code> | |
<label>Format the subtitle for Muzei</label> | |
<Str sr="arg0" ve="3">%byline</Str> | |
<Str sr="arg1" ve="3">%numberofphotos local %forecastconditionemoji photos found</Str> | |
<Int sr="arg2" val="0"/> | |
<Int sr="arg3" val="0"/> | |
</Action> | |
<Action sr="act22" ve="7"> | |
<code>547</code> | |
<label>Format the subtitle for Muzei to say worldwide if there's no local ones</label> | |
<Str sr="arg0" ve="3">%byline</Str> | |
<Str sr="arg1" ve="3">🌎 %forecastcondition photos from around the world</Str> | |
<Int sr="arg2" val="0"/> | |
<Int sr="arg3" val="0"/> | |
<ConditionList sr="if"> | |
<Condition sr="c0" ve="3"> | |
<lhs>%numberofphotos</lhs> | |
<op>8</op> | |
<rhs>0</rhs> | |
</Condition> | |
</ConditionList> | |
</Action> | |
<Action sr="act23" ve="7"> | |
<code>1446874931</code> | |
<label>If there aren't any local photos, run the Flickr search again, but for results not constrained by location</label> | |
<Bundle sr="arg0"> | |
<Vals sr="val"> | |
<Average><null></Average> | |
<Average-type>java.lang.String</Average-type> | |
<Field>photos.photo.title(), photos.photo.id(), photos.photo.owner(), photos.photo.url_o(), photos.photo.url_l()</Field> | |
<Field-type>java.lang.String</Field-type> | |
<FilterInvert>false</FilterInvert> | |
<FilterInvert-type>java.lang.Boolean</FilterInvert-type> | |
<GetParentValues>false</GetParentValues> | |
<GetParentValues-type>java.lang.Boolean</GetParentValues-type> | |
<InputFormat>0</InputFormat> | |
<InputFormat-type>java.lang.String</InputFormat-type> | |
<JoinOutputArray><null></JoinOutputArray> | |
<JoinOutputArray-type>java.lang.String</JoinOutputArray-type> | |
<Json>https://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=%flickrapikey&group_id=%projectweathergroupid&text=%forecastcondition&format=json&nojsoncallback=1&extras=url_l,url_o&sort=interestingness-desc</Json> | |
<Json-type>java.lang.String</Json-type> | |
<JsonRootVariable><null></JsonRootVariable> | |
<JsonRootVariable-type>java.lang.String</JsonRootVariable-type> | |
<MatchField><null></MatchField> | |
<MatchField-type>java.lang.String</MatchField-type> | |
<MatchValue><null></MatchValue> | |
<MatchValue-type>java.lang.String</MatchValue-type> | |
<MatchesCaseInsensitive>false</MatchesCaseInsensitive> | |
<MatchesCaseInsensitive-type>java.lang.Boolean</MatchesCaseInsensitive-type> | |
<MatchesContainsAll>false</MatchesContainsAll> | |
<MatchesContainsAll-type>java.lang.Boolean</MatchesContainsAll-type> | |
<MatchesExact>false</MatchesExact> | |
<MatchesExact-type>java.lang.Boolean</MatchesExact-type> | |
<MatchesRegex>false</MatchesRegex> | |
<MatchesRegex-type>java.lang.Boolean</MatchesRegex-type> | |
<Max><null></Max> | |
<Max-type>java.lang.String</Max-type> | |
<MaxResults><null></MaxResults> | |
<MaxResults-type>java.lang.String</MaxResults-type> | |
<Min><null></Min> | |
<Min-type>java.lang.String</Min-type> | |
<Query><null></Query> | |
<Query-type>java.lang.String</Query-type> | |
<Separator>,</Separator> | |
<Separator-type>java.lang.String</Separator-type> | |
<SimpleMode>false</SimpleMode> | |
<SimpleMode-type>java.lang.Boolean</SimpleMode-type> | |
<SortArrayInvert>false</SortArrayInvert> | |
<SortArrayInvert-type>java.lang.Boolean</SortArrayInvert-type> | |
<SortArrayKey><null></SortArrayKey> | |
<SortArrayKey-type>java.lang.String</SortArrayKey-type> | |
<SortArrayObjectKey><null></SortArrayObjectKey> | |
<SortArrayObjectKey-type>java.lang.String</SortArrayObjectKey-type> | |
<Sum><null></Sum> | |
<Sum-type>java.lang.String</Sum-type> | |
<VariableName><null></VariableName> | |
<VariableName-type>java.lang.String</VariableName-type> | |
<com.twofortyfouram.locale.intent.extra.BLURB>Input Format: Json | |
Json: https://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=%flickrapikey&group_id=%projectweathergroupid&text=%forecastcondition&format=json&nojsoncallback=1&extras=url_l,url_o&sort=interestingness-desc | |
Fields: photos.photo.title(), photos.photo.id(), photos.photo.owner(), photos.photo.url_o(), photos.photo.url_l() | |
Sort Array Invert: false | |
Get Parent Values: false | |
Separator: ,</com.twofortyfouram.locale.intent.extra.BLURB> | |
<com.twofortyfouram.locale.intent.extra.BLURB-type>java.lang.String</com.twofortyfouram.locale.intent.extra.BLURB-type> | |
<net.dinglisch.android.tasker.RELEVANT_VARIABLES><StringArray sr=""><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0>%photos_photo_id() | |
Json Values | |
Values of the fields you got from the json text</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES1>%photos_photo_owner() | |
Json Values | |
Values of the fields you got from the json text</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES1><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES2>%photos_photo_title() | |
Json Values | |
Values of the fields you got from the json text</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES2><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES3>%photos_photo_url_l() | |
Json Values | |
Values of the fields you got from the json text</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES3><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES4>%photos_photo_url_o() | |
Json Values | |
Values of the fields you got from the json text</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES4><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES5>%err | |
Error Code | |
Only available if you select &lt;b&gt;Continue Task After Error&lt;/b&gt; and the action ends in error</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES5><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES6>%errmsg | |
Error Message | |
Only available if you select &lt;b&gt;Continue Task After Error&lt;/b&gt; and the action ends in error</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES6></StringArray></net.dinglisch.android.tasker.RELEVANT_VARIABLES> | |
<net.dinglisch.android.tasker.RELEVANT_VARIABLES-type>[Ljava.lang.String;</net.dinglisch.android.tasker.RELEVANT_VARIABLES-type> | |
<net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS>Json Field Separator InputFormat plugininstanceid plugintypeid </net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS> | |
<net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS-type>java.lang.String</net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS-type> | |
<net.dinglisch.android.tasker.subbundled>true</net.dinglisch.android.tasker.subbundled> | |
<net.dinglisch.android.tasker.subbundled-type>java.lang.Boolean</net.dinglisch.android.tasker.subbundled-type> | |
<plugininstanceid>076f37fa-b9be-488a-801f-af5e97dd62a0</plugininstanceid> | |
<plugininstanceid-type>java.lang.String</plugininstanceid-type> | |
<plugintypeid>com.joaomgcd.autotools.intent.IntentJson</plugintypeid> | |
<plugintypeid-type>java.lang.String</plugintypeid-type> | |
</Vals> | |
</Bundle> | |
<Str sr="arg1" ve="3">com.joaomgcd.autotools</Str> | |
<Str sr="arg2" ve="3">com.joaomgcd.autotools.activity.ActivityConfigJson</Str> | |
<Int sr="arg3" val="60"/> | |
<ConditionList sr="if"> | |
<Condition sr="c0" ve="3"> | |
<lhs>%numberofphotos</lhs> | |
<op>8</op> | |
<rhs>0</rhs> | |
</Condition> | |
</ConditionList> | |
</Action> | |
<Action sr="act24" ve="7"> | |
<code>547</code> | |
<label>Grab the total number of photos from the new worldwide search, so we can loop through them below (in case it was 0 before)</label> | |
<Str sr="arg0" ve="3">%numberofphotos</Str> | |
<Str sr="arg1" ve="3">%photos_photo_id(#)</Str> | |
<Int sr="arg2" val="0"/> | |
<Int sr="arg3" val="0"/> | |
</Action> | |
<Action sr="act25" ve="7"> | |
<code>39</code> | |
<label>Build an array of Flickr Photo pages</label> | |
<Str sr="arg0" ve="3">%index</Str> | |
<Str sr="arg1" ve="3">1:%numberofphotos</Str> | |
</Action> | |
<Action sr="act26" ve="7"> | |
<code>547</code> | |
<label>Assemble the website URL for the current photo...</label> | |
<Str sr="arg0" ve="3">%flickrphotourl</Str> | |
<Str sr="arg1" ve="3">https://www.flickr.com/photos/%photos_photo_owner(%index)/%photos_photo_id(%index) </Str> | |
<Int sr="arg2" val="0"/> | |
<Int sr="arg3" val="0"/> | |
</Action> | |
<Action sr="act27" ve="7"> | |
<code>355</code> | |
<label>...and add the URL a new array</label> | |
<Str sr="arg0" ve="3">%photos_photo_flickrpage</Str> | |
<Int sr="arg1"> | |
<var>%index</var> | |
</Int> | |
<Str sr="arg2" ve="3">%flickrphotourl</Str> | |
<Int sr="arg3" val="0"/> | |
</Action> | |
<Action sr="act28" ve="7"> | |
<code>40</code> | |
</Action> | |
<Action sr="act29" ve="7"> | |
<code>39</code> | |
<label>Build a new array of original file URLs</label> | |
<Str sr="arg0" ve="3">%index</Str> | |
<Str sr="arg1" ve="3">1:%numberofphotos</Str> | |
</Action> | |
<Action sr="act3" ve="7"> | |
<code>547</code> | |
<label>#ProjectWeather Flickr Group ID</label> | |
<Str sr="arg0" ve="3">%projectweathergroupid</Str> | |
<Str sr="arg1" ve="3">1463451@N25</Str> | |
<Int sr="arg2" val="0"/> | |
<Int sr="arg3" val="0"/> | |
</Action> | |
<Action sr="act30" ve="7"> | |
<code>355</code> | |
<label>Add the "original quality" URL if there is one...</label> | |
<Str sr="arg0" ve="3">%photos_photo_url</Str> | |
<Int sr="arg1"> | |
<var>%index</var> | |
</Int> | |
<Str sr="arg2" ve="3">%photos_photo_url_o(%index)</Str> | |
<Int sr="arg3" val="0"/> | |
<ConditionList sr="if"> | |
<Condition sr="c0" ve="3"> | |
<lhs>%photos_photo_url_o(%index)</lhs> | |
<op>12</op> | |
<rhs></rhs> | |
</Condition> | |
</ConditionList> | |
</Action> | |
<Action sr="act31" ve="7"> | |
<code>355</code> | |
<label>...or the "high quality" version if there isn't</label> | |
<Str sr="arg0" ve="3">%photos_photo_url</Str> | |
<Int sr="arg1"> | |
<var>%index</var> | |
</Int> | |
<Str sr="arg2" ve="3">%photos_photo_url_l(%index)</Str> | |
<Int sr="arg3" val="0"/> | |
<ConditionList sr="if"> | |
<Condition sr="c0" ve="3"> | |
<lhs>%photos_photo_url_o(%index)</lhs> | |
<op>13</op> | |
<rhs></rhs> | |
</Condition> | |
</ConditionList> | |
</Action> | |
<Action sr="act32" ve="7"> | |
<code>40</code> | |
</Action> | |
<Action sr="act33" ve="7"> | |
<code>1508929357</code> | |
<label>Take all of the arrays and shuffle the order of the items, while still keeping the same order amongst them all</label> | |
<Bundle sr="arg0"> | |
<Vals sr="val"> | |
<ArraysFilter><null></ArraysFilter> | |
<ArraysFilter-type>java.lang.String</ArraysFilter-type> | |
<ArraysItemSeparator>,</ArraysItemSeparator> | |
<ArraysItemSeparator-type>java.lang.String</ArraysItemSeparator-type> | |
<ArraysUnique>false</ArraysUnique> | |
<ArraysUnique-type>java.lang.Boolean</ArraysUnique-type> | |
<InputArraysMan>%photos_photo_title(), %photos_photo_id(), %photos_photo_owner(), %photos_photo_url(), %photos_photo_flickrpage()</InputArraysMan> | |
<InputArraysMan-type>java.lang.String</InputArraysMan-type> | |
<InputIsFile>false</InputIsFile> | |
<InputIsFile-type>java.lang.Boolean</InputIsFile-type> | |
<JoinMergedArrays><null></JoinMergedArrays> | |
<JoinMergedArrays-type>java.lang.String</JoinMergedArrays-type> | |
<JoinOutputArray><null></JoinOutputArray> | |
<JoinOutputArray-type>java.lang.String</JoinOutputArray-type> | |
<MatchesCaseInsensitive>false</MatchesCaseInsensitive> | |
<MatchesCaseInsensitive-type>java.lang.Boolean</MatchesCaseInsensitive-type> | |
<MatchesContainsAll>false</MatchesContainsAll> | |
<MatchesContainsAll-type>java.lang.Boolean</MatchesContainsAll-type> | |
<MatchesExact>false</MatchesExact> | |
<MatchesExact-type>java.lang.Boolean</MatchesExact-type> | |
<MatchesRegex>false</MatchesRegex> | |
<MatchesRegex-type>java.lang.Boolean</MatchesRegex-type> | |
<MergeArrays>false</MergeArrays> | |
<MergeArrays-type>java.lang.Boolean</MergeArrays-type> | |
<MergeFormat><null></MergeFormat> | |
<MergeFormat-type>java.lang.String</MergeFormat-type> | |
<MergedArrayJoiner><null></MergedArrayJoiner> | |
<MergedArrayJoiner-type>java.lang.String</MergedArrayJoiner-type> | |
<MergedArrayName>atmergedarray</MergedArrayName> | |
<MergedArrayName-type>java.lang.String</MergedArrayName-type> | |
<OnlyNewClearForAll>false</OnlyNewClearForAll> | |
<OnlyNewClearForAll-type>java.lang.Boolean</OnlyNewClearForAll-type> | |
<OnlyNewClearForName>false</OnlyNewClearForName> | |
<OnlyNewClearForName-type>java.lang.Boolean</OnlyNewClearForName-type> | |
<OnlyNewName><null></OnlyNewName> | |
<OnlyNewName-type>java.lang.String</OnlyNewName-type> | |
<OutputSeparator>, </OutputSeparator> | |
<OutputSeparator-type>java.lang.String</OutputSeparator-type> | |
<PopPosition><null></PopPosition> | |
<PopPosition-type>java.lang.String</PopPosition-type> | |
<Push><null></Push> | |
<Push-type>java.lang.String</Push-type> | |
<PushPosition><null></PushPosition> | |
<PushPosition-type>java.lang.String</PushPosition-type> | |
<Randomize>true</Randomize> | |
<Randomize-type>java.lang.Boolean</Randomize-type> | |
<Separator>, </Separator> | |
<Separator-type>java.lang.String</Separator-type> | |
<SortArraysInvertMan>false</SortArraysInvertMan> | |
<SortArraysInvertMan-type>java.lang.Boolean</SortArraysInvertMan-type> | |
<SortArraysMan>false</SortArraysMan> | |
<SortArraysMan-type>java.lang.Boolean</SortArraysMan-type> | |
<SortArraysOutputNamesMan>photos_photo_title, photos_photo_id, photos_photo_owner, photos_photo_url, photos_photo_flickrpage</SortArraysOutputNamesMan> | |
<SortArraysOutputNamesMan-type>java.lang.String</SortArraysOutputNamesMan-type> | |
<VerticalMode>false</VerticalMode> | |
<VerticalMode-type>java.lang.Boolean</VerticalMode-type> | |
<com.twofortyfouram.locale.intent.extra.BLURB>Input Arrays: %photos_photo_title(), %photos_photo_id(), %photos_photo_owner(), %photos_photo_url(), %photos_photo_flickrpage() | |
Vertical Mode: false | |
Separator: , | |
Item Separator: , | |
Input Is File: false | |
Names: photos_photo_title, photos_photo_id, photos_photo_owner, photos_photo_url, photos_photo_flickrpage | |
Output Variables Separator: , | |
Sort Arrays: false | |
Invert: false | |
Randomize: true | |
Merge Arrays: false | |
Merged Array Name: atmergedarray | |
Unique: false | |
Exact: false | |
Regex: false | |
Case Insensitive: false | |
Contains All: false | |
Clear For Name: false | |
Clear For All: false</com.twofortyfouram.locale.intent.extra.BLURB> | |
<com.twofortyfouram.locale.intent.extra.BLURB-type>java.lang.String</com.twofortyfouram.locale.intent.extra.BLURB-type> | |
<net.dinglisch.android.tasker.RELEVANT_VARIABLES><StringArray sr=""><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0>%photos_photo_flickrpage() | |
photos_photo_flickrpage | |
photos_photo_flickrpage</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES1>%photos_photo_id() | |
photos_photo_id | |
photos_photo_id</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES1><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES2>%photos_photo_owner() | |
photos_photo_owner | |
photos_photo_owner</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES2><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES3>%photos_photo_title() | |
photos_photo_title | |
photos_photo_title</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES3><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES4>%photos_photo_url() | |
photos_photo_url | |
photos_photo_url</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES4><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES5>%err | |
Error Code | |
Only available if you select &lt;b&gt;Continue Task After Error&lt;/b&gt; and the action ends in error</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES5><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES6>%errmsg | |
Error Message | |
Only available if you select &lt;b&gt;Continue Task After Error&lt;/b&gt; and the action ends in error</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES6></StringArray></net.dinglisch.android.tasker.RELEVANT_VARIABLES> | |
<net.dinglisch.android.tasker.RELEVANT_VARIABLES-type>[Ljava.lang.String;</net.dinglisch.android.tasker.RELEVANT_VARIABLES-type> | |
<net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS>InputArraysMan SortArraysOutputNamesMan OutputSeparator Separator MergedArrayName ArraysItemSeparator plugininstanceid plugintypeid </net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS> | |
<net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS-type>java.lang.String</net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS-type> | |
<net.dinglisch.android.tasker.subbundled>true</net.dinglisch.android.tasker.subbundled> | |
<net.dinglisch.android.tasker.subbundled-type>java.lang.Boolean</net.dinglisch.android.tasker.subbundled-type> | |
<plugininstanceid>f92aa461-cc34-41f1-b86b-f91e11a7d222</plugininstanceid> | |
<plugininstanceid-type>java.lang.String</plugininstanceid-type> | |
<plugintypeid>com.joaomgcd.autotools.intent.IntentSortArrays</plugintypeid> | |
<plugintypeid-type>java.lang.String</plugintypeid-type> | |
</Vals> | |
</Bundle> | |
<Str sr="arg1" ve="3">com.joaomgcd.autotools</Str> | |
<Str sr="arg2" ve="3">com.joaomgcd.autotools.activity.ActivityConfigSortArrays</Str> | |
<Int sr="arg3" val="60"/> | |
</Action> | |
<Action sr="act34" ve="7"> | |
<code>1906260443</code> | |
<label>Send the URL and metadata off to Muzei</label> | |
<Bundle sr="arg0"> | |
<Vals sr="val"> | |
<com.twofortyfouram.locale.intent.extra.BLURB>Images: %photos_photo_url() | |
Titles: %photos_photo_title() | |
Subtexts: %byline | |
View URLs: %photos_photo_flickrpage() | |
Next Image: true | |
Schedule: 600</com.twofortyfouram.locale.intent.extra.BLURB> | |
<com.twofortyfouram.locale.intent.extra.BLURB-type>java.lang.String</com.twofortyfouram.locale.intent.extra.BLURB-type> | |
<net.dinglisch.android.tasker.RELEVANT_VARIABLES><StringArray sr=""><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0>%err | |
Error Code | |
Only available if you select &lt;b&gt;Continue Task After Error&lt;/b&gt; and the action ends in error</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES1>%errmsg | |
Error Message | |
Only available if you select &lt;b&gt;Continue Task After Error&lt;/b&gt; and the action ends in error</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES1></StringArray></net.dinglisch.android.tasker.RELEVANT_VARIABLES> | |
<net.dinglisch.android.tasker.RELEVANT_VARIABLES-type>[Ljava.lang.String;</net.dinglisch.android.tasker.RELEVANT_VARIABLES-type> | |
<net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS>parameters plugininstanceid plugintypeid </net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS> | |
<net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS-type>java.lang.String</net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS-type> | |
<net.dinglisch.android.tasker.subbundled>true</net.dinglisch.android.tasker.subbundled> | |
<net.dinglisch.android.tasker.subbundled-type>java.lang.Boolean</net.dinglisch.android.tasker.subbundled-type> | |
<parameters>{"muzeiImages":"#§£§£§@VARIABLE#§£§£§@%photos_photo_url()#§£§£§@VARIABLE#§£§£§@","muzeiNextArtwork":true,"muzeiSchedule":"600","muzeiSubtexts":"#§£§£§@VARIABLE#§£§£§@%byline#§£§£§@VARIABLE#§£§£§@","muzeiTitles":"#§£§£§@VARIABLE#§£§£§@%photos_photo_title()#§£§£§@VARIABLE#§£§£§@","muzeiViewUrls":"#§£§£§@VARIABLE#§£§£§@%photos_photo_flickrpage()#§£§£§@VARIABLE#§£§£§@"}</parameters> | |
<parameters-type>java.lang.String</parameters-type> | |
<plugininstanceid>52a75ba3-a3eb-45f8-9076-45dcb7c46c63</plugininstanceid> | |
<plugininstanceid-type>java.lang.String</plugininstanceid-type> | |
<plugintypeid>com.joaomgcd.autotools.intent.IntentMuzei</plugintypeid> | |
<plugintypeid-type>java.lang.String</plugintypeid-type> | |
</Vals> | |
</Bundle> | |
<Str sr="arg1" ve="3">com.joaomgcd.autotools</Str> | |
<Str sr="arg2" ve="3">com.joaomgcd.autotools.activity.ActivityConfigMuzei</Str> | |
<Int sr="arg3" val="60"/> | |
</Action> | |
<Action sr="act4" ve="7"> | |
<code>902</code> | |
<Int sr="arg0" val="1"/> | |
<Int sr="arg1" val="15"/> | |
<Int sr="arg2" val="0"/> | |
<Int sr="arg3" val="0"/> | |
</Action> | |
<Action sr="act5" ve="7"> | |
<code>590</code> | |
<label>Turn network LAT,LONG into two variables</label> | |
<Str sr="arg0" ve="3">%LOCN</Str> | |
<Str sr="arg1" ve="3">,</Str> | |
<Int sr="arg2" val="0"/> | |
</Action> | |
<Action sr="act6" ve="7"> | |
<code>547</code> | |
<label>Change this to your Wunderground API Key</label> | |
<Str sr="arg0" ve="3">%WWFORECASTAPIKEY</Str> | |
<Str sr="arg1" ve="3">{Your Wunderground API Key}</Str> | |
<Int sr="arg2" val="0"/> | |
<Int sr="arg3" val="0"/> | |
</Action> | |
<Action sr="act7" ve="7"> | |
<code>1446874931</code> | |
<label>Get the current weather condition at your location from Wunderground</label> | |
<Bundle sr="arg0"> | |
<Vals sr="val"> | |
<Average><null></Average> | |
<Average-type>java.lang.String</Average-type> | |
<Field>current_observation.icon</Field> | |
<Field-type>java.lang.String</Field-type> | |
<FilterInvert>false</FilterInvert> | |
<FilterInvert-type>java.lang.Boolean</FilterInvert-type> | |
<GetParentValues>false</GetParentValues> | |
<GetParentValues-type>java.lang.Boolean</GetParentValues-type> | |
<InputFormat>0</InputFormat> | |
<InputFormat-type>java.lang.String</InputFormat-type> | |
<JoinOutputArray><null></JoinOutputArray> | |
<JoinOutputArray-type>java.lang.String</JoinOutputArray-type> | |
<Json>https://api.wunderground.com/api/%WWFORECASTAPIKEY/conditions/q/%LOCN.json</Json> | |
<Json-type>java.lang.String</Json-type> | |
<JsonRootVariable><null></JsonRootVariable> | |
<JsonRootVariable-type>java.lang.String</JsonRootVariable-type> | |
<MatchField><null></MatchField> | |
<MatchField-type>java.lang.String</MatchField-type> | |
<MatchValue><null></MatchValue> | |
<MatchValue-type>java.lang.String</MatchValue-type> | |
<MatchesCaseInsensitive>false</MatchesCaseInsensitive> | |
<MatchesCaseInsensitive-type>java.lang.Boolean</MatchesCaseInsensitive-type> | |
<MatchesContainsAll>false</MatchesContainsAll> | |
<MatchesContainsAll-type>java.lang.Boolean</MatchesContainsAll-type> | |
<MatchesExact>false</MatchesExact> | |
<MatchesExact-type>java.lang.Boolean</MatchesExact-type> | |
<MatchesRegex>false</MatchesRegex> | |
<MatchesRegex-type>java.lang.Boolean</MatchesRegex-type> | |
<Max><null></Max> | |
<Max-type>java.lang.String</Max-type> | |
<MaxResults><null></MaxResults> | |
<MaxResults-type>java.lang.String</MaxResults-type> | |
<Min><null></Min> | |
<Min-type>java.lang.String</Min-type> | |
<Query><null></Query> | |
<Query-type>java.lang.String</Query-type> | |
<Separator>,</Separator> | |
<Separator-type>java.lang.String</Separator-type> | |
<SimpleMode>false</SimpleMode> | |
<SimpleMode-type>java.lang.Boolean</SimpleMode-type> | |
<SortArrayInvert>false</SortArrayInvert> | |
<SortArrayInvert-type>java.lang.Boolean</SortArrayInvert-type> | |
<SortArrayKey><null></SortArrayKey> | |
<SortArrayKey-type>java.lang.String</SortArrayKey-type> | |
<SortArrayObjectKey><null></SortArrayObjectKey> | |
<SortArrayObjectKey-type>java.lang.String</SortArrayObjectKey-type> | |
<Sum><null></Sum> | |
<Sum-type>java.lang.String</Sum-type> | |
<VariableName>forecastcondition</VariableName> | |
<VariableName-type>java.lang.String</VariableName-type> | |
<com.twofortyfouram.locale.intent.extra.BLURB>Input Format: Json | |
Json: https://api.wunderground.com/api/%WWFORECASTAPIKEY/conditions/q/%LOCN.json | |
Fields: current_observation.icon | |
Sort Array Invert: false | |
Get Parent Values: false | |
Variable Name: forecastcondition | |
Separator: ,</com.twofortyfouram.locale.intent.extra.BLURB> | |
<com.twofortyfouram.locale.intent.extra.BLURB-type>java.lang.String</com.twofortyfouram.locale.intent.extra.BLURB-type> | |
<net.dinglisch.android.tasker.RELEVANT_VARIABLES><StringArray sr=""><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0>%forecastcondition | |
Json Values | |
Values of the fields you got from the json text</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES1>%err | |
Error Code | |
Only available if you select &lt;b&gt;Continue Task After Error&lt;/b&gt; and the action ends in error</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES1><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES2>%errmsg | |
Error Message | |
Only available if you select &lt;b&gt;Continue Task After Error&lt;/b&gt; and the action ends in error</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES2></StringArray></net.dinglisch.android.tasker.RELEVANT_VARIABLES> | |
<net.dinglisch.android.tasker.RELEVANT_VARIABLES-type>[Ljava.lang.String;</net.dinglisch.android.tasker.RELEVANT_VARIABLES-type> | |
<net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS>Json Field VariableName Separator InputFormat plugininstanceid plugintypeid </net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS> | |
<net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS-type>java.lang.String</net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS-type> | |
<net.dinglisch.android.tasker.subbundled>true</net.dinglisch.android.tasker.subbundled> | |
<net.dinglisch.android.tasker.subbundled-type>java.lang.Boolean</net.dinglisch.android.tasker.subbundled-type> | |
<plugininstanceid>c29bd9dd-53ee-47cb-839b-871a1c3c5e90</plugininstanceid> | |
<plugininstanceid-type>java.lang.String</plugininstanceid-type> | |
<plugintypeid>com.joaomgcd.autotools.intent.IntentJson</plugintypeid> | |
<plugintypeid-type>java.lang.String</plugintypeid-type> | |
</Vals> | |
</Bundle> | |
<Str sr="arg1" ve="3">com.joaomgcd.autotools</Str> | |
<Str sr="arg2" ve="3">com.joaomgcd.autotools.activity.ActivityConfigJson</Str> | |
<Int sr="arg3" val="60"/> | |
</Action> | |
<Action sr="act8" ve="7"> | |
<code>547</code> | |
<label>There aren't many pictures that match "tstorms", so correct to "storms" if that is the condition</label> | |
<Str sr="arg0" ve="3">%forecastcondition</Str> | |
<Str sr="arg1" ve="3">storms</Str> | |
<Int sr="arg2" val="0"/> | |
<Int sr="arg3" val="0"/> | |
<ConditionList sr="if"> | |
<Condition sr="c0" ve="3"> | |
<lhs>%forecastcondition</lhs> | |
<op>2</op> | |
<rhs>tstorms</rhs> | |
</Condition> | |
</ConditionList> | |
</Action> | |
<Action sr="act9" ve="7"> | |
<code>547</code> | |
<Str sr="arg0" ve="3">%forecastconditionemoji</Str> | |
<Str sr="arg1" ve="3">☀️</Str> | |
<Int sr="arg2" val="0"/> | |
<Int sr="arg3" val="0"/> | |
<ConditionList sr="if"> | |
<bool0>Or</bool0> | |
<Condition sr="c0" ve="3"> | |
<lhs>%forecastcondition</lhs> | |
<op>2</op> | |
<rhs>*clear*</rhs> | |
</Condition> | |
<Condition sr="c1" ve="3"> | |
<lhs>%forecastcondition</lhs> | |
<op>2</op> | |
<rhs>*sunny*</rhs> | |
</Condition> | |
</ConditionList> | |
</Action> | |
</Task> | |
</TaskerData> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment