Jump to content
Ketarin forum

CybTekSol's Firefox Add-Ons Template (Inspired_by_Stalker)


CybTekSol
 Share

Recommended Posts

My Firefox Add-Ons Template (Inspired_by_Stalker), REVISED AGAIN due to site changes:

 

UPDATED: April 10, 2009

 

NOTE: This template is a display of the power and flexibility of 'placeholders'...

study it carefully to see what I mean! ;) It will download ALL Firefox Add-Ons

(Extensions and Themes) with or without the presence of policy agreements!

 

CAUTION: Enter data at the 'placeholder' prompts EXACTLY as shown in the

accompanying examples!

 

1) There is one user defined global variable used,

root_folder=Insert YOUR download destination ROOT folder here

[for example C:\Latest-Apps].

 

2) The latest version of Ketarin (1.04) released March 9, 2009 or later is required

as this revision uses the new 'variables within regex' feature.

 

3) The template follows:

<?xml version="1.0" encoding="utf-16"?>
<Jobs>
 <ApplicationJob xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <DownloadBeta>AlwaysDownload</DownloadBeta>
   <DownloadDate xsi:nil="true" />
   <VariableChangeIndicator />
   <CanBeShared>true</CanBeShared>
   <ShareApplication>false</ShareApplication>
   <HttpReferer />
   <Variables>
     <item>
       <key>
         <string>Add-On_ID</string>
       </key>
       <value>
         <UrlVariable>
           <VariableType>Textual</VariableType>
           <Regex />
           <Url></Url>
           <TextualContent><placeholder name="Enter Firefox Add-On 'ID NUMBER' from URL [Example: 5579]" /></TextualContent>
           <Name>Add-On_ID</Name>
         </UrlVariable>
       </value>
     </item>
     <item>
       <key>
         <string>no_policy_url</string>
       </key>
       <value>
         <UrlVariable>
           <VariableType>Textual</VariableType>
           <Regex />
           <Url></Url>
           <TextualContent>https://addons.mozilla.org{no_policy_truncated_url}</TextualContent>
           <Name>no_policy_url</Name>
         </UrlVariable>
       </value>
     </item>
     <item>
       <key>
         <string>yes_policy_url</string>
       </key>
       <value>
         <UrlVariable>
           <VariableType>Textual</VariableType>
           <Regex />
           <Url></Url>
           <TextualContent>https://addons.mozilla.org{yes_policy_truncated_url}</TextualContent>
           <Name>yes_policy_url</Name>
         </UrlVariable>
       </value>
     </item>
     <item>
       <key>
         <string>version</string>
       </key>
       <value>
         <UrlVariable>
           <VariableType>StartEnd</VariableType>
           <Regex />
           <Url>https://addons.mozilla.org/en-US/firefox/addon/{Add-On_ID}</Url>
           <StartText>title="Permanent link to this version">Version </StartText>
           <EndText></a></EndText>
           <Name>version</Name>
         </UrlVariable>
       </value>
     </item>
     <item>
       <key>
         <string>no_policy_truncated_url</string>
       </key>
       <value>
         <UrlVariable>
           <VariableType>RegularExpression</VariableType>
           <Regex>(?<=(?:platform-ALL|platform-<placeholder name="Enter Operating System Preference EXACTLY as Shown [Windows OR Linux OR MacOSX]" />).*?)/en-US/firefox/downloads/latest/{Add-On_ID}/.*?{Add-On_ID}.*?\.[a-z]+(?=")</Regex>
           <Url>https://addons.mozilla.org/en-US/firefox/addon/{Add-On_ID}</Url>
           <Name>no_policy_truncated_url</Name>
         </UrlVariable>
       </value>
     </item>
     <item>
       <key>
         <string>redir1</string>
       </key>
       <value>
         <UrlVariable>
           <VariableType>RegularExpression</VariableType>
           <Regex>(?<=(?:platform-ALL|platform-<placeholder name="Enter Operating System Preference EXACTLY as Shown [Windows OR Linux OR MacOSX]" />).*?/en-US/firefox/addons/policy/).*?(?=")</Regex>
           <Url>https://addons.mozilla.org/en-US/firefox/addon/{Add-On_ID}</Url>
           <Name>redir1</Name>
         </UrlVariable>
       </value>
     </item>
     <item>
       <key>
         <string>yes_policy_truncated_url</string>
       </key>
       <value>
         <UrlVariable>
           <VariableType>RegularExpression</VariableType>
           <Regex>(?<=(?:platform-ALL|platform-<placeholder name="Enter Operating System Preference EXACTLY as Shown [Windows OR Linux OR MacOSX]" />).*?)/en-US/firefox/downloads/latest/{Add-On_ID}/.*?{Add-On_ID}.*?\.[a-z]+(?=")</Regex>
           <Url>https://addons.mozilla.org/en-US/firefox/addons/policy/{redir1}</Url>
           <Name>yes_policy_truncated_url</Name>
         </UrlVariable>
       </value>
     </item>
   </Variables>
   <ExecuteCommand />
   <Category>Firefox Add-Ons\<placeholder name="Enter Operating System Preference EXACTLY as Shown [Windows OR Linux OR MacOSX]" /></Category>
   <SourceType>FixedUrl</SourceType>
   <DeletePreviousFile>true</DeletePreviousFile>
   <Enabled>true</Enabled>
   <FileHippoId />
   <LastUpdated xsi:nil="true" />
   <TargetPath>{root_folder}\{category}\{appname:replace: :_}_v{version:replace: :_}_<placeholder name="Enter Operating System Preference EXACTLY as Shown [Windows OR Linux OR MacOSX]" />.{url:ext}</TargetPath>
   <FixedDownloadUrl>{<placeholder name="Policy Agreement Required? Enter EXACTLY as Shown: [yes or no]" />_policy_url}</FixedDownloadUrl>
   <Name><placeholder name="Firefox Add-On Name" /></Name>
 </ApplicationJob>
</Jobs>

To use it:

 

1) Define the user defined global variable under 'Settings' in Ketarin to YOUR preferences

2) Edit the template externally to reflect this modification (if you choose not to use

mine)

DO NOT Disturb the 'placeholders'!

3) Then:

a) Import it (Obviously)

B)Enter the information needed EXACTLY as requested as a result of the

'placeholder' prompts...

c) Change the 'Advanced Settings' to YOUR preferences

 

 

FOOTNOTE: After locating the Firefox Add-On that you wish to add to Ketarin using this template, you will have to manually determine whether the add-on has a policy agreement present before download using your web browser. Just click on the 'ADD to Firefox' button, if the install window pops-up (Click CANCEL), there is no policy. Conversely, if you are re-directed to a policy window, obviously, there is a policy. The template will require a yes or no input reflecting this. Also, the template will ask for the 'Add-On ID Number' (from the URL), 'Add-On Name' and 'Operating System Preference' which MUST be entered EXACTLY as Windows, Linux or MacOSX. The {category} variable is determined by the 'Operating System Preference' (Firefox Add-Ons\Windows or Firefox Add-Ons\Linux or Firefox Add-Ons\MacOSX) and the filename is appended with the OS as well which will allow users to store copies of add-ons applicable to OSs they currently use! I chose to do this as I work with PCs, Linux Boxes and my son uses a Mac. TWEAK CAREFULLY and ONLY if you understand its function completely!

 

 

ENJOY & EXPAND your horizons Ketarin users... ;)

 

 

CybTekSol

Edited by CybTekSol
Link to comment
Share on other sites

As ever m8 this is a work of art :-p I have modified mine a little (as per the flexibility of Ketarin Templates) I don't need the MacOSX for example. I do like the way you implemented it, as it allows for a super easy way to manage my categories.

 

I just tested it with new FF addon one I came across (which somehow I think you'll find very useful)

 

Site Launcher does have a privacy policy which you will need to read as it includes 2 affiliate tags, for 2 well known sites but it's well put together.

 

https://addons.mozilla.org/en-US/firefox/addon/10127#reviews

 

I need to read up on the placeholders feature come to think of it.

 

It may just be me but it LOOKS like Mozilla just changed the url format for addons (as in within the last 20 mins) all extensions now appear to follow (no policy)

 

https://addons.mozilla.org/en-US/firefox/downloads/latest/XXXXX

 

https://addons.mozilla.org/en-US/firefox/downloads/latest/XXXXX/platform.5 (Windows)

 

From my 1st download of site launcher (Log)

 

20/02/2009 01:57:28: Update started with 1 application(s)
20/02/2009 01:57:28: SiteLauncher: Replacing {Add-On_ID} in 'https://addons.mozilla.org/en-US/firefox/addon/{Add-On_ID}' with '10127'
20/02/2009 01:57:30: SiteLauncher: Replacing {redir1} in 'https://addons.mozilla.org/en-US/firefox/addons/policy/{redir1}' with '0/10127/46178'
20/02/2009 01:57:31: SiteLauncher: Replacing {yes_policy_truncated_url} in 'https://addons.mozilla.org/en-US/firefox/downloads/file/{yes_policy_truncated_url}' with '46178/sitelauncher-0.9.9-fx.xpi'
20/02/2009 01:57:31: SiteLauncher: Replacing {yes_policy_url} in '{yes_policy_url}' with 'https://addons.mozilla.org/en-US/firefox/downloads/file/46178/sitelauncher-0.9.9-fx.xpi'
20/02/2009 01:57:32: SiteLauncher: Replacing {Add-On_ID} in 'https://addons.mozilla.org/en-US/firefox/addon/{Add-On_ID}' with '10127'
20/02/2009 01:57:33: SiteLauncher: Replacing {version} in '{root_folder}\FirefoxExtensions\Windows\SiteLauncher_v{version:replace: :_}_Windows.xpi' with '0.9.9'
20/02/2009 01:57:33: SiteLauncher: Checking if update is required...
20/02/2009 01:57:33: SiteLauncher: Update required, 'C:\Users\Downloads\FirefoxExtensions\Windows\SiteLauncher_v0.9.9_Windows.xpi' does not yet exist
20/02/2009 01:57:33: SiteLauncher: Replacing {Add-On_ID} in 'https://addons.mozilla.org/en-US/firefox/addon/{Add-On_ID}' with '10127'
20/02/2009 01:57:34: SiteLauncher: Replacing {version} in '{version}' with '0.9.9'
20/02/2009 01:57:34: Update finished

 

From my latest attempt (Log)

 

20/02/2009 04:21:04: Update started with 1 application(s)
20/02/2009 04:21:04: SiteLauncher: Replacing {Add-On_ID} in 'https://addons.mozilla.org/en-US/firefox/addon/{Add-On_ID}' with '10127'
20/02/2009 04:21:06: SiteLauncher: Replacing {redir1} in 'https://addons.mozilla.org/en-US/firefox/addons/policy/{redir1}' with '0/10127/46178'
20/02/2009 04:21:07: SiteLauncher: Replacing {yes_policy_truncated_url} in 'https://addons.mozilla.org/en-US/firefox/downloads/{yes_policy_truncated_url}' with '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="en-US" dir="ltr" xmlns="http://www.w3.org/1999/xhtml">
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
   <meta name="MSSmartTagsPreventParsing" content="true"/>
   <meta name="Copyright" content="(c) 2005-2009 Mozilla. All rights reserved."/>
   <meta http-equiv="imagetoolbar" content="no"/>
   <meta name="Rating" content="General"/>

<link rel="stylesheet" type="text/css" href="/css/style.min.css?21699" media="all" />
<!--[if IE]><link rel="stylesheet" type="text/css" href="/css/ie.css" media="screen,projection" /><![endif]-->
<!--[if lte IE 6]><link rel="stylesheet" type="text/css" href="/css/ie6.css" media="screen,projection" /><![endif]-->
<link rel="stylesheet" type="text/css" href="/css/remora.css" media="screen,projection" />

   <link rel="search" type="application/opensearchdescription+xml" href="/AMOSearch.xml" title="Mozilla Add-ons"/>
       <link rel="shortcut icon" href="/img/favicon.ico" type="image/x-icon"/>
   <script type="text/javascript" src="/js/__utm.js"></script><script type="text/javascript" src="/en-US/firefox/pages/js_constants.js"></script>
<script type="text/javascript" src="/js/jquery.addons.min.js?19777"></script>
 <script type="text/javascript">
 // <![CDATA[

   $(document).ready(function() {
       $(".hidden").hide(); // hide anything that should be hidden
       $("#other-apps").addClass("collapsed js"); // collapse other apps menu

       var q = $("#query");
       var l = $("#search-query label");
       l.show();
       if ( q.val() == "search for add-ons"){ //initially q is set to search add-ons text for javascriptless browsing
         q.val('');
       }
       if ( q.val() != "") { // if field has any value...
           l.hide(); // hide the label
       };
       l.click(function() { // for browsers with unclickable labels
           q.focus();
       });
       q.focus(function() { // when field gains focus...
           l.hide(); // hide the label
       });
       q.blur(function() { // when field loses focus...
           if ( q.val() == "" ) { // if field is empty...
               l.show(); // show the label again, else do nothing (label remains hidden)
           };
       });

       // JS for toggling advanced versus normal search.
       var adv = $("#advanced-search");
       var advLink = $("#advanced-search-toggle a");
             advLink.isHidden = true;
       $('#advanced-search-toggle-link').attr('href', '#');   // for ie6-7                
       advLink.click(function() {           
           if(advLink.isHidden == true) {
              adv.appendTo("#search-form");
              advLink.addClass("asopen");
              advLink.removeClass("asclosed");
              advLink.isHidden = false;
           } else {
              adv.appendTo("#hidden-form");
              advLink.addClass("asclosed");
              advLink.removeClass("asopen");
              advLink.isHidden = true;
           }
           return false;
       }); 


       __utmSetVar("Loggedout");


       $("#other-apps h3").click(function() {
           $("#other-apps").toggleClass("collapsed");
           $(this).blur();
           $(document).click(function(e) {
               // Prevent weird delay when clicking on the links
               var node = e.target;
               while (node && !node.id) {
                   node = node.offsetParent;
               }

               if (!node || node.id != 'other-apps') {
                   $("#other-apps").addClass("collapsed");
               }
           });
           return false;
       });

   }); // end dom ready


 // ]]>
 </script>




   <title>SiteLauncher :: Firefox Add-ons</title>
</head>


<body id="mozilla-com" class="html-ltr">

<ul id="nav-access">
 <li><a href="#content">Skip to main content</a></li>
 <li><a href="#search-form">Skip to search form</a></li>
 <li><a href="#categories">Skip to categories menu</a></li>
 <li><a href="#other-apps">Skip to other applications menu</a></li>
</ul>



<div id="branding">
 <h4 id="moz"><a href="http://www.mozilla.com/en-US/" title="mozilla.com" accesskey="1"><img src="/img/template/moz-com-logo.png" alt="Mozilla Corporation" title="Mozilla Corporation" height="38" width="89" /></a></h4>


   <div id="page-title" class="sub-page firefox">
       <!-- Header for sub-pages -->
       <div>
           <h1><a href="/en-US/firefox/" title="Return to the Firefox Add-ons homepage">
           <img src="/img/app-icons/firefox.png" alt="Firefox Add-ons" />            Firefox Add-ons</a></h1>        </div>
   </div>


 <ul id="nav-user">
   <li><a href="/en-US/firefox/users/register" >Register</a></li> 
<li><a href="/en-US/firefox/users/login?to=en-US%2Ffirefox%2Faddons%2Fpolicy%2F0%2F10127%2F46178" >Log in</a></li>
 </ul>

</div><!-- /#branding -->


<!-- mozilla.thtml processed for 46178 -->

<div id="content">


<div id="sidebar">


<div id="categories">
   <h3 title="Choose a category"><span>Categories</span></h3>


   <ul id='cat-list'>
   <li><a href="/en-US/firefox/browse/type:1/cat:72" >Alerts & Updates</a></li>
<li><a href="/en-US/firefox/browse/type:1/cat:14" >Appearance</a></li>
<li><a href="/en-US/firefox/browse/type:1/cat:22" >Bookmarks</a></li>
<li><a href="/en-US/firefox/browse/type:3" >Dictionaries & Language Packs</a></li>
<li><a href="/en-US/firefox/browse/type:1/cat:5" >Download Management</a></li>
<li><a href="/en-US/firefox/browse/type:1/cat:1" >Feeds, News & Blogging</a></li>
<li><a href="/en-US/firefox/browse/type:1/cat:37" >Language Support</a></li>
<li><a href="/en-US/firefox/browse/type:1/cat:38" >Photos, Music & Videos</a></li>
<li><a href="/en-US/firefox/browse/type:7" >Plugins</a></li>
<li><a href="/en-US/firefox/browse/type:1/cat:12" >Privacy & Security</a></li>
<li><a href="/en-US/firefox/browse/type:4" >Search Tools</a></li>
<li><a href="/en-US/firefox/browse/type:1/cat:71" >Social & Communication</a></li>
<li><a href="/en-US/firefox/browse/type:1/cat:93" >Tabs</a></li>
<li><a href="/en-US/firefox/browse/type:2" >Themes</a></li>
<li><a href="/en-US/firefox/browse/type:1/cat:92" >Toolbars</a></li>
<li><a href="/en-US/firefox/browse/type:1/cat:4" >Web Development</a></li>
<li><a href="/en-US/firefox/browse/type:1/cat:73" >Other</a></li>
   </ul>
</div>


</div><!-- /#sidebar -->

<div id="content-main">

<div id="addon-summary" class="addon addon-policy">
 <div id="policy-tl"></div>

 <h3 class="name">
   SiteLauncher 0.9.9  </h3>

 <h4 class="author"> by <a href="/en-US/firefox/user/19439"  class="profileLink">David Morrison</a></h4>

 <div id="content-policy">

   <div class="addon-policy-tagline">
 <p>SiteLauncher requires that you accept the following End-User License Agreement before installation can proceed:</p> 
 </div>

 <textarea class="policy-area" readonly="readonly" cols="80" rows="20">Disclaimer of Warranties

Done Smart Ltd disclaims any and all responsibility or liability for the accuracy, content, completeness, legality, reliability, or operability or availability of information or material displayed on any Done Smart Ltd services. Done Smart Ltd disclaims any responsibility for the deletion, failure to store, misdelivery, or untimely delivery of any information or material. Done Smart Ltd disclaims any responsibility for any harm resulting from downloading or accessing any information or material on the Internet through any Done Smart Ltd services.

THE DONE SMART LTD SERVICES, AND ALL MATERIALS, INFORMATION, PRODUCTS AND SERVICES INCLUDED IN THE DONE SMART LTD SERVICES ARE PROVIDED "AS IS," WITH NO WARRANTIES WHATSOEVER. DONE SMART LTD AND ITS LICENSORS EXPRESSLY DISCLAIM TO THE FULLEST EXTENT PERMITTED BY LAW ALL EXPRESS, IMPLIED, AND STATUTORY WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT OF PROPRIETARY RIGHTS. DONE SMART LTD AND ITS LICENSORS DISCLAIM ANY WARRANTIES REGARDING THE SECURITY, RELIABILITY, TIMELINESS, AND PERFORMANCE OF THE DONE SMART LTD SERVICES. DONE SMART LTD AND ITS LICENSORS DISCLAIM, ANY WARRANTIES FOR ANY INFORMATION OR ADVICE OBTAINED THROUGH THE DONE SMART LTD SERVICES. DONE SMART LTD AND ITS LICENSORS DISCLAIM ANY WARRANTIES FOR SERVICES OR GOODS RECEIVED THROUGH OR ADVERTISED ON THE DONE SMART LTD SERVICES OR RECEIVED THROUGH ANY LINKS PROVIDED BY THE DONE SMART LTD SERVICES, AS WELL AS FOR ANY INFORMATION OR ADVICE RECEIVED THROUGH ANY LINKS PROVIDED IN THE DONE SMART LTD SERVICES.

YOU UNDERSTAND AND AGREE THAT YOU DOWNLOAD OR OTHERWISE OBTAIN MATERIAL OR DATA THROUGH THE USE OF THE DONE SMART LTD SERVICES AT YOUR OWN DISCRETION AND RISK AND THAT YOU WILL BE SOLELY RESPONSIBLE FOR ANY DAMAGES TO YOUR COMPUTER SYSTEM OR LOSS OF DATA THAT RESULTS FROM THE DOWNLOAD OF SUCH MATERIAL OR DATA.

SOME STATES OR OTHER JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO THE ABOVE EXCLUSIONS MAY NOT APPLY TO YOU. YOU MAY ALSO HAVE OTHER RIGHTS THAT VARY FROM STATE TO STATE AND JURISDICTION TO JURISDICTION.
Limitation of Liability

UNDER NO CIRCUMSTANCES SHALL DONE SMART LTD OR ITS LICENSORS BE LIABLE TO ANY USER ON ACCOUNT OF THAT USER'S USE OR MISUSE OF OR RELIANCE ON THE DONE SMART LTD SERVICES. ARISING FROM ANY CLAIM RELATING TO THIS AGREEMENT OR THE SUBJECT MATTER HEREOF SUCH LIMITATION OF LIABILITY SHALL APPLY TO PREVENT RECOVERY OF DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, SPECIAL, EXEMPLARY, AND PUNITIVE DAMAGES WHETHER SUCH CLAIM IS BASED ON WARRANTY, CONTRACT, TORT (INCLUDING NEGLIGENCE), OR OTHERWISE, (EVEN IF DONE SMART LTD OR ITS LICENSORS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES). SUCH LIMITATION OF LIABILITY SHALL APPLY WHETHER THE DAMAGES ARISE FROM USE OR MISUSE OF AND RELIANCE ON THE DONE SMART LTD SERVICES, FROM INABILITY TO USE THE DONE SMART LTD SERVICES, OR FROM THE INTERRUPTION, SUSPENSION, OR TERMINATION OF THE DONE SMART LTD SERVICES (INCLUDING SUCH DAMAGES INCURRED BY THIRD PARTIES). THIS LIMITATION SHALL ALSO APPLY WITH RESPECT TO DAMAGES INCURRED BY REASON OF OTHER SERVICES OR GOODS RECEIVED THROUGH OR ADVERTISED ON THE DONE SMART LTD SERVICES OR RECEIVED THROUGH ANY LINKS PROVIDED IN THE DONE SMART LTD SERVICES, AS WELL AS BY REASON OF ANY INFORMATION OR ADVICE RECEIVED THROUGH OR ADVERTISED ON THE DONE SMART LTD SERVICES OR RECEIVED THROUGH ANY LINKS PROVIDED IN THE DONE SMART LTD SERVICES. THIS LIMITATION SHALL ALSO APPLY, WITHOUT LIMITATION, TO THE COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, OR LOST DATA. SUCH LIMITATION SHALL FURTHER APPLY WITH RESPECT TO THE PERFORMANCE OR NON-PERFORMANCE OF THE DONE SMART LTD SERVICES OR ANY INFORMATION OR MERCHANDISE THAT APPEARS ON, OR IS LINKED OR RELATED IN ANY WAY TO, THE DONE SMART LTD SERVICES. SUCH LIMITATION SHALL APPLY NOTWITHSTANDING ANY FAILURE OF ESSENTIAL PURPOSE OF ANY LIMITED REMEDY AND TO THE FULLEST EXTENT PERMITTED BY LAW.

SOME STATES OR OTHER JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THE ABOVE LIMITATIONS AND EXCLUSIONS MAY NOT APPLY TO YOU.

Without limiting the foregoing, under no circumstances shall Done Smart Ltd or its licensors be held liable for any delay or failure in performance resulting directly or indirectly from acts of nature, forces, or causes beyond its reasonable control, including, without limitation, Internet failures, computer equipment failures, telecommunication equipment failures, other equipment failures, electrical power failures, strikes, labor disputes, riots, insurrections, civil disturbances, shortages of labor or materials, fires, floods, storms, explosions, acts of God, war, governmental actions, orders of domestic or foreign courts or tribunals, non-performance of third parties, or loss of or fluctuations in heat, light, or air conditioning.
Miscellaneous Provisions

These Terms of Service constitute the entire agreement between the parties with respect to the subject matter hereof and supersedes and replaces all prior or contemporaneous understandings or agreements, written or oral, regarding such subject matter. Any waiver of any provision of the Terms of Service will be effective only if in writing and signed by Done Smart Ltd.</textarea>

 <div id="install-61925" class="install-container">

                   <p class="install-button platform-ALL">
           <a href="/en-US/firefox/downloads/latest/10127"  id="installTrigger46178" title="Add SiteLauncher to Firefox" addonName="SiteLauncher" addonIcon="/en-US/firefox/images/addon_icon/10127/1234324342" addonHash="sha256:7fee5b692875362af469d9c855336590ad3eceb25a13daba641d3b70a0672430" onclick="return install(event,document.getElementById('installTrigger46178').getAttribute('addonName'), document.getElementById('installTrigger46178').getAttribute('addonIcon'), document.getElementById('installTrigger46178').getAttribute('addonHash'));"><span><span><span><strong>Download Now </strong></span></span></span></a>            </p>


           <script type="text/javascript">
       installVersusDownloadCheck("installTrigger46178", "Accept and Install", "Download Now ");
   </script>        
   </div>
   <script type="text/javascript">setTimeout(function() {fixPlatformLinks('61925', document.getElementById('installTrigger46178').getAttribute('addonName'));},0);</script>  
 <a href="/en-US/firefox/addon/10127" >Cancel Installation</a>    </div>
 <!-- /#content-policy -->

 <div class="vex"><span><!-- bottom edge --></span></div>
</div>
<!-- /#addon-summary -->
   <p><a href="/en-US/firefox/addon/10127" >Back to SiteLauncher...</a></p>
</div>
<!-- /#main-content -->

</div>
<!-- /#content -->



<!-- start #footer -->
<div id="footer">

<form id="footer-lang-form"  method="get" action="">
   <p>
       <label for="language">Other languages:</label>
       <select id="language" name="lang" dir="ltr" onchange="this.form.submit()">
       <option value="ar" >عربي</option>
<option value="ca" >català-valencià</option>
<option value="cs" >Čeština</option>
<option value="da" >Dansk</option>
<option value="de" >Deutsch</option>
<option value="en-US" selected="selected">English (US)</option>
<option value="el" >Ελληνικά</option>
<option value="es-ES" >Español (de España)</option>
<option value="eu" >Euskara</option>
<option value="fa" >Ùارسی</option>
<option value="fi" >suomi</option>
<option value="fr" >Français</option>
<option value="ga-IE" >Gaeilge</option>
<option value="he" >עברית</option>
<option value="hu" >Magyar</option>
<option value="id" >Bahasa Indonesia</option>
<option value="it" >Italiano</option>
<option value="ja" >日本語</option>
<option value="ko" >í•œêµì–´</option>
<option value="mn" >Монгол</option>
<option value="nl" >Nederlands</option>
<option value="pl" >polski</option>
<option value="pt-BR" >Português (do Brasil)</option>
<option value="pt-PT" >Português (Europeu)</option>
<option value="ro" >română</option>
<option value="ru" >РуÑÑкий</option>
<option value="sk" >slovenÄina</option>
<option value="sq" >Shqip</option>
<option value="sv-SE" >Svenska</option>
<option value="uk" >УкраїнÑька</option>
<option value="vi" >tiếng Việt</option>
<option value="zh-CN" >ä¸æ–‡ (简体)</option>
<option value="zh-TW" >æ£é«”ä¸æ–‡ (ç¹é«”)</option>
       </select>
       <input class="hidden" type="submit" value="Go"/>
   </p>
</form>

<div id="footer-legal">
   <p id="copyright">Copyright <span title="mrapp531">©</span> 2005–2009 Mozilla. All rights reserved.</p>
   <ul id="nav-legal">
       <li><a href="/en-US/firefox/pages/privacy" >Privacy Policy</a></li>
       <li><a href="http://www.mozilla.com/en-US/about/legal.html">Legal Notices</a></li>
       <li><a href="/en-US/firefox/pages/credits" >Credits</a></li>    </ul>
   <p id="footer-disclaimer">Mozilla is providing links to these applications as a courtesy, and makes no representations regarding the applications or any information related there to. Any questions, complaints or claims regarding the applications must be directed to the appropriate software vendor.</p>
</div>


</div>
<!-- end #footer -->

<!-- r22379 -->

</body>
</html>
'
20/02/2009 04:21:07: SiteLauncher: Replacing {yes_policy_url} in '{yes_policy_url}' with 'https://addons.mozilla.org/en-US/firefox/downloads/<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="en-US" dir="ltr" xmlns="http://www.w3.org/1999/xhtml">
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
   <meta name="MSSmartTagsPreventParsing" content="true"/>
   <meta name="Copyright" content="(c) 2005-2009 Mozilla. All rights reserved."/>
   <meta http-equiv="imagetoolbar" content="no"/>
   <meta name="Rating" content="General"/>

<link rel="stylesheet" type="text/css" href="/css/style.min.css?21699" media="all" />
<!--[if IE]><link rel="stylesheet" type="text/css" href="/css/ie.css" media="screen,projection" /><![endif]-->
<!--[if lte IE 6]><link rel="stylesheet" type="text/css" href="/css/ie6.css" media="screen,projection" /><![endif]-->
<link rel="stylesheet" type="text/css" href="/css/remora.css" media="screen,projection" />

   <link rel="search" type="application/opensearchdescription+xml" href="/AMOSearch.xml" title="Mozilla Add-ons"/>
       <link rel="shortcut icon" href="/img/favicon.ico" type="image/x-icon"/>
   <script type="text/javascript" src="/js/__utm.js"></script><script type="text/javascript" src="/en-US/firefox/pages/js_constants.js"></script>
<script type="text/javascript" src="/js/jquery.addons.min.js?19777"></script>
 <script type="text/javascript">
 // <![CDATA[

   $(document).ready(function() {
       $(".hidden").hide(); // hide anything that should be hidden
       $("#other-apps").addClass("collapsed js"); // collapse other apps menu

       var q = $("#query");
       var l = $("#search-query label");
       l.show();
       if ( q.val() == "search for add-ons"){ //initially q is set to search add-ons text for javascriptless browsing
         q.val('');
       }
       if ( q.val() != "") { // if field has any value...
           l.hide(); // hide the label
       };
       l.click(function() { // for browsers with unclickable labels
           q.focus();
       });
       q.focus(function() { // when field gains focus...
           l.hide(); // hide the label
       });
       q.blur(function() { // when field loses focus...
           if ( q.val() == "" ) { // if field is empty...
               l.show(); // show the label again, else do nothing (label remains hidden)
           };
       });

       // JS for toggling advanced versus normal search.
       var adv = $("#advanced-search");
       var advLink = $("#advanced-search-toggle a");
             advLink.isHidden = true;
       $('#advanced-search-toggle-link').attr('href', '#');   // for ie6-7                
       advLink.click(function() {           
           if(advLink.isHidden == true) {
              adv.appendTo("#search-form");
              advLink.addClass("asopen");
              advLink.removeClass("asclosed");
              advLink.isHidden = false;
           } else {
              adv.appendTo("#hidden-form");
              advLink.addClass("asclosed");
              advLink.removeClass("asopen");
              advLink.isHidden = true;
           }
           return false;
       }); 


       __utmSetVar("Loggedout");


       $("#other-apps h3").click(function() {
           $("#other-apps").toggleClass("collapsed");
           $(this).blur();
           $(document).click(function(e) {
               // Prevent weird delay when clicking on the links
               var node = e.target;
               while (node && !node.id) {
                   node = node.offsetParent;
               }

               if (!node || node.id != 'other-apps') {
                   $("#other-apps").addClass("collapsed");
               }
           });
           return false;
       });

   }); // end dom ready


 // ]]>
 </script>



<!-- r22379 -->

</body>
</html>
'
20/02/2009 04:21:07: SiteLauncher: Failed, The remote server returned an error: (404) Not Found.
20/02/2009 04:21:07: Update finished

 

They added some nice stuff didn't they lol...

 

Seems to me the whole page is returned now (i removed most of the HTML from the log here for space)

 

couple of interesting snippets though:

 


 <div id="install-61925" class="install-container">

                   <p class="install-button platform-ALL">
           <a href="/en-US/firefox/downloads/latest/10127"  id="installTrigger46178" title="Add SiteLauncher to Firefox" addonName="SiteLauncher" addonIcon="/en-US/firefox/images/addon_icon/10127/1234324342" addonHash="sha256:7fee5b692875362af469d9c855336590ad3eceb25a13daba641d3b70a0672430" onclick="return install(event,document.getElementById('installTrigger46178').getAttribute('addonName'), document.getElementById('installTrigger46178').getAttribute('addonIcon'), document.getElementById('installTrigger46178').getAttribute('addonHash'));"><span><span><span><strong>Download Now </strong></span></span></span></a>            </p>


           <script type="text/javascript">
       installVersusDownloadCheck("installTrigger46178", "Accept and Install", "Download Now ");
   </script>        
   </div>
   <script type="text/javascript">setTimeout(function() {fixPlatformLinks('61925', document.getElementById('installTrigger46178').getAttribute('addonName'));},0);</script>  
 <a href="/en-US/firefox/addon/10127" >Cancel Installation</a>    </div>
 <!-- /#content-policy -->

 

I'm about done with it for tonight but just as it was working tooo... any help or testing you need just ask :-0

Edited by somerandomhash
Link to comment
Share on other sites

It may just be me but it LOOKS like Mozilla just changed the url format for addons (as in within the last 20 mins) all extensions now appear to follow (no policy)
There is still a policy on some... although the template can be simplified as the download url is always hxxps://addons.mozilla.org/en-US/firefox/downloads/latest/{Add-On_ID} for cross-platform extensions, platform specific extensions would not be supported. Since you may not be interested in all platforms, I will release a simpler template that you might prefer to use. ;) In the interim, I have revised the template above (and the Thunderbird extensions template) to reflect their site changes!
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.