Commit graph jonnybarnes.uk/app/Jobs
Author SHA1 Message Date
31c49ac3fc
Adopt Laravel's Image facade for media processing, upgrade Intervention to v4
Laravel 13's Image facade wraps Intervention Image v4 internally, so
switching our upload width probe and resize job/command to it required
bumping intervention/image ^3 -> ^4 (and its intervention/gif ^5
dependency). Removes our own ImageManager container binding and
config/image.php in favour of Laravel's built-in driver resolution.

Also fixes a latent filename mismatch in ProcessMediaJobTest that Pint's
stricter typing on the new Image API turned into a hard TypeError, and
tidies config/flare.php to use imported class names instead of FQCNs.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018Sorsgn85nw7uQyRMNvzyD
2026-08-01 17:07:38 +01:00
e08763c526
Migrate outbound HTTP calls from Guzzle to the Http facade
Replaces every raw GuzzleHttp\Client usage (Nominatim, web.archive.org,
webmention fetch/discover/send, Bridgy syndication, IndieAuth client_id
lookup, contact avatar/h-card fetch, profile image download, and the
CloudConvert screenshot pipeline) with Illuminate\Support\Facades\Http,
and enables Http::preventStrayRequests() globally in tests so any
un-faked outbound call now fails loudly instead of silently hitting the
network.

The CloudConvert retry-until-finished middleware in AppServiceProvider
is replaced by a plain polling loop in SaveScreenshot, which also fixes
a latent bug where the old middleware decoded a response object instead
of its body. Bridgy syndication jobs keep their tries=1/no-retry
semantics unchanged to avoid duplicate publishes. Guzzle's PSR-7 helpers
(Header, UriResolver, Utils) stay in SendWebMentions since Http has no
equivalent for them.

Every affected test file's Guzzle MockHandler/HandlerStack boilerplate
is replaced with Http::fake()/Http::sequence().

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01P8j7cJhCiYDsGUgB7obKNQ
2026-07-26 09:12:01 +01:00
db09718a96
Switch Bridgy syndication from Micropub to webmention
Bridgy's Micropub endpoint required per-silo access tokens and posted
raw markdown content directly. Switch to Bridgy's webmention publish
endpoint instead: POST source/target to /publish/webmention and let
Bridgy re-fetch the note page, which now carries hidden verification
links for silos not yet syndicated. Removes the now-unused
config/bridgy.php and BRIDGY_MASTODON_TOKEN env var, and caps both
jobs to a single try since retries would send Bridgy a duplicate
publish webmention.
2026-07-14 17:36:25 +01:00
4569abc351
Add command to reprocess existing media with correct aspect-ratio scaling
ProcessMedia was using resize(), which distorts images that aren't the
target aspect ratio; scale() preserves it. Existing medium/small
variants generated before this fix need regenerating, so add an
artisan command (with --dry-run) to do that, plus feature tests.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-02 20:00:30 +01:00
9f012b01e4
Upgrade to Laravel 13 2026-04-07 09:01:19 +01:00
76db869af5
Allow files to be added to notes
This is specifically when a Micropub client is using the JSON syntax and
initially uploads the photo via the media endpoint
2025-12-27 17:58:43 +00:00
7a58287b34
Remove references to short domain 2025-04-06 17:22:36 +01:00
1dfa17abca
Update Laravel to v12
Some checks failed
PHP Unit / PHPUnit test suite (pull_request) Has been cancelled
Laravel Pint / Laravel Pint (pull_request) Has been cancelled
2025-04-01 21:10:30 +01:00
d7da42b626
Host images locally
Some checks failed
PHP Unit / PHPUnit test suite (pull_request) Has been cancelled
Laravel Pint / Laravel Pint (pull_request) Has been cancelled
We don’t need the complexity of S3. Sepcifically the complexity of
managing my own AWS account, flysystem made the Laravel side easy.

A command is added to copy the the S3 files over to local storage.
2024-10-25 20:40:52 +01:00
8e077045d2
Update Laravel Pint
Also fixes some of the filesaftersome new rules were added to the
default pint configuration.
2024-07-13 10:55:19 +01:00
1f9a8fee99
Laravel Pint fixes 2024-03-23 21:24:33 +00:00
cbbe87e23c
Setup support for syndicating to Bluesky 2024-03-23 21:19:54 +00:00
12d3da5fdb
Webmentions were being saved with wrong model relationship
Fix the process webmention job to use the correct model relationship,
add an artisan command to update existing webmentions in the database to
use the correct model relationship.
2024-03-22 17:43:23 +00:00
659bc57e24
Fix issue discovering webmentions endpoints for some sites
The Guzzle provided Header::parse does not like commas in URLs
2024-03-02 10:16:05 +00:00
6d5b298837
Update Intervention/Image class to v3 2023-12-17 13:56:10 +00:00
3a681c0a44
Initial work with Psalm reporting 2023-06-25 14:18:40 +01:00
dabd03f556
refactor: Refactor and add tests for SaveProfileImage feature
- Add error handling checks for photo and home
- Add 3 new tests and modify an existing test for SaveProfileImageJob
- Test getting URL from photo object if alt text is provided
- Test using the first URL if multiple homepages are provided
2023-06-17 19:48:27 +01:00
bebbfec510
chore: Refactor configuration files based on Laravel 10 skeleton 2023-06-09 18:31:53 +01:00
88e1246f8b
Remove Twitter POSSE support 2023-04-08 13:25:36 +01:00
9743ba8eed
Fix some Laravel Pint issues 2023-02-18 09:53:57 +00:00
16b120bc73
Upgrade to Laravel 10 2023-02-18 09:34:57 +00:00
6d6e719f52
Update Laravel Pint, fix files in codebase 2023-02-16 16:57:06 +00:00
f2c8f04c2f
Laravel Pint fixes
Also remove a file that wasn’t needed
2023-02-04 10:30:49 +00:00
f38235561f
Add tests for screenshots 2023-02-04 10:22:00 +00:00
c410e344a0
Begin work on unit tests 2023-01-20 16:02:04 +00:00
45c71bbb47
Setup CloudConvert to take webpage screenshots 2023-01-02 09:39:23 +00:00
6c43363c78
Make some tweaks around dealing with replies 2022-12-03 20:12:39 +00:00
9fcd16ec16
Handle finding webmention targets better
If a site does not support webmentions, my code should not error
2022-11-09 19:32:22 +00:00
6f6abae258
When posting to Mastodon send the original markdown 2022-11-06 10:16:18 +00:00
faeceea995
Fix some Laravel Pint issues
Also fix a typo in a comment, also add declare strict types
2022-11-04 15:31:07 +00:00
72cb4fd7eb
Allow notes to be syndicated to Mastodon 2022-11-04 15:23:31 +00:00
e36f15d391
Fix files with Laravel Pint 2022-07-09 10:08:26 +01:00
48d1c9a00b Improve tests 2022-05-14 17:48:53 +01:00
76dfe41e8c Update guzzle psr7 calls
The prior methods used have been deprecated and removed from upstream
project.
2021-10-24 16:55:30 +01:00
d5bbed1eac Rename the tests to pass phpcs checks 2021-03-17 18:38:18 +00:00
631826923a Use Laravel’s Array helper to ease accessing data in authorship array 2020-09-13 17:56:29 +01:00
20a3048aee Some more phpcs fixes 2019-10-27 20:55:46 +00:00
ed2b83fba7 Fix typehint to allow null to be passed 2019-10-27 20:17:51 +00:00
2ed4cc93a1 Apply fixes from StyleCI 2019-10-27 19:34:54 +00:00
ef03d2209f Fixing various phpcs issues 2019-10-27 19:31:33 +00:00
9de24c2740 Apply fixes from StyleCI 2019-10-27 16:29:15 +00:00
b2b6693aec Ooof, got the dependencies all up to date as well
Lots of tests needed fixing, but it seemed to be a whitespace parsing
error in the view files 🤔
2019-10-27 16:15:14 +00:00
fb44afd7ad Remove deprecated global helper functions (issue #99)
Squashed commit of the following:

commit 8ff29a8ab51ee5057ef786614ab95b005bf8918c
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Fri Feb 1 18:42:05 2019 +0000

    Replace deprecated global helpers with their facade equivalents
2019-02-01 18:49:35 +00:00
ffa9756cb7 Improve tests feature
Squashed commit of the following:

commit 13ac266b79b496d62291a07f4f5f81940d217ccb
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Sun Jan 20 17:17:25 2019 +0000

    test on 7.2 and 7.3, download phpcs directly from github

commit 692cc7dfe165a7ecaf9dba9498c868193b749aee
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Sun Jan 20 17:10:16 2019 +0000

    Drop code-coverage for now, PHP7.3 and Xdebug aren’t playing ball at the moment

commit 03d262c47af79cfa0ce4937cc8e196e3b6f5877a
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Sun Jan 20 17:09:48 2019 +0000

    Use an excewption when generating twitter content of a note

commit e2df1e5cebebd30473787c924f495a5687145fb8
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Sun Jan 20 17:08:48 2019 +0000

    Updating dependencies

commit 8008eb53854eddefaa4e302f95353c626b3062ef
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Sun Nov 25 16:09:32 2018 +0000

    Fix S3 URLs to use config settings

commit 941864b9d6c6cb9d87b4b95385ada67f55de837c
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Sat Nov 24 21:28:19 2018 +0000

    Increase code-coverage in the notes unit tests

commit 4a253d3c5c1854dd8ea01d975bb8e709ae697393
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Tue Nov 20 18:26:59 2018 +0000

    Don’t create new notes in null note test

commit 9616cd2b66bc6f26b2d3266f95cf1be894aaed99
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Tue Nov 20 18:23:05 2018 +0000

    Use Laravel’s FileSystem class to better deal with files/folders in the tearDown methods

commit 294f7961ec03d26cc45845632a97b2521a58f403
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Tue Nov 20 18:22:28 2018 +0000

    Add more unit tests for the geocoding method

commit 43328e3ce249fe8df95770f1275cab97f4ca88bc
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Tue Nov 20 18:18:36 2018 +0000

    Improve the revereseGeoCode method

commit 84424e1d8274bfe62bc5f0a7556e5732bf094178
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Tue Nov 20 15:03:14 2018 +0000

    Test that empty notes are saved to the DB as null

commit 77fd87b81323457ce6f578ed7f359ceb6b3ce6b6
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Sat Oct 13 20:20:03 2018 +0100

    Increase test coverage to 100% for the WebMention model

commit 4b6da595dc1efc025470279e9012c2a2a90ec3ef
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Sat Oct 13 18:49:33 2018 +0100

    Improving test coverage

commit 895061b8dd0ddf4fbc321e4f371ea148d9b3007f
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Sat Oct 13 17:19:35 2018 +0100

    Improvements in Like tests and code, and WebMentions processing tests and code

commit f9a8b96f2c8b1ef22e97d3dc634ee76d97c25cb5
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Fri Oct 12 22:43:49 2018 +0100

    Don’t track the coverage files in git
2019-01-20 17:35:58 +00:00
151072cd1b Squashed commit of the following:
commit 63912e4c20fc9b3d49670a0f547137d59aaa2ef4
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Fri Oct 12 19:18:21 2018 +0100

    Remove facebook syndication code
2018-10-12 19:38:08 +01:00
8b5b3204c1 Feature, upload media to S3 as part of micropub request
Squashed commit of the following:

commit 1f1175a4d944f573868dc2282e62fbd1b4e88b6a
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Sun Apr 22 18:46:02 2018 +0100

    Fix file upload tests to reflect that we have now inlined the file upload to S3

commit 40d2af5b76e8f390d0275830390dd89ab4d12f54
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Sun Apr 22 18:45:20 2018 +0100

    Markup the bookmrark test that uses puppeteer, doesn’t play nicely with my old MacBook and let’s me skip that one test

commit bbae1557c87d4d8f3b324abda1a6b8bf66acb8d8
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Sun Apr 22 17:56:25 2018 +0100

    Inline the S3 upload for media

    Smaller images can then be uploaded by the ProcessMedia job. Inline-ing
    the upload prevents an S3 URL being sent that will initially 404.
2018-04-22 18:53:26 +01:00
7262f6a550 Fix uploading files to S3 2018-01-27 21:52:24 +00:00
e4fe2ecde3 Struct Types
Squashed commit of the following:

commit 74ed84617fcbecf661695763323e50d049a88db7
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Mon Jan 15 12:46:29 2018 +0000

    Test passes so remove the dump statement

commit a7d3323be02da64f76e8ec88713e3de84a13ded7
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Mon Jan 15 12:40:35 2018 +0000

    Values with spaces need to be quoted

commit 58a120bb238f14346793c388b948b7351d3b51fd
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Mon Jan 15 12:37:23 2018 +0000

    We need a diplay name for the tests to work now we are using strict type checking

commit b46f177053bd697db9a4835d073f2f37e088b26f
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Mon Jan 15 12:31:29 2018 +0000

    Get travis to show more info about failing test

commit 60323f3ce5a0561329a1721ee94821571cdcc86a
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Mon Jan 15 12:23:27 2018 +0000

    Remove un-used namnepsace imports

commit 096d3505920bc94ff8677c77430eca0aae0be58a
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Mon Jan 15 12:21:55 2018 +0000

    we need php7.2 for object type-hint

commit bb818bc19c73d02d510af9f002199f5718a54608
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Mon Jan 15 12:15:48 2018 +0000

    Added lots of strict_types
2018-01-15 14:02:13 +00:00
ba71b1bc77 Apply fixes from StyleCI 2018-01-12 21:26:15 +00:00
50facf52de Improve likes
Squashed commit of the following:

commit 4dc223939c31fd5771b9e6895c8e9e0c88fc6663
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Fri Jan 12 21:19:29 2018 +0000

    update changelog

commit 7b15937a097c12145e60dfec67cad19e385fcb9f
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Fri Jan 12 21:19:13 2018 +0000

    re-compile frontend assets

commit f533d5e463d06e158b7bedbfd3602af70113acbc
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Fri Jan 12 21:14:11 2018 +0000

    Only use “by” if there is an author name to show

commit 7b067fd559ce2f4a82ad747a3ebd3474e221169c
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Fri Jan 12 21:12:27 2018 +0000

    Some styles for the likes page

commit 039523f595115c1329a3939837ebf589184de995
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Fri Jan 12 21:11:44 2018 +0000

    Add a like with just the url to the seeder

commit c43d4b07936fceeeb59460399a20abec7a9bc3ae
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Fri Jan 12 20:44:46 2018 +0000

    Add test for the admin cp part of likes

commit eb115fa481319e98bf54a9fa6aa682479e56787d
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Fri Jan 12 20:44:28 2018 +0000

    Catch 400 errors from a POSSE attempt, its not that important

commit 79f7aa7807534eb76ae57dee72002f99249255b0
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Fri Jan 12 20:01:19 2018 +0000

    Better fetch data for tweets, attempt to POSSE them back to twitter

commit 1ad078929f918c00db550c0af315677cd991dad6
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Fri Jan 12 20:00:40 2018 +0000

    Only filter the like content when its actual HTML

commit 10f1ba430d4d5262d28e24ca0413474900ea6145
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Fri Jan 12 19:59:57 2018 +0000

    Add link to POSSE to twitter via bridgy

commit 7f8e5c6dd39716fb51b5766de2f24c7e01355dbb
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Fri Jan 12 19:59:22 2018 +0000

    add links in the admin welcome page for likes

commit ebe80b07759881ffb98f8f5117ef25310aaabe6c
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Fri Jan 12 18:22:35 2018 +0000

    Add the admin routes

commit 5e150a7c39f5d71688b7ef14c924d09ba2ec82ba
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Fri Jan 12 18:22:15 2018 +0000

    Add admin functionality for likes
2018-01-12 21:19:42 +00:00