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
This commit is contained in:
parent
6ccd564d56
commit
50facf52de
23 changed files with 281 additions and 12 deletions
|
|
@ -5,8 +5,10 @@ namespace App\Jobs;
|
|||
use App\Models\Like;
|
||||
use GuzzleHttp\Client;
|
||||
use Illuminate\Bus\Queueable;
|
||||
use Thujohn\Twitter\Facades\Twitter;
|
||||
use Illuminate\Queue\SerializesModels;
|
||||
use Illuminate\Queue\InteractsWithQueue;
|
||||
use GuzzleHttp\Exception\ClientException;
|
||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||
use Illuminate\Foundation\Bus\Dispatchable;
|
||||
use Jonnybarnes\WebmentionsParser\Authorship;
|
||||
|
|
@ -35,6 +37,32 @@ class ProcessLike implements ShouldQueue
|
|||
*/
|
||||
public function handle(Client $client, Authorship $authorship)
|
||||
{
|
||||
if ($this->isTweet($this->like->url)) {
|
||||
$tweet = Twitter::getOembed(['url' => $this->like->url]);
|
||||
$this->like->author_name = $tweet->author_name;
|
||||
$this->like->author_url = $tweet->author_url;
|
||||
$this->like->content = $tweet->html;
|
||||
$this->like->save();
|
||||
|
||||
//POSSE like
|
||||
try {
|
||||
$response = $client->request(
|
||||
'POST',
|
||||
'https://brid.gy/publish/webmention',
|
||||
[
|
||||
'form_params' => [
|
||||
'source' => $this->like->url,
|
||||
'target' => 'https://brid.gy/publish/twitter',
|
||||
],
|
||||
]
|
||||
);
|
||||
} catch(ClientException $exception) {
|
||||
//no biggie
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
$response = $client->request('GET', $this->like->url);
|
||||
$mf2 = \Mf2\parse((string) $response->getBody(), $this->like->url);
|
||||
if (array_has($mf2, 'items.0.properties.content')) {
|
||||
|
|
@ -51,9 +79,17 @@ class ProcessLike implements ShouldQueue
|
|||
$this->like->author_name = $author;
|
||||
}
|
||||
} catch (AuthorshipParserException $exception) {
|
||||
return;
|
||||
return 1;
|
||||
}
|
||||
|
||||
$this->like->save();
|
||||
}
|
||||
|
||||
private function isTweet(string $url): bool
|
||||
{
|
||||
$host = parse_url($url, PHP_URL_HOST);
|
||||
$parts = array_reverse(explode('.', $host));
|
||||
|
||||
return $parts[0] === 'com' && $parts[1] === 'twitter';
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue