1
1
Fork 0
mirror of https://code.mensbeam.com/MensBeam/Arsse.git synced 2024-12-22 21:22:40 +00:00
Commit graph

772 commits

Author SHA1 Message Date
J. King
5ec04d33c6 Add backend functionality to rename users 2020-12-25 17:47:36 -05:00
J. King
88cf3c6dae Test filter rule retrieval 2020-12-23 09:38:22 -05:00
J. King
d66cf32c1f Style fixes 2020-12-22 16:13:12 -05:00
J. King
a81760e39d Aggressivly clean up hidden articles
Notably, starred articles are cleaned up if hidden
2020-12-22 15:17:18 -05:00
J. King
ade0402210 Adjust TT-RSS to ignore hidden items 2020-12-21 21:49:57 -05:00
J. King
f33359f3e3 Move some Miniflux features to abstract handler 2020-12-20 22:30:59 -05:00
J. King
b7ce6f5c79 Adjust Fever to ignore hidden items 2020-12-20 19:32:07 -05:00
J. King
b2fae336e8 Adjust Nextcloud News to ignore hidden items 2020-12-20 17:42:28 -05:00
J. King
f0bfe1fdff Simplify editionLatest Database method
Also adjust label querying to take hidden marks into account
2020-12-20 17:34:32 -05:00
J. King
8527c83976 Exclude hiddens from subscription unread count
Also fix a bug that would result in the unread count being null if
no marks existed
2020-12-20 11:55:36 -05:00
J. King
97010d8822 Tests for marking articles hidden 2020-12-19 10:59:40 -05:00
J. King
86c4a30744 Adjust articleStarred function to discount hidden 2020-12-17 18:12:52 -05:00
J. King
8ae3740d5f Implement querying articles by hidden mark 2020-12-15 19:28:51 -05:00
J. King
d5cd5b6a17 Implement hidden marks
Tests are still needed
2020-12-15 13:20:03 -05:00
J. King
95a2018e75 Implement caategory marking as read 2020-12-14 12:41:09 -05:00
J. King
5124f76b70 Implementcategory deletion 2020-12-13 22:10:34 -05:00
J. King
eb079166de Tests for category renaming 2020-12-13 12:56:57 -05:00
J. King
3ebb46f48e Some work on categories 2020-12-11 23:47:13 -05:00
J. King
2e6c5d2ad2 Query Miniflux categories 2020-12-11 13:31:35 -05:00
J. King
ebdfad535c More Miniflux user tests
Also added user lookup functionality
2020-12-10 20:08:00 -05:00
J. King
7c841b5fc2 Test for listing users 2020-12-09 23:39:29 -05:00
J. King
5c83655541 Add modification timestamp to user metadata 2020-12-08 16:10:23 -05:00
J. King
d85988f09d Prototype Miniflux user querying 2020-12-08 15:34:31 -05:00
J. King
2eedf7d38c Finally fix MySQL 2020-12-07 09:52:42 -05:00
J. King
e9d449a8ba Fix user manager and tests 2020-12-07 00:07:10 -05:00
J. King
ce68566fcb Hopefully fix MySQL 2020-12-06 20:27:20 -05:00
J. King
a431243421 Fixes for MySQL and PostgreSQL 2020-12-06 13:17:19 -05:00
J. King
fcf1260dab Adjust database portion of user property manager 2020-12-05 22:13:48 -05:00
J. King
978929aabd WIP redesign of user properties 2020-12-05 11:01:44 -05:00
J. King
94154d4354 Implement Miniflux feed discovery 2020-12-02 18:00:27 -05:00
J. King
669e17a1f6 Add ability to discover multiple feeds 2020-12-01 17:12:19 -05:00
J. King
2a0d6e6599 OPTIONS tests 2020-12-01 12:08:45 -05:00
J. King
7fa5523a7d Simplify handling of invalid paths and methods 2020-12-01 11:06:29 -05:00
J. King
def07bb1ad Tests for Miniflux authentication
This appears to match Miniflux's behaviour
2020-11-30 10:52:32 -05:00
J. King
90117b5cd7 Fix Miniflux strip value 2020-11-26 08:42:35 -05:00
J. King
06dee77bac First tests for Miniflux 2020-11-23 09:31:50 -05:00
J. King
f6cd2b87ce Port token data from Microsub branch 2020-11-18 11:25:28 -05:00
J. King
d3ebb1bd56 Last set of tests for user management. Fixes #180 2020-11-17 16:23:36 -05:00
J. King
e16df90bae Style fixes 2020-11-16 10:26:14 -05:00
J. King
180b4ecc9b More user tests 2020-11-16 10:24:06 -05:00
J. King
27d9c046d5 More work on user management 2020-11-16 00:11:19 -05:00
J. King
7f2117adaa Differentiate between duplicate/missing users and other failure modes 2020-11-15 16:24:26 -05:00
J. King
4baf5fa2f9 Tests for new user functionality in Database 2020-11-13 19:30:23 -05:00
J. King
dde9d7a28a Refinements to user manager
A greater effort is made to keep the internal database synchronized
2020-11-11 18:50:27 -05:00
J. King
eb2fe522bf Last bits of the new user metadata handling 2020-11-10 17:09:59 -05:00
J. King
5a17efc7b5 Clean up user driver API
- It is no longer assumed a driver knows whether a user exists
- The $password param is now required (but nullable when setting
2020-11-09 18:14:03 -05:00
J. King
771f79323c Strip out remnants of the authorizer 2020-11-09 16:51:30 -05:00
J. King
576d7e16a8 Fix handling of bytea-typed nulls 2020-11-09 16:49:42 -05:00
J. King
532ce4a502 Prototype changes to user management
The driver itself has not been expnaded; more is probably required to ensure
metadata is kept in sync and users created when the internal database does
not list a user an external database claims to have
2020-11-09 13:43:07 -05:00
J. King
b62c11a43e Lasts tests for icon cache; fixes #177 2020-11-07 08:11:06 -05:00
J. King
311910795a More tests for icon cache 2020-11-06 17:06:01 -05:00
J. King
3d3c20de5c Don't anticipate API features 2020-11-06 15:57:27 -05:00
J. King
424b14d2b4 Clean up use of subscriptionFavicon 2020-11-06 10:27:30 -05:00
J. King
dd1a80f279 Consolidate subscription icon querying
Users and tests still need adjusting
2020-11-05 18:32:11 -05:00
J. King
4fc208d940 More consistent icon API 2020-11-05 16:51:46 -05:00
J. King
c3a57ca68b Tests for icon cache population 2020-11-05 14:19:17 -05:00
J. King
50fd127ac4 Test for icon fetching 2020-11-05 10:14:42 -05:00
J. King
7c40c81fb3 Add icons to the database upon feed update 2020-11-05 08:13:15 -05:00
J. King
c25782f98c Partial icon handling skeleton 2020-11-04 20:00:00 -05:00
J. King
2438f35f3d Add icon cache to database
Feed updating has not yet been adapted to store
icon data (nor their URLs anymore)
2020-11-04 18:34:22 -05:00
J. King
5e60da00a9 Merge branch 'master' into miniflux 2020-11-03 18:58:09 -05:00
J. King
41bcffd6fb Correctly query PostgreSQL byte arrays
This required different workarouynd for the native and PDO interfaces
2020-11-03 17:52:20 -05:00
J. King
c21ae3eca9 Correctly send binary data to PostgreSQL
This finally brings PostgreSQL to parity with SQLite and MySQL.
Two tests casting binary data to text were removed since behaviour here
should in fact be undefined

Accountinf for any encoding when retrieving data will be addressed by
a later commit
2020-11-02 15:21:04 -05:00
J. King
c92bb12a11 Prototype Miniflux dispatcher 2020-11-01 19:11:01 -05:00
J. King
8ad7fc81a8 Initially mapping out of Miniflux API 2020-10-31 21:26:11 -04:00
J. King
16d2e01668 New schema for PostgreSQL and MySQL 2020-10-30 19:00:11 -04:00
J. King
4db1b95cf4 Add numeric IDs and other Miniflux data to SQLite schema 2020-10-30 15:25:22 -04:00
J. King
b58a326461 Prepare for schema changes 2020-10-29 11:58:45 -04:00
J. King
0117e7f9bf Relax Fever's HTTP correctness for client compat
- Unread on iOS appears to send all API requests as GETs
- Newsflash on Linux sends multipart/form-data input
2020-10-27 10:49:54 -04:00
J. King
9b11001402 Fix sample Nginx configuration 2020-10-26 12:57:16 -04:00
J. King
afbf3be031 Use 'union all' instead of 'union' in queries 2020-09-22 11:34:52 -04:00
J. King
9bc1373998 Version bump 2020-09-09 18:24:42 -04:00
J. King
0f3ada598e Work around Picofeed bug
A fix is pending merging upstream
2020-09-09 14:52:35 -04:00
J. King
e60f7ea03f Add class constant visibility 2020-03-01 18:32:01 -05:00
J. King
bc53a2d24a Style fixes 2020-03-01 15:16:50 -05:00
J. King
9696d55b31 Prepare ugfix release 2020-02-16 17:43:46 -05:00
J. King
39a1895867 Refine and cover new Guzzle error handling 2020-02-03 16:54:45 -05:00
J. King
06d3af0ac3 Fix remaining Picofeed-related test failures 2020-01-24 15:54:08 -05:00
J. King
49d003082d Fix problems with nicolus/picofeed
This involved multiple fixes to Picofeed itself, not all of which have
been merged upstream yet
2020-01-23 17:07:20 -05:00
J. King
e583ffea67 Start on integrating well-maintained picofeed fork
Picofeed configuration does not seem to get passed to Guzzle.
2020-01-21 08:42:38 -05:00
J. King
b5f118e8cb Cleanup 2020-01-20 13:52:48 -05:00
J. King
bbace7a0ac Use void and nullable return types where practical 2020-01-20 13:34:03 -05:00
J. King
5838af892f Replace references to Zend with Laminas 2020-01-20 10:40:05 -05:00
J. King
c4ee7254cd Refactor some tests to use data providers 2020-01-08 12:02:43 -05:00
J. King
fb2602fe04 Don't load actual configuration during CLI tests 2019-12-27 09:00:22 -05:00
J. King
3ee89bf669 Version bump 2019-12-06 17:46:53 -05:00
J. King
c9d4540616 Merge branch 'mysql' 2019-12-06 17:44:29 -05:00
J. King
bbe70b6abc Corect CamelCase references to Nextcloud 2019-12-05 13:02:02 -05:00
J. King
5df89009e6 Merge branch 'master' of https://code.mensbeam.com/MensBeam/arsse 2019-12-02 19:09:16 -05:00
J. King
15de8c2320 Fix PostgreSQL connection error message 2019-12-02 17:14:03 -05:00
J. King
737dd9f6b8 Fix foreign keys in MySQL 2019-12-01 15:00:28 -05:00
J. King
0e5b242c67 Version bump 2019-10-28 11:07:04 -04:00
J. King
c59cdfef76 Whitespace fixes 2019-10-25 15:16:35 -04:00
J. King
71c7cd8fb1 Full coverage! Fixes #66 2019-10-19 18:51:01 -04:00
J. King
728eecfbb5 Additional service tests 2019-10-19 12:14:13 -04:00
J. King
7ac4fb4715 Clarify PDO workaround for SQLite 2019-10-18 16:09:01 -04:00
J. King
3ef1177f06 Remove driver lists 2019-10-18 13:20:28 -04:00
J. King
b6dd8ab20d Improvements to and proper tests for query builder 2019-10-18 13:11:03 -04:00
J. King
c706a76057 Simplify array flattening 2019-10-18 13:10:03 -04:00
J. King
64c3ec3571 Coverage fixes and OPML bugfix 2019-10-17 13:00:56 -04:00
J. King
1809fb254e Deal with trailing whitespace in media types 2019-09-27 22:54:33 -04:00
J. King
4f5a8e3180 Make media type checking more robust 2019-09-27 22:38:03 -04:00
J. King
5f993187ea Be explicit with HTTP challenge character encoding 2019-09-27 17:16:34 -04:00
J. King
c5337b37b4 Consolidate creation of synthetic server requests 2019-09-25 18:30:53 -04:00
J. King
3da884dfbc Don't embed ito SQL strings with question marks
Fixes #175
2019-09-12 09:53:43 -04:00
J. King
be5ad50f54 Tests for text search clause generator 2019-09-12 09:41:01 -04:00
J. King
fb6e2babb9 Change some conditions to asserts 2019-09-12 08:32:40 -04:00
J. King
3aac583c00 Add Microsub to possible future APIs 2019-09-05 14:02:06 -04:00
J. King
c9e86e71c4 More style fixes 2019-09-05 11:25:50 -04:00
J. King
53aa7a4d0d Style fixes 2019-09-05 10:21:36 -04:00
J. King
d9c769d40e Remove Target class 2019-09-05 10:19:05 -04:00
J. King
29667464a1 Remove unnecessary namespace imports 2019-09-05 10:03:32 -04:00
J. King
0eb0fbcc0d Also normalize relative URLs 2019-09-03 19:34:56 -04:00
J. King
3439895779 Normalize URLs before establishing feed uniqueness 2019-09-03 19:04:23 -04:00
J. King
a175561574 Documentation corrections 2019-09-03 13:26:00 -04:00
J. King
bd71ddb929 Percent-encoding and IPv6 normalization 2019-09-03 13:16:05 -04:00
J. King
12fe786a2f Cleanup 2019-08-29 12:28:23 -04:00
J. King
d4802bcdb6 Handle IDNs
While IPv6 address normalization was originally planned, this was deemed
too much effort to bother with such a niche feature; IPv6 addresses are
instead passed through unmodified
2019-08-27 15:18:02 -04:00
J. King
dc750acf07 Handle ports, paths, and credentials correctly 2019-08-27 11:08:13 -04:00
J. King
13c27c2536 Start on URL normalizer 2019-08-26 22:13:30 -04:00
J. King
e5696fdf44 Merge branch 'manual' 2019-08-25 13:21:44 -04:00
J. King
cfef75ccba Don't update the feed URL when fetching
This can result in some unpredictable constraint violations
2019-08-06 09:58:30 -04:00
J. King
1ef669a464 Documentation for user management and OPML 2019-07-31 14:57:43 -04:00
J. King
eb120b4629 Fetch in three hours if caching is via etag 2019-07-27 11:03:17 -04:00
J. King
137be8bde2 Fix whitespace 2019-07-26 23:24:29 -04:00
J. King
45a43488ee Increase compatibility with misbehaving Fever clients 2019-07-26 23:23:22 -04:00
J. King
db5bcb78a3 Fix lookup of evergreen tokens 2019-07-26 20:06:47 -04:00
J. King
d6220c1bbb Merge branch 'master' into manual 2019-07-26 11:27:14 -04:00
J. King
4282ba1c26 Version bump 2019-07-26 09:39:46 -04:00
J. King
f7240301e4 Basic database maintenance
Closes #169
2019-07-26 09:37:51 -04:00
J. King
422eaf9605 Invalidate sessions on password change; closes #170 2019-07-25 22:34:58 -04:00
J. King
faf524c54f CLI test for import
Fixes #35
2019-07-25 15:45:18 -04:00
J. King
0e95892aea Do not necessarily ignore blank tags in import
We still make them practically impossible in OPML imports, however
2019-07-24 14:20:17 -04:00
J. King
2aa16f3405 Merge branch 'fever' into opml 2019-07-24 14:04:04 -04:00
J. King
61b942df70 Defer Fever favicons to a future release 2019-07-24 12:27:50 -04:00
J. King
0480465e7e Test Fever XML responses
Fixes #158
2019-07-24 09:10:13 -04:00
J. King
30cede9ea4 Make OPML parser protected 2019-07-05 14:58:05 -04:00
J. King
7046ce163c More format-neutral code out of OPML class 2019-06-21 13:47:34 -04:00
J. King
92b1626dba Remove most unused features of the query builder
Experience has proved programmatically setting joins is not useful, and
getting the types and values of query parts was not being maintained.

The programmatic setting of GROUP BY may be useful in future, however.
2019-06-21 12:00:23 -04:00
J. King
c1e13e6199 Tests for file imports 2019-05-12 16:33:19 -04:00
J. King
0f7d49c21e More OPML tests and fixes 2019-05-06 19:36:39 -04:00
J. King
644750487c Command line documentation and fixes 2019-05-06 00:02:59 -04:00
J. King
a30114807f Tests and fixed for OPML feed parsing 2019-05-05 20:29:44 -04:00
J. King
cdd9f4dfbe More OPML parser tests 2019-05-02 21:54:49 -04:00
J. King
5ba009cfed First set of OPML parser tests 2019-05-02 12:52:52 -04:00
J. King
6ef13d0880 Style fixes 2019-05-01 22:52:20 -04:00
J. King
b9821d925a CLI for OPML import, and proper exceptions 2019-05-01 10:46:44 -04:00
J. King
67492cd7ef Prototype OPML importer routine
In theory the import (as opposed to parse) routine could be used for any
format; this could be used to implement an ad hoc JSON format to avoid
the loss of commas in tags with OPML
2019-04-27 19:50:03 -04:00
J. King
3899ee6b4e Allow for replacing label and tag associations
This supplements adding and removing
2019-04-27 18:32:15 -04:00
J. King
2af223753d Function to add a feed without a subscription 2019-04-21 14:07:36 -04:00
J. King
ceecd58393 OPML parsing comments and minr fixes 2019-04-21 13:10:47 -04:00
J. King
825c286e5b Prototype OPML import parser 2019-04-19 18:01:31 -04:00
J. King
2d18be959c Tests for undoing read marks 2019-04-10 18:27:57 -04:00
J. King
c55a960b85 Slight cleanup 2019-04-10 15:14:45 -04:00
J. King
8532c581a8 Handle OPTIONS requests in Fever 2019-04-10 10:51:02 -04:00
J. King
afb95e53b0 Initial implementation of read-undo 2019-04-10 10:21:14 -04:00
J. King
52bc5fbda6 Tests for simple marking 2019-04-10 09:48:28 -04:00
J. King
15915a4393 Initial implementation of simple marks 2019-04-08 23:31:22 -04:00
J. King
c783ec4357 Prototype XML output for Fever 2019-04-08 20:58:45 -04:00
J. King
98fc3f4940 Test for hot links 2019-04-08 19:21:21 -04:00
J. King
4ce371ece6 Tests and fixes for Fever item listing 2019-04-08 18:41:56 -04:00
J. King
e3d2215920 Style fixes 2019-04-05 11:03:15 -04:00
J. King
0ef606aa03 Return string list of item IDs 2019-04-05 08:20:05 -04:00
J. King
0752e9cf3d Implement Fever sync 2019-04-04 19:37:48 -04:00
J. King
c6d241e653 Implement Fever item list 2019-04-04 17:57:12 -04:00
J. King
12f23ddc16 Updated tests for arbitrary sorting 2019-04-04 17:21:23 -04:00
J. King
f72c85c9f6 Hopefully working but maybe broken custom sorting 2019-04-04 11:22:50 -04:00
J. King
4b133bddd6 Prototype arbitrary result ordering 2019-04-03 15:02:59 -04:00
J. King
74fc39fca0 Implement multi-folder context option 2019-04-02 22:44:09 -04:00
J. King
cce1089e10 Handle edge case with folder 0
Folder 0 (the root folder) is a valid, though nonsensical selection:
using it as a positive option is the same as not using the option at
all, and using it as a negative option necessarily yields an empty set.

However, it can in some contexts be validly specified, and so it should
be handled consistently. It had not been previously, but is now.
2019-04-02 19:58:35 -04:00
J. King
98f6fca7e3 Enforce minimum array size (for now) 2019-04-02 18:37:46 -04:00
J. King
ef1b761f95 Implement most multiple-item context options
Selecting multiple folder trees will require further effort
2019-04-02 18:24:20 -04:00
J. King
ba32ad2f17 Add context options for multiple tags, labels, etc 2019-04-02 09:32:31 -04:00
J. King
77efaa7b41 CLI command for exporting OPML and sundry cleanup 2019-04-01 17:24:19 -04:00
J. King
deea294f8a Add export-to-file wrapper for OPML 2019-04-01 16:54:14 -04:00
J. King
35e79d53a9 OPML export fixes, with tests 2019-03-30 10:01:12 -04:00
J. King
d63edf541f Insert folders into OPML before subscriptions 2019-03-29 09:02:39 -04:00
J. King
25b7b47e0a Prototype OPML exporter 2019-03-28 21:53:04 -04:00
J. King
5d994f3dad Normalize Fever input consistently
Two parameters are undocumented, but other implementations consistently
accept them from clients
2019-03-28 14:54:31 -04:00
J. King
de615c671a Tests and fixed for Fever feeds and groups 2019-03-27 15:09:04 -04:00
J. King
7faec3b0db Fever fixes
- Ensure the last refresh time is included in authenticated requests
- Use a partial mock in auth tests so that other processing does not
get in the way of results
- Make sure the group list includes unused groups
- Make sure the update time of subscriptions is correct
2019-03-27 11:54:47 -04:00
J. King
d8407330a0 Add a function to get when feeds were last updated
This is an optimization for Fever, which returns this information with
every API call.
2019-03-26 16:51:44 -04:00
J. King
acb3973149 Prototype implementation of Fever groups and feeds 2019-03-26 08:53:26 -04:00
J. King
9c61f967e3 Correct CLI password clearing 2019-03-25 17:07:28 -04:00
J. King
bf3bf9589f Merge branch 'master' into fever 2019-03-25 14:12:08 -04:00
J. King
1e83350dd0 Version bump 2019-03-25 11:57:31 -04:00
J. King
65f723c7d4 Fix missing reference to author in TT-RSS. 2019-03-25 11:30:35 -04:00
J. King
22c2629078 Partial tests for new CLI features 2019-03-25 10:45:05 -04:00
J. King
7d95e8fc09 Split Fever user management from protocol handler 2019-03-25 08:31:49 -04:00
J. King
1ce95ef4d9 Add means of testing Fever authentication 2019-03-24 15:05:21 -04:00
J. King
e45ba3f0ea Add means of unsetting a password in the backend 2019-03-24 14:42:23 -04:00
J. King
07122b524a Rename Fever user functions for consistency 2019-03-21 10:19:30 -04:00
J. King
9ebaa20633 Tests for Fever password creation and removal 2019-03-20 22:24:35 -04:00
J. King
9168155244 Add method to unset a Fever password 2019-03-20 10:42:04 -04:00
J. King
1e2d595992 Full set of authentication tests for Fever 2019-03-19 23:37:08 -04:00
J. King
d59223bbcb First authentication test for Fever 2019-03-18 22:49:47 -04:00
J. King
b02c910b1e Make token creation check that the user exists 2019-03-10 15:54:43 -04:00
J. King
3aa2b62d02 Basic Fever skeleton
Authentication should work, but not tests have been written yet
2019-03-09 22:44:59 -05:00
J. King
38bdde1167 Add access tokens to the db, with relevant code
Tokens are similar to sessions in that they stand in for users, but the
protocol handlers will manage them; Fever login hashes are the
originating use case for them. These must never expire, for example,
and we need to specify their values.

This commit also performs a bit of database clean-up
2019-03-09 16:23:56 -05:00
J. King
5de1844f6d Add article selection by tag 2019-03-07 11:07:22 -05:00