Closed Bug 420859 Opened 16 years ago Closed 16 years ago

Can't subscribe to a feed with akregator (and other RSS clients)

Categories

(Firefox Graveyard :: RSS Discovery and Preview, defect)

2.0 Branch
x86
Linux
defect
Not set
normal

Tracking

(Not tracked)

VERIFIED DUPLICATE of bug 339514

People

(Reporter: epitrat, Unassigned)

Details

User-Agent:       Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.12) Gecko/20080213 BonEcho/2.0.0.12
Build Identifier: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.12) Gecko/20080213 BonEcho/2.0.0.12

Hello,

I can't manage (with a lot of firefox version) to subscribe to a RSS feed with akregator through firefox. The subscribe button doesn't work. What is strange is that various versions of a (dirty) solution are available for a long time on internet, which means other people have the same problem, but it still doesn't work out of the box, and I can't find a bug report concerning it ...

The problem is most RSS clients won't add a feed just by being called with it as a parameter. Akregator need -a option for exemple. Moreover, even then it doesn't always work. If akregator is already running, it won't work. Using dcop can solve the problem, but it needs a special syntax, with arguments before and after the feed adress.

I think the problem is not easy, as it would need to add a lot of options (select the binary, specify options ...), and is a mix of bug fix and feature addition. A nice (optionnal) feature could be to also handle group (asked on feed addition).

Regards,
Colin

Reproducible: Always

Steps to Reproduce:
With a fresh installation of firefox under Linux:
1.Find a web page with RSS feed (e.g. http://slashdot.org/)
2.Click on RSS icon in the adress bar
3.Choose to subscribe using your akregator (it's probably true with many other applications) and click "Subscribe Now"
Actual Results:  
Nothing happens

Expected Results:  
RSS feed added in akregator

Filling variables (in about:config):
browser.feeds.handler.default -> "client"
browser.feeds.handlers.application -> "dcop"
browser.feeds.handlers.application.afterArgs -> "] Imported"
browser.feeds.handlers.application.args-> "akregator AkregatorIface addFeedsToGroup ["

and using the following patch, it works:
--- /usr/lib/firefox-2.0.0.12/components/FeedConverter.js.old   2008-03-04 11:21:19.000000000 +0100
+++ /usr/lib/firefox-2.0.0.12/components/FeedConverter.js.new   2008-03-04 11:26:40.000000000 +0100
@@ -331,13 +331,32 @@

     switch (handler) {
     case "client":
+      const PREF_SELECTED_APP_ARGS = "browser.feeds.handlers.application.args";
+      const PREF_SELECTED_APP_AFTERARGS = "browser.feeds.handlers.application.afterargs";
+      const PREF_SELECTED_APP_URIPREFIX = "browser.feeds.handlers.application.uriPrefix";
       var clientApp =
         prefs.getComplexValue(PREF_SELECTED_APP, Ci.nsILocalFile);
+      var feedhandlerArgs = safeGetCharPref(PREF_SELECTED_APP_ARGS).split(" "); //get all args words delimitted by space into array
+      var feedhandlerAfterArgs = safeGetCharPref(PREF_SELECTED_APP_AFTERARGS).split(" ");
+      var uriPrefix = safeGetCharPref(PREF_SELECTED_APP_URIPREFIX);
+      var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile);
+      file.initWithPath(clientApp.persistentDescriptor);
+      var process = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
+      process.init(file);
+
+      if (uriPrefix) spec = uriPrefix + spec;
+      if (feedhandlerArgs) {
+             var args = feedhandlerArgs;
+             args[args.length] = spec; // add uri as last arg at the end
+      }
+      else
+             var args = [spec];
+      if (feedhandlerAfterArgs)
+             args = args.concat(feedhandlerAfterArgs);
+
+      process.run(false, args, args.length);
+
 //@line 393 "/home/arch/i686/extra/network/firefox/src/mozilla/browser/components/feeds/src/FeedConverter.js"
-      var ss =
-          Cc["@mozilla.org/browser/shell-service;1"].
-          getService(Ci.nsIShellService_MOZILLA_1_8_BRANCH);
-      ss.openApplicationWithURI(clientApp, spec);
       break;

     default:
Version: unspecified → 2.0 Branch
Status: UNCONFIRMED → RESOLVED
Closed: 16 years ago
Resolution: --- → DUPLICATE
Verified Duplicate.
Status: RESOLVED → VERIFIED
Product: Firefox → Firefox Graveyard
You need to log in before you can comment on or make changes to this bug.