/** * Save a new file record. * * @param array $redir_data lookup data eg from File_redirection::where() * @param string $given_url * @return File */ function saveNew(array $redir_data, $given_url) { // I don't know why we have to keep doing this but I'm adding this last check to avoid // uniqueness bugs. $x = File::staticGet('url', $given_url); if (empty($x)) { $x = new File(); $x->url = $given_url; if (!empty($redir_data['protected'])) { $x->protected = $redir_data['protected']; } if (!empty($redir_data['title'])) { $x->title = $redir_data['title']; } if (!empty($redir_data['type'])) { $x->mimetype = $redir_data['type']; } if (!empty($redir_data['size'])) { $x->size = intval($redir_data['size']); } if (isset($redir_data['time']) && $redir_data['time'] > 0) { $x->date = intval($redir_data['time']); } $file_id = $x->insert(); } $x->saveOembed($redir_data, $given_url); return $x; }
/** * Save a new file record. * * @param array $redir_data lookup data eg from File_redirection::where() * @param string $given_url * @return File */ function saveNew(array $redir_data, $given_url) { $x = new File(); $x->url = $given_url; if (!empty($redir_data['protected'])) { $x->protected = $redir_data['protected']; } if (!empty($redir_data['title'])) { $x->title = $redir_data['title']; } if (!empty($redir_data['type'])) { $x->mimetype = $redir_data['type']; } if (!empty($redir_data['size'])) { $x->size = intval($redir_data['size']); } if (isset($redir_data['time']) && $redir_data['time'] > 0) { $x->date = intval($redir_data['time']); } $file_id = $x->insert(); $x->saveOembed($redir_data, $given_url); return $x; }
$f->mimetype = 'h'; $f->size = 0; $f->protected = 0; $f->find(); echo "Found {$f->N} bad items:\n"; while ($f->fetch()) { echo "{$f->id} {$f->url}"; $data = File_redirection::lookupWhere($f->url); if ($dry) { if (is_array($data)) { echo " (unchanged)\n"; } else { echo " (unchanged, but embedding lookup failed)\n"; } } else { // NULL out the mime/title/size/protected fields $sql = sprintf("UPDATE file " . "SET mimetype=null,title=null,size=null,protected=null " . "WHERE id=%d", $f->id); $f->query($sql); $f->decache(); if (is_array($data)) { if ($f->saveOembed($data, $f->url)) { echo " (ok)\n"; } else { echo " (ok, no embedding data)\n"; } } else { echo " (ok, but embedding lookup failed)\n"; } } } echo "done.\n";