Files
einundzwanzig-portal/app/Console/Commands/Parse/ImportLibraryItems.php
Benjamin Takats b9a71320fb lesestoff import
2023-01-21 00:51:06 +01:00

143 lines
15 KiB
PHP

<?php
namespace App\Console\Commands\Parse;
use App\Models\Lecturer;
use App\Models\Library;
use App\Models\LibraryItem;
use Illuminate\Console\Command;
class ImportLibraryItems extends Command
{
/**
* The name and signature of the console command.
* @var string
*/
protected $signature = 'import:l';
/**
* The console command description.
* @var string
*/
protected $description = 'Command description';
/**
* Execute the console command.
* @return int
*/
public function handle()
{
$items = [
'https://aprycot.media/blog/weg-zum-bitcoin-standard/' => 'Auf dem Weg zu einem Bitcoin-Standard || Gigi',
'https://europeanbitcoiners.com/warum-wir-eine-konstante-geldmenge-benoetigen/' => 'B ~ C: Warum wir eine konstante Geldmenge benötigen || Aleksander Svetski',
'https://aprycot.media/blog/bitcoin-bringt-das-in-ordnung/' => 'Bitcoin bringt das in Ordnung || Parker Lewis',
'https://europeanbitcoiners.com/orange-new-deal/' => 'Bitcoin: der Orange New Deal || Andrew M. Baily & Bradley Rettler',
'https://aprycot.media/blog/bitcoin-die-welt-wacht-auf/' => 'Bitcoin - die Welt wacht auf || Gigi',
'https://aprycot.media/blog/bitcoin-ist-einer-fuer-alle/' => 'Bitcoin ist \'Einer für Alle\' || Parker Lewis',
'https://europeanbitcoiners.com/bitcoin-ist-energie-die-durch-die-zeit-reisen-kann/' => 'Bitcoin ist Energie, die durch die Zeit reisen kann || Michael Dunworth',
'https://aprycot.media/blog/bitcoin-ist-hoffnung/' => 'Bitcoin ist Hoffnung || Robert Breedlove',
'https://aprycot.media/blog/bitcoin-ist-schlechter-ist-besser/' => 'Bitcoin ist “Schlechter ist Besser” || Gwern Branwen',
'https://blog.karlklawatsch.com/bitcoin/bitcoin-ist-zeit/' => 'Bitcoin ist Zeit || Gigi',
'https://aprycot.media/blog/bitcoin-ist-antifragil/' => 'Bitcoin ist antifragil || Parker Lewis',
'https://aprycot.media/blog/bitcoin-ist-die-grosse-entfinanzialisierung/' => 'Bitcoin ist die große Entfinanzialisierung || Parker Lewis',
'https://aprycot.media/blog/bitcoin-ist-nicht-durch-nichts-gedeckt/' => 'Bitcoin ist durch nichts gedeckt || Parker Lewis',
'https://aprycot.media/blog/bitcoin-ist-ein-aufschrei/' => 'Bitcoin ist ein Aufschrei || Parker Lewis',
'https://aprycot.media/blog/bitcoin-ist-ein-trojanisches-pferd-der-freiheit/' => 'Bitcoin ist ein trojanisches Pferd der Freiheit || Alex Gladstein',
'https://aprycot.media/blog/bitcoin-ist-gesunder-menschenverstand/' => 'Bitcoin ist gesunder Menschenverstand || Parker Lewis',
'https://aprycot.media/blog/bitcoin-ist-kein-schneeballsystem/' => 'Bitcoin ist kein Schneeballsystem || Parker Lewis',
'https://aprycot.media/blog/bitcoin-ist-keine-energieverschwendung/' => 'Bitcoin ist keine Energieverschwendung || Parker Lewis',
'https://aprycot.media/blog/bitcoin-ist-nicht-zu-langsam/' => 'Bitcoin ist nicht zu langsam || Parker Lewis',
'https://aprycot.media/blog/bitcoin-ist-nicht-zu-volatil/' => 'Bitcoin ist nicht zu volatil || Parker Lewis',
'https://aprycot.media/blog/bitcoin-kann-nicht-kopiert-werden/' => 'Bitcoin kann nicht kopiert werden || Parker Lewis',
'https://aprycot.media/blog/bitcoin-kann-nicht-verboten-werden/' => 'Bitcoin kann nicht verboten werden || Parker Lewis',
'https://aprycot.media/blog/bitcoin-macht-anderes-geld-ueberfluessig/' => 'Bitcoin macht anderes Geld überflüssig || Parker Lewis',
'https://aprycot.media/blog/bitcoin-nicht-blockchain/' => 'Bitcoin, nicht Blockchain || Parker Lewis',
'https://medium.com/aprycotmedia/bitcoins-anpflanzung-71ea533b89c5' => 'Bitcoins Anpflanzung || Dan Held',
'https://aprycot.media/blog/bitcoins-lebensraeume/' => 'Bitcoins Lebensräume || Gigi',
'https://aprycot.media/blog/bitcoins-einsatz-vor-ort-venezuela/' => 'Bitcoins\'s Einsatz vor Ort - Venezuela || Gigi',
'https://europeanbitcoiners.com/bitcoin-und-psychdelika/' => 'Bitcoin und Psychedelika || Fractalencrypt',
'https://europeanbitcoiners.com/bitcoin-und-die-kardinaltugenden-wie-das-kaninchenloch-tugendhaftes-verhalten-fordert/' => 'Bitcoin und die Kardinaltugenden: wie der Kaninchenbau tugendhaftes Verhalten fördert || Mitchell Askew',
'https://aprycot.media/blog/bitcoin-und-die-amerikanische-idee/' => 'Bitcoin und die amerikanische Idee || Parker Lewis',
'https://europeanbitcoiners.com/bitcoin-verkorpert-nikola-teslas-vision-fur-frieden-und-energieuberfluss/' => 'Bitcoin verkörpert Nikola Teslas Vision für Frieden und Energieüberfluss || Level39',
'https://aprycot.media/blog/check-deine-finanziellen-privilegien/' => 'Check deine finanziellen Privilegien! || Alex Gladstein',
'https://www.bitcoin.de/de/bitcoin-whitepaper-deutsch-html' => 'Das Bitcoin Whitepaper || Satoshi Nakamoto',
'https://aprycot.media/blog/das-ei-des-phoenix/' => 'Das Ei des Phönix || Gigi',
'https://europeanbitcoiners.com/das-manifest-der-bitcoin-hodler-friedfertige-und-monetar-selbstsourverane-individuen/' => 'Das Manifest der Bitcoin Hodler: friedfertige und monetär selbstsouveräne Individuen || The Sovereign Hodler 21',
'https://medium.com/aprycotmedia/das-bullische-argument-f%C3%BCr-bitcoin-9665e9375727' => 'Das bullische Argument für Bitcoin || Vijay Boyapati',
'https://medium.com/aprycotmedia/das-monetaere-argument-fuer-bitcoin-62559a4c7b7d' => 'Das monetäre Argument für Bitcoin || Ben Kaufman',
'https://aprycot.media/blog/der-aufstieg-des-souveraenen-individuums/' => 'Der Aufstieg des souveränen Individuums || Gigi',
'https://aprycot.media/blog/ewiger-kampf-||-bitcoin/' => 'Der ewige Kampf von Bitcoin || Gigi',
'https://medium.com/aprycotmedia/die-bitcoin-reise-dab572e5ff72' => 'Die Bitcoin-Reise || Gigi',
'https://aprycot.media/blog/konsequenzen-bitcoin-verbot/' => 'Die Konsequenzen eines Bitcoin-Verbots || Gigi',
'https://aprycot.media/blog/die-suche-nach-digitalem-bargeld/' => 'Die Suche nach digitalem Bargeld || Alex Gladstein',
'https://aprycot.media/blog/die-verantwortung-bitcoin-anzunehmen/' => 'Die Verantwortung, Bitcoin anzunehmen || Gigi',
'https://europeanbitcoiners.com/die-woerter-die-wir-in-bitcoin-verwenden/' => 'Die Wörter, die wir in Bitcoin verwenden || Gigi',
'https://aprycot.media/blog/die-wurzel-allen-uebels/' => 'Die Wurzel allen Übels || Fab The Fox',
'https://aprycot.media/blog/die-zahl-null-und-bitcoin/' => 'Die Zahl Null und Bitcoin || Robert Breedlove',
'https://europeanbitcoiners.com/die-makellose-schoepfung-||-bitcoin/' => 'Die makellose Schöpfung von Bitcoin || Pascal Huegli',
'https://aprycot.media/blog/die-versteckten-kosten-des-petrodollars/' => 'Die versteckten Kosten des Petrodollars || Alex Gladstein',
'https://aprycot.media/blog/freiheit-und-privatsphaere-zwei-seiter-der-gleichen-muenze/' => 'Freiheit und Privatsphäre - Zwei Seiten der gleichen Medaille || Gigi',
'https://aprycot.media/blog/herren-und-sklaven-des-geldes/' => 'Herren und Sklaven des Geldes || Robert Breedlove',
'https://europeanbitcoiners.com/hyperbitcoinisierung-der-gewinner-bekommt-alles/' => 'Hyperbitcoinsierung: Der Gewinner bekommt alles || ObiWan Kenobit',
'https://europeanbitcoiners.com/ist-der-preis-||-bitcoin-volatil-es-ist-alles-relativ/' => 'Ist der Preis von Bitcoin volatil? Es ist alles relativ || Tim Niemeyer',
'https://aprycot.media/blog/lebenszeichen/' => 'Lebenszeichen || Gigi',
'https://aprycot.media/blog/liebe-familie-liebe-freunde/' => 'Liebe Familie, liebe Freunde || Gigi',
'https://aprycot.media/?p=92629' => 'Magisches Internet-Geld || Gigi',
'https://europeanbitcoiners.com/mises-der-urspruengliche-toxische-maximalist/' => 'Mises: der ursrpüngliche toxische Maximalist || Michael Goldstein',
'https://aprycot.media/blog/kolonialismus-und-bitcoin/' => 'Monetären Kolonialismus mit Open-Source-Code bekämpfen || Alex Gladstein',
'https://aprycot.media/blog/privatsphaere-in-bitcoin-bewaehrte-praktiken/' => 'Privatspähre in Bitcoin: Bewährte Praktiken || Gigi',
'https://aprycot.media/blog/shelling-out-die-urspruenge-des-geldes/' => 'Shelling Out — Die Ursprünge des Geldes || Nick Szabo',
'https://aprycot.media/blog/spekulative-attacken/' => 'Spekulative Attacken || Pierre Rochard',
'https://aprycot.media/blog/unveraeusserliche-eigentumsrechte-recht-sprache-geld-und-moral-||-bitcoin/' => 'Unveränderliche Eigentumsrechte - Recht, Sprache, Geld und Moral von Bitcoin || Gigi',
'https://europeanbitcoiners.com/warum-bitcoin-gut-fur-die-umwelt-ist/' => 'Warum Bitcoin gut für die Umwelt ist || Leon A. Wankum',
'https://europeanbitcoiners.com/die-padagogik-von-bitcoin/' => 'Die Pädagogik von Bitcoin || Erik Cason',
'https://europeanbitcoiners.com/bitcoin-first-warum-anleger-bitcoin-getrennt-von-anderen-digitalen-vermogenswerten-betrachten-mussen/' => 'Bitcoin First: Warum Anleger Bitcoin getrennt von anderen digitalen Vermögenswerten betrachten müssen || Fidelity Digital Assets',
'https://blockinfo.ch/bitcoin-brechen-das-prinzip-von-hartem-geld/' => 'Bitcoin brechen — Das Prinzip von hartem Geld || Ben Kaufman',
];
$library = Library::firstOrCreate(['name' => 'Bitcoin Lesestoff by Gigi'], ['created_by' => 1]);
foreach ($items as $link => $item) {
$name = str($item)->before(' || ');
$author = str($item)->after(' || ');
$contentCreator = Lecturer::firstOrCreate(['name' => $author], [
'name' => $author,
'created_by' => 1,
'team_id' => 1,
]);
$libraryItem = LibraryItem::firstOrCreate(['name' => $name], [
'lecturer_id' => $contentCreator->id,
'type' => 'blog_article',
'language_code' => 'de',
'value' => $link,
'created_by' => 1,
]);
try {
$contents = file_get_contents($link);
// regex for for og:image
preg_match('/<meta property="og:image" content="([^"]+)"/', $contents, $matches);
if (isset($matches[1])) {
$image = $matches[1];
$libraryItem->addMediaFromUrl($image)
->toMediaCollection('main');
} else {
$image = null;
}
} catch (\Exception $e) {
// ignore
}
$libraryItem->libraries()
->sync([$library->id]);
$this->info('Name: '.$name.' Author: '.$author.' Link: '.$link);
}
return Command::SUCCESS;
}
}