J. King
dab4cb21e6
Geekttrss seems to work
1 week ago
J. King
d836d6a243
Add more clients to the untested list
1 week ago
J. King
50b2ca4500
Document tokens and metadata in the manual
1 week ago
J. King
9c0a3b7a57
Fix typo
2 weeks ago
J. King
3ba82b7c6d
Fix CLI bootstrap problem
2 weeks ago
J. King
fa6d641634
Implement CLI for tokens
2 weeks ago
J. King
3795b1ccd8
Simplify CLI command processing
2 weeks ago
J. King
e8ed716ae6
Fix errors in CLI documentation
2 weeks ago
J. King
97d1de46f8
Fill in upgrade notes
2 weeks ago
J. King
68422390da
Implement CLI for user metadata
2 weeks ago
J. King
b7c7915a65
Enforce admin rquirements in NCNv1
2 weeks ago
J. King
a760bf2ded
Implement "t" and "f" booleans in TT-RSS
2 weeks ago
J. King
9ad4a37ddf
Tests and fixes for Miniflux with PDO
2 weeks ago
J. King
687995c497
More potential Miniflux Web clints
2 weeks ago
J. King
29761d767a
Update documentation
2 weeks ago
J. King
dad74c2616
Implement Fever icons
2 weeks ago
J. King
90034ac1f8
Style fixes
2 weeks ago
J. King
211cea648e
Implement TT-RSS API level 15
2 weeks ago
J. King
f2e5d567ec
Update sample Web server configuration
2 weeks ago
J. King
eae0ba4b68
Tests fortoken operations
2 weeks ago
J. King
9cc779a717
Import/export tests
2 weeks ago
J. King
37fd2ad4e9
Tests for new exception features
2 weeks ago
J. King
6c2de89f3e
Revert copy-paste corruption
2 weeks ago
J. King
54a6fcc0d6
Consolidate object factoriesinto one place
2 weeks ago
J. King
a0d563e468
Update dependencies
2 weeks ago
J. King
b4ae988b79
Prototype OPML handling
2 weeks ago
J. King
681654f249
Documentation update
2 weeks ago
J. King
dd29ef6c1b
Add feed refreshing stubs
2 weeks ago
J. King
ab1cf7447b
Implement article marking
2 weeks ago
J. King
334a585cb8
Implement single-entry querying
2 weeks ago
J. King
a7d05a7717
Feed- and category-specific entry list routes
2 weeks ago
J. King
00ad1cc5b9
Last tests for article querying
2 weeks ago
J. King
d4a6909cf6
Positional article queries tests
3 weeks ago
J. King
e42e25d333
More article query tests
3 weeks ago
J. King
f7b3a473a9
Clarify ordering syntax rationale
3 weeks ago
J. King
af51377fe9
First set of article query tests
3 weeks ago
J. King
23ca6bb77b
Count articles without offset or limit
3 weeks ago
J. King
0e7abfa8f9
Largely complete article querying
Tests to come
3 weeks ago
J. King
a43f8797c5
Add ability to sort by folder ID or name
3 weeks ago
J. King
ed27e0aaaa
Sort nulls consistently
PostgreSQL normally sorts nulls after everything else in ascending order
and vice versa; we reverse this, to match SQLIte and MySQL
3 weeks ago
J. King
9d7ada7f59
Partial implementation of article sorting
3 weeks ago
J. King
007183450a
Context and column list for article queries
Sorting and transformation still need to be figured out
3 weeks ago
J. King
197cbba77d
Document article column definitions
3 weeks ago
J. King
ddbcb598e8
Match more closely Miniflux query string behaviour
- The starred key is a simople boolean whose value is immaterial
- Blank values are honoured for keys other than starred and status
3 weeks ago
J. King
bb89083444
Perform strict validation of query parameters
This is in fact stricter than Miniflux, which ignores duplicate values
and does not validate anything other than the string enumerations
3 weeks ago
J. King
1e924bed83
Partial query string normalization
3 weeks ago
J. King
3b2190ca10
Include folder names directly in subscription list
3 weeks ago
J. King
ad094f5217
Don't return icons without types at all
4 weeks ago
J. King
cd5f13f4b9
Tests for icon querying
4 weeks ago
J. King
76f1cc8e91
Adjust users of subscriptionIcon
4 weeks ago
J. King
cc2672fb0a
Improve icon fetching interface
4 weeks ago
J. King
1eea3b3a4c
Fix feed update test
4 weeks ago
J. King
8e749bb73c
Report 404 on icons for absence of data
This is significant as upgraded databases have icon IDs, but no data
1 month ago
J. King
bdf9c0e9d2
Prototype feed icon querying
1 month ago
J. King
9197a8d08b
Implement feed deletion
1 month ago
J. King
8eebb75b18
Implement feed editing
1 month ago
J. King
5a8a044a92
Implement single-feed querying
1 month ago
J. King
a646ad77b7
Use a read transaction when computing filter rules
1 month ago
J. King
cca4b205e4
Correct error output of getCategoryFeeds
1 month ago
J. King
a34edcb0d1
Last tests for feed creation
1 month ago
J. King
7893b5f59d
More feed adding tests
1 month ago
J. King
36cc4928b9
Test feed fetching errors for Miniflux
1 month ago
J. King
727864f401
Implement feed listing by category
Also modify user list to reflect changes in Miniflux 2.0.27.
1 month ago
J. King
4972c79e32
Allow simpler feed exception creation
1 month ago
J. King
6936f365e4
Add calls coming in next version of Miniflux
1 month ago
J. King
fd25be5c27
Basic tests for feed creation
1 month ago
J. King
e7b2f54183
Prototype feed creation
1 month ago
J. King
14d2d19ae1
Tests for Miniflux feed listing
1 month ago
J. King
2cf4bf0d4d
Prototype Miniflux feed listing
1 month ago
J. King
86897af0b3
Add ability to enable scraper
Also transfer any existing scraper booleans on database upgrade. It was
previously possible to enable scraping manually by editing the database,
and these settings will be honoured.
1 month ago
J. King
7897585d98
Test scraping
Text search should also match scraped content when appropriate
1 month ago
J. King
76f70119fd
More work on scraping
1 month ago
J. King
4cb23dd198
Partial implementation of proper content scraping
1 month ago
J. King
e74b44cc39
Change favicon to icon_url and add icon_id
1 month ago
J. King
2536c9fe03
Last tests for article filters
1 month ago
J. King
9f2b8d4f83
Imprement setting of filter rules
1 month ago
J. King
618fd67f80
Set marks for filtered articles on feed refresh
1 month ago
J. King
7a6186f2d7
Update Miniflux documentation
1 month ago
J. King
097362881b
Tests for filtering during feed parsing
1 month ago
J. King
a4146ec129
Start on test for filtering during feed parsing
1 month ago
J. King
9e29235d87
Don't fetch from example.com during tests
1 month ago
J. King
549c7bdc72
Style fixes
1 month ago
J. King
4f34b4ff29
Rule refactoring
- The Database class is now responsible for preparing rules
- Rules are now returned in an array keyed by user
- Empty strings are now passed through during rule preparation
1 month ago
J. King
c1eff8479c
Simplify configuration property caching
1 month ago
J. King
6dba8aa66b
Fixes for rules
- Whitespace is now collapsed before evaluating rules
- Feed tests are fixed to retrieve a dumy set of rules
- Rule evaluation during feed parsing also filled out
1 month ago
J. King
461e256052
Work around MySQL syntax weirdness
Also improve test for token translation to actually test that the
translated tokens are accepted by the database system
1 month ago
J. King
47ae65b9d3
Function to apply filter rules
1 month ago
J. King
b12f87e231
Support Xdebug 3.x for coverage
1 month ago
J. King
ffc5579a7a
Partial implementation of filter rule handling
1 month ago
J. King
7e17332714
Implement marking all as read for Miniflux
1 month ago
J. King
31f0539dc0
Implement Miniflux user deletion
1 month ago
J. King
bf95b134bd
Fix up error codes for category changes
1 month ago
J. King
197922f92f
Implement Miniflux user creation
1 month ago
J. King
ee0c3c9449
Tests and fixes for user modification
1 month ago
J. King
cc648e1c3a
Update tooling
1 month ago
J. King
67f577d573
Bump emulated Miniflux version
1 month ago
J. King
f58005640a
Prototype user modification
1 month ago
J. King
2946d950f2
Forbid more user names
- Control characters are now forbidden
- Controls and colons are now also forbidden when renaming
1 month ago
J. King
405f3af257
Invalidate sessions and Fever passwords when renaming users
2 months ago
J. King
5ec04d33c6
Add backend functionality to rename users
2 months ago
J. King
88cf3c6dae
Test filter rule retrieval
2 months ago
J. King
d66cf32c1f
Style fixes
2 months ago
J. King
a81760e39d
Aggressivly clean up hidden articles
Notably, starred articles are cleaned up if hidden
2 months ago
J. King
ade0402210
Adjust TT-RSS to ignore hidden items
2 months ago
J. King
f33359f3e3
Move some Miniflux features to abstract handler
2 months ago
J. King
b7ce6f5c79
Adjust Fever to ignore hidden items
2 months ago
J. King
b2fae336e8
Adjust Nextcloud News to ignore hidden items
2 months ago
J. King
f0bfe1fdff
Simplify editionLatest Database method
Also adjust label querying to take hidden marks into account
2 months ago
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
2 months ago
J. King
97010d8822
Tests for marking articles hidden
2 months ago
J. King
86c4a30744
Adjust articleStarred function to discount hidden
2 months ago
J. King
ffc98daff3
Adjust article marking tests to account for new hidden mark
2 months ago
J. King
8ae3740d5f
Implement querying articles by hidden mark
2 months ago
J. King
d5cd5b6a17
Implement hidden marks
Tests are still needed
2 months ago
J. King
c43d0dcae3
Groundwork for filtering rules
2 months ago
J. King
95a2018e75
Implement caategory marking as read
2 months ago
J. King
5124f76b70
Implementcategory deletion
2 months ago
J. King
eb079166de
Tests for category renaming
2 months ago
J. King
3ebb46f48e
Some work on categories
2 months ago
J. King
2e6c5d2ad2
Query Miniflux categories
2 months ago
J. King
4b73698381
More user query tests
2 months ago
J. King
ebdfad535c
More Miniflux user tests
Also added user lookup functionality
2 months ago
J. King
7c841b5fc2
Test for listing users
2 months ago
J. King
5c83655541
Add modification timestamp to user metadata
2 months ago
J. King
d85988f09d
Prototype Miniflux user querying
2 months ago
J. King
2eedf7d38c
Finally fix MySQL
2 months ago
J. King
e9d449a8ba
Fix user manager and tests
2 months ago
J. King
ce68566fcb
Hopefully fix MySQL
2 months ago
J. King
a431243421
Fixes for MySQL and PostgreSQL
2 months ago
J. King
fcf1260dab
Adjust database portion of user property manager
2 months ago
J. King
978929aabd
WIP redesign of user properties
2 months ago
J. King
0f3e0411f0
Document some differences frrom Miniflux
2 months ago
J. King
94154d4354
Implement Miniflux feed discovery
2 months ago
J. King
669e17a1f6
Add ability to discover multiple feeds
2 months ago
J. King
2a0d6e6599
OPTIONS tests
2 months ago
J. King
7fa5523a7d
Simplify handling of invalid paths and methods
2 months ago
J. King
def07bb1ad
Tests for Miniflux authentication
This appears to match Miniflux's behaviour
2 months ago
J. King
8c059773bb
Update tooling
2 months ago
J. King
90117b5cd7
Fix Miniflux strip value
3 months ago
J. King
06dee77bac
First tests for Miniflux
3 months ago
J. King
f6cd2b87ce
Port token data from Microsub branch
3 months ago
J. King
d4bcdcdadd
Fix TTRSS coverage
3 months ago
J. King
d3ebb1bd56
Last set of tests for user management. Fixes #180
3 months ago
J. King
e16df90bae
Style fixes
3 months ago
J. King
180b4ecc9b
More user tests
3 months ago
J. King
27d9c046d5
More work on user management
3 months ago
J. King
7f2117adaa
Differentiate between duplicate/missing users and other failure modes
3 months ago
J. King
351f972512
Tests for internal user driver
3 months ago
J. King
4baf5fa2f9
Tests for new user functionality in Database
3 months ago
J. King
dde9d7a28a
Refinements to user manager
A greater effort is made to keep the internal database synchronized
3 months ago
J. King
eb2fe522bf
Last bits of the new user metadata handling
3 months ago
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
3 months ago
J. King
771f79323c
Strip out remnants of the authorizer
3 months ago
J. King
576d7e16a8
Fix handling of bytea-typed nulls
3 months ago
J. King
1b1789988a
More client compatibility updates
3 months ago
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
3 months ago
J. King
ee050e505c
Add more Android clients to manual
3 months ago
J. King
9fb185a8e2
Add TT-RSS Web client to manual
3 months ago
J. King
b62c11a43e
Lasts tests for icon cache; fixes #177
3 months ago
J. King
1d3725341a
Fix detection of Xdebug for coverage
3 months ago
J. King
311910795a
More tests for icon cache
3 months ago
J. King
3d3c20de5c
Don't anticipate API features
3 months ago
J. King
4d532cba3f
Initial Miniflux documentation
3 months ago
J. King
e861cca53d
Integrate schema change necessary for microsub
3 months ago
J. King
b24c469dca
Update changelog
3 months ago
J. King
8f739cec85
Excluse empty-string URLs from icons table
3 months ago
J. King
424b14d2b4
Clean up use of subscriptionFavicon
3 months ago
J. King
dd1a80f279
Consolidate subscription icon querying
Users and tests still need adjusting
3 months ago
J. King
4fc208d940
More consistent icon API
3 months ago
J. King
c3a57ca68b
Tests for icon cache population
3 months ago
J. King
bd650765e1
Generalize icon fetching tests
3 months ago
J. King
50fd127ac4
Test for icon fetching
3 months ago
J. King
7c40c81fb3
Add icons to the database upon feed update
3 months ago
J. King
c25782f98c
Partial icon handling skeleton
3 months ago
J. King
af675479b8
Remove excess whitespace
3 months ago
J. King
2438f35f3d
Add icon cache to database
Feed updating has not yet been adapted to store
icon data (nor their URLs anymore)
3 months ago
J. King
5e60da00a9
Merge branch 'master' into miniflux
3 months ago
J. King
b5f959aabf
Fix blob tests
3 months ago
J. King
41bcffd6fb
Correctly query PostgreSQL byte arrays
This required different workarouynd for the native and PDO interfaces
3 months ago
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
3 months ago
J. King
c92bb12a11
Prototype Miniflux dispatcher
3 months ago
J. King
905f8938e2
Typo
3 months ago
J. King
8ad7fc81a8
Initially mapping out of Miniflux API
3 months ago
J. King
16d2e01668
New schema for PostgreSQL and MySQL
3 months ago
J. King
4db1b95cf4
Add numeric IDs and other Miniflux data to SQLite schema
3 months ago
J. King
3ac010d5b6
Fix tests in absence of database extensions
3 months ago
J. King
b58a326461
Prepare for schema changes
3 months ago
J. King
e9682bc601
Correct typos
4 months ago
J. King
5a09dcb3ed
Update changelog
4 months ago
J. King
e3ebd89aa8
Add NewsFlash to supported clients
4 months ago
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
4 months ago
J. King
7ef02e1d65
Revert wishful thinking
4 months ago
J. King
3d909da1e5
Update iOS/macOS client URLs
4 months ago
J. King
6520ed38fb
Update dependencies
4 months ago
J. King
9b11001402
Fix sample Nginx configuration
4 months ago
J. King
2e0ed5e923
Add reference to MariaDB missing features
5 months ago
J. King
afbf3be031
Use 'union all' instead of 'union' in queries
5 months ago
J. King
6ee7ca4aa4
Update PicoFeed to latest release version
5 months ago
J. King
9bc1373998
Version bump
5 months ago
J. King
0f3ada598e
Work around Picofeed bug
A fix is pending merging upstream
5 months ago
J. King
d29917caf8
Update Yarn again
5 months ago
J. King
e75d15e552
Update dependencies
5 months ago
J. King
77aef9c995
Yarn update
7 months ago
J. King
ee549cdee7
Appease GitHub (yet again)
8 months ago
J. King
2620314583
GitHub should now be kept in sync at all times
10 months ago
J. King
20fe65b67e
Make changelog point to manual instead of readme
10 months ago
J. King
66a4f71ef3
Minor simplification
10 months ago
J. King
5f35a680e3
Appease GitHub (again)
11 months ago
J. King
c1e27684d4
Appease GitHub
11 months ago
J. King
1268e5fd73
Finally fix DST error in tests
11 months ago
J. King
7777ff962f
Group more style rules under PSR-12
1 year ago
J. King
e60f7ea03f
Add class constant visibility
1 year ago
J. King
bc53a2d24a
Style fixes
1 year ago
J. King
a7f69c845f
Use a more specific house style
1 year ago
J. King
3aa17ee70f
Whitespace
1 year ago
J. King
e8091fa740
Speed up coverage slightly.
1 year ago
J. King
9696d55b31
Prepare ugfix release
1 year ago
J. King
670fb61299
Merge branch 'php7.1'
1 year ago
J. King
1d514e4739
Remove forked picofeed repository
1 year ago
J. King
cf4a9e6436
Use archived copy of MySQL critique
1 year ago
J. King
39a1895867
Refine and cover new Guzzle error handling
1 year ago
J. King
cb41912f36
Merge branch 'master' into php7.1
1 year ago
J. King
d7e10e40ee
Prefer PCOV for code coverage
1 year ago
J. King
04878bda9d
Documentation changes
1 year ago
J. King
06d3af0ac3
Fix remaining Picofeed-related test failures
1 year ago
J. King
9cb7cf485d
Style fix
1 year ago
J. King
e29c573210
Update tools
1 year ago
J. King
49d003082d
Fix problems with nicolus/picofeed
This involved multiple fixes to Picofeed itself, not all of which have
been merged upstream yet
1 year ago
J. King
e583ffea67
Start on integrating well-maintained picofeed fork
Picofeed configuration does not seem to get passed to Guzzle.
1 year ago
J. King
b5f118e8cb
Cleanup
1 year ago
J. King
bbace7a0ac
Use void and nullable return types where practical
1 year ago
J. King
5838af892f
Replace references to Zend with Laminas
1 year ago
J. King
0565553d4a
Change PHP requirement in manual
1 year ago
J. King
9e1087914c
Change tool dependencies to "dev" type
1 year ago
J. King
2fa2799b64
Require PHP 7.1 in Composer
In reality we have unwittingly required PHP 7.1 for some time
1 year ago
J. King
14ef33879b
Re-arrange database tests by engine
1 year ago
J. King
c4ee7254cd
Refactor some tests to use data providers
1 year ago
J. King
fb2602fe04
Don't load actual configuration during CLI tests
1 year ago
J. King
38501ce4f2
Add Newsie to documented clients
1 year ago
J. King
cca56b09fc
Order failing tests first
This only seems to work under some conditions, but it's a start.
1 year ago
J. King
4421a9e510
Offload coveraage whitelisting to xdebug
1 year ago
J. King
524b1ca140
Merge branch 'master' into phpunit-8
1 year ago
J. King
3ee89bf669
Version bump
1 year ago
J. King
c9d4540616
Merge branch 'mysql'
1 year ago
J. King
3cb8dfafe2
Change download URL in manual
1 year ago
J. King
bbe70b6abc
Corect CamelCase references to Nextcloud
1 year ago
J. King
794fb506a5
Widen URL field
1 year ago
J. King
484510cf8c
Expand text fields other than user id and feed URL
1 year ago
J. King
e3144ecbf5
Update tool dependencies
1 year ago
J. King
5df89009e6
Merge branch 'master' of https://code.mensbeam.com/MensBeam/arsse
1 year ago
J. King
15de8c2320
Fix PostgreSQL connection error message
1 year ago
J. King
f4b08170bf
Fix MySQL schema
1 year ago
J. King
568e6e4660
Delete dangling MySQL records when updating
MySQL seems to reject queries involving arsse_folders.parent and
arsse_subscription.folder, though they appear to be valid. More testing
is required.
1 year ago
J. King
737dd9f6b8
Fix foreign keys in MySQL
1 year ago
J. King
c1a3e64bfa
Fix new tests to work with PHPUnit 8
1 year ago
J. King
de424e42f6
Merge branch 'master' into phpunit-8
1 year ago
J. King
c6b79d49ba
Documentation corrections
1 year ago
J. King
5ede4cbdb2
Clarify coverage requirements
1 year ago
J. King
bbc96e4f37
Remove reference to obsolete CSS-only manual task
1 year ago
J. King
733f0d7fd5
Fix typo
1 year ago
J. King
0e5b242c67
Version bump
1 year ago
J. King
c59cdfef76
Whitespace fixes
1 year ago
J. King
71c7cd8fb1
Full coverage! Fixes #66
1 year ago
J. King
728eecfbb5
Additional service tests
1 year ago
J. King
bad86cedb3
Tests for bootstrapper
1 year ago
J. King
7ac4fb4715
Clarify PDO workaround for SQLite
1 year ago
J. King
3ef1177f06
Remove driver lists
1 year ago
J. King
b6dd8ab20d
Improvements to and proper tests for query builder
1 year ago
J. King
c706a76057
Simplify array flattening
1 year ago
J. King
c3643fba10
Tests for URL::absolute()
1 year ago
J. King
64c3ec3571
Coverage fixes and OPML bugfix
1 year ago
J. King
17a2fa96f8
Upgrade to PHPUnit 8
1 year ago
J. King
b8b8a6aa70
Also adjust test for MySQL connection failure
1 year ago
J. King
cb1039326c
Fix PostgreSQL tests when using "trust" authentication
1 year ago
J. King
cf5c08459f
Remove unused Daux libs
1 year ago
J. King
5d70f9fc11
Update dependencies
1 year ago
J. King
9461cefc35
Upgrade Daux to 0.11
1 year ago
J. King
1809fb254e
Deal with trailing whitespace in media types
1 year ago
J. King
4f5a8e3180
Make media type checking more robust
1 year ago
J. King
5f993187ea
Be explicit with HTTP challenge character encoding
1 year ago
J. King
c5337b37b4
Consolidate creation of synthetic server requests
1 year ago
J. King
67bde97e0c
Update changelog
1 year ago
J. King
a143c86136
Set up test better
1 year ago
J. King
3da884dfbc
Don't embed ito SQL strings with question marks
Fixes #175
1 year ago
J. King
be5ad50f54
Tests for text search clause generator
1 year ago
J. King
fb6e2babb9
Change some conditions to asserts
1 year ago
J. King
d0f780d4e6
Unit tests for IN() clause generator
1 year ago
J. King
3aac583c00
Add Microsub to possible future APIs
1 year ago
J. King
5620070106
Update changelog
1 year ago
J. King
b0517ddda1
Merge branch 'urlnorm'
1 year ago
J. King
c9e86e71c4
More style fixes
1 year ago
J. King
53aa7a4d0d
Style fixes
1 year ago
J. King
d9c769d40e
Remove Target class
1 year ago
J. King
6235cb0be6
Fix errors in last commit
1 year ago
J. King
29667464a1
Remove unnecessary namespace imports
1 year ago
J. King
0eb0fbcc0d
Also normalize relative URLs
1 year ago
J. King
3439895779
Normalize URLs before establishing feed uniqueness
1 year ago
J. King
a175561574
Documentation corrections
1 year ago
J. King
bd71ddb929
Percent-encoding and IPv6 normalization
1 year ago
J. King
03262e7f44
Typo fix
1 year ago
J. King
f159965b56
Add more cautious about using MySQL
1 year ago
J. King
3f3a571fc1
Go back to mainline Daux
1 year ago
J. King
12fe786a2f
Cleanup
1 year ago
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
1 year ago
J. King
dc750acf07
Handle ports, paths, and credentials correctly
1 year ago
J. King
13c27c2536
Start on URL normalizer
1 year ago
J. King
f688155ca4
Note manual in changelog
1 year ago
J. King
e5696fdf44
Merge branch 'manual'
1 year ago
J. King
bab4174a17
Move database driver helps out of test cases
1 year ago
J. King
fa3cfcd589
Correct error in stand-alone Nginx sample
1 year ago
J. King
5bf791709b
Add an index for the "Getting Started" section; other tweaks
1 year ago
J. King
3ea2eeb817
Clarify the list of requirements is informational
1 year ago
J. King
d5af499a6e
Typo
1 year ago
J. King
1ce54372b7
Add a mission statement of sorts
1 year ago
J. King
e122f97036
Standardize section capitalization
This does not (yet) apply to files, but may later
1 year ago
J. King
d7f1963d7f
Move untested clients to an untested section
1 year ago
J. King
2c1dcdcd6d
Update Daux theme using custom changes for now
1 year ago
Dustin Wilson
a24bfa0683
Code blocks are now properly themed
1 year ago
J. King
f102992d20
Typos
1 year ago
J. King
a563d174d5
Tooling documentation
1 year ago
J. King
3ff93113fa
Documentation on repo structure
1 year ago
J. King
934c762cb8
Avoid problematic use of realpath
1 year ago
J. King
06b9049515
Update Daux and manual theme
1 year ago
J. King
ca49785f6f
Anticipate the next release of Daux
1 year ago
J. King
2a19777537
Update Daux
1 year ago
J. King
294f3648a2
Fix JS bug in Daux
See https://github.com/dauxio/daux.io/pull/122 for patch to upstream
1 year ago
J. King
440ea11e27
Clarify highlight.js download process
1 year ago
Dustin Wilson
705e506bfc
Manual theme design iteration
1 year ago
Dustin Wilson
edf92b603b
Preliminary work on manual theme design
1 year ago
J. King
16530b9a66
Probably test for feed redirection bug
1 year ago
J. King
cfef75ccba
Don't update the feed URL when fetching
This can result in some unpredictable constraint violations
1 year ago
J. King
265f3a1b6d
Correct error in Nginx example
1 year ago
J. King
262980d564
Process color() functions in stylesheet
1 year ago
J. King
b8b559b0f8
Correct spuriously failing tests
1 year ago
J. King
150e301378
Fix manual cleanup
1 year ago
J. King
ba05d53626
Rededicate the README file as a programmer's guide
1 year ago
J. King
987ee631ab
Add manual to packaging
Excludes JS-related files from archive
Also default to "HEAD" instead of "head": Unix is case-sensitive
1 year ago
J. King
f360c64327
Slight fixes to Robo and PHPUnit
1 year ago
J. King
246263fa04
Fill out general info
1 year ago
J. King
e7e4c823e4
Clean up theme files after generation
1 year ago
J. King
c334390db1
Robo task for rebuilding stylesheet only
1 year ago
J. King
6f8182b940
Working theme builder
1 year ago
J. King
b3566f8d48
Use Robo to extract zip archive
1 year ago
J. King
b514ac983b
Rely on Zip extension for extracting highlight.js
1 year ago
J. King
7dee5498d8
Procedure for downloading highlight.js
Currently slightly broken due to a bug in a dependency
1 year ago
J. King
bacce0461a
Fix JS dependency graph
1 year ago
J. King
8bbcae4aa4
First attempt at a custom Daux theme
1 year ago
J. King
c935091d99
Fix bad link
1 year ago
J. King
3507a74ab0
Upgrade notes
1 year ago
J. King
67cdf52d3a
Typo
1 year ago
J. King
899f28dda5
Documentation for service and cron
1 year ago
J. King
1ef669a464
Documentation for user management and OPML
1 year ago
J. King
daa3be90c6
Grammar fix
1 year ago
J. King
91b9bf808d
Correct outdated requirements
1 year ago
J. King
7f9f11bbf4
Consolidate configuration samples
1 year ago
J. King
e76871c567
Changelog so far
1 year ago
J. King
d9d9394c97
Information on the configuration file
1 year ago
J. King
5402a1688b
Configuration sample for Apache
1 year ago
J. King
87cd879d8f
More Fever details
1 year ago
J. King
580342006e
Sample configuration for Nginx
1 year ago
J. King
6705ea1585
Re-organize sections
1 year ago
J. King
4fd060f001
Various documentation tweaks
- Place protocol infoboxes above intro text
- Fill out Fever text from README
- Fix MySQL version
- Add note that Percona Server should work
1 year ago
J. King
7d82725a03
Add Liferea to clients list
1 year ago
J. King
a7ae38589b
Database documentation corrections
1 year ago
J. King
05fe34fec2
Sdd note about cron
1 year ago
J. King
4837aa2d3d
Minor enhancements to instructions
1 year ago
J. King
5897562685
Installation instructions
1 year ago
J. King
f2b456d709
Start on installation page
1 year ago
J. King
96342eccb1
Tweaks
1 year ago
J. King
6bb382e7c4
Documentation for databases
1 year ago
J. King
f0c99edd22
Various corrections
1 year ago
J. King
8a184ae99d
Move inline style rules out to a stylesheet
1 year ago
J. King
eb120b4629
Fetch in three hours if caching is via etag
1 year ago
J. King
137be8bde2
Fix whitespace
1 year ago
J. King
45a43488ee
Increase compatibility with misbehaving Fever clients
1 year ago
J. King
db5bcb78a3
Fix lookup of evergreen tokens
1 year ago
J. King
85fa1e48ab
Add Fever to list of protocols
1 year ago
J. King
f50a78eafa
Add basic Fever data; expand client list
Most new clients yet to be tested, but Newsout works fine.
1 year ago
J. King
d6220c1bbb
Merge branch 'master' into manual
1 year ago
J. King
77b719660b
Date 0.8.0 release
1 year ago
J. King
9f7e1c915c
Start after PostgreSQL and MySQL when relevant
1 year ago
J. King
4282ba1c26
Version bump
1 year ago
J. King
f7240301e4
Basic database maintenance
Closes #169
1 year ago
J. King
cef31907d3
Cron functionality is not new
1 year ago
J. King
422eaf9605
Invalidate sessions on password change; closes #170
1 year ago
J. King
be92d2f052
Documentation update; fixes #168
1 year ago
J. King
faf524c54f
CLI test for import
Fixes #35
1 year ago
J. King
13b76dea0c
Tests for generic importing
1 year ago
J. King
0e95892aea
Do not necessarily ignore blank tags in import
We still make them practically impossible in OPML imports, however
1 year ago
J. King
2aa16f3405
Merge branch 'fever' into opml
1 year ago
J. King
56bb460820
Test answering OPTIONS requests in Fever
1 year ago
J. King
61b942df70
Defer Fever favicons to a future release
1 year ago
J. King
0480465e7e
Test Fever XML responses
Fixes #158
1 year ago
J. King
8f9678b8a4
Tests for baasic import errors
1 year ago
J. King
103755cfb4
Test fixture for import tests
1 year ago
J. King
30cede9ea4
Make OPML parser protected
1 year ago
J. King
61fe673e20
Skeleton for import tests
1 year ago
J. King
cb71a9efd7
Make database connections for testing configurable
1 year ago
J. King
2628ff7bf4
Make database test helpers generic
1 year ago
J. King
12ef3e649f
Mock AbstractImportExport directly
1 year ago
J. King
7046ce163c
More format-neutral code out of OPML class
1 year ago
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.
1 year ago
J. King
62fe3a7298
Fix case of vfsstream tool dependency
1 year ago
J. King
54aaab50b5
Update tools
1 year ago
J. King
c1e13e6199
Tests for file imports
1 year ago
J. King
be5a1fb94f
Mixed content test for OPML
1 year ago
J. King
0f7d49c21e
More OPML tests and fixes
1 year ago
J. King
644750487c
Command line documentation and fixes
1 year ago
J. King
a30114807f
Tests and fixed for OPML feed parsing
1 year ago
J. King
cdd9f4dfbe
More OPML parser tests
1 year ago
J. King
5ba009cfed
First set of OPML parser tests
1 year ago
J. King
6ef13d0880
Style fixes
1 year ago
J. King
b9821d925a
CLI for OPML import, and proper exceptions
1 year ago
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
1 year ago
J. King
3899ee6b4e
Allow for replacing label and tag associations
This supplements adding and removing
1 year ago
J. King
2af223753d
Function to add a feed without a subscription
1 year ago
J. King
ceecd58393
OPML parsing comments and minr fixes
1 year ago
J. King
825c286e5b
Prototype OPML import parser
1 year ago
J. King
2d18be959c
Tests for undoing read marks
1 year ago
J. King
daeff63239
Test basic Fever responses
1 year ago
J. King
c55a960b85
Slight cleanup
1 year ago
J. King
efd8492573
Tests for various invalid requests
1 year ago
J. King
8532c581a8
Handle OPTIONS requests in Fever
1 year ago
J. King
afb95e53b0
Initial implementation of read-undo
1 year ago
J. King
52bc5fbda6
Tests for simple marking
1 year ago
J. King
be4f3b0657
Merge branch 'master' into fever
1 year ago
J. King
61abf7ee7c
Upgrade to Diactoros 2.x
1 year ago
J. King
15915a4393
Initial implementation of simple marks
1 year ago
J. King
c783ec4357
Prototype XML output for Fever
1 year ago
J. King
98fc3f4940
Test for hot links
1 year ago
J. King
e8f4732b1f
Tests for saved and unread item ID lists
1 year ago
J. King
4ce371ece6
Tests and fixes for Fever item listing
1 year ago
J. King
e3d2215920
Style fixes
1 year ago
J. King
0ef606aa03
Return string list of item IDs
1 year ago
J. King
0752e9cf3d
Implement Fever sync
1 year ago
J. King
982f09c9aa
Upgrade notes
1 year ago
J. King
7c85e837df
Documentation update
1 year ago
J. King
c6d241e653
Implement Fever item list
1 year ago
J. King
12f23ddc16
Updated tests for arbitrary sorting
1 year ago
J. King
f72c85c9f6
Hopefully working but maybe broken custom sorting
1 year ago
J. King
156ce2d099
Fix Unix Robo script
1 year ago
J. King
4b133bddd6
Prototype arbitrary result ordering
1 year ago
J. King
74fc39fca0
Implement multi-folder context option
1 year ago
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.
1 year ago
J. King
98f6fca7e3
Enforce minimum array size (for now)
1 year ago
J. King
ef1b761f95
Implement most multiple-item context options
Selecting multiple folder trees will require further effort
1 year ago
J. King
ba32ad2f17
Add context options for multiple tags, labels, etc
1 year ago
J. King
77efaa7b41
CLI command for exporting OPML and sundry cleanup
1 year ago
J. King
deea294f8a
Add export-to-file wrapper for OPML
1 year ago
J. King
35e79d53a9
OPML export fixes, with tests
1 year ago
J. King
17fd909335
Add DOM extension as a direct dependency
Previously it was already a dependency of PicoFeed,
so there's effectively no change
1 year ago
J. King
d63edf541f
Insert folders into OPML before subscriptions
1 year ago
J. King
25b7b47e0a
Prototype OPML exporter
1 year ago
J. King
5d994f3dad
Normalize Fever input consistently
Two parameters are undocumented, but other implementations consistently
accept them from clients
1 year ago
J. King
de615c671a
Tests and fixed for Fever feeds and groups
1 year ago
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
1 year ago
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.
1 year ago
J. King
acb3973149
Prototype implementation of Fever groups and feeds
1 year ago
J. King
9c61f967e3
Correct CLI password clearing
1 year ago
J. King
54be5997d1
CLI tests for password changing and clearing
1 year ago
J. King
a7fe879174
Fix CLI auth test
1 year ago
J. King
bf3bf9589f
Merge branch 'master' into fever
1 year ago
J. King
1e83350dd0
Version bump
1 year ago
J. King
65f723c7d4
Fix missing reference to author in TT-RSS.
1 year ago
J. King
8020457820
Update dependencies
1 year ago
J. King
b8640d73f9
Update PHPUnit
1 year ago
J. King
22c2629078
Partial tests for new CLI features
1 year ago
J. King
f4d4feb69c
Suppress TLS error from mock server
1 year ago
J. King
7d95e8fc09
Split Fever user management from protocol handler
1 year ago
J. King
1ce95ef4d9
Add means of testing Fever authentication
1 year ago
J. King
e45ba3f0ea
Add means of unsetting a password in the backend
1 year ago
J. King
5bf0b67ec3
Increase file descriptor limit for Robo on Linux
1 year ago
J. King
94314f3e6d
Fix test errors when PostgreSQL or MySQL are not available
1 year ago
J. King
fe008d4343
A few more Fever authentication tests
1 year ago
J. King
3b28634447
Verify even in exceptional cases
1 year ago
J. King
07122b524a
Rename Fever user functions for consistency
1 year ago
J. King
5480b59d93
Unix Robo fixes
1 year ago
J. King
f51d20a863
Unix Robo fixes
1 year ago
J. King
9ebaa20633
Tests for Fever password creation and removal
1 year ago
J. King
9168155244
Add method to unset a Fever password
1 year ago
J. King
1e2d595992
Full set of authentication tests for Fever
1 year ago
J. King
d59223bbcb
First authentication test for Fever
1 year ago
J. King
c32fdf59cd
Add details on HTTP authentication in client list
1 year ago
J. King
86d52c8ff9
Fix test errors when PostgreSQL or MySQL are not available
1 year ago
J. King
b02c910b1e
Make token creation check that the user exists
1 year ago
J. King
3aa2b62d02
Basic Fever skeleton
Authentication should work, but not tests have been written yet
1 year ago
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
1 year ago
J. King
5de1844f6d
Add article selection by tag
2 years ago
J. King
e6f70527cf
Simplify tag summary
2 years ago
J. King
ff0c9a3a55
Add functionality for interacting with subscription tags
2 years ago
J. King
e2cba68c1b
Clarify various SQL queries
2 years ago
J. King
4945f8baa3
Clarify various SQL queries
2 years ago
J. King
6000d80b7b
Work around various SQLite-related problems
- WAL mode was not getting set properly
- Queries using the PDO driver could fail because PDO sucks
2 years ago
J. King
ed22090e49
Work around various SQLite-related problems
- WAL mode was not getting set properly
- Queries using the PDO driver could fail because PDO sucks
2 years ago
J. King
fb1bdbfb37
Database schema for subscription tags
2 years ago
J. King
5efef2c2d0
Console command to refresh all feeds once; fixes #147
2 years ago
J. King
44366f48bf
Remove arbitrary search term limits; fixes #150
2 years ago
J. King
21fdd66d37
Work around limit to SQL parameter placeholders for IN() clauses
Improves #150
LIKE-based matches also need to be similarly conservative
2 years ago
J. King
9ef4b4fdfb
Update TT-RSS documentation
2 years ago
J. King
6857e8ec1b
Merge branch 'search'
2 years ago
J. King
837f3c6dd6
Simplify SQL type handling
This is done in anticipation of dealing with SQL types in
places other than statements
2 years ago
J. King
3b8461b1ca
Add searching to TTRSS handler
2 years ago
J. King
85307bc90a
Add parser for TTRSS search strings
2 years ago
J. King
95de375e0b
Handle folder and label exclusion
Consequently the way label data are retrieved was completely overhauled
2 years ago
J. King
1e7724ec80
Filter out duplicates in set context options
2 years ago
J. King
677e33e518
Add text search exclusions
2 years ago
J. King
89f25d7b91
Fix coverage a little
2 years ago
J. King
0dc82f64d5
Allow ranges in exclusion contexts
2 years ago
J. King
70443a5264
Make parent re-association on context clone more restrictive
2 years ago
J. King
18d52ea402
Make exclusion contexts return their parent on change
2 years ago
J. King
b950ac066f
Restrict options in not-context and hopefully make it easier to use
2 years ago
J. King
14c02d56ac
Implement new context options other than not().
Context handling has also been re-organized to simplify later
implementation of the not() option
2 years ago
J. King
f4a74eec5d
Add all the other context options allowed by the TTRSS search syntax
2 years ago
J. King
2df7c25b66
Add ability to search note text
2 years ago
J. King
bc3182a961
Basic substring searching
2 years ago
J. King
570a9b171c
Revert fulltext detection in driver
2 years ago
J. King
ace94e3ef8
Fix context, and context tests
2 years ago
J. King
f9fde23708
Context changes to support basic text searching
2 years ago
J. King
ad8057a40b
Driver changes to support basic text searching
2 years ago
J. King
908e1fa310
API documentation for database driver interface
2 years ago
J. King
b55d0b374f
API documentation for database driver interface
2 years ago
J. King
75cba3ca10
Fix fragment identifiers in manual internal links
2 years ago
J. King
4316c700a8
Nginx should send the normalized URL to the application
2 years ago
J. King
a467115d59
Document TTRSS authentication modes better
The different modes can be likened to either multi-user or single-user
mode in original
2 years ago
J. King
17f3a2f059
Start on an API overview for the Database class
2 years ago
J. King
5885e14566
Add more compatible clients
2 years ago
J. King
b0d5458367
Clarify some prospective protocols
2 years ago
J. King
49cefaf5c8
Complete API documentation for the Database class
2 years ago
J. King
d3a385beef
Partial API documentation for the Database class
2 years ago
Dustin Wilson
ee8701320d
Added clients to documentation
2 years ago
J. King
b1282b6f6a
Upgrade to PHP 7.1 and PHPUnit 7.
2 years ago
J. King
e07253867c
Add served manual to Robo tasks
2 years ago
J. King
6ce1f68ed7
Document supported protocols
Also standardize some stylistic conventions
2 years ago
J. King
94ba58fa60
Use latest version of Daux
2 years ago
J. King
f5c5d49d97
Document SQL timeout changes
2 years ago
J. King
41daf4d176
Merge branch 'master' into manual
2 years ago
J. King
500851f161
Style fixes
2 years ago
J. King
91b6fdc696
Update changelog; bump version
2 years ago
J. King
8ea1df920a
Unify SQL timeouts
- Exec and lock timeouts now apply to MySQL
- Lock timeout now applies to PostgreSQL
- SQLite now uses a generic lock timeout setting which applies to all
2 years ago
J. King
bc8d443d84
Change PicoFeed dependency to a maintained variant
2 years ago
J. King
970731073d
Fetch timeout should be a float, not an integer
2 years ago
J. King
9120d3b3e3
Correctly escape shell command in subprocesds service driver
2 years ago
J. King
a5049ac646
Remove reference to PicoFeed in the User-Agent string
PicoFeed is dead, so there's no point.
2 years ago
J. King
37131d3775
Remove non-functional curl service driver for now
Its requiring extensive configuration to function makes me disinclined
to revive it, though it may nevertheless happen.
2 years ago
J. King
00ca726e12
Partial first draft of a manual, generated using Daux
2 years ago
J. King
4191f77094
Add daux as a dev dependency
2 years ago
J. King
05aadfe7c7
Use correct SQLite chema change procedure; version bump
2 years ago
J. King
37025bb49f
Documentation update
2 years ago
J. King
5335d331f7
Fix configuration exporting
2 years ago
J. King
6cd81e5656
Temporary list of macOS and iOS clients
2 years ago
J. King
5cd84c4ab4
Validate configuration parameters on import, and other changes
- Each parameter is checked for type and normalized
- Interval strings are converted to DateInterval objects
- Timeouts can be specified as interval strings
- Most intervals can be null to signify infinity
- Driver classes are checked that they implement the correct interface
- Short driver names may be used, and are used by default
- Helpful errors messages are printed in case of erroneous configuration
Exporting is currently broken; this will be fixed in an upcoming commit
2 years ago
J. King
b0643de21c
Add handling of DateInterval objects to ValueInfo
2 years ago
J. King
4670dfc849
Handle connection errors
2 years ago
J. King
e92bda5373
Various changes:
- Fix handling of binary data and long strings
- Simplify handling of socket connections
- Fix coverage
2 years ago
J. King
6ad3fb78a0
Documentation update
2 years ago
J. King
f3b0c791f8
Fix remaining tests
2 years ago
J. King
5d61ab0a57
Fixes for MySQL native interface
Three test failures remain, but these are minor and will be resolved
soon. Handling of binary data is also broken, but given that this works
fine with the PDO driver, there is presumably some correct method.
2 years ago
J. King
e501fbdc87
Remove the DatabaseInformation class in tests and use traits instead
2 years ago
J. King
81acba90dc
Use strict equality when comparing strings
2 years ago
J. King
c4a41255b0
Experimental native MySQL driver
No testing has been performed yet, but changes are extensive enough to
warrant a commit. Of particular note:
- SQL states are enumerated in a separate trait to reduce duplication
- PDOStatement is now an abstract class to avoid duplication of
engine-specific error handling
- Error handling has been cleaned up somewhat
2 years ago
J. King
3da773eef6
Grammar tweak
2 years ago
J. King
cefc9e5b4d
Don't use Canada mirror in links to PHP manual
2 years ago
J. King
7191dd5778
Documentation update
2 years ago
J. King
206cca35a9
Test tweaks
2 years ago
J. King
5a133b795a
Correctly munge MySQL queries
2 years ago
J. King
b4de56a64e
Work around MySQL silliness with same-table foreign keys
2 years ago
J. King
f0d30c2eee
Make munging of queries a generic feature
2 years ago
J. King
24df564045
Mostly successful MySQL database function tests
Two failures remain, at least one requiring query munging.
2 years ago
J. King
de07352fd0
Syntactic adjustments for MySQL
- "key", "read", and "rename" are reserved words
- CTEs in INSERTs must precede SELECT
- Empty sets are represented only by explicit null
2 years ago
J. King
393b4e95ad
Adjustments for MySQL 8
The prototype had been tested against MariaDB
2 years ago
J. King
4ef36643a4
Proof-of-concept PDO MySQL driver
- Configuration options were added
- Non-transactional locking was added to the savepoint handlers
- Tests were adjusted for MySQL's reserved words
2 years ago
J. King
316ba941a2
Hopefully complete MySQL schema
2 years ago
J. King
86c16d3cb3
Merge branch 'master' into mysql
2 years ago
J. King
8d9d249b88
Merge branch 'pg'
2 years ago
J. King
50f92625ef
Use PosgreSQL's existing general Unicode collation
All collations appear to be case-insensitive
2 years ago
J. King
17052d3232
Update PostgreSQL-related documentation
2 years ago
J. King
29e7c1f154
Fix coverage
2 years ago
J. King
2bebdd44cf
Implementation of native PostgreSQL interface
Changes to the Database class were required to avoid outputting booleans
2 years ago
J. King
b52dadf345
Make existing PostgreSQL tests explicitly PDO tests
2 years ago
J. King
161f5f08f6
Proactively support SQLite 3.25
2 years ago
J. King
28f803dd28
Handle PostgreSQL connection errors
2 years ago
J. King
0f48ce6f37
Use a Unicode collation for SQLite
2 years ago
J. King
a8e6487001
Draft documentation
2 years ago
J. King
73729a6be8
Simplify database cleanup between tests
2 years ago
J. King
8dbf237626
Group PostgreSQL tests as slow
2 years ago
J. King
35d46d2913
Use persistent connections with PostgreSQL
2 years ago
J. King
913cf71620
Fix incorrect annotations
2 years ago
J. King
f6966659a9
Use smarter coverage executer; properly suppress stderr during CLI tests
2 years ago
J. King
d9629be662
Use smarter coverage executer; properly suppress stderr during CLI tests
2 years ago
J. King
0513b606c2
Merge master
2 years ago
J. King
b9272ea2eb
Fix test failures in PHP 7.1
2 years ago
J. King
f7b9a2a6cf
Fixes for PHPUnit 7
2 years ago
J. King
089f666de6
Fix PDO insert ID errors in PHP 7.1
2 years ago
J. King
cf896121b2
Style fixes
2 years ago
J. King
f2245861e3
Restore complete Database coverage
Also suppress PostgreSQL database function tests from normal coverage,
and add a "coverage:full" task to run them if needed.
2 years ago
J. King
51755a2ce6
Retire article field groups
2 years ago
J. King
0129965bbd
Cover some missed code
2 years ago
J. King
22941f5ad1
Fix session tests
PostgreSQL now passes all tests. Connection and permission errors still
need to be accounted
for before the implementation is complete.
2 years ago
J. King
15301cd7dc
Fix cleanup tests in PostgreSQL
2 years ago
J. King
258be1d54e
Fix most PostgreSQL test failures
Reasons for failures included an unhandled error code, erroneous sorting
assumptions, and a broken computation of the next insert ID in tests
Five failures remain.
2 years ago
J. King
8fc31cfc40
Rewrite various queries to work in PostgreSQL
This involved changes to the driver interface as well as the database
schemata. The most significantly altered queries were for article
selection and marking, which relied upon unusual features of SQLite.
Overall query efficiency should not be adversely affected (it may have
even imprved) in the common case, while very rare cases (not presently
triggered by any REST handlers) require more queries.
One notable benefit of these changes is that functions which query
articles can now have complete control over which columns are returned.
This has not, however, been implemented yet: symbolic column groups are
still used for now.
Note that PostgreSQL still fails many tests, but the test suite runs to
completion. Note also that one line of the Database class is not
covered; later changes will eventually make it easier to cover the line
in question.
2 years ago
J. King
5c5a5a4886
Appease PostgreSQL's max() aggregate
2 years ago
J. King
527ecee393
Code coverage fixes
2 years ago
J. King
4a1c23ba45
Munge PostgreSQL queries instead of adding explicit casts
PDO does not adequately inform PostgreSQL of a parameter's type, so type
casts are required. Rather than adding these to each query manually, the
queries are instead processed to add type hints automatically.
Unfortunately the queries are processed rather naively; question-mark
characters in string constants, identifiers, regex patterns, or geometry
operators will break things spectacularly.
2 years ago
J. King
4c8d8f1a52
Provide PostgreSQL with an empty-set query for IN() clauses
Also satisfy PostgreSQL with some explicit casts
2 years ago
J. King
e68fcc0afa
Manipulate only those sequences in the current PostgreSQL schema
2 years ago
J. King
4a2efd9987
Correct the state of PostgreSQL serial sequence during tests
2 years ago
J. King
dd4f22e04e
Avoid use of reserved SQL word "user"
2 years ago
J. King
0f7baf4b51
Base MySQL schema
Note the columns "key" and "read" must be quoted in addition to "user".
2 years ago
J. King
10b228224d
Correct PostgreSQL data format and other tweaks
2 years ago
J. King
8dfedd30ef
Test PostgreSQL schema upgrade
This was in fact buggy due to the schema version check causing an error
2 years ago
J. King
d0db784b22
PostgreSQL schema tweak
2 years ago
J. King
93af381436
Test setting of schema name
2 years ago
J. King
1414f8979c
Fix savepoint handling and locking in PostgreSQL driver
2 years ago
J. King
8a49202036
Use common cleanup code for all database-related tests
2 years ago
J. King
925560d4ba
Cleanup
2 years ago
J. King
a75fad53ca
Adapt the rest of the test series
2 years ago
J. King
dccd4caede
Convert one database function test series (articles) to a common harness
Also revert the dropping of tables in the schema files. This was for the
convenience of tests, but the risk of data loss is too great
2 years ago
J. King
36c5984c47
Add drop statements to database schemata to simplify testing
2 years ago
J. King
7340d65c0e
Make data clearing in tests static
2 years ago
J. King
39110858b7
Move database function test series as first step in re-organization
2 years ago
J. King
8c20411359
Align statement tests with other database driver tests
2 years ago
J. King
f22e53fdc9
Align result tests with driver tests
2 years ago
J. King
aa1b65b5d4
Take a different tack on shared database tests
Tests for different drivers will have their own files, but all derive
from a common prototype test series where applicable, similar to the
existing arrangement for database function tests. However, the prototype
will reside with other test cases rather than in the library path. The
database function test series will hopefully be moved as well in time.
2 years ago
J. King
8103d37bc7
Dev dependency update
2 years ago
J. King
736a8c9d0c
Improved timeout handling for both SQlite and PostgreSQL
2 years ago
J. King
4e444fd86c
Generic database interface creation in tests
2 years ago
J. King
c0c4810662
Nominally complete PostgreSQL driver
Connection error handling as well as uprade error handling still need
to be implemented.
2 years ago
J. King
84b4cb7465
Enable PostgreSQL statement testing
Tests involving binary data are skipped for now
2 years ago
J. King
d52af6db5a
PostgreSQL fixes
Errors were not correctly throwing exceptions
For the sake of SQLite compatibility booleans should be bound as
integers in PDO
2 years ago
J. King
e2b6cb8360
Remove PicoFeed-related FIXMEs
PicoFeed will never be fixed, so they are not helpful
2 years ago
J. King
b5733b070c
Clean up statement tests
PostgreSQL tests are suppressed for now, but most pass.
2 years ago
J. King
e30d82fbaa
Correct signature
2 years ago
J. King
976672de5b
Test cleanup
2 years ago
J. King
edfae438fa
Refine pg connection strings
2 years ago
J. King
796315c00c
Basic stub of PDO-base PostgreSQL driver
2 years ago
J. King
c63d24e125
Version bump
2 years ago
J. King
471dad0645
Fix PDO driver initialization
2 years ago
J. King
c4ca9149a1
Move Statement tests
2 years ago
J. King
7e11019e83
Consolidate statement tests
2 years ago
J. King
ea6b4c951e
Skip Result tests when necessary
2 years ago
J. King
a3dbb08da9
Remove obsolete test code
2 years ago
J. King
30d6f6db37
Consolidate Db result test series into single file
2 years ago
J. King
ffea7e804a
Sync Composer locks
2 years ago
J. King
467cc66cc8
Update changelog
2 years ago
J. King
3b3b810f10
Replicate some unspecified NCNv1 behaviour, and document the rest
See #139 for list
Closes #139
Closes #140
Closes #141
2 years ago
J. King
1dcbb56077
Changelog and documentation updates
2 years ago
J. King
63ae6fb703
Merge remote-tracking branch 'remotes/origin/user-rewrite'
2 years ago
J. King
3a4100576a
Merge remote-tracking branch 'remotes/origin/cli-overhaul'
2 years ago
J. King
39134f5f7e
Rest of CLI tests
2 years ago
J. King
4869559fb3
Test NCNv1 user query
2 years ago
J. King
2dd1b45d3e
Cover the Query class with database tests for now
2 years ago
J. King
efac62f0e4
Add missing return type hints where possible
2 years ago
J. King
9e6f0460c2
Ensure the Lang class always exists when throwing exceptions
2 years ago
J. King
ba8e208d79
Partial CLI tests
2 years ago
J. King
1a8acdf03f
Fix early exceptions
2 years ago
J. King
9428d7468a
Add more user management functionality to the CLI
2 years ago
J. King
a8cc9a4780
Tests for internal user driver; closes #50
2 years ago
J. King
d40243a84c
Clean up configuration setting in tests
2 years ago
J. King
5f775bef7a
Appease phpdbg coverage bug
2 years ago
J. King
1ac85df46b
Last set of tests for User class
2 years ago
J. King
b8f8a617fe
Simply user test data providers
The user manager no longer differentiates between the internal driver
and other drivers, making the duplication unnecessary
2 years ago
J. King
a52b985826
Cover the Query class with database tests for now
2 years ago
J. King
ffa7bd5a5d
Fix error in previous commit
2 years ago
J. King
931fe3b585
Move password generation to the User class
This allows user drivers which wish to generate their own passwords to
do so, and those which do not to defer to the built-in generator
2 years ago
J. King
31cdf313a4
Add missing return type hints where possible
2 years ago
J. King
1b8e1e499b
Dev dependency update
2 years ago
J. King
5959c0672d
Tests for most of the User class
2 years ago
J. King
898533bde5
More simplification
Authentication is now used as the primary point of synchronization
between the internal database and any external database
2 years ago
J. King
40d679844b
Ensure the Lang class always exists when throwing exceptions
2 years ago
J. King
27edcddc9b
Simplify NCNv1 userStatus call
2 years ago
J. King
057d72c816
Remove the distinction between internal and external user functionality
2 years ago
J. King
11747c93fd
Strip out unused user management functionality
Tests have been removed as well; new tests are forthcoming
2 years ago
J. King
0be9dcb5a8
Update dependencies
2 years ago
J. King
e08d82f855
Style fix
2 years ago
J. King
f64f0c6a22
Whitespace cleanup
2 years ago
J. King
3fee77bac2
Improve documentation of TTRSS HTTP auth behaviour
2 years ago
J. King
1aa556cf12
Add HTTP authentication support to TTRSS; fixes #133
Also bump version to 0.4.0
2 years ago
J. King
b4b2b10db3
Cover fatal exception; improves #66
2 years ago
J. King
edbfb12d17
Improve coverage slightly
Improves #66
2 years ago
J. King
c7d4d8c262
Cleanup
2 years ago
J. King
e4d64424c7
Make new bugfix release
2 years ago
J. King
a92bad1bc8
Correctly load configuration
2 years ago
J. King
924543d78a
Small documentation corrections
2 years ago
J. King
689d1c585c
Temporarily disable limits
Real-world usage is bumping up against default limits. This disables them until a proper fix can be implemented.
3 years ago
J. King
c7c5f48066
Fix notice
3 years ago
J. King
cbc9491f75
CS fixes and version bump
3 years ago
J. King
34b508171b
Merge CORS branch
3 years ago
J. King
1a4989e1e0
Merge PDO branch
3 years ago
J. King
cef061f6cd
Fix tests
3 years ago
J. King
aa57227097
Use PSR-7 for authentication; fixes #53
3 years ago
J. King
daea0ceb27
Make HTTP message testing generic
assertMessage will test the method and target URL of requests, attributes of server requests, as well as the existing testing of a response's status code. All messages' bodies and header fields are tested for equivalence (with a special case for JSON response bodies).
3 years ago
J. King
d61fc0c359
Documentation edits for CORS
3 years ago
J. King
90dfeb727a
Implement CORS; fixes #126
3 years ago
J. King
0ec0a5b085
Ensure the request method is always uppercased
3 years ago
J. King
4b53c5e8b3
Tests and fixes for REST class; fixes #53 ; improves #66
3 years ago
J. King
3fa2d38f31
Initial rewrite of REST class; needs more testing, but should be functional
- improves #53
- improves #66
3 years ago
J. King
890f9b07d4
Replace Resquest objects with PSR-7 request messages; improves #53
3 years ago
J. King
9ad0b47201
Add Target class to manipulate request traget URL parts
The query part is not parsed for now because PSR-7 request objects/PHP take care of that parsing for us.
3 years ago
J. King
9eadd602bd
Replace Response objects with PSR-7 response messages; improves #53
While the test suite passes, this commit yields a broken server: replacing ad hoc request objectss with PSR-7 ones is still required, as is emission of PSR-7 responses. Both will come in subsequent commits, with tests
Diactoros was chosen specifically because it includes facilities for emitting responses, something which is awkward to test. The end of this refactoring should see both the Response and Request classes disappear, and the general REST class fully covered (as well as any speculative additions to AbstractHanlder).
3 years ago
J. King
27caf147df
Changes to Date helper class
- Changed 'transform' method to use ValueInfo throughout. This fixes a number of obscure bugs
- Changed the 'add' and 'sub' methods to default to "now" rather than null. This means null passes through rather than being interpreted as the current time, to be consistent with other date tools
- Also changed the 'add' and 'sub' methods so that they operate correctly with invalid date strings
- Added tests for the class; improves #66
- Modified TTRSS tests because the "iso8601" format string in ValueInfo is different from Date's older format
3 years ago
J. King
89bfc23d32
Standardize date normalization to immutables
Also move date formats to the ValueInfo class
Standardizing on immutables avoids any possible ambiguity in the API of the resultant value, as well as any ambiguity as to whether a DateTime output instance is the same instance or a clone (they had been clones)
3 years ago
J. King
87faededc6
Backport PDO changes to ValueInfo
3 years ago
J. King
8250cc63ce
Clean up links in README.md
3 years ago
J. King
ddf55e0665
Change session lifetimes to more closely match TTRSS
At least some clients seem to expect the default timeout of one day.
3 years ago
J. King
a8f8a27c65
Documentation changes for PDO support
3 years ago
J. King
65b08d1735
Tweak
3 years ago
J. King
77793f95cb
Controller fixes for PDO databases; fixes #72
3 years ago
J. King
029c23d0cf
Adapt API tests to allow for PDO mocks
3 years ago
J. King
ba0aeab7ec
Make SQL statement type conversion use ValueInfo normalizer
This sees the addition of a dateOutFormat parameter to ValueInfo::normalize(), as well as a general simplification of how parameter binding works.
Some value type-casting results are slightly different, but this simply makes SQL statement objects consistent with the rest of the system.
3 years ago
J. King
bc9fcb975f
Change "rebind" to "retype" to better reflect what actually happens
3 years ago
J. King
31aea0a06a
PDO-SQLite type binding tests
Db namespace is now back to full coverage
3 years ago
J. King
bc9ffa0e17
Rewrite SQLite 3 type binding tests
3 years ago
J. King
39cad91b78
CS fixes
3 years ago
J. King
a5318d1b12
Part 2
3 years ago
J. King
095fe10aec
Reorganize PDO tests into namespaces
3 years ago
J. King
59fee52074
Reorganize tests into namespaces
3 years ago
J. King
7598d5735f
Fix error in Windows robo script
3 years ago
J. King
392376a1ef
Subject Robo file to coding standards
3 years ago
J. King
0785f832de
CS fixes
3 years ago
J. King
67ecaee1f6
Robo task for CS fixes
3 years ago
J. King
4bada691e9
PDO tests and fixes; improves #72
3 years ago
J. King
4b46d654bb
Replace SQLite `is` with SQL = for consistency
3 years ago
J. King
ad6a09ffa1
Partially tested pdo_sqlite driver; improves #72
3 years ago
J. King
ef75b5e9ab
SQLite driver tweaks
3 years ago
J. King
7ca0f4e877
Make the SQLite3 driver more generic
The changes in this commit should make it more practical to:
- Allow the driver to decide for itself whether to try creating a PDO object if its own requirements are not met
- Have any driver use a generic schema update procedure
- Use the same constructor for native and PDO SQLite
3 years ago
J. King
793af17c22
Pad out help for Robo tasks
3 years ago
J. King
73c8583744
Remove reliance on xdebug; fixes #113
Code coverage information is now gathered via phpdbg (a separate executable) by if available rather than xdebug, as the latter is hard to turn on and off.
A "test:quick" task has also been added to Robo, which excludes 31 tests which together account for almost two thirds of the test run time. This should pave the way for testing to be added as a commit hook for Git.
3 years ago
J. King
183718204d
Grouped slow tests; improves #113
3 years ago
J. King
dd7d6e44b9
Further fixes for test timezone assumptions
3 years ago
J. King
3f65625090
Ensure tests do not rely in UTC default timezone
Six tests failed if the default timezone was not UTC. These were all due to faulty expectations, however, not faulty output.
3 years ago
J. King
092b793e0a
Fix PHPUnit's composer lock file
3 years ago
J. King
415f7fd385
Fix feed timeout test; improves #113
3 years ago
J. King
6848f154c0
Update dev dependencies
3 years ago
J. King
ceef0bd1d4
Fix coverage task
3 years ago
Dustin Wilson
b8ed7c6bf8
Added missing static keyword to Misc\ValueInfo::normalize()
3 years ago
J. King
3e42fbdddf
Munge off-by-one dates in tests; fixes #112
3 years ago
J. King
5cdcd2a7d3
Exclude robo helper scripts from releases
3 years ago
J. King
ff9d437511
Update test-running examples
3 years ago
J. King
11f4eed118
Scripts for Robo
3 years ago
J. King
4bc3398157
Use Robo for programming task execution
The plan had originally been to use Bldr, but Bldr's features were not particularly compelling, and it has not been maintained recently. By contrast Robo has very useful features while still meeting my needs.
In addition to migrating the build process, the current Robo file also runs unit tests, with or without coverage reporting.
Fixes #116 ; improves #113
3 years ago
J. King
3a07156259
Fix broken test
3 years ago
J. King
f100cab558
Version bump
3 years ago
J. King
44ae0ba29b
Collate synthetic subscription title column; fixes #127
3 years ago
J. King
0b3b3cb49c
Use SQLite nocase collation; improves #127
3 years ago
J. King
c8f012c5fc
Add Composer description
3 years ago
J. King
9f4095f00d
Test server tweak
3 years ago
J. King
3adfe8742f
Reorganize test cases
3 years ago
J. King
b49db8893b
Adjust build file and documentation after Composer changes
3 years ago
J. King
79f9808f1f
CS fixes
3 years ago
J. King
e6607453bc
Disentangle Composer dev dependencies
3 years ago
J. King
8d0dd15c8a
Remove use of SQLite IS operator; fixes #120
3 years ago
J. King
84bd624e94
Properly fix getCounters
3 years ago
J. King
af42bceac0
Do not omit zero-unread items in TTRSS getCounter operation
Though TTRSS itself (usually) omits items that have a counter of zero, at least one client takes this to mean the last-seen counter is unchanged, rather than zero.
3 years ago
J. King
adece521a9
TTRSS: Correct mark toggling; fixes #132
3 years ago
J. King
821bb22a72
SQLite concurrency tweaks; fixes #131
3 years ago
J. King
a97072d1f2
Update changelog
3 years ago
J. King
1a9628493e
Fix TTRSS path handling
3 years ago
J. King
9ac2421fe3
TTRSS: accept base64 passwords; fixes #130
3 years ago
J. King
3ffcd6dd97
Make TTRSS handler reject erroneous paths
3 years ago
J. King
a404d4d108
NCNv1: Be explicit about types; fixes #129
This is actually mandated by the specification: a change in data type requires a protocol version number change
3 years ago
J. King
4d4e8e3580
TTRSS: correct feed renaming; fixes #128
3 years ago
J. King
760b13993b
Version bump
3 years ago
J. King
06990fb03b
More documentation refinements
Update build file as well
3 years ago
J. King
c79443fade
Remove dependence on phpseclib
3 years ago
J. King
bc8ee8fcf6
Documentation refinements
3 years ago
J. King
22cdc8916d
Documentation tweaks and CS fixes
3 years ago
J. King
6c34bf3c9c
Update dependencies
3 years ago
J. King
1e0c06034b
Documentation for 0.2.0; fixes #108
3 years ago
J. King
5cd7268c0a
Added incorrectDbCharset to NCNv1 server status
This has been exposed since version 11.0.3, released before our version 0.1.0, but after implementation work had begun
3 years ago
J. King
40944a9b58
Merge remote-tracking branch 'remotes/origin/ttrss'
3 years ago
J. King
3d958547a5
Implement OPTIONS requests for NCNv1; fixes #107
3 years ago
J. King
e1f1c8b859
Refactoring
3 years ago
J. King
2bbc83aeb0
Tweak
3 years ago
J. King
40e9b7f986
Changed all TTRSS outputs to match original types exactly; improves #125
3 years ago
J. King
b4890eaced
Make TTRSS tests consider data types; improves #125
3 years ago
J. King
b242c70968
Refactor of NCNv1 in anticipation of OPTIONS requests
3 years ago
J. King
91165cdd0d
Fix breakage caused by last comit
3 years ago
J. King
a0bf7c16bd
Fix sorting
Also avoid sorting when it's not needed by queries
3 years ago
J. King
999f255203
Fixes for bugs uncovered during client testing
3 years ago
J. King
4f85739d20
Change default SQLite timeout to 60s; improves #67
Real-world use suggests 5s is inadequate. Rather than bumping up small amounts as things break, it makes more sense to wait a very long time and investigate possible long-term solutions later, once logging is implemented.
3 years ago
J. King
05620602bf
Tweak
3 years ago
J. King
b820a004d6
Complete testing of TTRSS handler
Also implemented OPTIONS handling for TTRSS; improves #107
3 years ago
J. King
a61aa0a22c
Simplify TTRSS test request boilerplate
3 years ago
J. King
c669273792
Implement TTRSS operation getHeadlines; fixe #82
3 years ago
J. King
faf00d63ba
Add Database::articleCategoriesGet()
This method retrieves author-supplied categories for articles, used in TTRSS
3 years ago
J. King
e729cedeca
Make getCompactHeadlines use a whitelist instead
3 years ago
J. King
5c140aedc4
Implement TTRSS operation getCompactHeadlines; fixes #95
This commit also implements the back-end for the standard getHeadlines operation and handles all special feeds and categories; fixes #119
3 years ago
J. King
5d4ea6edc0
Add ResultEmpty class
This allows for the creation of synthetic empty result sets
3 years ago
J. King
2037efce61
Added oldestArticle and latestArticle context options
3 years ago
J. King
50185ab8f6
Change code and type of consantUnknown exception
3 years ago
J. King
b0da9a1d06
Added annotation context to satisfy the TTRSS "has_note" view mode
3 years ago
J. King
b595815eb9
Change NCNv1 handler to use new "typical" articleList fieldset
3 years ago
J. King
c88b5c4f18
Make distinction between modified and marked for articles
Also added various sets of fields to include when listing articles.
3 years ago
J. King
6da86428c4
Added per-file legal boilerplate
Includes PHPDoc license tag in the file-level block with accompanying copyright notice.
Also added an AUTHORS file on the off chance of outside contributions
3 years ago
J. King
11b2066922
Added per-file legal boilerplate
Includes PHPDoc license tag in the file-level block with accompanying copyright notice.
Also added an AUTHORS file on the off chance of outside contributions
3 years ago
J. King
6c8598d897
Implement contexts for non-recursive folders, and any/no label
Adjusted TTRSS handler accordingly
3 years ago
J. King
de92fb514b
Implement TTRSS opera getArticle; fixes #84
3 years ago
J. King
e83c6949b8
Cleanup
3 years ago
J. King
ea08bbb87b
Implement TTRSS feed icons; fixes #121
This introduces a data model function of unusual privilege: it can retrieve favicon URLs for any subscription, regardless of user ID. This is a single-purpose hack and its use should be avoided if at all possible.
3 years ago
J. King
ea986f5032
Implement TTRSS operation updateArticle; fixes #83
This required adding the "notes" column to the arsse_marks table and adding same as a target value in Database::articleMark()
The Context class was also adjusted to remove the possibility of false positives in some tests
3 years ago
J. King
6b1cd3816d
Add warnings for slow tests in PHPUnit
This should help in fixing slow tests down the road.
3 years ago
J. King
c6cd8b8aaa
Removing request chunking from NCN controller
3 years ago
J. King
42a5ccb96c
Handle request splitting in data model rather than controllers
Queries for multiple specific articles are limited in size because of limits on the number of bound query parameters.
Currently this limit is somewhat arbitrarily set at 50, but it may increase.
Historically controllers would be responsible for chunking input, but this will present problems when the expected output is a result set, and of course the maintenance burden increases as the number of controllers increases.
This commit transfers the burden to the data model, and consequently introduces a ResultAggregate class which collects chunked result sets (currently only for articleList).
In the course of making these changes the mock Result class was also largely rewritten, fixing many bugs with it.
This commit does not modify the controllers nor their tests; this will be done in a subsequent commit.
3 years ago
J. King
7d19a5add0
Merge from master
3 years ago
J. King
f51152980c
Introduce abstract class for result sets
Most of the SQLite3 Result class' methods are fully generic, so it should be helpful for future result sets
3 years ago
J. King
9304f99032
Make result sets single-use; change savewepoint exceptions
- Result sets are now single-use; this is required for PDO drivers (PDO result sets are not rewindable)
- Change savepoint exceptions to be simple database exceptions; codes remain the same
3 years ago
J. King
9c9c34f7fe
Implement TTRSS operation getFeeds; fixes #80
3 years ago
J. King
fff6082e3c
Adjust TTRSS catchupFeed to use shallow subscription listing
3 years ago
J. King
cbe82c57cd
Allow subscriptions to be listed non-recursively
This is used in multiple TTRSS operations (at least catchupFeed and getFeeds, and so is a useful optimization
3 years ago
J. King
f22fe8ba95
Tweak catchupFeed
3 years ago
J. King
2a08edb27d
Implement TTRSS catchupFeed operation; fixes #88
3 years ago
J. King
e4ae3ca6ea
Use constants for TTRSS' special feeds and categories
3 years ago
J. King
f543f084c1
Build and Nginx changes for TTRSS
3 years ago
J. King
579551f5fd
Implement TTRSS operation getFeedTree; fixes #94
3 years ago
J. King
a94c1e8592
Add static images used by getFeedTree
TTRSS' getFeedTree operation references the URLs of icons included with the software. These icons are from the Silk icon set (see README in this commit), which is compatible with our license, so we simply use them as well.
3 years ago
J. King
6a700f784c
Tests for TTRSS operation setArticleLabel; fixes #90
3 years ago
J. King
5c4772d95a
CS fixes
3 years ago
J. King
65963f228f
CS fixes
3 years ago
J. King
d05aaf688f
Preliminary TTRSS setArticleLabel implementation
3 years ago
J. King
488a7bddac
Adapt TTRSS to new type system
3 years ago
J. King
8c6c49d588
Merge changes from master
3 years ago
J. King
f690bbb3a9
Alias Date::normalize to ValueInfo::normalize
3 years ago
J. King
d45401fb8b
Adapt NCN to new type converter
This has the side-effect of removing the ability to reset a feed's title by passing null explicitly. As a non-standard behaviour it was simpler to just remove it.
3 years ago
J. King
cc875be57e
Backport testing improvements from ttrss branch
3 years ago
J. King
1271a0c8c0
Add ValueInfo::normalize method
This method provides generalized, consistent type casting more versatile than PHP's basic type juggling while hiding the significant complexity in achieving this.
While this commit does not change any existing code to use the new method, the intent is for both API handlers and database drivers to use the same basic rules for type conversion while still allowing for differing failure modes.
3 years ago
J. King
661515590e
Update dependencies
3 years ago
J. King
4e3369cd03
List all valid TTRSS input
3 years ago
J. King
fbbf751214
Implement the TTRSS getLabels operation; fixes #89
3 years ago
J. King
2e395f3cec
Complete backend support for labels
3 years ago
J. King
a343b78b02
Make exporting the database test fixture easier
3 years ago
J. King
4ab004bbab
Speed up SQLite timeout tests
3 years ago
J. King
20ff08a431
Implement TTTRSS getCounters operation; fixes #79
3 years ago
J. King
c9c6891567
Implement TTRSS getCategories; fixes #81
3 years ago
J. King
0e6eed5699
Add boolean sanitizer to ValueInfo
3 years ago
J. King
7a2de95c70
Consolidate article context handling into articleQuery function
Also consolidated article star counting into a generic articleCount function which accepts a context.
This may lead to slight efficiency losses in either listing or marking (and more significant ones in counting starred), but the advantages of centralized context handling are significant with the future addition of labels and the need to count articles under various future contexts in TTRSS.
3 years ago
J. King
26f6922b25
Partially implement labels
- Backend functions for adding, listing, removing, and editing (renaming) labels currently implemented
- TTRSS functions for adding (fixes #96 ), removing (fixes #97 ), and renaming (fixes #98 ) labels currently implemented
3 years ago
J. King
69b34a4e5a
Implement TTRSS feed updating; fixes #86
3 years ago
J. King
03d5d554a9
Imple TTRSS functions getUnread and getConfig
- Fixes #78
- Fixes #85
3 years ago
J. King
bd6f23692c
Implement TTRSS feed subscription; fixes #92
3 years ago
J. King
97b0134e56
Merge master
3 years ago
J. King
a80e283abc
Perform feed discovery correctly; fixes #118
3 years ago
J. King
1b72d45adf
Relegate bootstrap.php to testing; fixes #117
3 years ago
J. King
91cce6b529
Implement all TTRSS feed and category handling except subscribing to feeds
- Fixes #93
- Fixes #100
- Fixes #101
- Fixes #102
- Fixes #103
- Fixes #104
3 years ago
J. King
0a0aabe4ed
Merge master
3 years ago
J. King
bf35e0ecc8
Version bump
3 years ago
J. King
474f7fc2f6
Changelog; CS fixes
3 years ago
J. King
3482a35e54
Implement feed discovery; fixes #110
3 years ago
J. King
d1e4c6eed3
Fix 405 response of NCN version lister
3 years ago
J. King
00bc7a00a0
Transparently handle HEAD requests; fixes #114
3 years ago
J. King
1ca5b4b456
Add newline after password in CLI
3 years ago
J. King
73d284e101
Clean up Git metadata
3 years ago
J. King
5488b994f7
Merged master; CS fixes
3 years ago
J. King
96ebf936e4
CS fixes
3 years ago
J. King
5ebf6cb689
Treat objects which are convertible to strings the same as actual strings in ValueInfo
3 years ago
J. King
d365529493
Multiple fixes to input sanitization
- Database functions now accept any input, but throw typeViolation exceptions where appropriate instead of idMissing or subjectMissing
- Added unit tests for the new Misc\ValueInfo static class
- Added ValueInfo::id() method to centrally validate database IDs, and made use of it consistently
- Made use of PHP's filter_var() function where appropriate when validating or sanitizing input
- Made the NCN protocol handler reject most invalid IDs before handing off to method handlers
- Made NCN's feedUpdate and subscriptionMove methods return 422 on invalid input
- Adjusted several tests to handler type violations
3 years ago
J. King
1af8b733b5
Implement adding TTRSS categories; fixe #99
3 years ago
J. King
7b121c74ec
Merge fixes from master
3 years ago
J. King
e74a3ae3cb
Fix numerous bugs when adding or changing folders
- Specifying a non-integer parent no longer silently casts to 0 or 1
- Specifying a folder ID of 0 now always converts to null automatically
- Performing both a rename and move to root in the same operation no longer results in potential duplicates
- Calling folderSetProperties with an empty data array no peforms an update; it now returns false before the update call
- Modification timestamps are now actually updated when a folder is modified
- Constraint violation exceptions triggered by code (rather than the database) now print a message
- Renaming a folder or subscription to a non-string value (e.g. an array) throws an exception rather than silently casting
- Added tests to better cover all the above
- Centralized the normalization of integers and title strings into a new ValueInfo static class
3 years ago
J. King
8487a56a60
Tests for TTRSS session handling and version/level reporting
- Fixes #73
- Fixes #74
- Fixes #75
- Fixes #76
- Fixes #77
3 years ago
J. King
6e19517593
Return correct TTRSS error bodies even for HTTP-level errors
TTRSS' error message for these cases (NOT_LOGGED_IN) is not especially helpful, but that's what it returns, so that's what we should return, albeit with correct HTTP status codes.
3 years ago
J. King
3a5d346b9c
Preliminary TTRSS handler
3 years ago
J. King
91432d4e16
Tests for sessions
3 years ago
J. King
b7ac63b9de
Resuming a session from the database should have no side effects
3 years ago
J. King
1069447925
Make session cleanup more sophisticated
3 years ago
J. King
474d32e54f
Preliminary implementation of TTRSS sessions (needs tests; may not work)
3 years ago
J. King
c393dfc42b
Sundry fixes
- Make use of PHP 7's null coalescing operator
- remove use of static property in Lang class
- Improve code coverage slightly
3 years ago
J. King
c9967c9cc7
Satisfy Gitea's picky Mrkdown parser
3 years ago