/** * Execute the console command. * * @return mixed */ public function fire() { $this->info('Starting import from MCF Modlist...'); $this->info(''); $versions = MinecraftVersion::all(); foreach ($versions as $version) { $this->info('Starting import of ' . $version->name . ' mods...'); $mods = $this->getModJson($version->name); foreach ($mods as $mod) { $this->info('Processing ' . $mod->name); $database_mod = ImportMCFModlist::where('name', '=', $mod->name)->first(); if (!$database_mod) { $database_mod = new ImportMCFModlist(); } $database_mod->name = $mod->name; $database_mod->description = $mod->desc; $database_mod->raw_authors = serialize($mod->author); if (isset($mod->source)) { $database_mod->source = $mod->source; } $database_mod->url = $mod->link; $database_mod->raw_type = serialize($mod->type); $database_mod->raw_dependencies = serialize($mod->dependencies); $database_mod->raw_minecraft_versions = serialize($mod->versions); $database_mod->save(); } } }
public function postImportMod($import_id) { if (!$this->checkRoute()) { return Redirect::route('index'); } $import_mod = Import::find($import_id); $versions = MinecraftVersion::all(); $title = 'Import A Mod - ' . $this->site_name; $input = Input::only('name', 'selected_versions', 'selected_authors', 'deck', 'website', 'download_link', 'donate_link', 'wiki_link', 'description', 'slug', 'mod_list_hide'); $messages = ['unique' => 'This mod already exists in the database. If it requires an update let us know!', 'url' => 'The :attribute field is not a valid URL.']; $validator = Validator::make($input, ['name' => 'required|unique:mods,name', 'selected_authors' => 'required', 'versions' => 'selected_versions', 'deck' => 'required', 'website' => 'url', 'download_url' => 'url', 'wiki_url' => 'url', 'donate_link' => 'url'], $messages); if ($validator->fails()) { return Redirect::action('ImportController@getImportMod', [$import_mod->id])->withErrors($validator)->withInput(); } $mod = new Mod(); $mod->name = $input['name']; $mod->deck = $input['deck']; $mod->website = $input['website']; $mod->download_link = $input['download_link']; $mod->donate_link = $input['donate_link']; $mod->wiki_link = $input['wiki_link']; $mod->description = $input['description']; if ($input['slug'] == '') { $slug = Str::slug($input['name']); } else { $slug = $input['slug']; } if ($input['mod_list_hide'] == 1) { $mod->mod_list_hide = 1; } $mod->slug = $slug; $mod->last_ip = Request::getClientIp(); $success = $mod->save(); if ($success) { foreach ($input['selected_authors'] as $author) { $mod->authors()->attach($author); } foreach ($input['selected_versions'] as $version) { $mod->versions()->attach($version); } Cache::tags('mods')->flush(); Queue::push('BuildCache'); $import_mod->status = 1; $import_mod->save(); $raw_mcf_mods = ImportMCFModlist::orderBy('name', 'asc')->get(); $raw_nem_mods = ImportNEM::orderBy('name', 'asc')->get(); $mcf_mods_array[0] = 'None'; $nem_mods_array[0] = 'None'; foreach ($raw_mcf_mods as $mcf_mod) { $mcf_mod_id = $mcf_mod->id; $mcf_mods_array[$mcf_mod_id] = $mcf_mod->name; } foreach ($raw_nem_mods as $nem_mod) { $nem_mod_id = $nem_mod->id; $nem_mods_array[$nem_mod_id] = $nem_mod->name; } return View::make('imports.import', ['title' => $title, 'chosen' => true, 'success' => true, 'mcf_mods_array' => $mcf_mods_array, 'nem_mods_array' => $nem_mods_array, 'versions' => $versions]); } return Redirect::action('ImportController@getImportMod', [$import_mod->id])->withErrors(['message' => 'Unable to import mod.'])->withInput(); }