NewCaw
NewCaw copied to clipboard
Allow the use of Cawbird without an account
Fritter Github Fritter is an FOSS android app that let you access a feed view without having a twitter account. We can take inspiration from it.
While I'm not opposed to the idea, there are a few issues that make it unlikely.
The first one is the additional amount of code needed. Not only we need a special session that handles the API calls with an assigned app token, we also need to prevent prevent methods that will interact (like, repost, etc.) to make invalid calls, hide UI options that are not available, not to speak of creating an follower system just for that session. This adds a good amount of code on top, which also needs maintaining.
The second one are rate limits. Twitter restricts how many calls you can make and how many tweets you can pull. IIRC we already had an situation where these limits were reached, making the client unusable. With no entry limit, I could imagine a lot more calls might be made, pushing us nearer to the limit. However, I already have an separate OAuth-Application for this development version, so it might be worth discussion to reuse that for separating the rate limits from authenticated and anonymous sessions.
Mainly because of point one I have to say that this is something I would not implement soon. However, if we can find a solution that works and someone had the interest of implementing it, we could discuss adding it.
The second one are rate limits. Twitter restricts how many calls you can make and how many tweets you can pull. IIRC we already had an situation where these limits were reached, making the client unusable. With no entry limit, I could imagine a lot more calls might be made, pushing us nearer to the limit. However, I already have an separate OAuth-Application for this development version, so it might be worth discussion to reuse that for separating the rate limits from authenticated and anonymous sessions.
Maybe we can use service like Nitter as a backend support. Nitter is a front-end for Twitter that also allow parsing tweet as a rss feed. Using Nitter, the amount of code to maintain will reduce drastically.
Structure of a rss feed: https://nitter.net/{user}/rss
If we need to use another infrastructure to load the content than its effectively an different application.
However, I think the second issue is the manageable one, with just using another OAuth application. The first one is the problematic one.
App-level token access (rather than user token access) should let you view various feeds without a login. But:
- You can't store and create any kind of "home timeline", because you're just an app. The only approach would be some Frankenstein code to track "followed" users locally and bodge together multiple requests to individual timelines into a coherent "timeline". But it would be horrifically inefficient if you had one high-volume poster and an infrequent poster. Which leads to:
- User auth gives you a set number of requests and other people's activity won't affect that (beyond the global cap that CodedOre mentioned). App auth gives you a set number of requests that every user will share. It'll be infinitely more likely that the app becomes unusable for the majority because one user used up every call in the quota.
(Basically what CodedOre said, but slightly more depth on the horrors of coding it 😁)