public function store() { // return Input::all(); $emailRule = Auth::guest() ? 'required' : ''; $rules = ['name' => 'required|min:6', 'url' => 'required|url|min:11', 'email' => $emailRule]; $messages = ['name.required' => Config::get('site.validate.name.required'), 'name.min' => Config::get('site.validate.name.min'), 'url.required' => Config::get('site.validate.url.required'), 'url.url' => Config::get('site.validate.url.url'), 'url.min' => Config::get('site.validate.url.min'), 'email.required' => Config::get('site.validate.email.required')]; $validator = Validator::make(Input::all(), $rules, $messages); if ($validator->fails()) { return Redirect::back()->withErrors($validator)->withInput(); } // Extracts the YouTube ID from various URL structures $name = Input::get('name'); $url = Input::get('url'); if (preg_match('%(?:youtube(?:-nocookie)?\\.com/(?:[^/]+/.+/|(?:v|e(?:mbed)?)/|.*[?&]v=)|youtu\\.be/)([^"&?/ ]{11})%i', $url, $match)) { $id = $match[1]; $image_url = "http://img.youtube.com/vi/{$id}/hqdefault.jpg"; } else { return Redirect::back()->withMessage(Config::get('site.message.youtube-failed')); } $storedMP4 = MP4::whereName(Input::get('name'))->first(); if ($storedMP4) { if (Request::ajax()) { $response = []; $response['success'] = true; $response['url'] = "/mp4/{$storedMP3->id}"; return $response; } return Redirect::to("mp4/{$storedMP4->id}"); } // Check if there's a user logged in. If not, use the admin ID. $admin_id = User::whereAdmin(1)->first()->id; $user_id = Auth::check() ? Auth::user()->id : $admin_id; // Insert the infos in the database $mp4 = new MP4(); $mp4->name = Input::get('name'); $mp4->youtube_id = $id; $mp4->image = $image_url; $mp4->user_id = $user_id; $mp4->category_id = Input::get('cat'); $mp4->description = Input::get('description'); $mp4->save(); if (App::environment() == 'production') { TKPM::tweet($mp4, 'mp4'); } if (Auth::guest() && Input::has('email')) { $mp4->userEmail = Input::get('email'); $data = ['mp4' => $mp4, 'subject' => 'Felisitasyon!!! Ou fèk mete yon nouvo mizik']; TKPM::sendMail('emails.user.guest4', $data, 'guest4'); } else { // Send a email to the new user letting them know their video has been uploaded $data = ['mp4' => $mp4, 'subject' => 'Felisitasyon!!! Ou fèk mete yon nouvo videyo']; TKPM::sendMail('emails.user.mp4', $data, 'mp4'); } Cache::flush(); return Redirect::to('mp4/' . $mp4->id); }