574 Commits

Author SHA1 Message Date
J. King 70b063e028 Make parts of generic packaging conditional 3 weeks ago
J. King cf3d270077 Merge branch 'deb' 3 weeks ago
J. King 1fa75aba4a Generate Debian source package without deb tooling 3 weeks ago
J. King 317d23c1bb Fix copy-paste error in manual 3 weeks ago
J. King 75dbe380ba Add Pandoc to AUR arsse-git build dependencies 3 weeks ago
J. King 08250841a0 Don't sign packages 3 weeks ago
J. King 2452264893 Date release 3 weeks ago
J. King c1e57eb01f Add manual installation instructions 3 weeks ago
J. King e75e0dfd2f Clarify exactly what "older Debians" is 3 weeks ago
J. King 6c11c9e485 Fix Debian bugs 4 weeks ago
J. King 40a2856ae8 Use correct PHP_FPM socket paths for Debian 4 weeks ago
J. King c7dcc36ba1 Update version 4 weeks ago
J. King a31fb896d9 Update changelog 4 weeks ago
J. King def4a3bc77 Move Debian adaptations to Debian packaging rules 4 weeks ago
J. King cd89472575 Fix up Debian documentation 4 weeks ago
J. King beea98040c Initial documentation for Debian packages 4 weeks ago
J. King 59ff88f3b6 Add all-in-one packaging task 4 weeks ago
J. King 4070870421 Enforce external tooling requirements 4 weeks ago
J. King 5ab9dc3840 Add missing pbuilder script 4 weeks ago
J. King 20ffb2484a Simply Robo input for Arch and Deb packaging 4 weeks ago
J. King f91b3c0120 Output packages to a "release" directory 4 weeks ago
J. King 4121fc3e21 Database server ports must be integers 4 weeks ago
J. King 7ad3611a84 Set up configuration file for Debian properly 4 weeks ago
J. King 5412eb348f Clean up maintainer scripts 4 weeks ago
J. King c936ecc1af Fix another typo 4 weeks ago
J. King 99c923b1b1 Fix typos 4 weeks ago
J. King c2237532eb Add glue for dbconfig-common configuration 4 weeks ago
J. King 9687ce026e Add MySQL back to Debian depeendencies 4 weeks ago
J. King 30bed8a9d5 Typo 4 weeks ago
J. King cf9059c2b0 Update tooling 4 weeks ago
J. King 93bcf93685 Prototype Debian maintainer scripts 4 weeks ago
J. King 46e20be983 Test for service reloading 4 weeks ago
J. King ad32bf3340 Style fixes 4 weeks ago
J. King b8ac646d22 Fix up hangup signal handling 1 month ago
J. King 37c58e186a Handle hangup signal 1 month ago
J. King 88fe3e76cb Fix up missing-extension message 1 month ago
J. King 3c8ee42666 Basic tests for exception checking 1 month ago
J. King 04adc3b997 Document forking in the manpage 1 month ago
J. King c49cb72528 Fail gracefully when extensions are missing 1 month ago
J. King c9a2393a4e Note requirement for filter extension 1 month ago
J. King 75e87f31a0 Prototype code to check for missing extensions 1 month ago
J. King 3b51d4daea Fix license for Debian package 1 month ago
J. King ce9dfc3f30 Add init script to Debian files 1 month ago
J. King cbc7cd8ea7 Add an explicit path to init script 1 month ago
J. King 2e29f3f76e Correct typo 1 month ago
J. King 8a1a1eee42 Prototype init script 1 month ago
J. King e160189224 Handle exceptions from child processes 1 month ago
J. King e9394e8599 More forking tweaks 1 month ago
J. King 577356cd3d Fork error test 1 month ago
J. King 514cb0a351 Ow 1 month ago
J. King 0bb5e916d2 Test PID writing 1 month ago
J. King 2767ab755e Use D modifier in pattern 1 month ago
J. King a4036afbf8 Partial tests for PID file reading 1 month ago
J. King 32c9d761c3 Clean up more exceptions 1 month ago
J. King 5b3e8fbef0 Refine some exceptions 1 month ago
J. King b9fd9ac32e Tweaks 2 months ago
J. King 23749b51aa Tests for path resolution 2 months ago
J. King dfaf44ac68 Basic path resolution tests 2 months ago
J. King bab64add9b Separate PID conflict checking from PID claiming 2 months ago
J. King 822158d1bd Update dependencies 2 months ago
J. King f1c29c99c7 Finish testing PID file path checking 2 months ago
J. King 59cf27089a More daemon cleanup 2 months ago
J. King 4e1193bab2 Move forking daemon support code to own class 2 months ago
J. King 32e04e3938 Move forking and related to Service class 2 months ago
J. King 55acb87577 Start on PI(D file resolution tests 2 months ago
J. King e8cab78bd6 Handle last possible PID failures 2 months ago
J. King 9595c4f019 Start filling out PID file exceptions 2 months ago
J. King 372bf9f630 Exclude code from coverage 2 months ago
J. King 4ffc29781d Remove references to oldpass param 2 months ago
J. King 47af739e47 Catch more PID path failures 2 months ago
J. King 2c7b16ed27 Respond to termination signals and delete PID file 2 months ago
J. King 410310282f Load configuration after forking 2 months ago
J. King 29b83b4453 Prototype forking daemon 2 months ago
J. King fc2abc1203 Use D modifier for all patterns with $ anchors 1 month ago
J. King 59c5c2eb14 Oops 2 months ago
J. King 3cd3ac4a51 Correct filename conflict 2 months ago
J. King 837895fd6a Adapt dist files for Debian 2 months ago
J. King b4c9413130 Update README 2 months ago
J. King bafb788b02 Correct errors in manual 2 months ago
J. King 68e3cd82ca Don't include section number in title 2 months ago
J. King c3fa4788d6 Use proper metadata block for manpage 2 months ago
J. King 3567f294a6 Merge branch 'manpage' 2 months ago
J. King 8c0f047747 Update HTML manual to mention man page 2 months ago
J. King fd76b1b611 Add examples to manual page 2 months ago
J. King 4317a96db1 Work around double spacing 2 months ago
J. King 62d49e0d3c Fill out most of the manual page 2 months ago
J. King 88487d27a2 Expand manual page 2 months ago
J. King 46c88f584f Fix copying of man page in PKGBUILDs 2 months ago
J. King 92823d5bc2 Create directories before executing Pandoc 2 months ago
J. King 3e55ab3849 Move man pages to their own directory 2 months ago
J. King 2ec7acc50b Turn off "smart" character substitution in Pandoc 2 months ago
J. King d3a983e7f0 Move the markdown manpage 2 months ago
J. King 176aac0ad7 Fix stupid typo properly 2 months ago
J. King e439dd8277 Fix manpage in Arch PKGBUILD 2 months ago
J. King 6cc9f96728 Prototype manual page 2 months ago
J. King d4569c77a9 Add database location to tmpfiles 2 months ago
J. King add1acc87a Fix more lintian complaints 2 months ago
J. King 14d3cdfe58 Hopefully fix some Debian problems 2 months ago
J. King 281760be71 Address some lintian complaints 2 months ago
J. King 758a02d667 Move generic configuration file 2 months ago
J. King 18846c19cb Add install list for Debian package 2 months ago
J. King b5bbdc2bc6 Date release 2 months ago
J. King 3be6c9984d Update Apache documentation in manual 2 months ago
J. King 6c84b2199e More Apache fixes 2 months ago
J. King f9cbac2c31 Hopefully fix Apache configuration 2 months ago
J. King 32ca0c3fe4 Appease GitHub once and for all 2 months ago
J. King a81bd0e45c Add whitespace 2 months ago
J. King 86d82a2586 Use global flag when replacing with sed 2 months ago
J. King f0bf55f9cf Add ExecStart to parent systemd unit 2 months ago
J. King 1055611940 Add version constraints to Arch dependencies 2 months ago
J. King 2ccfb1fd33 Fix packaging process 2 months ago
J. King 9eabfd0f27 Fix up sed usage in PKGBUILD 2 months ago
J. King 0236b42052 Use tmpfiles to create link to config file 2 months ago
J. King 8aa9d81fd1 Update changelog 2 months ago
J. King 11fc83da60 Significant edits to the manual 2 months ago
J. King de55290746 Fix build dependencies for Deb package 2 months ago
J. King f844c17a94 More Debian fixes 2 months ago
J. King 0de9647809 Add compat file 2 months ago
J. King e653fb3f73 Enhancements to Debian files 3 months ago
J. King b7909d7cd3 Downgrade tool dependencies for Ubuntu 3 months ago
J. King 3c9f4dd66f Prototype Debian rules file 3 months ago
J. King 3537e74d49 Update dependencies 3 months ago
J. King d031d931a5 Tidy up the Robo file further 3 months ago
J. King 38cb1059b2 Shorten output of packaging task 3 months ago
J. King 16174f11b6 Add changelog parsing to packaging task 3 months ago
J. King 073f6b3c39 Prototype Debian control file and other changes 3 months ago
J. King 3f3f449da1 Re-organize manual 3 months ago
J. King 2260b7cc50 Back up all Web server configuration 3 months ago
J. King 61eb4a252e Fix doc URLs 3 months ago
J. King 3f401f1cfa Fix typo 3 months ago
J. King 6c750d2dc0 Documentation for installing on Arch 3 months ago
J. King 6d790c5efd Add prototype for new Apache configuration 3 months ago
J. King 3a3b9231df Use generic configuration where possible 3 months ago
J. King fbe03a2534 Use chmod instead of touch 3 months ago
J. King e75f8cebfb Add Arch packaging to Robo file 3 months ago
J. King 79391446cd Start moving Arch build responsibility to Robo 3 months ago
J. King 19ab9df063 Fix more bugs 3 months ago
J. King 568b12600b Drop privileges when executing CLI 3 months ago
J. King 488af80a85 Update changelog 3 months ago
J. King 44612cfe8f Add tmpfiles 3 months ago
J. King d1fd6e9653 Correct permissions 3 months ago
J. King a97ca23631 Don't try to enable extensions 3 months ago
J. King e2b182ebe6 Fix errors in Arch config file 3 months ago
J. King 3eab5aad5d Fix adding users to a blank database 3 months ago
J. King 805a508ea6 Use correct state path 3 months ago
J. King 3ebc23ab13 Tweaks 3 months ago
J. King 7abdf05b7f Make package from local files for now 3 months ago
J. King 971c12ff9f Rename sample to example 3 months ago
J. King febc7c7ca4 Add configuration for Nginx 3 months ago
J. King edb146b826 Use PHP-FPM instead of uWSGI 3 months ago
J. King 7ba4cabdde Prototype Arch PKGBUILD and supporting files 3 months ago
J. King 114dcc568f Update dependencies 4 months ago
Dustin Wilson 1331b14a04 Reverting for now 4 months ago
Dustin Wilson 035feae0ce Removed postcss in favor of sass for building manual theme 4 months ago
J. King 8e063bea2f Appease GitHub again 4 months ago
J. King 4a9e66d872 Fix inconsistent grammar 5 months ago
J. King fa4ab3218a Version bump 5 months ago
J. King c4260323bc Answer 201 to PUTs like Miniflux 5 months ago
J. King abc291460c Update Web server configuration in manual 5 months ago
J. King bff3e21cd2 Date release 5 months ago
J. King 764b604edd Note Fiery Feeds' support for HTTP auth with Fever 5 months ago
J. King 4b0571299a Add results of client testing 5 months ago
J. King 2e4c57b75b Work around Microflux for Miniflux 5 months ago
J. King dcb81ea043 Only provide icon ID when there is data 5 months ago
J. King 77a9bb801d Defer testing of Maxiflux 5 months ago
J. King f90b78a976 Fix compatibility issues 5 months ago
J. King e6b4edd160 Supress deprecation messages during runtime 5 months ago
J. King 8aca42c882 Minor fixes for correctness 5 months ago
J. King 458126416c Fix PostgreSQL coverage annotations 5 months ago
J. King 6b7257a6c4 Work around more MySQL stupidity 5 months ago
J. King 5cfa01f4d5 Work around MySQL stupidity 5 months ago
J. King 64ca5f1be0 Fix strict comparison failures 5 months ago
J. King ed285ee28b Shut Robo up 5 months ago
J. King 4642b9fd1c PRovide upgrade path for assertRegExp 5 months ago
J. King 3a1fcaac39 Remove last uses of Phake 5 months ago
J. King 75148bfbc6 Convert NCNv1 tests to PHony 5 months ago
J. King 95812b8ba3 Convert last TT-RSS test 5 months ago
J. King a322d034f3 More TT-RSS test conversions to Phony 5 months ago
J. King 2d951fb071 More TT-RSS test conversions 5 months ago
J. King c7350c6d57 Convert Miniflux tests to using Phony 5 months ago
J. King 9dfe3919cf Progress on TT-RSS tests 5 months ago
J. King e90aa585b2 PArtial rewrite of TT-RSS tests 5 months ago
J. King 2348786a92 Start on replacing Phake with Phony 5 months ago
J. King 9b369d902f Update tooling for PHP 8 5 months ago
J. King dab4cb21e6 Geekttrss seems to work 6 months ago
J. King d836d6a243 Add more clients to the untested list 6 months ago
J. King 50b2ca4500 Document tokens and metadata in the manual 6 months ago
J. King 9c0a3b7a57 Fix typo 6 months ago
J. King 3ba82b7c6d Fix CLI bootstrap problem 6 months ago
J. King fa6d641634 Implement CLI for tokens 6 months ago
J. King 3795b1ccd8 Simplify CLI command processing 6 months ago
J. King e8ed716ae6 Fix errors in CLI documentation 6 months ago
J. King 97d1de46f8 Fill in upgrade notes 6 months ago
J. King 68422390da Implement CLI for user metadata 6 months ago
J. King b7c7915a65 Enforce admin rquirements in NCNv1 6 months ago
J. King a760bf2ded Implement "t" and "f" booleans in TT-RSS 6 months ago
J. King 9ad4a37ddf Tests and fixes for Miniflux with PDO 6 months ago
J. King 687995c497 More potential Miniflux Web clints 6 months ago
J. King 29761d767a Update documentation 6 months ago
J. King dad74c2616 Implement Fever icons 6 months ago
J. King 90034ac1f8 Style fixes 6 months ago
J. King 211cea648e Implement TT-RSS API level 15 6 months ago
J. King f2e5d567ec Update sample Web server configuration 6 months ago
J. King eae0ba4b68 Tests fortoken operations 6 months ago
J. King 9cc779a717 Import/export tests 6 months ago
J. King 37fd2ad4e9 Tests for new exception features 6 months ago
J. King 6c2de89f3e Revert copy-paste corruption 6 months ago
J. King 54a6fcc0d6 Consolidate object factoriesinto one place 6 months ago
J. King a0d563e468 Update dependencies 6 months ago
J. King b4ae988b79 Prototype OPML handling 6 months ago
J. King 681654f249 Documentation update 6 months ago
J. King dd29ef6c1b Add feed refreshing stubs 6 months ago
J. King ab1cf7447b Implement article marking 6 months ago
J. King 334a585cb8 Implement single-entry querying 6 months ago
J. King a7d05a7717 Feed- and category-specific entry list routes 6 months ago
J. King 00ad1cc5b9 Last tests for article querying 6 months ago
J. King d4a6909cf6 Positional article queries tests 6 months ago
J. King e42e25d333 More article query tests 6 months ago
J. King f7b3a473a9 Clarify ordering syntax rationale 6 months ago
J. King af51377fe9 First set of article query tests 6 months ago
J. King 23ca6bb77b Count articles without offset or limit 6 months ago
J. King 0e7abfa8f9 Largely complete article querying 6 months ago
J. King a43f8797c5 Add ability to sort by folder ID or name 6 months ago
J. King ed27e0aaaa Sort nulls consistently 6 months ago
J. King 9d7ada7f59 Partial implementation of article sorting 6 months ago
J. King 007183450a Context and column list for article queries 6 months ago
J. King 197cbba77d Document article column definitions 6 months ago
J. King ddbcb598e8 Match more closely Miniflux query string behaviour 6 months ago
J. King bb89083444 Perform strict validation of query parameters 6 months ago
J. King 1e924bed83 Partial query string normalization 6 months ago
J. King 3b2190ca10 Include folder names directly in subscription list 6 months ago
J. King ad094f5217 Don't return icons without types at all 6 months ago
J. King cd5f13f4b9 Tests for icon querying 6 months ago
J. King 76f1cc8e91 Adjust users of subscriptionIcon 6 months ago
J. King cc2672fb0a Improve icon fetching interface 6 months ago
J. King 1eea3b3a4c Fix feed update test 6 months ago
J. King 8e749bb73c Report 404 on icons for absence of data 6 months ago
J. King bdf9c0e9d2 Prototype feed icon querying 6 months ago
J. King 9197a8d08b Implement feed deletion 6 months ago
J. King 8eebb75b18 Implement feed editing 6 months ago
J. King 5a8a044a92 Implement single-feed querying 6 months ago
J. King a646ad77b7 Use a read transaction when computing filter rules 6 months ago
J. King cca4b205e4 Correct error output of getCategoryFeeds 6 months ago
J. King a34edcb0d1 Last tests for feed creation 6 months ago
J. King 7893b5f59d More feed adding tests 6 months ago
J. King 36cc4928b9 Test feed fetching errors for Miniflux 6 months ago
J. King 727864f401 Implement feed listing by category 6 months ago
J. King 4972c79e32 Allow simpler feed exception creation 6 months ago
J. King 6936f365e4 Add calls coming in next version of Miniflux 7 months ago
J. King fd25be5c27 Basic tests for feed creation 7 months ago
J. King e7b2f54183 Prototype feed creation 7 months ago
J. King 14d2d19ae1 Tests for Miniflux feed listing 7 months ago
J. King 2cf4bf0d4d Prototype Miniflux feed listing 7 months ago
J. King 86897af0b3 Add ability to enable scraper 7 months ago
J. King 7897585d98 Test scraping 7 months ago
J. King 76f70119fd More work on scraping 7 months ago
J. King 4cb23dd198 Partial implementation of proper content scraping 7 months ago
J. King e74b44cc39 Change favicon to icon_url and add icon_id 7 months ago
J. King 2536c9fe03 Last tests for article filters 7 months ago
J. King 9f2b8d4f83 Imprement setting of filter rules 7 months ago
J. King 618fd67f80 Set marks for filtered articles on feed refresh 7 months ago
J. King 7a6186f2d7 Update Miniflux documentation 7 months ago
J. King 097362881b Tests for filtering during feed parsing 7 months ago
J. King a4146ec129 Start on test for filtering during feed parsing 7 months ago
J. King 9e29235d87 Don't fetch from example.com during tests 7 months ago
J. King 549c7bdc72 Style fixes 7 months ago
J. King 4f34b4ff29 Rule refactoring 7 months ago
J. King c1eff8479c Simplify configuration property caching 7 months ago
J. King 6dba8aa66b Fixes for rules 7 months ago
J. King 461e256052 Work around MySQL syntax weirdness 7 months ago
J. King 47ae65b9d3 Function to apply filter rules 7 months ago
J. King b12f87e231 Support Xdebug 3.x for coverage 7 months ago
J. King ffc5579a7a Partial implementation of filter rule handling 7 months ago
J. King 7e17332714 Implement marking all as read for Miniflux 7 months ago
J. King 31f0539dc0 Implement Miniflux user deletion 7 months ago
J. King bf95b134bd Fix up error codes for category changes 7 months ago
J. King 197922f92f Implement Miniflux user creation 7 months ago
J. King ee0c3c9449 Tests and fixes for user modification 7 months ago
J. King cc648e1c3a Update tooling 7 months ago
J. King 67f577d573 Bump emulated Miniflux version 7 months ago
J. King f58005640a Prototype user modification 7 months ago
J. King 2946d950f2 Forbid more user names 7 months ago
J. King 405f3af257 Invalidate sessions and Fever passwords when renaming users 7 months ago
J. King 5ec04d33c6 Add backend functionality to rename users 7 months ago
J. King 88cf3c6dae Test filter rule retrieval 7 months ago
J. King d66cf32c1f Style fixes 8 months ago
J. King a81760e39d Aggressivly clean up hidden articles 8 months ago
J. King ade0402210 Adjust TT-RSS to ignore hidden items 8 months ago
J. King f33359f3e3 Move some Miniflux features to abstract handler 8 months ago
J. King b7ce6f5c79 Adjust Fever to ignore hidden items 8 months ago
J. King b2fae336e8 Adjust Nextcloud News to ignore hidden items 8 months ago
J. King f0bfe1fdff Simplify editionLatest Database method 8 months ago
J. King 8527c83976 Exclude hiddens from subscription unread count 8 months ago
J. King 97010d8822 Tests for marking articles hidden 8 months ago
J. King 86c4a30744 Adjust articleStarred function to discount hidden 8 months ago
J. King ffc98daff3 Adjust article marking tests to account for new hidden mark 8 months ago
J. King 8ae3740d5f Implement querying articles by hidden mark 8 months ago
J. King d5cd5b6a17 Implement hidden marks 8 months ago
J. King c43d0dcae3 Groundwork for filtering rules 8 months ago
J. King 95a2018e75 Implement caategory marking as read 8 months ago
J. King 5124f76b70 Implementcategory deletion 8 months ago
J. King eb079166de Tests for category renaming 8 months ago
J. King 3ebb46f48e Some work on categories 8 months ago
J. King 2e6c5d2ad2 Query Miniflux categories 8 months ago
J. King 4b73698381 More user query tests 8 months ago
J. King ebdfad535c More Miniflux user tests 8 months ago
J. King 7c841b5fc2 Test for listing users 8 months ago
J. King 5c83655541 Add modification timestamp to user metadata 8 months ago
J. King d85988f09d Prototype Miniflux user querying 8 months ago
J. King 2eedf7d38c Finally fix MySQL 8 months ago
J. King e9d449a8ba Fix user manager and tests 8 months ago
J. King ce68566fcb Hopefully fix MySQL 8 months ago
J. King a431243421 Fixes for MySQL and PostgreSQL 8 months ago
J. King fcf1260dab Adjust database portion of user property manager 8 months ago
J. King 978929aabd WIP redesign of user properties 8 months ago
J. King 0f3e0411f0 Document some differences frrom Miniflux 8 months ago
J. King 94154d4354 Implement Miniflux feed discovery 8 months ago
J. King 669e17a1f6 Add ability to discover multiple feeds 8 months ago
J. King 2a0d6e6599 OPTIONS tests 8 months ago
J. King 7fa5523a7d Simplify handling of invalid paths and methods 8 months ago
J. King def07bb1ad Tests for Miniflux authentication 8 months ago
J. King 8c059773bb Update tooling 8 months ago
J. King 90117b5cd7 Fix Miniflux strip value 8 months ago
J. King 06dee77bac First tests for Miniflux 8 months ago
J. King f6cd2b87ce Port token data from Microsub branch 9 months ago
J. King d4bcdcdadd Fix TTRSS coverage 9 months ago
J. King d3ebb1bd56 Last set of tests for user management. Fixes #180 9 months ago
J. King e16df90bae Style fixes 9 months ago
J. King 180b4ecc9b More user tests 9 months ago
J. King 27d9c046d5 More work on user management 9 months ago
J. King 7f2117adaa Differentiate between duplicate/missing users and other failure modes 9 months ago
J. King 351f972512 Tests for internal user driver 9 months ago
J. King 4baf5fa2f9 Tests for new user functionality in Database 9 months ago
J. King dde9d7a28a Refinements to user manager 9 months ago
J. King eb2fe522bf Last bits of the new user metadata handling 9 months ago
J. King 5a17efc7b5 Clean up user driver API 9 months ago
J. King 771f79323c Strip out remnants of the authorizer 9 months ago
J. King 576d7e16a8 Fix handling of bytea-typed nulls 9 months ago
J. King 1b1789988a More client compatibility updates 9 months ago
J. King 532ce4a502 Prototype changes to user management 9 months ago
J. King ee050e505c Add more Android clients to manual 9 months ago
J. King 9fb185a8e2 Add TT-RSS Web client to manual 9 months ago
J. King b62c11a43e Lasts tests for icon cache; fixes #177 9 months ago
J. King 1d3725341a Fix detection of Xdebug for coverage 9 months ago
J. King 311910795a More tests for icon cache 9 months ago
J. King 3d3c20de5c Don't anticipate API features 9 months ago
J. King 4d532cba3f Initial Miniflux documentation 9 months ago
J. King e861cca53d Integrate schema change necessary for microsub 9 months ago
J. King b24c469dca Update changelog 9 months ago
J. King 8f739cec85 Excluse empty-string URLs from icons table 9 months ago
J. King 424b14d2b4 Clean up use of subscriptionFavicon 9 months ago
J. King dd1a80f279 Consolidate subscription icon querying 9 months ago
J. King 4fc208d940 More consistent icon API 9 months ago
J. King c3a57ca68b Tests for icon cache population 9 months ago
J. King bd650765e1 Generalize icon fetching tests 9 months ago
J. King 50fd127ac4 Test for icon fetching 9 months ago
J. King 7c40c81fb3 Add icons to the database upon feed update 9 months ago
J. King c25782f98c Partial icon handling skeleton 9 months ago
J. King af675479b8 Remove excess whitespace 9 months ago
J. King 2438f35f3d Add icon cache to database 9 months ago
J. King 5e60da00a9 Merge branch 'master' into miniflux 9 months ago
J. King b5f959aabf Fix blob tests 9 months ago
J. King 41bcffd6fb Correctly query PostgreSQL byte arrays 9 months ago
J. King c21ae3eca9 Correctly send binary data to PostgreSQL 9 months ago
J. King c92bb12a11 Prototype Miniflux dispatcher 9 months ago
J. King 905f8938e2 Typo 9 months ago
J. King 8ad7fc81a8 Initially mapping out of Miniflux API 9 months ago
J. King 16d2e01668 New schema for PostgreSQL and MySQL 9 months ago
J. King 4db1b95cf4 Add numeric IDs and other Miniflux data to SQLite schema 9 months ago
J. King 3ac010d5b6 Fix tests in absence of database extensions 9 months ago
J. King b58a326461 Prepare for schema changes 9 months ago
J. King e9682bc601 Correct typos 9 months ago
J. King 5a09dcb3ed Update changelog 9 months ago
J. King e3ebd89aa8 Add NewsFlash to supported clients 9 months ago
J. King 0117e7f9bf Relax Fever's HTTP correctness for client compat 9 months ago
J. King 7ef02e1d65 Revert wishful thinking 9 months ago
J. King 3d909da1e5 Update iOS/macOS client URLs 9 months ago
J. King 6520ed38fb Update dependencies 9 months ago
J. King 9b11001402 Fix sample Nginx configuration 9 months ago
J. King 2e0ed5e923 Add reference to MariaDB missing features 10 months ago
J. King afbf3be031 Use 'union all' instead of 'union' in queries 11 months ago
J. King 6ee7ca4aa4 Update PicoFeed to latest release version 11 months ago
J. King 9bc1373998 Version bump 11 months ago
J. King 0f3ada598e Work around Picofeed bug 11 months ago
J. King d29917caf8 Update Yarn again 11 months ago
J. King e75d15e552 Update dependencies 11 months ago
J. King 77aef9c995 Yarn update 1 year ago
J. King ee549cdee7 Appease GitHub (yet again) 1 year ago
J. King 2620314583 GitHub should now be kept in sync at all times 1 year ago
J. King 20fe65b67e Make changelog point to manual instead of readme 1 year ago
J. King 66a4f71ef3 Minor simplification 1 year ago
J. King 5f35a680e3 Appease GitHub (again) 1 year ago
J. King c1e27684d4 Appease GitHub 1 year ago
J. King 1268e5fd73 Finally fix DST error in tests 1 year 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 2 years ago
J. King 39a1895867 Refine and cover new Guzzle error handling 2 years ago
J. King cb41912f36 Merge branch 'master' into php7.1 2 years ago
J. King d7e10e40ee Prefer PCOV for code coverage 2 years ago
J. King 04878bda9d Documentation changes 2 years ago
J. King 06d3af0ac3 Fix remaining Picofeed-related test failures 2 years ago
J. King 9cb7cf485d Style fix 2 years ago
J. King e29c573210 Update tools 2 years ago
J. King 49d003082d Fix problems with nicolus/picofeed 2 years ago
J. King e583ffea67 Start on integrating well-maintained picofeed fork 2 years ago
J. King b5f118e8cb Cleanup 2 years ago
J. King bbace7a0ac Use void and nullable return types where practical 2 years ago
J. King 5838af892f Replace references to Zend with Laminas 2 years ago
J. King 0565553d4a Change PHP requirement in manual 2 years ago
J. King 9e1087914c Change tool dependencies to "dev" type 2 years ago
J. King 2fa2799b64 Require PHP 7.1 in Composer 2 years ago
J. King 14ef33879b Re-arrange database tests by engine 2 years ago
J. King c4ee7254cd Refactor some tests to use data providers 2 years ago
J. King fb2602fe04 Don't load actual configuration during CLI tests 2 years ago
J. King 38501ce4f2 Add Newsie to documented clients 2 years ago
J. King cca56b09fc Order failing tests first 2 years ago
J. King 4421a9e510 Offload coveraage whitelisting to xdebug 2 years ago
J. King 524b1ca140 Merge branch 'master' into phpunit-8 2 years ago
J. King 3ee89bf669 Version bump 2 years ago
J. King c9d4540616 Merge branch 'mysql' 2 years ago
J. King 3cb8dfafe2 Change download URL in manual 2 years ago
J. King bbe70b6abc Corect CamelCase references to Nextcloud 2 years ago
J. King 794fb506a5 Widen URL field 2 years ago
J. King 484510cf8c Expand text fields other than user id and feed URL 2 years ago
J. King e3144ecbf5 Update tool dependencies 2 years ago
J. King 5df89009e6 Merge branch 'master' of https://code.mensbeam.com/MensBeam/arsse 2 years ago
J. King 15de8c2320 Fix PostgreSQL connection error message 2 years ago
J. King f4b08170bf Fix MySQL schema 2 years ago
J. King 568e6e4660 Delete dangling MySQL records when updating 2 years ago
J. King 737dd9f6b8 Fix foreign keys in MySQL 2 years ago
J. King c1a3e64bfa Fix new tests to work with PHPUnit 8 2 years ago
J. King de424e42f6 Merge branch 'master' into phpunit-8 2 years ago
J. King c6b79d49ba Documentation corrections 2 years ago
J. King 5ede4cbdb2 Clarify coverage requirements 2 years ago
J. King bbc96e4f37 Remove reference to obsolete CSS-only manual task 2 years ago
J. King 733f0d7fd5 Fix typo 2 years ago
J. King 0e5b242c67 Version bump 2 years ago
J. King c59cdfef76 Whitespace fixes 2 years ago
J. King 71c7cd8fb1 Full coverage! Fixes #66 2 years ago
J. King 728eecfbb5 Additional service tests 2 years ago
J. King bad86cedb3 Tests for bootstrapper 2 years ago
J. King 7ac4fb4715 Clarify PDO workaround for SQLite 2 years ago
J. King 3ef1177f06 Remove driver lists 2 years ago
J. King b6dd8ab20d Improvements to and proper tests for query builder 2 years ago
J. King c706a76057 Simplify array flattening 2 years ago
J. King c3643fba10 Tests for URL::absolute() 2 years ago
J. King 64c3ec3571 Coverage fixes and OPML bugfix 2 years ago
J. King 17a2fa96f8 Upgrade to PHPUnit 8 2 years ago
J. King b8b8a6aa70 Also adjust test for MySQL connection failure 2 years ago
J. King cb1039326c Fix PostgreSQL tests when using "trust" authentication 2 years ago
J. King cf5c08459f Remove unused Daux libs 2 years ago
J. King 5d70f9fc11 Update dependencies 2 years ago
J. King 9461cefc35 Upgrade Daux to 0.11 2 years ago
J. King 1809fb254e Deal with trailing whitespace in media types 2 years ago
J. King 4f5a8e3180 Make media type checking more robust 2 years ago
J. King 5f993187ea Be explicit with HTTP challenge character encoding 2 years ago
J. King c5337b37b4 Consolidate creation of synthetic server requests 2 years ago
J. King 67bde97e0c Update changelog 2 years ago
J. King a143c86136 Set up test better 2 years ago
J. King 3da884dfbc Don't embed ito SQL strings with question marks 2 years ago
J. King be5ad50f54 Tests for text search clause generator 2 years ago
J. King fb6e2babb9 Change some conditions to asserts 2 years ago
J. King d0f780d4e6 Unit tests for IN() clause generator 2 years ago
J. King 3aac583c00 Add Microsub to possible future APIs 2 years ago
J. King 5620070106 Update changelog 2 years ago
J. King b0517ddda1 Merge branch 'urlnorm' 2 years ago
J. King c9e86e71c4 More style fixes 2 years ago
J. King 53aa7a4d0d Style fixes 2 years ago
J. King d9c769d40e Remove Target class 2 years ago
J. King 6235cb0be6 Fix errors in last commit 2 years ago
J. King 29667464a1 Remove unnecessary namespace imports 2 years ago
J. King 0eb0fbcc0d Also normalize relative URLs 2 years ago
J. King 3439895779 Normalize URLs before establishing feed uniqueness 2 years ago
J. King a175561574 Documentation corrections 2 years ago
J. King bd71ddb929 Percent-encoding and IPv6 normalization 2 years ago
J. King 03262e7f44 Typo fix 2 years ago
J. King f159965b56 Add more cautious about using MySQL 2 years ago
J. King 3f3a571fc1 Go back to mainline Daux 2 years ago
J. King 12fe786a2f Cleanup 2 years ago
J. King d4802bcdb6 Handle IDNs 2 years ago
J. King dc750acf07 Handle ports, paths, and credentials correctly 2 years ago
J. King 13c27c2536 Start on URL normalizer 2 years ago
J. King f688155ca4 Note manual in changelog 2 years ago
J. King e5696fdf44 Merge branch 'manual' 2 years ago
J. King bab4174a17 Move database driver helps out of test cases 2 years ago
J. King fa3cfcd589 Correct error in stand-alone Nginx sample 2 years ago
J. King 5bf791709b Add an index for the "Getting Started" section; other tweaks 2 years ago
J. King 3ea2eeb817 Clarify the list of requirements is informational 2 years ago
J. King d5af499a6e Typo 2 years ago
J. King 1ce54372b7 Add a mission statement of sorts 2 years ago
J. King e122f97036 Standardize section capitalization 2 years ago
J. King d7f1963d7f Move untested clients to an untested section 2 years ago
J. King 2c1dcdcd6d Update Daux theme using custom changes for now 2 years ago
Dustin Wilson a24bfa0683 Code blocks are now properly themed 2 years ago
J. King f102992d20 Typos 2 years ago
J. King a563d174d5 Tooling documentation 2 years ago
J. King 3ff93113fa Documentation on repo structure 2 years ago
J. King 934c762cb8 Avoid problematic use of realpath 2 years ago
J. King 06b9049515 Update Daux and manual theme 2 years ago
J. King ca49785f6f Anticipate the next release of Daux 2 years ago
J. King 2a19777537 Update Daux 2 years ago
J. King 294f3648a2 Fix JS bug in Daux 2 years ago
J. King 440ea11e27 Clarify highlight.js download process 2 years ago
Dustin Wilson 705e506bfc Manual theme design iteration 2 years ago
Dustin Wilson edf92b603b Preliminary work on manual theme design 2 years ago
J. King 16530b9a66 Probably test for feed redirection bug 2 years ago
J. King cfef75ccba Don't update the feed URL when fetching 2 years ago
J. King 265f3a1b6d Correct error in Nginx example 2 years ago
J. King 262980d564 Process color() functions in stylesheet 2 years ago
J. King b8b559b0f8 Correct spuriously failing tests 2 years ago
J. King 150e301378 Fix manual cleanup 2 years ago
J. King ba05d53626 Rededicate the README file as a programmer's guide 2 years ago
J. King 987ee631ab Add manual to packaging 2 years ago
J. King f360c64327 Slight fixes to Robo and PHPUnit 2 years ago
J. King 246263fa04 Fill out general info 2 years ago
J. King e7e4c823e4 Clean up theme files after generation 2 years ago
J. King c334390db1 Robo task for rebuilding stylesheet only 2 years ago
J. King 6f8182b940 Working theme builder 2 years ago
J. King b3566f8d48 Use Robo to extract zip archive 2 years ago
J. King b514ac983b Rely on Zip extension for extracting highlight.js 2 years ago
J. King 7dee5498d8 Procedure for downloading highlight.js 2 years ago
J. King bacce0461a Fix JS dependency graph 2 years ago
J. King 8bbcae4aa4 First attempt at a custom Daux theme 2 years ago
J. King c935091d99 Fix bad link 2 years ago
J. King 3507a74ab0 Upgrade notes 2 years ago
J. King 67cdf52d3a Typo 2 years ago
J. King 899f28dda5 Documentation for service and cron 2 years ago
J. King 1ef669a464 Documentation for user management and OPML 2 years ago
J. King daa3be90c6 Grammar fix 2 years ago
J. King 91b9bf808d Correct outdated requirements 2 years ago
J. King 7f9f11bbf4 Consolidate configuration samples 2 years ago
J. King e76871c567 Changelog so far 2 years ago
J. King d9d9394c97 Information on the configuration file 2 years ago
J. King 5402a1688b Configuration sample for Apache 2 years ago
J. King 87cd879d8f More Fever details 2 years ago
J. King 580342006e Sample configuration for Nginx 2 years ago
J. King 6705ea1585 Re-organize sections 2 years ago
J. King 4fd060f001 Various documentation tweaks 2 years ago
J. King 7d82725a03 Add Liferea to clients list 2 years ago
J. King a7ae38589b Database documentation corrections 2 years ago
J. King 05fe34fec2 Sdd note about cron 2 years ago
J. King 4837aa2d3d Minor enhancements to instructions 2 years ago
J. King 5897562685 Installation instructions 2 years ago
J. King f2b456d709 Start on installation page 2 years ago
J. King 96342eccb1 Tweaks 2 years ago
J. King 6bb382e7c4 Documentation for databases 2 years ago
J. King f0c99edd22 Various corrections 2 years ago
J. King 8a184ae99d Move inline style rules out to a stylesheet 2 years ago
J. King eb120b4629 Fetch in three hours if caching is via etag 2 years ago
J. King 85fa1e48ab Add Fever to list of protocols 2 years ago
J. King f50a78eafa Add basic Fever data; expand client list 2 years ago
J. King d6220c1bbb Merge branch 'master' into manual 2 years ago
J. King c32fdf59cd Add details on HTTP authentication in client list 2 years ago
J. King 9ef4b4fdfb Update TT-RSS documentation 2 years ago
J. King 75cba3ca10 Fix fragment identifiers in manual internal links 2 years ago
J. King a467115d59 Document TTRSS authentication modes better 2 years ago
J. King 5885e14566 Add more compatible clients 3 years ago
Dustin Wilson ee8701320d Added clients to documentation 3 years ago
J. King e07253867c Add served manual to Robo tasks 3 years ago
J. King 6ce1f68ed7 Document supported protocols 3 years ago
J. King 94ba58fa60 Use latest version of Daux 3 years ago
J. King f5c5d49d97 Document SQL timeout changes 3 years ago
J. King 41daf4d176 Merge branch 'master' into manual 3 years ago
J. King 00ca726e12 Partial first draft of a manual, generated using Daux 3 years ago
J. King 4191f77094 Add daux as a dev dependency 3 years ago
J. King 6cd81e5656 Temporary list of macOS and iOS clients 3 years ago
  1. 20
      .gitignore
  2. 62
      .php_cs.dist
  3. 124
      CHANGELOG
  4. 269
      README.md
  5. 722
      RoboFile.php
  6. 50
      UPGRADING
  7. 12
      arsse.php
  8. 17
      composer.json
  9. 1038
      composer.lock
  10. 34
      dist/apache/arsse-loc.conf
  11. 11
      dist/apache/arsse.conf
  12. 9
      dist/apache/example.conf
  13. 57
      dist/arch/PKGBUILD
  14. 74
      dist/arch/PKGBUILD-git
  15. 10
      dist/arsse
  16. 15
      dist/arsse.service
  17. 8
      dist/config.php
  18. 16
      dist/debian/arsse.config
  19. 1
      dist/debian/arsse.dirs
  20. 18
      dist/debian/arsse.install
  21. 1
      dist/debian/arsse.links
  22. 29
      dist/debian/arsse.postinst
  23. 20
      dist/debian/arsse.postrm
  24. 16
      dist/debian/arsse.prerm
  25. 1
      dist/debian/compat
  26. 15
      dist/debian/config.php
  27. 32
      dist/debian/control
  28. 34
      dist/debian/copyright
  29. 44
      dist/debian/dbconfig-common.php
  30. 6
      dist/debian/lintian-overrides
  31. 40
      dist/debian/pbuilder.sh
  32. 26
      dist/debian/rules
  33. 1
      dist/debian/source/format
  34. 2
      dist/debian/source/lintian-overrides
  35. 78
      dist/init.sh
  36. 56
      dist/nginx.conf
  37. 3
      dist/nginx/arsse-fcgi.conf
  38. 49
      dist/nginx/arsse-loc.conf
  39. 17
      dist/nginx/arsse.conf
  40. 13
      dist/nginx/example.conf
  41. 11
      dist/php-fpm.conf
  42. 36
      dist/systemd/arsse-fetch.service
  43. 14
      dist/systemd/arsse.service
  44. 1
      dist/sysuser.conf
  45. 4
      dist/tmpfiles.conf
  46. 15
      docs/config.json
  47. 15
      docs/en/010_About.md
  48. 54
      docs/en/020_Getting_Started/020_Download_and_Installation/010_On_Arch_Linux.md
  49. 72
      docs/en/020_Getting_Started/020_Download_and_Installation/020_On_Debian_and_Derivatives.md
  50. 53
      docs/en/020_Getting_Started/020_Download_and_Installation/999_ On_Other_Systems.md
  51. 16
      docs/en/020_Getting_Started/020_Download_and_Installation/index.md
  52. 24
      docs/en/020_Getting_Started/040_Database_Setup/000_SQLite.md
  53. 37
      docs/en/020_Getting_Started/040_Database_Setup/010_PostgreSQL.md
  54. 42
      docs/en/020_Getting_Started/040_Database_Setup/020_MySQL.md
  55. 11
      docs/en/020_Getting_Started/040_Database_Setup/index.md
  56. 426
      docs/en/020_Getting_Started/050_Configuration.md
  57. 88
      docs/en/025_Using_The_Arsse/010_Managing_Users.md
  58. 54
      docs/en/025_Using_The_Arsse/020_Importing_and_Exporting.md
  59. 34
      docs/en/025_Using_The_Arsse/030_Other_Topics.md
  60. 9
      docs/en/025_Using_The_Arsse/index.md
  61. 60
      docs/en/030_Supported_Protocols/005_Miniflux.md
  62. 38
      docs/en/030_Supported_Protocols/010_Nextcloud_News.md
  63. 95
      docs/en/030_Supported_Protocols/020_Tiny_Tiny_RSS.md
  64. 44
      docs/en/030_Supported_Protocols/030_Fever.md
  65. 8
      docs/en/030_Supported_Protocols/index.md
  66. 472
      docs/en/040_Compatible_Clients.md
  67. 1
      docs/index.md
  68. 2
      docs/theme/arsse/arsse.css
  69. 9
      docs/theme/arsse/config.json
  70. 2
      docs/theme/arsse/daux.min.js
  71. BIN
      docs/theme/arsse/fonts/cabin-bold.woff
  72. BIN
      docs/theme/arsse/fonts/cabin-bold.woff2
  73. BIN
      docs/theme/arsse/fonts/cabin-italic.woff
  74. BIN
      docs/theme/arsse/fonts/cabin-italic.woff2
  75. BIN
      docs/theme/arsse/fonts/cabin-regular.woff
  76. BIN
      docs/theme/arsse/fonts/cabin-regular.woff2
  77. BIN
      docs/theme/arsse/fonts/leaguegothic.woff
  78. BIN
      docs/theme/arsse/fonts/leaguegothic.woff2
  79. 328
      docs/theme/src/arsse.scss
  80. 43
      lib/AbstractException.php
  81. 37
      lib/Arsse.php
  82. 314
      lib/CLI.php
  83. 127
      lib/Conf.php
  84. 5
      lib/Context/Context.php
  85. 1234
      lib/Database.php
  86. 6
      lib/Db/AbstractDriver.php
  87. 2
      lib/Db/AbstractResult.php
  88. 63
      lib/Db/AbstractStatement.php
  89. 15
      lib/Db/Driver.php
  90. 25
      lib/Db/MySQL/Driver.php
  91. 6
      lib/Db/MySQL/PDODriver.php
  92. 4
      lib/Db/MySQL/Result.php
  93. 12
      lib/Db/MySQL/Statement.php
  94. 4
      lib/Db/PDODriver.php
  95. 4
      lib/Db/PDOError.php
  96. 4
      lib/Db/PDOResult.php
  97. 6
      lib/Db/PDOStatement.php
  98. 21
      lib/Db/PostgreSQL/Driver.php
  99. 7
      lib/Db/PostgreSQL/PDODriver.php
  100. 26
      lib/Db/PostgreSQL/PDOResult.php

20
.gitignore

@ -1,13 +1,25 @@
# Temporary files and dependencies
# Temporary files
/vendor/
/vendor-bin/*/vendor
/release/
/documentation/
/manual/
/tests/coverage/
/dist/arch/arsse/
/dist/arch/src/
/dist/arch/pkg/
/dist/man/
/arsse.db*
/config.php
/.php_cs.cache
/tests/.phpunit.result.cache
# Dependencies
/vendor/
/vendor-bin/*/vendor
/node_modules
/yarn.lock
/yarn-error.log
# Windows files
@ -23,7 +35,6 @@ $RECYCLE.BIN/
.DS_Store
.AppleDouble
.LSOverride
Icon
._*
.Spotlight-V100
.Trashes
@ -34,6 +45,7 @@ Icon
*.zip
*.7z
*.tar.gz
*.tar.xz
*.tgz
*.deb
*.rpm

62
.php_cs.dist

@ -3,6 +3,7 @@
* Copyright 2017 J. King, Dustin Wilson et al.
* See LICENSE and AUTHORS files for details */
declare(strict_types=1);
namespace JKingWeb\Arsse;
const BASE = __DIR__.DIRECTORY_SEPARATOR;
@ -15,10 +16,63 @@ $paths = [
BASE."tests",
];
$rules = [
// house rules where PSR series is silent
'align_multiline_comment' => ['comment_type' => "phpdocs_only"],
'array_syntax' => ['syntax' => "short"],
'binary_operator_spaces' => [
'default' => "single_space",
'operators' => ['=>' => "align_single_space"],
],
'cast_spaces' => ['space' => "single"],
'concat_space' => ['spacing' => "none"],
'list_syntax' => ['syntax' => "short"],
'magic_constant_casing' => true,
'magic_method_casing' => true,
'modernize_types_casting' => true,
'native_function_casing' => true,
'native_function_type_declaration_casing' => true,
'no_binary_string' => true,
'no_blank_lines_after_phpdoc' => true,
'no_empty_comment' => true,
'no_empty_phpdoc' => true,
'no_extra_blank_lines' => true, // this could probably use more configuration
'no_mixed_echo_print' => ['use' => "echo"],
'no_short_bool_cast' => true,
'no_trailing_comma_in_singleline_array' => true,
'no_unneeded_control_parentheses' => true,
'no_unneeded_curly_braces' => true,
'no_unused_imports' => true,
'no_whitespace_before_comma_in_array' => true,
'normalize_index_brace' => true,
'object_operator_without_whitespace' => true,
'pow_to_exponentiation' => true,
'set_type_to_cast' => true,
'standardize_not_equals' => true,
'trailing_comma_in_multiline_array' => true,
'unary_operator_spaces' => true,
'yoda_style' => false,
// PSR standard to apply
'@PSR2' => true,
'braces' => ['position_after_functions_and_oop_constructs' => "same"],
'function_declaration' => ['closure_function_spacing' => "none"],
];
// PSR-12 rules; php-cs-fixer does not yet support PSR-12 natively
'compact_nullable_typehint' => true,
'declare_equal_normalize' => ['space' => "none"],
'function_typehint_space' => true,
'lowercase_cast' => true,
'lowercase_static_reference' => true,
'no_alternative_syntax' => true,
'no_empty_statement' => true,
'no_leading_import_slash' => true,
'no_leading_namespace_whitespace' => true,
'no_whitespace_in_blank_line' => true,
'return_type_declaration' => ['space_before' => "none"],
'single_trait_insert_per_statement' => true,
'short_scalar_cast' => true,
'visibility_required' => ['elements' => ["const", "property", "method"]],
// house exceptions to PSR rules
'braces' => ['position_after_functions_and_oop_constructs' => "same"],
'function_declaration' => ['closure_function_spacing' => "none"],
'new_with_braces' => false, // no option to specify absence of braces
];
$finder = \PhpCsFixer\Finder::create();
foreach ($paths as $path) {
@ -28,4 +82,4 @@ foreach ($paths as $path) {
$finder = $finder->in($path);
}
}
return \PhpCsFixer\Config::create()->setRules($rules)->setFinder($finder);
return \PhpCsFixer\Config::create()->setRiskyAllowed(true)->setRules($rules)->setFinder($finder);

124
CHANGELOG

@ -1,8 +1,107 @@
Version 0.10.0 (2021-07-11)
===========================
New features:
- Complete Unix manual page
- Support for running service as a forking daemon
- Respond to TERM and HUP signals when possible
Changes:
- Packages for Debian and related are now available (see manual for details)
Version 0.9.2 (2021-05-25)
==========================
Bug fixes:
- Do not fail adding users to an empty database (regression since 0.9.0)
- Cleanly ignore unknown configuration properties
- Set access mode to rw-r---- when creating SQLite databases
Changes:
- Packages for Arch Linux are now available (see manual for details)
- Numerous improvements to the manual
Version 0.9.1 (2021-03-18)
==========================
Bug fixes:
- Respond to PUT requests with 201 rather than 200 in Miniflux
Changes:
- Correct Web server configuration in manual
Version 0.9.0 (2021-03-06)
==========================
New features:
- Support for the Miniflux protocol (see manual for details)
- Support for API level 15 of Tiny Tiny RSS
- Support for feed icons in Fever
- Command-line functionality for managing user metadata
- Command-line functionality for managing Miniflux login tokens
Bug fixes:
- Further relax Fever HTTP correctness, to fix more clients
- Use icons specified in Atom feeds when available
- Do not return null as subscription unread count
- Explicitly forbid U+003A COLON and control characters in usernames, for
compatibility with RFC 7617
- Never return 401 in response to an OPTIONS request
- Accept "t" and "f" as booleans in Tiny Tiny RSS
Changes:
- Administrator account requirements for Nextcloud News functionality are
now enforced
- E_DEPRECATED is now suppressed for compatibility with PHP 8 until affected
dependencies can be replaced
Version 0.8.5 (2020-10-27)
==========================
Bug fixes:
- Relax Fever HTTP correctness, to fix some clients
- Add the QUERY_STRING FastCGI parameter to the sample Nginx configuration
Version 0.8.4 (2020-09-09)
==========================
Bug fixes:
- Don't crash updating feeds cached without ETag (regression since 0.8.3)
Version 0.8.3 (2020-02-16)
==========================
Changes:
- Officially require PHP 7.1 (accidentally required since version 0.8.0)
- Various internal changes pursuant to use of PHP 7.1
Version 0.8.2 (2019-12-07)
==========================
Bug fixes:
- Enforce foreign key constraints in MySQL
- Widen most text fields for MySQL
Version 0.8.1 (2019-10-28)
==========================
Bug fixes:
- Don't crash updating feeds cached solely via ETag
- Don't fail importing new folders from OPML files
- Don't fail adding a feed which collides with another via redirection
- Don't fail on very long text-search queries containing question marks
when using PostgreSQL or MySQL
- Specify HTTP authentication encoding as UTF-8
Changes:
- Include a user manual
- Normalize newsfeed URLs before checking for duplicates
Version 0.8.0 (2019-07-26)
==========================
New features:
- Support for the Fever protocol (see README.md for details)
- Support for the Fever protocol (see manual for details)
- Command line functionality for clearing a password, disabling the account
- Command line options for dealing with Fever passwords
- Command line functionality for importing and exporting OPML
@ -42,7 +141,7 @@ Bug fixes:
Version 0.6.1 (2019-01-23)
==========================
Bug Fixes:
Bug fixes:
- Unify SQL timeout settings
- Correctly escape shell command in subprocess service driver
- Correctly allow null time intervals in configuration when appropriate
@ -84,17 +183,17 @@ Bug fixes:
- Print command-line error messages more sensibly
- Allow exporting default configuration to standard output
- Fail correctly on authentication failure
- Prefer JSON data over GET parameters in NextCloud News
- Prefer JSON data over GET parameters in Nextcloud News
Changes:
- Simplify user management backend to minimize opportunity for bugs
- Document previously unknown NextCloud News behaviour
- Document previously unknown Nextcloud News behaviour
Version 0.4.0 (2018-10-26)
==========================
New features:
- Support for HTTP authentication in Tiny Tiny RSS (see README.md for details)
- Support for HTTP authentication in Tiny Tiny RSS (see manual for details)
- New userHTTPAuthRequired and userSessionEnforced settings
Version 0.3.1 (2018-07-22)
@ -105,7 +204,7 @@ Bug fixes:
- Minor fixes to code and documentation
Changes:
- Disable memory and time limits to avoid deadlocks with NextCloud News
- Disable memory and time limits to avoid deadlocks with Nextcloud News
Version 0.3.0 (2018-01-12)
==========================
@ -131,7 +230,7 @@ Bug fixes:
- Rename feeds correctly via TTRSS protocol
- Toggle marks correctly via TTRSS protocol
- Sort everything case-insensitively
- Be even stricter about output data types in NextCloud News
- Be even stricter about output data types in Nextcloud News
Changes:
- Do not omit read feeds from TTRSS' getCounters, to fix some clients
@ -140,13 +239,13 @@ Version 0.2.0 (2017-11-30)
==========================
New features:
- Support for the Tiny Tiny RSS protocol (see README.md for details)
- Support for the Tiny Tiny RSS protocol (see manual for details)
- Support for HTTP OPTIONS requests in all protocols
Bug fixes:
- Perform feed discovery *correctly*
- Expose the incorrectDbCharset boolean in the NextCloud News server status
- Give NextCloud News articles' guidHash attribute the correct type (string)
- Expose the incorrectDbCharset boolean in the Nextcloud News server status
- Give Nextcloud News articles' guidHash attribute the correct type (string)
Changes:
- Overhaul input type normalization to minimize bug opportunities
@ -155,11 +254,12 @@ Version 0.1.1 (2017-09-30)
==========================
Bug fixes:
- Perform feed discovery like NextCloud News does
- Perform feed discovery like Nextcloud News does
- Respond correctly to HEAD requests
- Various minor fixes
Version 0.1.0 (2017-08-29)
==========================
Initial release
New features:
- Initial release

269
README.md

@ -1,235 +1,126 @@
# The Advanced RSS Environment
The Arsse is a news aggregator server which implements multiple synchronization protocols. Unlike most other aggregator servers, The Arsse does not include a Web front-end (though one is planned as a separate project), and it relies on existing protocols to maximize compatibility with existing clients. Supported protocols are:
The Arsse is a news aggregator server, written in PHP, which implements multiple synchronization protocols. Unlike most other aggregator servers, The Arsse does not include a Web front-end (though one is planned as a separate project), and it relies on existing protocols to maximize compatibility with existing clients.
- [NextCloud News][NCNv1]
- [Tiny Tiny RSS][TTRSS]
- [Fever][Fever]
Information on how to install and use the software can be found in [the manual](https://thearsse.com/manual/), which is available online as well as with every copy of the software. This readme file instead focuses on how to set up a programming environment to modify the source code.
At present the software should be considered in an "alpha" state: many features one would expect from other similar software have yet to be implemented. Areas of future work include:
# Installing from source
- Providing more sync protocols (Google Reader, others)
- Better packaging and configuration samples
- A user manual
The main repository for The Arsse can be found at [code.mensbeam.com](https://code.mensbeam.com/MensBeam/arsse/), with a mirror also available [at GitHub](https://github.com/mensbeam/arsse/). The GitHub mirror does not accept bug reports, but the two should otherwise be equivalent.
## Requirements
[Composer](https://getcomposer.org/) is required to manage PHP dependencies. After cloning the repository or downloading a source code tarball, running `composer install` will download all the required dependencies, and will advise if any PHP extensions need to be installed. If not installing as a programming environment, running `composer install -o --no-dev --no-scripts` is recommended.
The Arsse has the following requirements:
# Repository structure
- A Linux server utilizing systemd and Nginx (tested on Ubuntu 16.04)
- PHP 7.0.7 or later with the following extensions:
- [intl](http://php.net/manual/en/book.intl.php), [json](http://php.net/manual/en/book.json.php), [hash](http://php.net/manual/en/book.hash.php), and [dom](http://php.net/manual/en/book.dom.php)
- [simplexml](http://php.net/manual/en/book.simplexml.php), and [iconv](http://php.net/manual/en/book.iconv.php) (for picoFeed)
- One of:
- [sqlite3](http://php.net/manual/en/book.sqlite3.php) or [pdo_sqlite](http://php.net/manual/en/ref.pdo-sqlite.php) for SQLite databases
- [pgsql](http://php.net/manual/en/book.pgsql.php) or [pdo_pgsql](http://php.net/manual/en/ref.pdo-pgsql.php) for PostgreSQL 10 or later databases
- [mysqli](http://php.net/manual/en/book.mysqli.php) or [pdo_mysql](http://php.net/manual/en/ref.pdo-mysql.php) for MySQL 8.0.7 or later databases
- Privileges to create and run daemon processes on the server
## Library code
## Installation
The code which runs The Arsse, contained in `/arsse.php`, is only a short stub: the application itself is composed of the classes found under `/lib/`, with the main ones being:
At present, installation of The Arsse is rather manual. We hope to improve this in the future, but for now the steps below should help get you started. The instructions and configuration samples assume you will be using Ubuntu 16.04 (or equivalent Debian) and Nginx; we hope to expand official support for different configurations in the future as well.
| Path | Description |
|----------------|---------------------------------------------------------|
| `CLI.php` | The command-line interface, including its documentation |
| `Conf.php` | Configuration handling |
| `Database.php` | High-level database interface |
| `Db/` | Low-level database abstraction layer |
| `REST/` | Protocol implementations |
| `REST.php` | General protocol handler for CORS, HTTP auth, etc. |
| `Arsse.php` | Singleton glueing the parts together |
### Initial setup
The `/lib/Database.php` file is the heart of the application, performing queries on behalf of protocol implementations or the command-line interface.
1. Extract the tar archive to `/usr/share`
2. If desired, create `/usr/share/arsse/config.php` using `config.defaults.php` as a guide. The file you create only needs to contain non-default settings. The `userPreAuth` setting may be of particular interest
3. Copy `/usr/share/arsse/dist/arsse.service` to `/lib/systemd/system`
4. In a terminal, execute the following to start the feed fetching service:
Also necessary to the functioning of the application is the `/vendor/` directory, which contains PHP libraries which The Arsse depends upon. These are managed by Composer.
``` sh
sudo systemctl enable arsse
sudo systemctl start arsse
```
## Supporting data files
### Configuring the Web server and PHP
The `/locale/` and `/sql/` directories contain human-language files and database schemata, both of which are occasionally used by the application in the course of execution. The `/www/` directory serves as a document root for a few static files to be made available to users by a Web server.
Sample configuration parameters for Nginx can be found in `arsse/dist/nginx.conf` and `arsse/dist/nginx-fcgi.conf`; the samples assume [a server group](http://nginx.org/en/docs/http/ngx_http_upstream_module.html#upstream) has already been defined for PHP. How to configure an Nginx service to use PHP and install the required PHP extensions is beyond the scope of this document, however.
The `/dist/` directory, on the other hand, contains general and system-specific build files, and samples of configuration for Web servers and other system integration. These are not used by The Arsse itself, but are used during the process of preparing new releases for supported operating systems.
### Adding users
## Documentation
The Arsse includes a `user add <username> [<password>]` console command to add users to the database; for example running `php arsse.php user add admin password` will add the user `admin` with the password `pasword` to the database. Other commands for managing users are also available.
The source text for The Arsse's manual can be found in `/docs/`, with pages written in [Markdown](https://spec.commonmark.org/current/) and converted to HTML [with Daux](#building-the-manual). If a static manual is generated its files will appear under `/manual/`.
Alternatively, if the Web server is configured to handle authentication, you may set the configuration option `userPreAuth` to `true` and The Arsse will defer to the Web server and automatically add any missing users as it encounters them.
The Arsse also has a UNIX manual page, also written in Markdown, which can be found under `/manpages/`. [Pandoc](https://pandoc.org/) is needed to convert it to the appropriate format, with the results stored under `/dist/man/`.
Console commands are also available to import from and export to OPML files. Consult `php arsse.php --help` for full details.
In addition to the manuals the files `/README.md` (this file), `/CHANGELOG`, `/UPGRADING`, `/LICENSE`, and `/AUTHORS` also document various things about the software, rather than the software itself.
## Installation from source
## Tests
If installing from the Git repository rather than a download package, you will need to follow extra steps before the instructions in the section above.
The `/tests/` directory contains everything related to automated testing. It is itself organized as follows:
First, you must install [Composer] to fetch required PHP libraries. Once Composer is installed, dependencies may be downloaded with the following command:
| Path | Description |
|--------------------|------------------------------------------------------------------------------------|
| `cases/` | The test cases themselves, organized in roughly the same structure as the code |
| `coverage/` | (optional) Generated code coverage reports |
| `docroot/` | Sample documents used in some tests, to be returned by PHP's basic HTTP server |
| `lib/` | Supporting classes which do not contain test cases |
| `bootstrap.php` | Bootstrap script, equivalent to `/arsse.php`, but for tests |
| `phpunit.dist.xml` | PHPUnit configuration file |
| `server.php` | Simple driver for the PHP HTTP server used during testing |
``` sh
php composer.phar install -o --no-dev --no-scripts
```
PHPUnit's configuration can be customized by copying its configuration file to `/tests/phpunit.xml` and modifying the copy accordingly.
Second, you may wish to create an example configuration file using the following command:
## Tooling
``` sh
php ./arsse.php conf save-defaults "./config.defaults.php"
```
The `/vendor-bin/` directory houses the files needed for the tools used in The Arsse's programming environment. These are managed by the Composer ["bin" plugin](https://github.com/bamarni/composer-bin-plugin) and are not used by The Arsse itself. The following files are also related to various programming tools:
## License
| Path | Description |
|-------------------|----------------------------------------------------------|
| `/.gitattributes` | Git settings for handling files |
| `/.gitignore` | Git file exclusion patterns |
| `/.php_cs.dist` | Configuration for [php-cs-fixer](https://cs.symfony.com) |
| `/.php_cs.cache` | Cache for php-cs-fixer |
| `/composer.json` | Configuration for Composer |
| `/composer.lock` | Version synchronization data for Composer |
| `/RoboFile.php` | Task definitions for [Robo](https://robo.li/) |
| `/robo` | Simple wrapper for executing Robo on POSIX systems |
| `/robo.bat` | Simple wrapper for executing Robo on Windows |
The Arsse is made available under the permissive MIT license. See the `LICENSE` and `AUTHORS` files included with the distribution or source code for exact legal text and copyright holders. Dependencies included in the distribution may be governed by other licenses.
In addition the files `/package.json` and `/postcss.config.js` as well as the `/node_modules/` directory are used by [Yarn](https://yarnpkg.com/) and [PostCSS](https://postcss.org/) when modifying the stylesheet for The Arsse's manual.
## Contributing
# Common tasks