Coder Social home page Coder Social logo

Google sync problem about vienna-rss HOT 18 CLOSED

viennarss avatar viennarss commented on May 26, 2024
Google sync problem

from vienna-rss.

Comments (18)

ansani avatar ansani commented on May 26, 2024

If you restart Vienna, you should see on log console a line "token: ...".
It seems that OAUTH don't work.

Did you see the google window to autorize Vienna RSS ?

from vienna-rss.

ansani avatar ansani commented on May 26, 2024

Found the error! It's JSON related. On 10.7.x JSON is available by default...

I'm fixing it :D

from vienna-rss.

barijaona avatar barijaona commented on May 26, 2024

I still have sync issues.

I suspect it is related to having folders, both on Google Reader and "classic"Vienna, with the same feeds in them.
The google_reader_support branch seems unable to fully recognize they address the same stuff. On certain feeds, it creates a duplicate (named [G] something), on other feeds, it don't. Anyway, it won't sync.

This issue doesn't seem to appear on feeds, when they are located outside of a Vienna folder.

from vienna-rss.

barijaona avatar barijaona commented on May 26, 2024

I notice one can't reorder feeds inside a folder, when they are on Google.

I suppose it is a functional choice... which may be related to the behavior I noticed.

from vienna-rss.

ansani avatar ansani commented on May 26, 2024

I coded the GRSync to prioritize local feeds over synced ones. This means that if both remote and local feeds exists, the local one is left "untouched" and not synched with Google Reader. I think a better approach should be a warning windows prompting user to choice over feeds (left or not unsynchronized).

from vienna-rss.

barijaona avatar barijaona commented on May 26, 2024

This locks the user, because currently it is impossible to create locally a feed when it already exists in Google Reader. You get the message that you are already subscribed to it.

And when deleted in Google Reader, feeds still remain in Vienna... Trying to manually delete them in Vienna gives the following messages in Console log :

**\* Assertion failure in -[AppController deleteFolder:], /Users/dok/Dropbox/working_on_github/vienna-rss/AppController.m:3254 HIToolbox: ignoring exception 'Unhandled folder type in deleteFolder: TV Plus Madagascar' that raised inside Carbon event dispatch ( 0 CoreFoundation 0x00007fff80859784 __exceptionPreprocess + 180 1 libobjc.A.dylib 0x00007fff85ab9f03 objc_exception_throw + 45 2 CoreFoundation 0x00007fff808595a7 +[NSException raise:format:arguments:] + 103 3 Foundation 0x00007fff88a8e97a -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 198 4 ViennaBeta 0x00000001000222e4 0x0 + 4295107300 5 AppKit 0x00007fff86bf5eda -[NSApplication sendAction:to:from:] + 95 6 AppKit 0x00007fff86c1a46a -[NSMenuItem _corePerformAction] + 365 7 AppKit 0x00007fff86c1a1d4 -[NSCarbonMenuImpl performActionWithHighlightingForItemAtIndex:] + 121 8 AppKit 0x00007fff86e9fcf4 -[NSMenu _internalPerformActionForItemAtIndex:] + 35 9 AppKit 0x00007fff86d519e9 -[NSCarbonMenuImpl _carbonCommandProcessEvent:handlerCallRef:] + 136 10 AppKit 0x00007fff86bfc99c NSSLMMenuEventHandler + 321 11 HIToolbox 0x00007fff818e37f7 _ZL23DispatchEventToHandlersP14EventTargetRecP14OpaqueEventRefP14HandlerCallRec + 1002 12 HIToolbox 0x00007fff818e2d46 _ZL30SendEventToEventTargetInternalP14OpaqueEventRefP20OpaqueEventTargetRefP14HandlerCallRec + 395 13 HIToolbox 0x00007fff81900a81 SendEventToEventTarget + 45 14 HIToolbox 0x00007fff8192fc35 _ZL18SendHICommandEventjPK9HICommandjjhPKvP20OpaqueEventTargetRefS5_PP14OpaqueEventRef + 387 15 HIToolbox 0x00007fff8195ca0a SendMenuCommandWithContextAndModifiers + 56 16 HIToolbox 0x00007fff8195c9c2 SendMenuItemSelectedEvent + 101 17 HIToolbox 0x00007fff8195c8d2 _ZL19FinishMenuSelectionP13SelectionDataP10MenuResultS2_ + 150 18 HIToolbox 0x00007fff81a65a69 _ZL19PopUpMenuSelectCoreP8MenuData5PointdS1_tjPK4RecttjS4_S4_PK10__CFStringPP13OpaqueMenuRefPt + 1618 19 HIToolbox 0x00007fff81a65dc2 _HandlePopUpMenuSelection7 + 665 20 AppKit 0x00007fff86d4e99b _NSSLMPopUpCarbonMenu3 + 3720 21 AppKit 0x00007fff86d4ed4b -[NSCarbonMenuImpl _popUpContextMenu:withEvent:forView:withFont:] + 239 22 AppKit 0x00007fff86e9fb37 -[NSMenu _popUpContextMenu:withEvent:forView:withFont:] + 205 23 AppKit 0x00007fff86da44c0 -[NSControl _rightMouseUpOrDown:] + 472 24 AppKit 0x00007fff86b9b0c7 -[NSWindow sendEvent:] + 8769 25 AppKit 0x00007fff86acfafa -[NSApplication sendEvent:] + 4719 26 ViennaBeta 0x000000010002fcfe 0x0 + 4295163134 27 AppKit 0x00007fff86a666de -[NSApplication run] + 474 28 AppKit 0x00007fff86a5f3b0 NSApplicationMain + 364 29 ViennaBeta 0x0000000100001684 0x0 + 4294973060 )

from vienna-rss.

barijaona avatar barijaona commented on May 26, 2024

On a side note, I also see a lot of requests to google.com with &T=(null)&access_token=(null) in the URL.

Vienna would better check the token before submitting requests. If the token is not yet available (for instance when offline), Vienna could queue the requests somewhere.

from vienna-rss.

mstroeck avatar mstroeck commented on May 26, 2024

Hi Guys,

I have done some testing over the last few days, I do not like the whole "local/non local" thing at all.

I'd prefer if there were ONLY two options:

Synch EVERYTHING with Google Reader
Synch NOTHING with Google Reader

Vienna has always been about simplicity for the user. This is to complicated.

It is also to complicated to implement.

What do you think?

from vienna-rss.

barijaona avatar barijaona commented on May 26, 2024

Personally, I appreciate the convenience of Google Reader, but I prefer to keep some feeds out of it.

Two reasons for this :

  • I don't want to read some feeds on my phone (volume of data)
  • privacy

from vienna-rss.

ansani avatar ansani commented on May 26, 2024

@barijaona the issue related to "I also see a lot of requests to google.com with &T=(null)&access_token=(null) in the URL." are caused to a premature expiration of OAuth 2.0 token. This seems to be related to an unhandled expection. I'm opening an issue on GitHub to track related commit.

@mstroeck I think users should choice which feed sync with GR an which just read locally.

from vienna-rss.

ansani avatar ansani commented on May 26, 2024

@barijaona by design, Vienna can't handle two feeds with same feed url. I used this same approach writing the Google Sync class. Of course - I think - we can use a "duplicate check exception" only for feeds that have the LOCAL/REMOTE flag active (I mean that use can create a duplicate feed only if scope is different. If a feed is synced with google a local feed is allowed, otherwise not). What do you think ?

@mstroeck comments ? :D

from vienna-rss.

mstroeck avatar mstroeck commented on May 26, 2024

Hi Ansani,

I feel that there is absolutely no need for duplicate feeds. If we have to have the complication of having both local and remote feeds (I still think it's not the best), we should not add the complication of convertig between those.

-) You have a list of feeds. Some synch with Google Reader, some don't.

-) If you turn OFF synching for a specific feed, the Google Reader feed gets deleted, and you get a new local subscription. All your read/unread status data is lost.

-) If you turn ON synching for a specific feed - again, all local read/unread status is lost - you just get a new subscription on Google Reader.

Turning Google Reader read/unread-status into local read/unread status is a complication that I'd rather not have in Vienna's code-base for the long run.

from vienna-rss.

barijaona avatar barijaona commented on May 26, 2024

I agree : a ON/OFF switch per feed seems a good compromise to me.

I suggest the terminology "Use feed hosted by Google Reader" instead of "Sync feed with Google Reader" : when one uses Google Reader, there is only a local cache, the "real" stuff is in the cloud.

from vienna-rss.

mstroeck avatar mstroeck commented on May 26, 2024

Exactly my thoughts :-)

On Thu, Jan 26, 2012 at 6:09 PM, Barijaona Ramaholimihaso
[email protected]
wrote:

I agree : a ON/OFF switch per feed seems a good compromise to me.

I suggest the terminology "Use feed hosted by Google Reader" instead of "Sync feed with Google Reader" : when one uses Google Reader, there is only a local cache, the "real" stuff is in the cloud.


Reply to this email directly or view it on GitHub:
#10 (comment)

from vienna-rss.

barijaona avatar barijaona commented on May 26, 2024

@ansani : I am not sure the problem is only related to a "premature expiration of OAuth 2.0 token". This kind of message can also be seen at the start of the app, just after entering one's credentials.

from vienna-rss.

barijaona avatar barijaona commented on May 26, 2024

@ansani : you wrote : "by design, Vienna can't handle two feeds with same feed url. I used this same approach writing the Google Sync class."

After a little debugging, I spotted this in AppController.m, function createNewGoogleReaderSubscription :

// If the folder already exists, just select it.
Folder * folder = [db folderFromFeedURL:url];
if (folder != nil)
{
    //[browserView setActiveTabToPrimaryTab];
    //[foldersTree selectFolder:[folder itemId]];
    return;
}

This seems incorrect. Here, url is the HTML URL, where folderFromFeedURL does search based on RSS/Atom feed URL.

from vienna-rss.

barijaona avatar barijaona commented on May 26, 2024

OK, I think I nailed it down.

Could you review my commit 2f7de6f , and if it is OK, pull the #22 request ?

from vienna-rss.

barijaona avatar barijaona commented on May 26, 2024

OK, at the time being, I think the GoogleReader class is mostly functional.

However, I find the current user interface a bit confusing. Apart from the Preferences panel, I think we should stick to :

  • a checkbox "Hosted on Google Reader" in RSSFeed.nib
  • a similar checkbox in InfoWindow.nib

Any thoughts ?

from vienna-rss.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.