* [FeedMerge] fix: sort items by timestamp descending
* [FeedMerge] fix: fetch 10 most recent items
This fixes a bug where the bridge e.g. fetched 10 items from the first feed and then nothing from the rest
* refactor: fix exception handling
The removed catch is never uses in php versions above 7.
The need for multiple catch statements like this is to support both php 5 and 7.
* remove traces of old exception handling
* add typehints
* dont treat exception code 0 specially
* Use ActivityPub outbox for Mastodon (et al.) feed
closes#2754
* Better description for Mastodon bridge
I mean I could rename it to ActivityPub bridge if the maintainer so pleases
* [Mastodon] Please the lint
* [Mastodon] address feedback
* [Mastodon] fix link, address spelling case bug
* refactor
* [Mastodon] add username cache, fix try-catch, rename
* [Mastodon] shorten description to satisfy the lint
* [Mastodon] address feedback
* [Mastodon] support Secure Mode instances
* [Mastodon] add config documentation
* [Mastodon] update docs
Co-authored-by: Dag <me@dvikan.no>
We are setting xmlns attributes at the root element but PHP would
still attach redundant ones to the DOM elements created with `createElementNS`.
That was because PHP reconciles namespace attributes when appending elements to DOM
but since we previously only attached the elements after all children were attached,
the reconciliation algorithm was not able to see the root element’s attributes.
To fix this, let’s attach each element to its parent immediately after it is created.
There is a lot of redundancy. Let’s not repeat ourselves.
Unfortunately, since we do not install PHPUnit as a project dependency on CI,
it does not use the composer’s PSR-4 autoloader and the tests are unable to find
the `BaseFormatTest` class.
Until we resolve that, let’s load the class explicitly.
the date handling
The deal posting date logic was wrong, and leaded to warnings and
notice. Now, only the feed with the deal sorted by date contains date
(the feed sorted by hottest deal does not contain a date anymore,
because there are no deal date in this case).
We cannot yet switch to namespaces for RSS-Bridge itself but for tests we are not limited by BC.
It does not actually do anything since PHPUnit will search for the test files without the help of the autoloader but it still makes the directory cleaner.