…^ TX¨B¸–Þ0¸Ï ç ñ L¸ÏsòW imageFolder× ËCGeneva ¸Ï¸Ï'?ïÀLANDÿÿÿÿÿÿmac path alias plat €76Velociraptor:Users:tclifton:Pictures:Satellite Images:€öö Velociraptor¶âÁH+ŒkSatellite Images/¸£!Jÿÿÿÿ "Satellite Images Velociraptor¶ã1’¸£‘Êÿÿ€mac imageNameWest Coast SatelliteimageURL6http://maps.weather.com/images/sat/westsat_720x486.jpg LastUpdate saveImagesVGeneva ©‡2mÂRÆÂ8¸£.¸Ïs # ,p¸Ï†Ö{ imageNameBay Area Dopler RadarimageURL@http://www.wrh.noaa.gov/radar/images/DS.p19r0/SI.kmux/latest.gif LastUpdate saveImagesÆðR$¸–…и£.  Image001ÈXimage002ÈfV Lucida Grande©62Õg¦–6Geneva ¸—?C¸£†'?ïÀLANDÿÿÿÿÿÿmac Image001 imageName imageURL LastUpdate saveImages €Ž( mP€Ž( m¬€Ž( m¬€Ž( m¬€Ž( m¬ðJF$¸–…¤¸£]Œ  imageWidthminutesBetweenRunsJ Jö ÜGeneva ¸ ,§¸¢ÿËoWƒÈþLANDÿÿÿÿÿÿmac
<%conditional1%> <%/conditional1%> <%conditional3%> <%repeat1%> <%/repeat1%> <%/conditional3%> <%conditional4%> <%repeat3%> <%/repeat3%> <%/conditional4%> <%conditional2%> <%/conditional2%>

Global Settings

Set Update Interval (in minutes)
Image Thumbnail Width (in pixels)

Current Images

Are you sure you want to delete the following images:
<%repeat2%><%imageName%>
<%/repeat2%> This cannot be undone.

Current Images

Image NameLast Updated
<%imageTitle%><%lastUpdated%>
   

Edit Images

Image Name
Image URL
>Save Images to Disk
 

New Images

Image Name
Image URL
Save Images to Disk
€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ J›r±Geneva ¸–머«œ34µWZ!LANDÿÿÿÿÿÿmac <%repeat1%>
<%imageTitle%>
<%lastUpdated%>
<%/repeat1%> €€€€€€€€€€€€€€€€€€€›¹_$¸–뙸 ,§  + listImagesxŠstatusCenterMessagexàVGeneva ©‡2Ôd¹Æl.¸–…¤¸£R  % .images8prefs4stencils‡VGeneva Êü2mÂhèÆ73V¸–…¦¸£:  "= I˜ ¤¨ ­¾¸£:Ê Òauthor Tom Clifton authorEmailtclifton@es-designs.com descriptionKDynamicImages is a tool to display dynamic images in Radio's Status Center. homePageUrlname dynamicImages releaseDateversion1.07›Geneva ¸–…¥¸–…¥'?ïÀLANDÿÿÿÿÿÿmac This script runs every hour. „›Geneva ¸–…¤¸–…¤'?ïÀLANDÿÿÿÿÿÿmac This script runs every minute. „œGeneva ¸–…¥¸–…¥'?ïÀLANDÿÿÿÿÿÿmac This script runs every night. „œ{w.¸–…¤¸–…¥  ". 9 everyHourxa everyMinutex everyNightx±{ ¸–…¥¸–…¥ ¸–…¥¸–…¥ RN$¸–…¥¸–…¥  fileMenuxàuserx R³„· Geneva ¸—¸—#•Þ+;LANDÿÿÿÿÿÿmac on getScaledHeight(scaledWidth,imagePath) local trueWidth trueHeight heightWidth extension = string.nthField(imagePath,".",string.countFields(imagePath,".")) case string.lower(extension) "gif" "giff" heightWidth = html.getgifHeightWidth(imagePath) "jpeg" "jpg" heightWidth = html.getJpegHeightWidth(imagePath) else scriptError ("dynamicImagesSuite.getScaledHeight Error: Unknow file extension. This script only works with Gifs or Jpegs.") trueHeight = heightWidth[1] trueWidth = heightWidth[2] return (trueHeight*scaledWidth/trueWidth) Bundle // debug local (fPath) if file.getFileDialog("Select an imageFile",@fPath,0) dialog.alert(getScaledHeight(50,fPath)) €€€€€€€€€€€„€€€³[ËGeneva ¸–‡¸£c> LANDÿÿÿÿÿÿmac if not defined (dynamicImagesData.prefs.minutesBetweenRuns) dynamicImagesData.prefs.minutesBetweenRuns = 10 if not defined (dynamicImagesData.prefs.imageWidth) dynamicImagesData.prefs.imageWidth = 140 €€€€[!%Š#/Geneva ?¸ -¸¢ü©€ø·QLANDÿÿÿÿÿÿmac html.setPageTableAddress(@system.temp.webserver.debugPostFilter2) local imageTableAdr = @dynamicImagesData.Images stencilName = nameOf(this^) tempText = "" htmlText = string (dynamicImagesData.stencils[stencilName]) repeatingText replaceTable conditionals pta = html.getPageTableAddress() new (tableType,@pta^.postArgs) webserver.parseArgs (pta^.requestBody, @pta^.postArgs) new (tableType, @repeatingText) new (tableType,@conditionals) new (tableType,@replaceTable) on extractRepeats(s) local (repeatText, repeatName, tempRepeat) repeatText = string.mid(s,string.patternMatch("<%repeat",s),infinity) repeatName = string.mid(repeatText,1,string.patternMatch("%>",repeatText)-1) repeatName = string.replace(repeatName,"<%","") repeatText = string.mid(repeatText,1, string.patternMatch("<%/"+repeatName,repeatText)-1) tempRepeat = repeatText repeatText = string.mid(repeatText,string.patternMatch("%>",repeatText)+2,infinity) repeatText = string.popLeading(repeatText,cr) repeatText = string.popLeading(repeatText,"\t") repeatText = string.popTrailing(repeatText,"\t") repeatText = string.popTrailing(repeatText,cr) repeatingText[repeatName] = repeatText if repeatText contains "<%repeat" repeatingText[repeatName] = extractRepeats(repeatText) repeatText = string.replace(s,tempRepeat,"") return (repeatText) // strip the repeating text from the template. (We will add this back in after it is built) on extractConditionals(s) local (conditionalText, conditionalName, tempConditional) conditionalText = string.mid(s,string.patternMatch("<%conditional",s),infinity) conditionalName = string.mid(conditionalText,1,string.patternMatch("%>",conditionalText)-1) conditionalName = string.replace(conditionalName,"<%","") conditionalText = string.mid(conditionalText,1, string.patternMatch("<%/"+conditionalName,conditionalText)-1) tempConditional = conditionalText conditionalText = string.mid(conditionalText,string.patternMatch("%>",conditionalText)+2,infinity) conditionalText = string.popLeading(conditionalText,cr) conditionalText = string.popLeading(conditionalText,"\t") conditionalText = string.popTrailing(conditionalText,"\t") conditionalText = string.popTrailing(conditionalText,cr) conditionals[conditionalName] = conditionalText replaceTable["/" +conditionalName] = "" // prepopluate the replaceText table with empty values if conditionalText contains "<%conditional" conditionals[conditionalName] = extractConditionals(conditionalText) return (string.replace(s,tempConditional,"")) // strip the repeating text from the template. (We will add this back in after it is built) while htmlText contains "<%repeat" htmlText = extractRepeats(htmlText) while htmlText contains "<%conditional" htmlText = extractConditionals(htmlText) Bundle // check for conditionals within the repeating text local (ct2 = sizeOf(repeatingText)) for i = 1 to ct2 while repeatingText[i] contains "<%conditional" // pull the conditional text from the stencil. repeatingText[i] = extractConditionals(repeatingText[i]) if string.lower (pta^.method) == "post" case string.lower(pta^.postArgs.submit) "delete image" if not defined (pta^.postArgs.checkedImage) break local (checkedImage = pta^.postArgs.checkedImage) if typeof (checkedImage) != listType checkedImage = list("{\"" + checkedImage + "\"}") local (ct2 = sizeOf(checkedImage), tempText2) for i = 1 to ct2 tempText2 = tempText2 + repeatingText.repeat2 tempText2 = string.replace(tempText2,"<%imageName%>",imageTableAdr^[checkedImage[i]].imageName) tempText2 = string.replace(tempText2,"<%imageAdr%>", checkedImage[i]) conditionals.conditional1 = string.replace( conditionals.conditional1,"<%/repeat2%>",tempText2) replaceTable.["/conditional1"] = conditionals.conditional1 conditionals.conditional3 ="" "add image" if defined (pta^.postArgs.imageName) AND pta^.postArgs.imageName != "" if defined (pta^.postArgs.imageURL) AND pta^.postArgs.imageURL != "" local (TableAdr = table.UniqueName("image",imageTableAdr,3)) new (tableType,tableAdr) tableAdr^.imageName = pta^.postArgs.imageName tableAdr^.imageURL = pta^.postArgs.imageURL tableAdr^.LastUpdate = clock.now() tableAdr^.saveImages = defined (pta^.postArgs.saveToDisk) thread.evaluate("dynamicImagesSuite.UpdateImages()") else replaceTable.["/conditional2"] = conditionals.conditional2 "edit image" if not defined (pta^.postArgs.checkedImage) break local (checkedImage = pta^.postArgs.checkedImage) if typeof (checkedImage) != listType checkedImage = list("{\"" + checkedImage + "\"}") local (ct2 = sizeOf(checkedImage), tempText2) for i = 1 to ct2 tempText2 = tempText2 + repeatingText.repeat3 tempText2 = string.replace(tempText2,"<%imageName%>",imageTableAdr^[checkedImage[i]].imageName) tempText2 = string.replace(tempText2,"<%imageURL%>",imageTableAdr^[checkedImage[i]].imageURL) local (isChecked = "") if imageTableAdr^[checkedImage[i]].saveImages isChecked = "checked" tempText2 = string.replace(tempText2,"<%isChecked%>",isChecked) tempText2 = string.replace(tempText2,"<%imageAdr%>", checkedImage[i]) replaceTable.["/conditional4"] = string.replace( conditionals.conditional4,"<%/repeat3%>",tempText2) conditionals.conditional3 ="" "ok" if not defined (pta^.postArgs.checkedImage) break local (checkedImage = pta^.postArgs.checkedImage) if typeof (checkedImage) != listType checkedImage = list("{\"" + checkedImage + "\"}") local (ct2 = sizeOf(checkedImage)) if defined (pta^.postArgs.editImage) for i = 1 to ct2 imageTableAdr^[checkedImage[i]].imageName = pta^.postArgs.imageName imageTableAdr^[checkedImage[i]].imageURL = pta^.postArgs.imageURL imageTableAdr^[checkedImage[i]].saveImages = defined (pta^.postArgs.saveToDisk) else for i = 1 to ct2 delete(@imageTableAdr^[checkedImage[i]]) "submit" if defined (pta^.postArgs.refreshInterval) AND pta^.postArgs.refreshInterval != "" dynamicImagesData.prefs.minutesBetweenRuns = number(pta^.postArgs.refreshInterval) if defined (pta^.postArgs.imageWidth) AND pta^.postArgs.imageWidth != "" dynamicImagesData.prefs.imageWidth = number(pta^.postArgs.imageWidth) htmlText = string.replace(htmlText,"<%/conditional3%>",conditionals.conditional3) local ct = sizeOf (imageTableAdr^) for i = 1 to ct tempText = tempText + repeatingText.repeat1 local imageURL = dynamicImagesData.Images[i].imageURL imageTitle = dynamicImagesData.Images[i].imageName lastUpDated = dynamicImagesData.Images[i].LastUpdate + date.getCurrentTimeZone() pc = file.getPathChar() imagePath = frontier.PathString + "www" + pc + "dynamicImages" + pc + string.nthField(imageURL,"/",string.countFields(imageURL,"/")) replaceTable2 new (tableType,@replaceTable2) replaceTable2.imageTitle = imageTitle replaceTable2.lastUpdated = lastUpDated replaceTable2.imageURL = imageURL replaceTable2.imageName = "Image" + string.padWithZeros(i,3) tempText = dynamicImagesSuite.multipleReplaceAll(tempText,@replaceTable2,startChars:"<%",endChars:"%>") replaceTable.refreshInterval = dynamicImagesData.prefs.minutesBetweenRuns replaceTable.imageWidth = dynamicImagesData.prefs.imageWidth replaceTable.["/repeat1"] = tempText htmlText = dynamicImagesSuite.multipleReplaceAll(htmlText,@replaceTable,startChars:"<%",endChars:"%>") return (htmlText) „€€€€€€€€€€€€€€€€€€€€€€‚€€€‚€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€!%ATuGeneva ¸¥ ¸sÁñÖ’SLANDÿÿÿÿÿÿmac on multipleReplaceAll (s, adrTable, flCaseSensitive=true, startChars="", endChars="") a scripted version of Userland's 7.1 kernal script. Provide generic stencil processing that supports the new kernal call Tue, Nov 13, 2001 at 10:25:16 AM by TRC 1/23/02; 1:26:49 AM by TRC Ack, its not supported by Radio yet, grrr local ct = sizeOf(adrTable^) for i = 1 to ct s = string.replaceAll(s,startChars+nameOf(adrTable^[i])+endChars,adrTable^[i],flCaseSensitive) if date.versionLessThan(frontier.version(),"7.1b20") else s = string.multipleReplaceAll(s,@adrTable^,flCaseSensitive,startChars, endChars) return (s) €„€€€€€€€€„„€€A t ,Geneva ¸–…¥¸ÊœÝaœ#çáLANDÿÿÿÿÿÿmac This script returns a string which appears in the Status Center on the Radio UserLand home page. local ct = sizeOf (dynamicImagesData.Images) stencilName = nameOf(this^) tempText = "" htmlText = string (dynamicImagesData.stencils[stencilName]) repeatingText replaceTable new (tableType, @repeatingText) new (tableType,@replaceTable) on extractRepeats(s) local (repeatText, repeatName, tempRepeat) repeatText = string.mid(s,string.patternMatch("<%repeat",s),infinity) repeatName = string.mid(repeatText,1,string.patternMatch("%>",repeatText)-1) repeatName = string.replace(repeatName,"<%","") repeatText = string.mid(repeatText,1, string.patternMatch("<%/"+repeatName,repeatText)-1) tempRepeat = repeatText repeatText = string.mid(repeatText,string.patternMatch("%>",repeatText)+3,infinity) repeatText = string.popLeading(repeatText,cr) repeatText = string.popLeading(repeatText,"\t") repeatText = string.popTrailing(repeatText,"\t") repeatText = string.popTrailing(repeatText,cr) repeatingText[repeatName] = repeatText if repeatText contains "<%repeat" repeatingText[repeatName] = extractRepeats(repeatText) repeatText = string.replace(s,tempRepeat,"") return (repeatText) // strip the repeating text from the template. (We will add this back in after it is built) while htmlText contains "<%repeat" htmlText = extractRepeats(htmlText) for i = 1 to ct tempText = tempText + repeatingText.repeat1 local imageURL = dynamicImagesData.Images[i].imageURL imageTitle = dynamicImagesData.Images[i].imageName lastUpDated = dynamicImagesData.Images[i].LastUpdate + date.getCurrentTimeZone() pc = file.getPathChar() imagePath = frontier.PathString + "www" + pc + "dynamicImages" + pc + string.nthField(imageURL,"/",string.countFields(imageURL,"/")) imageName = string.nthField(imagePath,pc,string.countFields(imagePath,pc)) imageWidth = dynamicImagesData.prefs.imageWidth imageHeight = dynamicImagesSuite.getScaledHeight(imageWidth,imagePath) localURL = "/dynamicImages/" + imageName replaceTable2 new (tableType,@replaceTable2) imageName = string.popSuffix(imageName) replaceTable2.localURL = localURL replaceTable2.imageTitle = imageTitle replaceTable2.lastUpdated = lastUpDated replaceTable2.imageWidth = imageWidth replaceTable2.imageHeight = imageHeight replaceTable2.imageName = string.innerCaseName(imageTitle) replaceTable2.imageURL = imageURL replaceTable2.refreshInterval = number(dynamicImagesData.prefs.minutesBetweenRuns) * 60 * 1000 tempText = dynamicImagesSuite.multipleReplaceAll(tempText,@replaceTable2,startChars:"<%",endChars:"%>") replaceTable.["/repeat1"] = tempText replaceTable.refreshInterval = number(dynamicImagesData.prefs.minutesBetweenRuns) * 60 * 1000 htmlText = dynamicImagesSuite.multipleReplaceAll(htmlText,@replaceTable,startChars:"<%",endChars:"%>") return (htmlText) „€€€€€€€€€€€€€€€€€€€€€€‚€€€€€€€€€€€€€€€€€€€€€€ ¶&WGeneva FD°ÇM︣)bu¼âLANDÿÿÿÿÿÿmac This script is designed to check a image URL and if it has changed download it and use the new image as the desktop picture The script is scheduled to run every ten minutes. v 2.1b1 2/26/02; 10:01:28 AM by TRC updated for Radio 8. Displays thumbnails in the status bar. Click through the images to go to them on the web. v 2.0b1 Thu, Jan 18, 2001 at 5:32:18 PM by TRC Converted to a Radio Userland tool simplified the scripts a bit, and removed the dependencies on tcpcmd (an ancient Frontier tcp/ip communications tool) v 1.0 b1 Wed, Feb 4, 1998 at 6:39:58 PM by TRC Initial release local desktopPath = frontier.pathString imageHeader imageString PictName modDay modMonth modYear modHour modMin modSec tempTime modDate ct = sizeOf (dynamicImagesData.Images) pc = file.getPathChar() on getMonthNumber(monthName) case string.lower(monthName) "jan" return (1) "feb" return (2) "mar" return (3) "apr" return (4) "may" return (5) "jun" return (6) "jul" return (7) "aug" return (8) "sep" return (9) "oct" return (10) "nov" return (11) "dec" return (12) for i = 1 to ct local imageTableAdr = @dynamicImagesData.Images[i] imageURL = imageTableAdr^.imageURL urlList = string.urlsplit (imageURL) imagePath = frontier.PathString + "www" + pc + "dynamicImages" + pc + string.nthField(imageURL,"/",string.countFields(imageURL,"/")) if not defined (imageTableAdr^.LastUpdate) imageTableAdr^.LastUpdate = clock.now() imageHeader = tcp.httpClient (server:urlList[2],path:urlList[3],flJustHeaders:true) lastModified = string.mid(imageHeader,string.patternMatch("last-modified:",string.lower(imageHeader)),infinity) lastModified = string.nthField (lastModified,cr,1) lastModified = string.nthField(string.lower(lastModified) - "last-modified: ",",",2) lastModified = string.popLeading(lastModified, " ") modDate = date(lastModified) if modDate > imageTableAdr^.LastUpdate msg ("Updating desktop image.") if file.exists(imagePath) try file.close(imagePath) file.delete(imagePath) try imageString = tcp.httpClient (server:urlList[2],path:urlList[3]) if imageString local endOfHeader = string.patternMatch(cr+lf+cr+lf,imageString) len loop // find and strip the header from the file, using code from tcpcmd if endOfHeader len = 3 break endOfHeader = string.patternMatch(cr+cr,imageString) if endOfHeader len = 1 break endOfHeader = string.patternMatch(lf+lf,imageString) if endOfHeader len = 1 break imageString = string.delete(imageString,1,endOfHeader+len) imageString = string.mid(imageString,string.patternMatch(cr+lf+cr+lf,imageString),infinity) // strip off header imageString = string.popLeading(imageString,"\r") local (fExtension = file.fileFromPath(imagePath),imageType) fExtension = string.nthField(fExtension,".",string.countFields(fExtension,".")) case string.lower(fExtension) // Set Mac file type currently only supports gif and jpg, but it would be easy to add others. "jpg" imageType = "JPEG" "gif" imageType = "GIFf" file.writeWholefile(imagePath,imageString,type:imageType,creator:"ogle") if not defined (imageTableAdr^.saveImages) imageTableAdr^.saveImages = false if imageTableAdr^.saveImages local (imageName = "image") if defined (imageTableAdr^.ImageName) imageName = string.innerCaseName(imageTableAdr^.ImageName) date.get (modDate,@modDay,@modMonth,@modYear,@modHour,@modMin,@modSec) modMonth = string.padWithZeros (modMonth,2) modDay = string.padWithZeros (modDay,2) modHour = string.padWithZeros (modHour,2) modMin = string.padWithZeros (modMin,2) pictName = string(modYear) + string(modMonth) + string(modDay) + string(modHour) + string(modMin) + "_" + imageName local (savedImage) if not defined (imageTableAdr^.imageFolder) file.getFolderDialog("Select a folder to save images to:",@imageTableAdr^.imageFolder) savedImage = imageTableAdr^.imageFolder savedImage = savedImage + pictName if not file.exists(file.folderFromPath(savedImage)) if not file.getFolderDialog("Select a folder to place images in:",@savedImage) Dialog.alert("No folder was selected so save images in.") return(false) else file.sureFolder (savedImage) savedImage = savedImage + pictName file.WriteWholefile(savedImage + "." + fExtension,imageString,type:imageType,creator:"ogle") imageTableAdr^.LastUpdate = modDate else scriptError (tryError) „€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‚€€€€€€€€‚€€€€€€€€€€€€€€‚€€€€€€€‚€„€€‚€€€€€€€€€€€€€€€€€€‚€€¶‡-`¸–…¤¸£  !- =I NZ eq „ ¤° ½ backgroundHY callbacksH8getScaledHeightH–initH U listImagesH!¼multipleReplaceAllHBístatusCenterMessageHF: updateImagesHS^VGeneva ¶o=H–؇(BnGeneva ¸–…¦¸£ YÙ·°LANDÿÿÿÿÿÿmac This script runs in its own thread. loop //loop until the application quits Add your code here. local (threadTableAdr= parentOf(this^)) dynamicImagesSuite.init() dynamicImagesSuite.updateImages() threadTableAdr^.ct++ local (sleepforMinutes = 60*number(dynamicImagesData.prefs.minutesBetweenRuns)) thread.sleepFor (sleepforMinutes) //sleep for ten seconds „€„€€€€€€€€(TP.¸–…¦¸Ï' ctenabledscriptHj³TþtArial ¶Fû¶Fû 2®LANDÿÿÿÿÿÿmac on finalFilter (pta) pta^.renderedText = string.replace (pta^.renderedText, "[[title]]", "") return (true) €�����€�����€��������þ���±�������� ���-����Geneva���������������������������� ��������������­ÂEu´`ÞQ������ �2LANDÿÿÿÿÿÿ������mac ������������on firstFilter (adrPageTable) return (true) €�����€��������±��ý��������*��[����Geneva���������������������������� ��������������­ÂEuµü7a���m���L�3*lLANDÿÿÿÿÿÿ������mac ������������on pageFilter (pta) if typeOf (pta^.template) == outlineType or typeOf (pta^.template) == wpTextType table.assign (@pta^.template, string (pta^.template)) if typeOf (pta^.template) == stringType and not pta^.indirectTemplate pta^.template = string.replace (pta^.template, "<title>", "[[title]]") html.addPageToGlossary (pta) return (true) €�����€�����€�����€�����€�����€�����€�������ý���Ó�������y���.���­ÂE¼¶Fû�������� ���� ��� ����$���0 ����; finalFilter����Œ��mG firstFilter����Œ��nQ pagefilter����Œ��o��VGeneva���������������������������� ����������è�P�E��$Ï�������������������������Ó���I�������E������µü7¨¸–…¦�������� ����url���http://127.0.0.1/dynamicImages/���I���O�������K���$���¸—7׸—7×�������� ���� ��� ����linetext���Homepath��� index.wsf���O���‰�������/����������¸—7×�������� ����Home����(��rK��VArial����������������������������� ������������������������������������������������‰���±�������W����������´ž–������������space���/GIFfGIF89a��€��ÿÿÿ���!ù����,�������D�;��VArial����������������������������� ������������������������������������������������±���������Å���V�������´ž†�������� ������� �������"�������+ ����0���: ����C���L ����Q���[ ����aalink���008000bgcolor���FFFFFFflRenderlink���0000FFspaceGif���spacetext���000000vlink���800080��VArial����������������������������� ��������������������������������������������������n�����������������µü8>������VArial����������������������������� ������������������������������������������������n��×����FFFF000000060001001777AA000000000070000000001001710000001-77FB6FFE1800000‚‚48004806186200-1‚8C8C0Â6‚186222FFFF0‚‚10‚‚3‚42A000010000003B00000001043640840‚‚6‚18622244E048E000176618632000020000043C00000000�436,#title "Configure dynamicImages" <%dynamicImagesSuite.listImages()%> <h3>About dynamicImages</h3> DynamicImages is a Radio Tool that allows you to track changes to online images from your Radio desktop. Install dynamicImages by placing the file dynamicImages.root into your Radio tools folder. Then go to the Tools page and enable dynamicImages. Once enable, click on the link to this page. You can configure dynamicImages on this page. Two global settings control how often dynamicImages checks for updates and how wide the thumbnail of the image is. To add a new image, click on the "Add Image" button. Then enter a name the image, its URL on the web, and whether or not you want to save each downloaded image to your hard disk (this can come in handy if you want to create time-lapsed movies). To edit an existing image's name, url, or whether it is saved to disk, check the box next the image and click on the "Edit Image" button. You can delete images by checking the image and clicking on the "Delete Image" button. You will need to confirm the delete. 00040000000A000000020438000050000000A0000000204380000600000032000000010ÁC310‚‚ÁFFFF0‚C00000 20ÂÁ ‚‚Á‚000700000019000000010‚20Â160‚Á‚0008000000A500000001�40,Geneva����������������������������������������������������������40,����������������������������������������������������������������1040304E40Â10Â10000900000017000000023‚1832273‚183227000A00000017000000026‚1862226‚186222000B00000005000000020Â000C000000190000000142A‚‚170201161F9‚0000F0000005200000000400 10 ‚ÂÁÂÁ‚‚ÁÂ�4,appn�4,send�4,8óð�4,&����4,8ô€�4,3©�4,8ôð00130000007E00000000DA91F8CE1C1D1E1F7F1B0�44,-��.��¦��¹����°��­��­��.��'��"��Ô��Õ��Ò��Ó��É��É��FFFF0FFFF0FFFE000000060001001777AA�±§Pĸ£f�����������������������������������������6�����������Ð�€fº������S������������������������������������������������������×��@�������æ���V���µü7¸—7´�������� ���� ��� �������* ����4���@ ����H���T ����[���g ����n���z ����€#filters����H��q#ftpSite����H��qö #glossary����H��r¦#images����H��s;#prefs����H��sø#tools����H��u#index����H��u��VVerdana��������������������������� ����������º�“�??8“ò������������������������@��†�������õ���L���¸–…¤¸£��������������� �������' ����9���E ����X���d ����x���„ ����™#enableddynamicImagesData�������LdynamicImagesInfo�������dynamicImagesSuite�������i dynamicImagesThread�������lçdynamicImagesWebsite�������~€��V Lucida Grande������������������������������� î�E!�'F(������������������������”��+���Geneva���������������������������� ������������¸£²¸£á���Ò��'?ïÀLANDÿÿÿÿÿÿ������mac ������������#enabled dynamicImagesData images prefs stencils listImages statusCenterMessage dynamicImagesInfo dynamicImagesSuite background callbacks getScaledHeight init listImages multipleReplaceAll statusCenterMessage updateImages dynamicImagesThread ct enabled script dynamicImagesWebsite €������ïa�S��������������€�����ïa�S�������������€�����ïa� 'À�������������€�����ïa� 'À�������������€�����ïa� 'À�������������€������ïa�ëbô��������������€������ïa�ëbô��������������€�����ïa�S�������������€�����ïa�S�������������€�����ïa�S4�������������€�����ïa�S4�������������€������ïa�S4��������������€������ïa�S4��������������€������ïa�S4��������������€������ïa�S4��������������€������ïa�S4��������������€������ïa�S4��������������€�����ïa�S�������������€������ïa�Sd��������������€������ïa�Sd��������������€������ïa�Sd��������������€�����ïa�S���������������†��º�������Ì@8ÖÈChicago��������������������������?ÿ� ����������������ÿÿÿÿÿÿÿÿCharcoalrande��������������������Ò� ����������������À<g‚Geneva����������������������������� ����������������^=¸ÃChicago��������������������������?ÿ� ����������������m.©ÒChicago��������������������������?ÿ� ����������������ÿÿÿÿÿÿÿÿCharcoalrande��������������������Ò� ����������������������ÿÿ����������������������������������������������������������º