Commit Graph

241 Commits

Author SHA1 Message Date
Shinokuni beebed751f Add tests for credentials 2021-10-04 18:35:26 +02:00
Shinokuni 71df7a7a31 Replace SImpleXML with KonsumeXML and KotlinXMLBuilder 2021-09-22 22:50:54 +02:00
Shinokuni 4c86b17043 Move OPMLHelper class to app module 2021-09-20 19:56:34 +02:00
Shinokuni 5d03ea0580 Migrate koin to v3.0 2021-09-20 19:27:12 +02:00
Shinokuni f4628b5a49 Add jacoco implementation 2021-09-16 22:29:25 +02:00
Shinokuni b76ffb4fc6 Remove unused RSS resource 2021-09-04 18:22:44 +02:00
Shinokuni 8aec040fbc Remove old getRSSContentTYpe method 2021-09-04 18:18:53 +02:00
Shinokuni 6025202346 Use new adapters configuration in LocalRSSDataSource 2021-09-04 18:03:39 +02:00
Shinokuni 0ac0a1c347 Call JSONItemsAdapter in JSONFeedAdapter 2021-09-04 17:42:24 +02:00
Shinokuni 6f2aad79c0 Call RSS2ItemAdapter in RSS2FeedAdapter 2021-09-04 17:24:13 +02:00
Shinokuni d50d65384c Call RSS1ItemAdapter in RSS1FeedAdapter 2021-09-04 16:59:08 +02:00
Shinokuni 7a417e83de Call ATOMItemAdapter in ATOMFeedAdapter 2021-09-04 16:34:18 +02:00
Shinokuni 58122cb456 Merge branch 'develop' into feature/local_rss_memory_improvements 2021-09-04 15:16:33 +02:00
Shinokuni 63a8891880 Fix tests 2021-09-02 13:54:27 +02:00
Shinokuni 1654d32211 MIgrate Account entity to kotlin 2021-09-01 19:41:45 +02:00
Shinokuni 40c3a52948 Migrate Folder entity to kotlin 2021-09-01 19:01:32 +02:00
Shinokuni 61f8798be5 Migrate Feed entity to kotlin 2021-09-01 18:46:54 +02:00
Shinokuni 4539fdff92 Remove kapt declaration from API module 2021-08-18 19:04:10 +02:00
Shinokuni 83aa9c8a31 Fix RSS1 root parsing 2021-08-17 21:46:17 +02:00
Shinokuni f6b9791bfd Make xml adapters compile 2021-08-17 21:45:16 +02:00
Shinokuni 767662df59 Xml adapters now receive a Konsumer object instead of an input stream 2021-08-17 21:18:03 +02:00
Shinokuni 655ab2bc83 Guess RSS type by using konsume-xml instead of reading content by hand 2021-08-15 16:28:17 +02:00
Shinokuni 1533f67de8 Merge retrofit and retrofit services declarations in ApiModule 2021-08-14 19:46:54 +02:00
Shinokuni 137e591573 Migrate last java classes from API module to kotlin except data sources 2021-07-20 19:58:45 +02:00
Shinokuni a5501b2524 Migrate java classes from services pacakge to Kotlin except data sources 2021-07-20 19:30:26 +02:00
Shinokuni 25ebc8305d Add tests for FreshRSS adapters 2021-07-20 15:38:05 +02:00
Shinokuni be90fa8d99 Add tests for Nextcloud News adapters 2021-07-19 18:52:54 +02:00
Shinokuni 7a51364f48 Migrate API module instrumented tests into simple unit tests 2021-07-19 17:30:10 +02:00
Shinokuni 3c752b777a Remove moshi codegen, use manual adapters instead 2021-07-19 17:11:54 +02:00
Shinokuni d51c7ed90a Fix OPML export not working with API 29+ 2021-07-16 17:34:03 +02:00
Shinokuni bd333afbf2 Fix failing test 2021-07-11 16:25:11 +02:00
Shinokuni 629ca050a3 Remove url building in AuthInterceptor 2021-07-08 19:05:25 +02:00
Shinokuni 8c9b2b2ab1 Nextcloud News : get read/unread starred items at initial synchronisation 2021-07-05 21:00:40 +02:00
Shinokuni 42cb3adee9 Update dependencies 2021-07-03 19:44:42 +02:00
Shinokuni bdc277f216 Fix failing tests 2021-07-02 19:13:49 +02:00
Shinokuni cbff42b4f2 Remove jcenter dependency 2021-07-02 18:56:11 +02:00
Shinokuni f412ae2f1e Get starred items separately only for initial synchronisation and fetch starred items ids everytime 2021-04-20 23:22:32 +02:00
Shinokuni 2411449863 Add a new table which merge FreshRSS items read/star state 2021-04-20 23:19:12 +02:00
Shinokuni fa7b7346cd Improve some adapters syntax 2021-04-14 17:58:33 +02:00
Shinokuni 0c9c601d41 Add new synchronization process for FreshRSS with read state and starred items sync 2020-12-28 15:48:32 +01:00
Shinokuni 009dda1d00 Fix FreshRSS items ids parsing 2020-12-18 18:16:23 +01:00
Shinokuni c3a94b9003 Update kotlin gradle plugin 2020-11-24 23:23:26 +01:00
Shinokuni 7270ed0f85 Remove unused class 2020-11-22 23:24:50 +01:00
Shinokuni e9e1a94401 Merge branch 'master' into develop 2020-11-22 19:03:10 +01:00
Shinokuni f2607c307c Replace Nextcloud News /user depreciated api call by /ocs/v1.php/cloud/users/{userId} 2020-11-15 19:13:21 +01:00
Shinokuni 1cba1b6e17 Accept null value for Nextcloud News feed attribute folderId 2020-11-11 22:22:07 +01:00
Shinokuni cec3c467cf Accept null value for Nextcloud News feed attribute folderId. Fixes #87 2020-11-11 21:59:05 +01:00
Shinokuni a8e3a689d5 Move api androidTest/ tests to test/
It's useless to make an instrumented test if Context is only used to retrieve a resource file. It can be done with classLoader
2020-11-09 22:00:55 +01:00
Shinokuni e548b44ac8 Fix LocalRSSDataSource tests 2020-11-07 13:43:24 +01:00
Shinokuni f2daac5068 Move Niddler instantiation in api module 2020-11-03 21:13:38 +01:00
Shinokuni cfa764e78b Sync FreshRSS items star state 2020-11-02 22:35:57 +01:00
Shinokuni da6b68fd2e Use a different retrofit builder for each service 2020-10-27 21:30:26 +01:00
Shinokuni 04e2f3eadb Add star/unstar api calls for FreshRSS 2020-10-25 21:27:11 +01:00
Shinokuni 9ceb5e6dd7 Add star/unstar api calls for Nextcloud News 2020-10-25 19:14:01 +01:00
Shinokuni 847a9d2004 Fix LocalRSSDataSource tests 2020-10-25 14:03:49 +01:00
Shinokuni 86c58b9280 Wrap Freshrss and Nextcloud News adapters code in a try/catch to throw ParseException 2020-10-25 12:49:19 +01:00
Shinokuni 39e613e7e6 Fix url being rewritten for not freshrss/nextcloud news http calls 2020-10-25 11:56:20 +01:00
Shinokuni 412ec3f1b8 Rename LibUtils to ApiUtils 2020-10-23 21:33:27 +02:00
Shinokuni 5e76eb4134 Reorganize api utils package 2020-10-23 21:30:34 +02:00
Shinokuni afce72bbe1 Add tests for AuthInterceptor 2020-10-23 19:44:13 +02:00
Shinokuni fcfff57e1d Merge branch 'develop' into feature/di 2020-10-23 19:08:52 +02:00
Shinokuni 6294b5556f Delete unused code 2020-10-21 21:42:22 +02:00
Shinokuni f3330ba07d Remove last references to the old http manager 2020-10-19 22:54:29 +02:00
Shinokuni 725cb291ef Fix FreshRSS and Nextcloud News authentications 2020-10-16 12:36:24 +02:00
Shinokuni 49c5ba06b3 Inject AuthInterceptor to deal with retrofit dynamic url and credentials 2020-10-15 19:04:50 +02:00
Shinokuni add729f5e2 Add Koin with api, db and app modules 2020-10-13 22:11:13 +02:00
Shinokuni 9b5dddeff4 Don't build repositories and data sources dependencies in them 2020-10-11 22:31:55 +02:00
Shinokuni 343562657b Fix test dependencies build error 2020-10-07 22:10:44 +02:00
Shinokuni c26a2da6a7 Refactor and update gradle dependencies 2020-10-06 22:45:19 +02:00
Shinokuni b8219b5dde Clean LibUtils class 2020-10-06 22:20:53 +02:00
Shinokuni b6d4f9296d Move isRSSType() method to LocalRSSHelper 2020-10-06 22:15:19 +02:00
Shinokuni 6874ef2452 If a response doesn't have a content-type header, throw UnknownFormatException instead of ParseException 2020-10-05 22:24:47 +02:00
Shinokuni ec53cbd683 Fix content-type not being parsed when getting url rss type 2020-10-05 22:18:02 +02:00
Shinokuni cc17c8884b Add tests for JsonReaderExtensions 2020-10-04 23:13:37 +02:00
Shinokuni 8304e7709f Add tests for method LocalRSSDataSource.handleSpecialCases() 2020-10-04 22:53:00 +02:00
Shinokuni 63497bd049 Always parse feed and items in the same time to detect malformed feeds 2020-10-04 22:17:52 +02:00
Shinokuni 101753a1a7 Improve some RSS2 items tests 2020-10-03 16:29:15 +02:00
Shinokuni ca3efd4509 Add support for media:content element type attribute 2020-10-02 19:46:40 +02:00
Shinokuni 6733890c16 Improve jsonfeed items tests and fallback to current date time if it is missing 2020-10-02 19:08:12 +02:00
Shinokuni 5c4cc81628 Fallback to current date time if it is missing for RSS1 and ATOM items 2020-10-02 18:53:52 +02:00
Shinokuni 10a7b99e59 Fallback to current date time if a RSS2 item doesn't have any date 2020-10-01 21:17:51 +02:00
Shinokuni e41ab29264 Rename DateUtils.stringToLocalDateTime() to parse() 2020-10-01 19:38:48 +02:00
Shinokuni d4e546b6c1 Fix rss url parsing bug 2020-10-01 19:29:59 +02:00
Shinokuni 6f2ff36ece Add tests for Konsumer.nullableTextRecursively() 2020-09-30 18:10:18 +02:00
Shinokuni 872a894db0 Replace RSS2 atom:link element value by response url, as atom:link element is unreliable 2020-09-29 23:30:51 +02:00
Shinokuni 7eecbc8e8b Check item link nullabilty before validateItem() in RSS1ItemsAdapter as item link is used as guid 2020-09-29 23:16:26 +02:00
Shinokuni 9027a1c140 Add tests for Konsume-xml extensions 2020-09-29 23:08:22 +02:00
Shinokuni 2bfb061f48 Treat empty strings as null values in jsonfeed adapters 2020-09-29 22:37:16 +02:00
Shinokuni d958dcbf04 Simplify ATOMItemsAdapter fromXml method 2020-09-29 22:23:54 +02:00
Shinokuni 2bbc8c3e10 Add test for RSS2 media:group element 2020-09-29 22:18:56 +02:00
Shinokuni f6f5f27dd4 Fix RSS2 items tests 2020-09-29 11:29:22 +02:00
Shinokuni 3c68fafd8e Set a global limit for the authors concatenation 2020-09-28 14:34:06 +02:00
Shinokuni bcedd025ba Add xml content type detection for RSS1 2020-09-26 13:32:30 +02:00
Shinokuni a4d6139848 Parse content:encoded element in RSS1 items 2020-09-25 14:34:19 +02:00
Shinokuni de383d5e7d Parse recursively items content/description 2020-09-25 13:50:00 +02:00
Shinokuni 847739c559 Rename rss assets folder to rss2 2020-09-23 22:39:12 +02:00
Shinokuni 22fe77d5cf Concatenate jsonfeed authors when they are several 2020-09-23 22:29:47 +02:00
Shinokuni c742c4fbf2 Add adapter for RSS1 items 2020-09-23 22:02:41 +02:00
Shinokuni 694d684223 Add adapter for RSS1 feed 2020-09-23 18:57:53 +02:00
Shinokuni 963350d1dd Prepare files for the addition of RSS1 adapters 2020-09-20 19:00:49 +02:00
Shinokuni cb41f3c7ac Catch JSONFeedAdapter exceptions 2020-09-20 18:48:43 +02:00
Shinokuni 694ff6331e Add tests for XmlAdapter 2020-09-20 18:44:55 +02:00
Shinokuni de21a308b6 Fix LocalRSSHelper unit tests 2020-09-20 18:22:53 +02:00
Shinokuni 5998fa9126 Delete unused code 2020-09-20 18:17:43 +02:00
Shinokuni 6a1ddaeabb Use LocalRSSDataSource isUrlRSSResource 2020-09-20 18:12:05 +02:00
Shinokuni 581de2e1dd Use nullable attributes in ATOM adapters 2020-09-19 18:50:23 +02:00
Shinokuni 0eb518d692 Ignore media content sub elements 2020-09-19 17:25:36 +02:00
Shinokuni ccce0a810d Fix some RSS2 parsing issues 2020-09-18 14:12:07 +02:00
Shinokuni f6f8807b3a Preserve feeds elements whitespaces 2020-09-17 22:17:58 +02:00
Shinokuni 82c29d0732 Use new LocalRSSDataSource in LocalFeedRepository 2020-09-17 22:15:33 +02:00
Shinokuni 838768800a Handle the absence of some tags in RSS2 and ATOM feeds 2020-09-17 22:11:05 +02:00
Shinokuni 4b999e9fd6 Add jsonfeed parsing in LocalRSSDataSource 2020-09-16 13:57:45 +02:00
Shinokuni ca29c4acb0 Add adapter for jsonfeed items 2020-09-15 23:30:56 +02:00
Shinokuni 592fa4603a Add support for jsonfeed new mime-type : application/feed+json 2020-09-15 13:51:17 +02:00
Shinokuni c9c316b579 Add adapter for parsing jsonfeed feed 2020-09-15 13:48:52 +02:00
Shinokuni 0c48bd2adb Add adapter for parsing atom entries 2020-09-14 19:41:10 +02:00
Shinokuni 5c342a45b6 Add adapter for parsing atom feed 2020-09-14 17:56:25 +02:00
Shinokuni 8b4b7b0f1c Fix opml parser tests 2020-09-13 15:33:06 +02:00
Shinokuni 156601e0c5 Use multiple streams based on a byteArray for parsing the body response 2020-09-13 15:15:42 +02:00
Shinokuni 15e1723893 Move cleanText method to api package 2020-09-13 12:38:51 +02:00
Shinokuni 8e5900833b Support multiple creator elements in RSS items 2020-09-13 12:28:33 +02:00
Shinokuni 20e814f36d Add adapter for RSS item parsing 2020-09-12 19:34:03 +02:00
Shinokuni 4bf56b8f7f Use UnknownFormatException instead of ParseException for some cases 2020-09-12 12:02:03 +02:00
Shinokuni 8089d9ae6c Start replacing simplexml with konsume-xml by parsing RSS feed channel with it 2020-09-11 22:53:50 +02:00
Shinokuni 752135621d Move DateUtils in api package 2020-08-30 16:39:08 +02:00
Shinokuni 4e27a0b86f Add some unit tests for RSS type and content guess methods 2020-08-28 22:50:53 +02:00
Shinokuni 51cea7c4c2 Add data source for local rss, with tests 2020-08-25 23:35:19 +02:00
Shinokuni 355b5a4375 Add new helper class to get RSS feed type, with tests 2020-08-24 21:38:46 +02:00
Shinokuni 594a0a67fa Use more mime types to open opml files 2020-08-16 23:04:26 +02:00
Shinokuni 3657f740df Add another read OPML test 2020-08-10 23:31:10 +02:00
Shinokuni ab86bcbcc2 Add write opml test 2020-08-08 22:40:23 +02:00
Shinokuni 5fe10a848c Close streams at end of tests 2020-08-04 15:23:57 +02:00
Shinokuni 7976140834 Test opml version before parsing 2020-08-04 14:08:21 +02:00
Shinokuni e92367bbc1 Add test for OPML read case 2020-08-03 23:45:21 +02:00
Shinokuni b3dd60e1fb Add support for OPML sub outlines 2020-08-03 23:43:55 +02:00
Shinokuni f6cfa52bc0 OPML head tag isn't required 2020-08-03 23:41:37 +02:00
Shinokuni ea9739a19a Delete :api sample tests 2020-08-03 23:23:31 +02:00
Shinokuni f014284316 Merge OPMLMatcher code into OPMLParser 2020-08-02 15:16:05 +02:00
Shinokuni 1695c3baf6 Fix webview crash in lollipop 2020-07-28 14:09:27 +02:00
Shinokuni 4956a7f3b9 Forgot changed imports 2020-07-19 11:16:24 +02:00
Shinokuni 295a34203e Rename module readropslibrary to api 2020-07-19 10:40:53 +02:00