We should be parsing the saved HTML now
This commit is contained in:
parent
7abf8383de
commit
7cfcc0f899
1 changed files with 70 additions and 0 deletions
70
app/Console/Commands/ParseCachedWebMentions.php
Normal file
70
app/Console/Commands/ParseCachedWebMentions.php
Normal file
|
@ -0,0 +1,70 @@
|
|||
<?php
|
||||
|
||||
namespace App\Console\Commands;
|
||||
|
||||
use App\WebMention;
|
||||
use Illuminate\Console\Command;
|
||||
use Illuminate\FileSystem\FileSystem;
|
||||
|
||||
class ParseCachedWebMentions extends Command
|
||||
{
|
||||
/**
|
||||
* The name and signature of the console command.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $signature = 'webmentions:parsecached';
|
||||
|
||||
/**
|
||||
* The console command description.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $description = 'Re-parse the cached webmention’s HTML';
|
||||
|
||||
/**
|
||||
* Create a new command instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
/**
|
||||
* Execute the console command.
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function handle(FileSystem $filesystem)
|
||||
{
|
||||
$HTMLfiles = $filesystem->allFiles(storage_path() . '/HTML');
|
||||
foreach($HTMLfiles as $file) {
|
||||
$filepath = $file->getPathname();
|
||||
$html = $filesystem->get($filepath);
|
||||
$url = $this->URLFromFilename($filepath);
|
||||
$microformats = \Mf2\parse($html, $url);
|
||||
$webmention = WebMention::where('source' $url)->firstOrFail();
|
||||
$webmention->mf2 = json_encode($microformats);
|
||||
$webmention->save();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine the source URL from a filename.
|
||||
*
|
||||
* @param string
|
||||
* @return string
|
||||
*/
|
||||
private function URLFromFilename($filepath)
|
||||
{
|
||||
$dir = mb_substr($filepath, mb_strlen(storage_path() . '/HTML/'));
|
||||
$url = str_replace(['http/', 'https/'], ['http://', 'https://'], $dir);
|
||||
if (mb_substr($url, -1) == 'index.html') {
|
||||
$url = mb_substr($url, 0, mb_strlen($url) - 10);
|
||||
}
|
||||
|
||||
return $url;
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue