Giter Club home page Giter Club logo

ocreader's People

Contributors

bridouz avatar cromfr avatar eloo avatar s3lph avatar schaal avatar stefan-niedermann avatar thfree avatar tobiaskaminsky avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

ocreader's Issues

Can't update

Every time I try to update, Ocreader throws a exception.
screenshot_20160215-123038

Andre

Connect to nextcloud error

Hello, i've installed nextcloud 10 over owncloud, and reinstalled the news app (versione 9.0.4) that it's working on my server, but if i try to connect it via the ocreader app it's say:
Couldn't detect Nextcloud News version, check your owncloud setup

so, first why it's talk about owncloud, second why is that ? i inserted the root url of nextcloud it's ok ?

thanks for the support

Feature Request: Expand Feeds in a Folder

Description of the issue

When you look at the News feeds in Nextcloud, you'll see something like

News 56
BBC 21
CNN 19
Register 16

But in OCReader it's:

News 56

with all of the feeds combined. I've done all the usual clicky things but I can't see to get the folder to expand so I can select the individual feeds like in the web client.

Expected behavior

I would like to see all the folder collapse as it is now, but when you long press (or tap a twiddle, etc) the folder expands to show the individual feeds as in the Nextcloud webUI.

Steps to reproduce

  1. Launch OCReader
  2. Tap the Menu
  3. Look at the list of feeds

Your Environment

  • OCReader version: 0.24
  • Nextcloud news version: 10.1.0
  • Android version: 7.1

PS really nice app - clean and fast

OCReader fails to load/sync with News after Nextcloud app update

Description of the issue

I updated the Nextcloud News app to 10.2.0 (configuration of OCReader apps on my Android devices remained untouched). After the update, OCReader doesn't load/sync with Nextcloud News, but throws the following error instead:

com.squareup.moshi.JsonDataException: Expected a long but was NULL at path: $.items[*].updatedDate

In place of the * appears a number, depending on what category or device you are in/on.

Expected behavior

OCReader should load/sync with Nextcloud News, no matter what version is installed.

Steps to reproduce

Open OCReader app on Android device, go to Unread Articles and try to update/sync.

Your Environment

OCReader version: 0.29
Nextcloud news version: 10.2.0
Android version: 4.4.4 and 4.2.2

App doesn't work

Whenever I install OCReader it works for the first 2-3 times and then I start getting this error:
photo_2016-09-08_15-10-34

It was tested on ownCloud 9, NextCloud 9 and 10.

Let's Encrypt certificates not accepted

Hello,

I've got an ownCloud server which uses Let's Encrypt certificates, which renew ever 90 days of so.

Description of the issue

Today I decided to test OCReader, but could not even sign in, becasue the app kept displaying an error message;

"Couldn't verify certificate, please check your SSL setup".

Expected behavior

SSL certificate accepted

Steps to reproduce

  1. Install OCReader
  2. Open app
  3. Enter server URL and credentials

Your Environment

  • OCReader version: 0.27
  • Nextcloud news version: 9.0.4
  • Android version: 6.0.1

Is this anything that could be remedied, please?
Thank you!

Sort by "published | pub_date" for "item"

Hello!

Take as an example of this:
https://www.youtube.com/feeds/videos.xml?playlist_id=PLQCYG6lKBuTarUZhGcIw8RzkPGcPAAIef

Due to the fact that there is constantly updated
<Updated> *** </ updated>

With sorting problems, such 'ITEM' always on top.

Could you implement sorting by date 'ITME' in Nextcloud.

Or to make the switch to the type of sorting.

New sidebar option: fresh articles

On the sidebar it would be great to have a new entry "fresh articles" which only shows articles from the latest 24 hours.
Scenario: I have lots of lots articles, but want to read the latest 24 hours in the order "old -> new".

If you think this feature is worth implementing it, I can give it a try.

Login Error

Description of the issue

When trying to log in, I get an error message that Nextcloud News is not installed on my server. (German original message: "Nextcloud News nicht installiert oder veraltet. Bitte installieren oder auf mindestens %s aktualisieren")

However the app is installed on my server and is working without issues via the web interface.

Expected behavior

login should work

Steps to reproduce

  1. Install latest version of this app via fdroid store
  2. fill in login credentials and server adress
  3. hit "Anmelden" (login)

Your Environment

  • OCReader version: 0.25
  • Nextcloud news version: 9.0.4
  • Android version: 7.1.1

Logcat

The only logcat output that is produced during the attempt is:

W/InputEventReceiber(12686): Attempted to finish an input event but the input event receiver has already been dispose.

Not sure if that is even related.

com.squareup.moshi.JsonDataException: Expected a string but was NULL at path $.items[90].contentHash

Description of the issue

I have the exception com.squareup.moshi.JsonDataException: Expected a string but was NULL at path $.items[90].contentHash when synchronizing. No articles are retrieved.

Expected behavior

Articles should be synchronizing and appearing in OCReader.

Steps to reproduce

  1. Touch "Synchronize"

Your Environment

  • OCReader version: 0.22 (not working since 0.19, was working with 0.17), from F-Droid repo
  • Nextcloud news version: 9.0.4
  • Android version: 5.1.1

Logcat

com.squareup.moshi.JsonDataException: Expected a string but was NULL at path $.items[90].contentHash

'Mark All as Read' FAB disappears

Description of the issue

'Mark All as Read' FAB disappears and does not re-appear when expected. This leads to the user being unable to mark all articles as read without individually opening each article.

Expected behavior

FAB should auto-hide when scrolling down, but unhide itself when scrolling back up

Steps to reproduce

  1. Open app (already logged in)
  2. Pull-to-refresh
  3. Open any article
  4. Press 'back' to return to main activity - at this point the FAB is still visible
  5. Scroll down - FAB disappears
  6. When further scrolling up and down, FAB does not re-appear, even when refreshing or after opening and exiting another article

Your Environment

OCReader: 0.25 (from FDroid)
Nextcloud News: 10.1.0
Android version: Android 7.1.1 Build NMF26F on Nexus 5X

Logcat

Will post if requested

Option to disable colors in titles

In current state, the color of the text of the article's title reflects the color of the feed's favicon. Some favicons, unfortunately result in colors that are too bright and are therefore close unreadable on a white background. I suggest two ways to fix this issue:

  • limit the lightness of the color - one could convert it to hsl, and clip the lightness component at 50%
  • add option to disable colorful article titles

Search Functionality

I think it would be great to have the same search functionality that we have in the browser. This essentially acts as filters/labels which is vital for people (such as myself) with many feeds. Thanks for any consideration!

Accept custom certificates

Is there any possibility of adding support for custom certificates? A lot of us are just using self signed ones for personal server and it's useful to still be able to connect over https.

Black theme for amoled screen

Please add a black theme for amoled screen.
Many applications use this type of theme and it is more comfortable to read.

Please add reverse order (Oldest first)

The title says it pretty much. Sometimes I don't read my news for a couple of days and when I start reading again I'd like to read the oldest first, chronological. I come from 2 years of Inoreader and I really miss this feature. Pretty good 'till now ;)
Maybe I'll help out when I have some spare time.

App crashes when a specific feed appears on screen

Description of the issue

When any article from Replicant appears in the first page of unread articles, or when Replicant appears on-screen in the feed listing under "Manage feeds", OCReader crashes. This persists after wiping app data and re-logging in.

Expected behavior

OCReader should operate normally when displaying Replicant articles or its feed listing.

Steps to reproduce

  1. Add http://blog.replicant.us/feed/ to feeds. OCReader will crash after synchronizing its feeds.
  2. Re-open OCReader. It will crash again as long as the feeds remain on the first page of unread articles.

Your Environment

  • OCReader version: 0.27
  • Nextcloud news version: 10.1.0
  • Android version: 7.1.1 (CM 14.1-20161224-NIGHTLY)

Logcat

02-02 10:15:13.365  2636  3528 I ActivityManager: START u0 {cmp=email.schaal.ocreader/.ManageFeedsActivity} from uid 10082 on display 0
02-02 10:15:13.573  2636  2657 I ActivityManager: Displayed email.schaal.ocreader/.ManageFeedsActivity: +187ms
02-02 10:15:14.286 12413 12413 W System.err: java.net.UnknownHostException: Unable to resolve host "copperhead.co": No address associated with hostname
02-02 10:15:14.287 12413 12413 W System.err: 	at java.net.Inet6AddressImpl.lookupHostByName(Inet6AddressImpl.java:125)
02-02 10:15:14.287 12413 12413 W System.err: 	at java.net.Inet6AddressImpl.lookupAllHostAddr(Inet6AddressImpl.java:74)
02-02 10:15:14.287 12413 12413 W System.err: 	at java.net.InetAddress.getAllByName(InetAddress.java:752)
02-02 10:15:14.287 12413 12413 W System.err: 	at okhttp3.Dns$1.lookup(Dns.java:39)
02-02 10:15:14.287 12413 12413 W System.err: 	at okhttp3.internal.connection.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:170)
02-02 10:15:14.287 12413 12413 W System.err: 	at okhttp3.internal.connection.RouteSelector.nextProxy(RouteSelector.java:136)
02-02 10:15:14.287 12413 12413 W System.err: 	at okhttp3.internal.connection.RouteSelector.next(RouteSelector.java:81)
02-02 10:15:14.287 12413 12413 W System.err: 	at okhttp3.internal.connection.StreamAllocation.findConnection(StreamAllocation.java:181)
02-02 10:15:14.288 12413 12413 W System.err: 	at okhttp3.internal.connection.StreamAllocation.findHealthyConnection(StreamAllocation.java:132)
02-02 10:15:14.288 12413 12413 W System.err: 	at okhttp3.internal.connection.StreamAllocation.newStream(StreamAllocation.java:101)
02-02 10:15:14.288 12413 12413 W System.err: 	at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:42)
02-02 10:15:14.288 12413 12413 W System.err: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
02-02 10:15:14.288 12413 12413 W System.err: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)
02-02 10:15:14.288 12413 12413 W System.err: 	at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:93)
02-02 10:15:14.288 12413 12413 W System.err: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
02-02 10:15:14.288 12413 12413 W System.err: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)
02-02 10:15:14.288 12413 12413 W System.err: 	at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93)
02-02 10:15:14.288 12413 12413 W System.err: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
02-02 10:15:14.289 12413 12413 W System.err: 	at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:120)
02-02 10:15:14.289 12413 12413 W System.err: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
02-02 10:15:14.289 12413 12413 W System.err: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)
02-02 10:15:14.289 12413 12413 W System.err: 	at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:179)
02-02 10:15:14.289 12413 12413 W System.err: 	at okhttp3.RealCall.execute(RealCall.java:63)
02-02 10:15:14.289 12413 12413 W System.err: 	at com.squareup.picasso.OkHttp3Downloader.load(OkHttp3Downloader.java:119)
02-02 10:15:14.289 12413 12413 W System.err: 	at email.schaal.ocreader.util.IcoRequestHandler.load(IcoRequestHandler.java:63)
02-02 10:15:14.289 12413 12413 W System.err: 	at com.squareup.picasso.BitmapHunter.hunt(BitmapHunter.java:214)
02-02 10:15:14.289 12413 12413 W System.err: 	at com.squareup.picasso.BitmapHunter.run(BitmapHunter.java:170)
02-02 10:15:14.289 12413 12413 W System.err: 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:428)
02-02 10:15:14.290 12413 12413 W System.err: 	at java.util.concurrent.FutureTask.run(FutureTask.java:237)
02-02 10:15:14.290 12413 12413 W System.err: 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
02-02 10:15:14.290 12413 12413 W System.err: 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
02-02 10:15:14.290 12413 12413 W System.err: 	at java.lang.Thread.run(Thread.java:761)
02-02 10:15:14.290 12413 12413 W System.err: 	at com.squareup.picasso.Utils$PicassoThread.run(Utils.java:379)
02-02 10:15:14.290 12413 12413 W System.err: Caused by: android.system.GaiException: android_getaddrinfo failed: EAI_NODATA (No address associated with hostname)
02-02 10:15:14.291 12413 12413 W System.err: 	at libcore.io.Posix.android_getaddrinfo(Native Method)
02-02 10:15:14.291 12413 12413 W System.err: 	at libcore.io.ForwardingOs.android_getaddrinfo(ForwardingOs.java:55)
02-02 10:15:14.291 12413 12413 W System.err: 	at java.net.Inet6AddressImpl.lookupHostByName(Inet6AddressImpl.java:106)
02-02 10:15:14.291 12413 12413 W System.err: 	... 32 more
02-02 10:15:14.291 12413 12413 W System.err: java.net.UnknownHostException: Unable to resolve host "www.fsf.org": No address associated with hostname
02-02 10:15:14.291 12413 12413 W System.err: 	at java.net.Inet6AddressImpl.lookupHostByName(Inet6AddressImpl.java:95)
02-02 10:15:14.291 12413 12413 W System.err: 	at java.net.Inet6AddressImpl.lookupAllHostAddr(Inet6AddressImpl.java:74)
02-02 10:15:14.292 12413 12413 W System.err: 	at java.net.InetAddress.getAllByName(InetAddress.java:752)
02-02 10:15:14.292 12413 12413 W System.err: 	at okhttp3.Dns$1.lookup(Dns.java:39)
02-02 10:15:14.292 12413 12413 W System.err: 	at okhttp3.internal.connection.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:170)
02-02 10:15:14.292 12413 12413 W System.err: 	at okhttp3.internal.connection.RouteSelector.nextProxy(RouteSelector.java:136)
02-02 10:15:14.292 12413 12413 W System.err: 	at okhttp3.internal.connection.RouteSelector.next(RouteSelector.java:81)
02-02 10:15:14.292 12413 12413 W System.err: 	at okhttp3.internal.connection.StreamAllocation.findConnection(StreamAllocation.java:181)
02-02 10:15:14.292 12413 12413 W System.err: 	at okhttp3.internal.connection.StreamAllocation.findHealthyConnection(StreamAllocation.java:132)
02-02 10:15:14.292 12413 12413 W System.err: 	at okhttp3.internal.connection.StreamAllocation.newStream(StreamAllocation.java:101)
02-02 10:15:14.292 12413 12413 W System.err: 	at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:42)
02-02 10:15:14.292 12413 12413 W System.err: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
02-02 10:15:14.293 12413 12413 W System.err: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)
02-02 10:15:14.293 12413 12413 W System.err: 	at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:93)
02-02 10:15:14.293 12413 12413 W System.err: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
02-02 10:15:14.293 12413 12413 W System.err: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)
02-02 10:15:14.293 12413 12413 W System.err: 	at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93)
02-02 10:15:14.293 12413 12413 W System.err: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
02-02 10:15:14.293 12413 12413 W System.err: 	at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:120)
02-02 10:15:14.293 12413 12413 W System.err: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
02-02 10:15:14.293 12413 12413 W System.err: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)
02-02 10:15:14.293 12413 12413 W System.err: 	at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:179)
02-02 10:15:14.294 12413 12413 W System.err: 	at okhttp3.RealCall.execute(RealCall.java:63)
02-02 10:15:14.294 12413 12413 W System.err: 	at com.squareup.picasso.OkHttp3Downloader.load(OkHttp3Downloader.java:119)
02-02 10:15:14.294 12413 12413 W System.err: 	at email.schaal.ocreader.util.IcoRequestHandler.load(IcoRequestHandler.java:63)
02-02 10:15:14.294 12413 12413 W System.err: 	at com.squareup.picasso.BitmapHunter.hunt(BitmapHunter.java:214)
02-02 10:15:14.294 12413 12413 W System.err: 	at com.squareup.picasso.BitmapHunter.run(BitmapHunter.java:170)
02-02 10:15:14.294 12413 12413 W System.err: 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:428)
02-02 10:15:14.294 12413 12413 W System.err: 	at java.util.concurrent.FutureTask.run(FutureTask.java:237)
02-02 10:15:14.294 12413 12413 W System.err: 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
02-02 10:15:14.294 12413 12413 W System.err: 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
02-02 10:15:14.294 12413 12413 W System.err: 	at java.lang.Thread.run(Thread.java:761)
02-02 10:15:14.295 12413 12413 W System.err: 	at com.squareup.picasso.Utils$PicassoThread.run(Utils.java:379)
02-02 10:15:14.295 12413 12413 W System.err: java.net.UnknownHostException: Unable to resolve host "www.fsf.org": No address associated with hostname
02-02 10:15:14.295 12413 12413 W System.err: 	at java.net.Inet6AddressImpl.lookupHostByName(Inet6AddressImpl.java:95)
02-02 10:15:14.295 12413 12413 W System.err: 	at java.net.Inet6AddressImpl.lookupAllHostAddr(Inet6AddressImpl.java:74)
02-02 10:15:14.295 12413 12413 W System.err: 	at java.net.InetAddress.getAllByName(InetAddress.java:752)
02-02 10:15:14.295 12413 12413 W System.err: 	at okhttp3.Dns$1.lookup(Dns.java:39)
02-02 10:15:14.295 12413 12413 W System.err: 	at okhttp3.internal.connection.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:170)
02-02 10:15:14.295 12413 12413 W System.err: 	at okhttp3.internal.connection.RouteSelector.nextProxy(RouteSelector.java:136)
02-02 10:15:14.296 12413 12413 W System.err: 	at okhttp3.internal.connection.RouteSelector.next(RouteSelector.java:81)
02-02 10:15:14.296 12413 12413 W System.err: 	at okhttp3.internal.connection.StreamAllocation.findConnection(StreamAllocation.java:181)
02-02 10:15:14.296 12413 12413 W System.err: 	at okhttp3.internal.connection.StreamAllocation.findHealthyConnection(StreamAllocation.java:132)
02-02 10:15:14.296 12413 12413 W System.err: 	at okhttp3.internal.connection.StreamAllocation.newStream(StreamAllocation.java:101)
02-02 10:15:14.296 12413 12413 W System.err: 	at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:42)
02-02 10:15:14.296 12413 12413 W System.err: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
02-02 10:15:14.296 12413 12413 W System.err: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)
02-02 10:15:14.296 12413 12413 W System.err: 	at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:93)
02-02 10:15:14.296 12413 12413 W System.err: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
02-02 10:15:14.297 12413 12413 W System.err: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)
02-02 10:15:14.297 12413 12413 W System.err: 	at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93)
02-02 10:15:14.297 12413 12413 W System.err: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
02-02 10:15:14.297 12413 12413 W System.err: 	at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:120)
02-02 10:15:14.297 12413 12413 W System.err: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
02-02 10:15:14.297 12413 12413 W System.err: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)
02-02 10:15:14.297 12413 12413 W System.err: 	at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:179)
02-02 10:15:14.297 12413 12413 W System.err: 	at okhttp3.RealCall.execute(RealCall.java:63)
02-02 10:15:14.297 12413 12413 W System.err: 	at com.squareup.picasso.OkHttp3Downloader.load(OkHttp3Downloader.java:119)
02-02 10:15:14.297 12413 12413 W System.err: 	at email.schaal.ocreader.util.IcoRequestHandler.load(IcoRequestHandler.java:63)
02-02 10:15:14.298 12413 12413 W System.err: 	at com.squareup.picasso.BitmapHunter.hunt(BitmapHunter.java:214)
02-02 10:15:14.298 12413 12413 W System.err: 	at com.squareup.picasso.BitmapHunter.run(BitmapHunter.java:170)
02-02 10:15:14.298 12413 12413 W System.err: 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:428)
02-02 10:15:14.298 12413 12413 W System.err: 	at java.util.concurrent.FutureTask.run(FutureTask.java:237)
02-02 10:15:14.298 12413 12413 W System.err: 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
02-02 10:15:14.298 12413 12413 W System.err: 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
02-02 10:15:14.298 12413 12413 W System.err: 	at java.lang.Thread.run(Thread.java:761)
02-02 10:15:14.298 12413 12413 W System.err: 	at com.squareup.picasso.Utils$PicassoThread.run(Utils.java:379)
02-02 10:15:14.404 12413 12433 E AndroidRuntime: FATAL EXCEPTION: Picasso-Dispatcher
02-02 10:15:14.404 12413 12433 E AndroidRuntime: Process: email.schaal.ocreader, PID: 12413
02-02 10:15:14.404 12413 12433 E AndroidRuntime: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.endsWith(java.lang.String)' on a null object reference
02-02 10:15:14.404 12413 12433 E AndroidRuntime: 	at email.schaal.ocreader.util.IcoRequestHandler.canHandleRequest(IcoRequestHandler.java:57)
02-02 10:15:14.404 12413 12433 E AndroidRuntime: 	at com.squareup.picasso.BitmapHunter.forRequest(BitmapHunter.java:423)
02-02 10:15:14.404 12413 12433 E AndroidRuntime: 	at com.squareup.picasso.Dispatcher.performSubmit(Dispatcher.java:201)
02-02 10:15:14.404 12413 12433 E AndroidRuntime: 	at com.squareup.picasso.Dispatcher.performSubmit(Dispatcher.java:175)
02-02 10:15:14.404 12413 12433 E AndroidRuntime: 	at com.squareup.picasso.Dispatcher$DispatcherHandler.handleMessage(Dispatcher.java:466)
02-02 10:15:14.404 12413 12433 E AndroidRuntime: 	at android.os.Handler.dispatchMessage(Handler.java:102)
02-02 10:15:14.404 12413 12433 E AndroidRuntime: 	at android.os.Looper.loop(Looper.java:154)
02-02 10:15:14.404 12413 12433 E AndroidRuntime: 	at android.os.HandlerThread.run(HandlerThread.java:61)
02-02 10:15:14.407  2636  2648 W ActivityManager:   Force finishing activity email.schaal.ocreader/.ManageFeedsActivity
02-02 10:15:14.468  2636  8393 I OpenGLRenderer: Initialized EGL, version 1.4
02-02 10:15:14.469  2636  8393 D OpenGLRenderer: Swap behavior 1
02-02 10:15:15.294  2636  2648 W ActivityManager:   Force finishing activity email.schaal.ocreader/.ListActivity
02-02 10:15:15.323  2636  3530 W WindowManager: Failed looking up window
02-02 10:15:15.323  2636  3530 W WindowManager: java.lang.IllegalArgumentException: Requested window android.os.BinderProxy@de9f483 does not exist
02-02 10:15:15.323  2636  3530 W WindowManager: 	at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:9440)
02-02 10:15:15.323  2636  3530 W WindowManager: 	at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:9431)
02-02 10:15:15.323  2636  3530 W WindowManager: 	at com.android.server.wm.WindowManagerService.relayoutWindow(WindowManagerService.java:2858)
02-02 10:15:15.323  2636  3530 W WindowManager: 	at com.android.server.wm.Session.relayout(Session.java:215)
02-02 10:15:15.323  2636  3530 W WindowManager: 	at android.view.IWindowSession$Stub.onTransact(IWindowSession.java:286)
02-02 10:15:15.323  2636  3530 W WindowManager: 	at com.android.server.wm.Session.onTransact(Session.java:136)
02-02 10:15:15.323  2636  3530 W WindowManager: 	at android.os.Binder.execTransact(Binder.java:565)
02-02 10:15:15.341  2636  2648 E ActivityManager: Found activity ActivityRecord{6fb5bf7 u0 email.schaal.ocreader/.ListActivity t35 f} in proc activity list using null instead of expected ProcessRecord{a289e89 12413:email.schaal.ocreader/u0a82}
02-02 10:15:15.345 12413 12413 D AndroidRuntime: Shutting down VM
02-02 10:15:15.345 12413 12413 I Process : Sending signal. PID: 12413 SIG: 9
02-02 10:15:15.386  2636  2648 I ActivityManager: Killing 12413:email.schaal.ocreader/u0a82 (adj 199): crash
02-02 10:15:15.386  2636  2648 D ActivityManager: cleanUpApplicationRecord -- 12413
02-02 10:15:15.387  2636  2647 D GraphicsStats: Buffer count: 5
02-02 10:15:15.389  2636  2651 W InputEventReceiver: Attempted to finish an input event but the input event receiver has already been disposed.
02-02 10:15:15.556  2636  2657 W AppOps  : Finishing op nesting under-run: uid 1000 pkg android code 24 time=0 duration=0 nesting=0
02-02 10:15:15.937  4049  4131 W OpenGLRenderer: Incorrectly called buildLayer on View: ShortcutAndWidgetContainer, destroying layer...
02-02 10:15:15.937  4049  4131 W OpenGLRenderer: Incorrectly called buildLayer on View: ShortcutAndWidgetContainer, destroying layer...

add news via intent

Consider making it possible to add news feeds to the app using the Intent.ACTION_VIEW action.

OCreader does not sync after News 10.2.0 update

Description of the issue

When I hit synchronize I get an error:
"com.squareup.moshi.JsonDataException: Expected a long but was NULL at path $.items[8].updatedDay"

  • OCReader version: 11.0.2
  • Nextcloud news version: 10.2.0
  • Android version: 6.0.1

Timeout Exception

Description of the issue

When starting ocreader for the first time, the loading symbol shows followed by an error similar to java.net timeout exception:timeout. Some articles load but only a fraction.

Expected behavior

All articles load on first startup.

Steps to reproduce

  1. Start app for first time and login.
  2. Wait while it loads articles.
  3. Timeout error.

Your Environment

  • OCReader version: .28
  • Nextcloud news version: 10.1.0
  • Android version: 7.1.1

Logcat

03-27 17:20:18.028  7264  7264 W email.schaal.ocreader.database.Queries: Database will be reset
6426 03-27 17:20:18.063  7264  7264 D email.schaal.ocreader.service.SyncService: email.schaal.ocreader.action.SYNC_STARTED: email.schaal.ocreader.action.FULL_SYNC
03-27 17:20:18.388  7264  7264 W IInputConnectionWrapper: finishComposingText on inactive InputConnection
03-27 17:20:18.406  7264  7264 W IInputConnectionWrapper: finishComposingText on inactive InputConnection
03-27 17:20:18.407  7264  7264 W IInputConnectionWrapper: finishComposingText on inactive InputConnection
03-27 17:20:18.407  7264  7264 W IInputConnectionWrapper: finishComposingText on inactive InputConnection
03-27 17:20:38.670  7264  7264 D email.schaal.ocreader.service.SyncService: email.schaal.ocreader.action.SYNC_FINISHED: email.schaal.ocreader.action.FULL_SYNC
03-27 17:20:44.355  7264  7956 I email.schaal.ocreader.util.IcoRequestHandler: .ico decoding failed, trying again using BitmapFactory: null
03-27 17:21:11.752  7264  7264 D email.schaal.ocreader.service.SyncService: email.schaal.ocreader.action.SYNC_STARTED: email.schaal.ocreader.action.FULL_SYNC

03-27 17:22:12.209  7264  7899 E email.schaal.ocreader.api.APIv12: stacktrace
03-27 17:22:12.209  7264  7899 E email.schaal.ocreader.api.APIv12: java.util.concurrent.ExecutionException: java.net.SocketTimeoutException: timeout
03-27 17:22:12.209  7264  7899 E email.schaal.ocreader.api.APIv12: 	at java.util.concurrent.FutureTask.report(FutureTask.java:94)
03-27 17:22:12.209  7264  7899 E email.schaal.ocreader.api.APIv12: 	at java.util.concurrent.FutureTask.get(FutureTask.java:164)
03-27 17:22:12.209  7264  7899 E email.schaal.ocreader.api.APIv12: 	at email.schaal.ocreader.api.APIv12$3$1.run(APIv12.java:365)
03-27 17:22:12.209  7264  7899 E email.schaal.ocreader.api.APIv12: 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
03-27 17:22:12.209  7264  7899 E email.schaal.ocreader.api.APIv12: 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
03-27 17:22:12.209  7264  7899 E email.schaal.ocreader.api.APIv12: 	at java.lang.Thread.run(Thread.java:761)
03-27 17:22:12.209  7264  7899 E email.schaal.ocreader.api.APIv12: Caused by: java.net.SocketTimeoutException: timeout
03-27 17:22:12.209  7264  7899 E email.schaal.ocreader.api.APIv12: 	at okio.Okio$4.newTimeoutException(Okio.java:227)
03-27 17:22:12.209  7264  7899 E email.schaal.ocreader.api.APIv12: 	at okio.AsyncTimeout.exit(AsyncTimeout.java:274)
03-27 17:22:12.209  7264  7899 E email.schaal.ocreader.api.APIv12: 	at okio.AsyncTimeout$2.read(AsyncTimeout.java:242)
03-27 17:22:12.209  7264  7899 E email.schaal.ocreader.api.APIv12: 	at okio.RealBufferedSource.indexOf(RealBufferedSource.java:325)
03-27 17:22:12.209  7264  7899 E email.schaal.ocreader.api.APIv12: 	at okio.RealBufferedSource.indexOf(RealBufferedSource.java:314)
03-27 17:22:12.209  7264  7899 E email.schaal.ocreader.api.APIv12: 	at okio.RealBufferedSource.readUtf8LineStrict(RealBufferedSource.java:210)
03-27 17:22:12.209  7264  7899 E email.schaal.ocreader.api.APIv12: 	at okhttp3.internal.http1.Http1Codec.readResponseHeaders(Http1Codec.java:189)
03-27 17:22:12.209  7264  7899 E email.schaal.ocreader.api.APIv12: 	at okhttp3.internal.http.CallServerInterceptor.intercept(CallServerInterceptor.java:67)
03-27 17:22:12.209  7264  7899 E email.schaal.ocreader.api.APIv12: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
03-27 17:22:12.209  7264  7899 E email.schaal.ocreader.api.APIv12: 	at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:45)
03-27 17:22:12.209  7264  7899 E email.schaal.ocreader.api.APIv12: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
03-27 17:22:12.209  7264  7899 E email.schaal.ocreader.api.APIv12: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)
03-27 17:22:12.209  7264  7899 E email.schaal.ocreader.api.APIv12: 	at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:93)
03-27 17:22:12.209  7264  7899 E email.schaal.ocreader.api.APIv12: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
03-27 17:22:12.209  7264  7899 E email.schaal.ocreader.api.APIv12: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)
03-27 17:22:12.209  7264  7899 E email.schaal.ocreader.api.APIv12: 	at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93)
03-27 17:22:12.209  7264  7899 E email.schaal.ocreader.api.APIv12: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
03-27 17:22:12.209  7264  7899 E email.schaal.ocreader.api.APIv12: 	at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:120)
03-27 17:22:12.209  7264  7899 E email.schaal.ocreader.api.APIv12: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
03-27 17:22:12.209  7264  7899 E email.schaal.ocreader.api.APIv12: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)
03-27 17:22:12.209  7264  7899 E email.schaal.ocreader.api.APIv12: 	at email.schaal.ocreader.http.HttpManager$AuthorizationInterceptor.intercept(HttpManager.java:91)
03-27 17:22:12.209  7264  7899 E email.schaal.ocreader.api.APIv12: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
03-27 17:22:12.209  7264  7899 E email.schaal.ocreader.api.APIv12: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)
03-27 17:22:12.209  7264  7899 E email.schaal.ocreader.api.APIv12: 	at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:179)
03-27 17:22:12.209  7264  7899 E email.schaal.ocreader.api.APIv12: 	at okhttp3.RealCall.execute(RealCall.java:63)
03-27 17:22:12.209  7264  7899 E email.schaal.ocreader.api.APIv12: 	at retrofit2.OkHttpCall.execute(OkHttpCall.java:174)
03-27 17:22:12.209  7264  7899 E email.schaal.ocreader.api.APIv12: 	at retrofit2.ExecutorCallAdapterFactory$ExecutorCallbackCall.execute(ExecutorCallAdapterFactory.java:89)
03-27 17:22:12.209  7264  7899 E email.schaal.ocreader.api.APIv12: 	at email.schaal.ocreader.api.APIv12$UpdatedItemsCallable.getResponse(APIv12.java:483)
03-27 17:22:12.209  7264  7899 E email.schaal.ocreader.api.APIv12: 	at email.schaal.ocreader.api.APIv12$RealmCallable.call(APIv12.java:424)
03-27 17:22:12.209  7264  7899 E email.schaal.ocreader.api.APIv12: 	at email.schaal.ocreader.api.APIv12$RealmCallable.call(APIv12.java:412)
03-27 17:22:12.209  7264  7899 E email.schaal.ocreader.api.APIv12: 	at java.util.concurrent.FutureTask.run(FutureTask.java:237)
03-27 17:22:12.209  7264  7899 E email.schaal.ocreader.api.APIv12: 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:428)
03-27 17:22:12.209  7264  7899 E email.schaal.ocreader.api.APIv12: 	at java.util.concurrent.FutureTask.run(FutureTask.java:237)
03-27 17:22:12.209  7264  7899 E email.schaal.ocreader.api.APIv12: 	... 3 more
03-27 17:22:12.261  7264  7264 D email.schaal.ocreader.service.SyncService: email.schaal.ocreader.action.SYNC_FINISHED: email.schaal.ocreader.action.FULL_SYNC

504 Gateway Time-out

Description of the issue

I cannot log into nextcloud and get a 504 Gateway time-out instead.

Expected behavior

I should be able to login.

Steps to reproduce

  1. Install OCReader
  2. Input account info
  3. press sign in

It might be relevant that I have 91 unread articles in the news app atm.

Your Environment

  • OCReader version: 0.26
  • Nextcloud news version: Nextcloud 11, I haven't
  • Android version: 4.2
  • Apache: TimeOut 300
  • PHP: max_execution_time = 240

Unread according to folders

Hi!

It would be desirable to have an opportunity what unread in the right menu would be grouped in the folder, or in case of the switched on option "only unread" in folders to show in the right menu only unread.

only one article

I have for example 5 New news. But in the unread list is only one entry. If i read this article and reload a New of the 5 news will shown but only one. Not all article. And unread number Fall to 4.
In the other section it will also only show one Entry.
Two Screenshots: https://p.elaon.de/m-Hqc/

APP Icon doesn't show up

I have installed it via F Droid and I can only see the APP icon on the install window. It doesn't even show up in fdroid. Its just a white square.

Since the last update the app often crashes

Description of the issue

The app crashes frequently when it updates the feed. Afterwards, she crashes at every opening. It will not work again until the app has been reset.
I had no problems with older apps.

Expected behavior

The app should not crash.

Steps to reproduce

I could not see the error. First I assumed that it is at a certain feed. But the error also appears after the complete removal of the feed.

Your Environment

  • OCReader version: 0.23
  • Nextcloud news version: 9.0.4
  • Android version: tested with 6.0.1 and 7.1

Logcat

I complete the post with the log as soon as possible!

The program does not start

Starting with version 0.18 does not start

Log errors for the 0.20 version:

build.board: MSM8974
build.bootloader: s1
build.brand: Sony
build.cpu_abi: armeabi-v7a
build.cpu_abi2: armeabi
build.device: amami
build.display: cm_amami-userdebug 5.1.1 LMY49J e811031fe1 test-keys
build.fingerprint: Sony/D5503/D5503:5.0.2/14.5.A.0.270/3750474323:user/release-keys
build.hardware: qcom
build.host: cyanogenmod
build.id: LMY49J
build.manufacturer: Sony
build.model: Xperia Z1 Compact
build.product: D5503
build.radio: 8974-AAAAANAZQ-10270045-39
build.serial: CB5A20SPZR
build.tags: test-keys
build.time: 1474210635000
build.type: userdebug
build.user: jenkins
version.codename: REL
version.incremental: e811031fe1
version.release: 5.1.1
version.sdk_int: 22

10-06 18:22:57.129 E/AndroidRuntime(17268): Process: email.schaal.ocreader, PID: 17268
10-06 18:22:57.129 E/AndroidRuntime(17268): java.lang.RuntimeException: Unable to start activity ComponentInfo{email.schaal.ocreader/email.schaal.ocreader.ListActivity}: java.lang.IllegalArgumentException: Illegal Argument: This field is not nullable.
10-06 18:22:57.129 E/AndroidRuntime(17268):     at email.schaal.ocreader.ListActivity.updateUserProfile(ListActivity.java:566)
10-06 18:22:57.129 E/AndroidRuntime(17268):     at email.schaal.ocreader.ListActivity.onCreate(ListActivity.java:201)
10-06 18:22:57.131 W/ActivityManager(2196):   Force finishing activity 1 email.schaal.ocreader/.ListActivity
10-06 18:22:57.640 W/ActivityManager(2196): Activity pause timeout for ActivityRecord{257c2b1c u0 email.schaal.ocreader/.ListActivity t1844 f}
10-06 18:25:21.947 W/PackageManager(16892): Failure retrieving resources for email.schaal.ocreader: Resource ID #0x0
10-06 18:25:22.046 W/PackageManager(16892): Failure retrieving resources for email.schaal.ocreader: Resource ID #0x0
10-06 18:25:22.074 W/PackageManager(16892): Failure retrieving resources for email.schaal.ocreader: Resource ID #0x0
10-06 18:25:22.086 W/PackageManager(16892): Failure retrieving resources for email.schaal.ocreader: Resource ID #0x0
10-06 18:25:22.151 W/PackageManager(16892): Failure retrieving resources for email.schaal.ocreader: Resource ID #0x0
10-06 18:25:22.248 W/PackageManager(16892): Failure retrieving resources for email.schaal.ocreader: Resource ID #0x0
10-06 18:25:22.266 W/PackageManager(16892): Failure retrieving resources for email.schaal.ocreader: Resource ID #0x0

method not allowed

Hi, since a few versions I had only 1 unread article with this app. I just tried erasing all data and configuring it again, but now I can't login anymore, I'm greeted with a "method not allowed" instead.

Server URL is not valid

For non-techy user it is uncommon to have to type "https://" as part of the server url.
The app should try to use https by default and switch, with a warning, to http if secure connection cannot be established.

Article is being brought to the top

Description of the issue

When you switch between Ocreader and another app article you read jumps from a position you was to the begining of it.

Expected behavior

Position remains the same on an app switch.

Steps to reproduce

  1. Scroll in the middle of any article
  2. Switch to another app
  3. Switch back to Ocreader
  4. See the beginning of the article

Your Environment

  • OCReader version: 0.22
  • Nextcloud news version: 10.0.1
  • Android version: 4.4.4

[Request] Reload after Button "All read" pressed

Hi!
When I'm done with looking at all the articles I press the button at the lower right corner.
Which in fact does not show up when I'm at the bottom. I have to scroll up a bit and it appears.
When pressed all articles are marked as read (from bold to normal font), but the list is not refreshed.
So I scroll all the way to the top and make a manual reload.

Login fails reporting a malformed Json

Version 0.21. The login fails with the message: "Use JsonReader.setLenient(true) to accept malformed JSON at path $".
It worked with the previous 0.17 version.

App stops while swiping through articles

Description of the issue

The app crashes when you are on an article page and swipe right, to go back to the previous news article, and then swipe left, to get back to the initial article. The screen gets black and an error message appears: "Unfortunately, OCReader has stopped." Then the app starts again.

As long as you only ever swipe to the next articles, the app works as expected.

Expected behavior

The app doesn't crash, no matter in which direction you swipe and in which succession.

Steps to reproduce

Go to an article that has a predecessor, swipe right and then left.

Your Environment

  • OCReader version: 0.29
  • Nextcloud news version: 10.1.0
  • Android version: 4.4.4 and 4.2.2

Please add Notifications

Could you add a sync interval setting with a notification after the sync if there are new articles?

FAB: use "sync" instead of "mark as read"

At least for my use case I use "sync" much more often than "mark as read" as I want to read/scroll all articles (and therefore they are marked as read already).
But to sync/refresh I have to scroll to top and do "pull to refresh" or open the sidemenu.
I do not like settings (and we avoid this on nextcloud android client), so maybe two floating action buttons are a way to go?

Thanks for this great app!

State is not recovered

When leaving the app while browsing "starred articles" the app should go into "starred articles" when re-opening the app (at least this is what the code suggests to me).

Easy action to star an article

I love the interface as it is, but I would love a quick way to star articles. Pulling down on the article (just like you can pull to refresh on the list of articles) would be a great way to do that.

Read articles show in folders despite "only unread" option enabled

Description of the issue

With the "only unread" option enabled in the app settings, all read articles still show in the custom folders/categories.

Expected behavior

No read articles should be displayed, when "only unread" option is enabled.

Steps to reproduce

Enable "only unread" in the app settings, go to a custom folder, see unread as well as read articles.

Your Environment

  • OCReader version: 0.29
  • Nextcloud news version: 10.1.0
  • Android version: 4.4.4 and 4.2.2

Nextcloud in subdirectory not found

If you use nextcloud in a subdirectory like https://some.url:1234/nextcloud the path after the host will be ignored and OCReader tells the user that nextcloud/owncloud could not be found.

http stream was reset during refresh

Description of the issue

More often than not I get this error while refreshing the articles:
okhttp3.internal.http2.streamRe.setException stream was reset:INTERNAL_ERROR

Expected behavior

It should simply refresh the articles and show any new articles when available

Steps to reproduce

This part is unclear. I can describe the steps to get it working again for some time:

  1. On Android: stop ocreader, clear cache, clear data
  2. On Nextcloud, mark all articles as read
  3. On Android, set up ocreader as a new app: login to nextcloud.

Your Environment

  • OCReader version:
    0.29

  • Nextcloud news version:
    11.0.2

  • Android version:
    7.1.1

Logcat

(Read http://www.makeuseof.com/tag/get-logcat-reporting-bugs-android/ if you are not sure how to get the logcat output.)

Please paste the relevant logcat output here

How to keep read articles in view?

I am trying to have a view for All Articles, including the already read ones. I cannot get this to work. In the menu, I have only the "Unread Articles" item. This, in combination with the setting "Show only unread articles" is silly and confusing.

Why not have "All Articles" in the menu instead of "Unread Articles" and use "Show only unread articles" to optionally filter out the read articles? Makes more sense to me..

New logo/icon design

Yesterday I've come across this reddit thread and I've took the liberty to contact the guys for a new logo/icon for OCReader. Are you interested in one? I think ocreader could use one.

Feature Request: Dark Theme

So far the App works like a charm so good work on that, but for me It'd be even better if there was an option to get a dark theme similar to what the ownCloud News App has

Option to "view image" and view image title

Hi! I love the app! It's become my default RSS reader. There's one option I'm missing, though: when reading comics, I'd like to be able to zoom in on them, as well as to see the image title (where punchline is often stored, xkcd-style).

Here's how I imagine it: you double-tap or press-and-hold on an image and you go to Image View, which works as if you were browsing an image in an image gallery. There's a "..." icon that you can tap to reveal the image title.

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.