public function get($param = false) { if ($this->data === null) { $this->data = Database::get_full_row('game', $this->id); } return $param ? $this->data[$param] : $this->data; }
public static function get($key = false) { if (self::$user === null && isset($_COOKIE['user'])) { self::$user = Database::get_full_row('user', 'cookie = ?', $_COOKIE['user']); } return $key ? self::$user[$key] : self::$user; }
protected function do_add($data) { if (!isset($data['set']) || !is_array($data['set'])) { return array('success' => false); } if (!empty($data['start'])) { $utc = $data['utc'] + 240; $start = date('Y-m-d G:i:s', strtotime($data['start']) + $utc * 60); } else { $start = ''; } $sets = array(); foreach ($data['set'] as $set) { if (preg_match('/[^-\\d\\.a-z]/ui', $set)) { continue; } $set = Database::get_full_row('set', 'id = ?', $set); if (empty($set)) { continue; } $sets[] = $set; if (!$set['grabbed']) { Grabber::get_set($set['id']); } } Database::begin(); Database::insert('game', array('id_user' => $this->user, 'pick_time' => isset($data['pick_time']) ? $data['pick_time'] : 0, 'pause_time' => isset($data['pause_time']) ? $data['pause_time'] : 0, 'type' => isset($data['type']) ? $data['type'] : 1, 'start' => $start)); $id_game = Database::last_id(); $order = 0; foreach ($sets as $set) { Database::insert('game_set', array('id_game' => $id_game, 'order' => ++$order, 'id_set' => $set['id'])); } Database::commit(); return array('success' => true); }
protected function get_data() { $strip = Database::get_full_row('strip', $this->id); if (empty($strip)) { return array('error' => true); } $strip['text'] = Transform_Text::format($strip['text']); return array('strip' => $strip, 'images' => Database::join('file', 'sf.id_file = f.id')->order('sf.order', 'asc')->get_full_table('strip_file', 'id_strip = ?', $strip['id']), 'next' => $strip['order'] ? Database::order('order', 'asc')->get_full_row('strip', '`order` > ?', $strip['order']) : false); }
protected function get_data() { $strip = Database::get_full_row('strip', $this->id); if (empty($strip)) { return array('error' => true); } $strip['date'] = strtotime($strip['date']); $strip['date'] = $strip['date'] > 0 ? date('y / m / d', $strip['date']) : ''; return array('files' => Database::order('time')->get_full_vector('file'), 'strip' => $strip, 'today' => date('y / m / d'), 'images' => Database::join('file', 'sf.id_file = f.id')->order('sf.order', 'asc')->get_full_table('strip_file', 'id_strip = ?', $this->id)); }
protected function do_delete_file($get) { if (!isset($get['id']) || !is_numeric($get['id'])) { return array('success' => false); } $file = Database::get_full_row('file', $get['id']); Database::delete('file', $get['id']); Database::delete('strip_file', 'id_file = ?', $get['id']); $filename = FILES . SL . $file['md5'] . '.' . $file['ext']; chmod($filename, 00); return array('success' => true); }
public function pixlr ($query) { $info = Globals::user_info(); if (empty($info['username'])) { $info = Database::get_full_row('user', 0); } $this->user_id = $info['id']; $alias = Meta_Author::get_alias_by_name($info['username']); $image_data = file_get_contents($query['image']); $this->save($image_data, $alias); $this->redirect_address = '/gallery/author/'.$alias.'/'; }
protected function get_data() { if (!$this->id) { return array('error' => true); } $strip = Database::get_full_row('strip', '`order` = ?', $this->id); if (empty($strip)) { return array('error' => true); } $strip['text'] = Transform_Text::format($strip['text']); $logs = Database::order('order')->limit(30)->get_vector('strip', array('id', 'order', 'title', 'date'), '`order` > 0'); foreach ($logs as &$log) { $log['date'] = strtotime($log['date']); $log['date'] = $log['date'] > 0 ? date('y/m/d', $log['date']) : ''; } return array('page' => $this->id, 'logs' => $logs, 'strip' => $strip, 'images' => Database::join('file', 'sf.id_file = f.id')->order('sf.order', 'asc')->get_full_table('strip_file', 'id_strip = ?', $strip['id']), 'next' => Database::order('order', 'asc')->get_full_row('strip', '`order` > ?', $strip['order']), 'back' => Database::order('order')->get_field('strip', 'order', '`order` < ?', $strip['order']), 'autosave' => isset($_COOKIE['autosave']) ? (int) $_COOKIE['autosave'] : 0); }
function edit_personal_menu () { $id = (int) query::$get['id']; $return = Database::get_full_row('head_menu_user', $id); if (!empty($return)) { $return['count'] = Database::get_count('head_menu_user', 'cookie = ?', query::$cookie ); if ($return['url']{0} == '/') { $return['url'] = 'http://'.def::site('domain').$return['url']; } } return $return; }
public function load() { if ($this->is_loaded() || $this->is_phantom()) { return $this; } list($condition, $params) = $this->build_condition(); if (!empty($condition)) { $data = Database::get_full_row($this->table, $condition, $params); if (is_array($data)) { $this->set_array($data); $this->unchanged_data = $data; } else { $this->set_phantom(); } $this->set_loaded(); } return $this; }
public function description ($query) { $params = array(); if (isset($query['meta']) && $query['meta'] == 'author' && isset($query['alias'])) { $params['type'] = 'author'; $params['id'] = $query['alias']; } elseif (isset($query['id'])) { $params['type'] = 'art'; $params['id'] = $query['id']; } else { return; } $text = Database::get_row( 'description', array('text', 'pretty_text'), 'type = ? and description_id = ?', $params ); if (!empty($text)) { $params = array_merge($params, $text); } if ($params['type'] == 'author') { $user = Meta_Author::get_data_by_alias((array) $params['id']); $user = current($user); $params['username'] = $user['name']; } else { $params['data'] = Database::get_full_row('art', $query['id']); $params['username'] = Database::get_field('user', 'username', $params['data']['user_id']); $params['alias'] = Meta_Author::get_alias_by_name($params['username']); $params['data']['weight'] = Transform_File::weight($params['data']['weight']); $params['data']['date'] = Transform_String::rudate(Database::date_to_unix($params['data']['date'])); } $params['can_edit'] = ($params['username'] == Globals::user_info('username')); return $params; }
protected function edit_painter_theme($id = false) { if (empty($id)) { $this->items = Database::get_vector( 'painter_themes', array('id', 'name'), '1 order by id' ); $this->flags['mode'] = 'list'; } else { $fields = Database::get_full_row('painter_themes', $id); unset($fields['id'], $fields['disabled']); $this->items = $fields; $this->flags['mode'] = 'edit'; $this->flags['id'] = $id; } }
<? include '../inc.common.php'; $params = array('pack_status', query::$get['id']); $status = Database::get_full_row('misc', 'type = ? and data2 = ?', $params); switch ($status['data1']) { case 'starting': echo "Ожидается очередь на распаковку."; break; case 'error': echo "Злые хорьки сгрызли ваш архив."; break; case 'unpacking': echo "Распаковывается."; break; case 'unpacked': echo "Поиск картинок в распакованном."; break; case 'processing': echo "Обрабатываюся картинки. $status[data3]/$status[data4]"; break; case 'done': echo "Готово."; break; default: echo "Произошла неведомая фигня."; break; }
Cache::$base_prefix = Config::get('cache', 'prefix'); function clear_dir($dir) { if (!file_exists($dir)) { return; } foreach (glob($dir . '/*') as $file) { unlink($file); } } $file = array_shift($argv); $set = array_shift($argv); if (empty($set)) { die('Set needed' . "\n"); } $set = Database::get_full_row('set', 'id = ?', $set); if (empty($set)) { die('Incorrect set' . "\n"); } if (!$set['grabbed']) { Grabber::get_set($set['id']); } $folder = IMAGES . SL . 'import'; if (!file_exists($folder . SL . $set['id']) || !is_dir($folder . SL . $set['id'])) { die('No import folder' . "\n"); } $cards = Database::join('set_card', 'sc.id_card = c.id')->get_table('card', 'image', 'sc.id_set = ?', $set['id']); $images = glob($folder . SL . $set['id'] . SL . '*.jpg'); $import = array(); foreach ($images as $image) { $compare = str_replace($folder, '', $image);
$type = 1; break; case 'кб': $type = 0; break; default: $type = 0; break; } Database::insert('post_update_link', array('update_id' => $id, 'name' => $link['name'], 'size' => str_replace(',', '.', $link['size']), 'sizetype' => $type, 'order' => $i)); $link_id = Database::last_id(); $i++; $j = 0; foreach ($link['url'] as $key => $url) { $alias = $link['alias'][$key]; $exists = Database::get_full_row('post_url', 'url = ?', $url); if ($exists) { $url_id = $exists['id']; } else { Database::insert('post_url', array('url' => $url)); $url_id = Database::last_id(); } if ($url_id == 0) { var_dump($update); var_dump($link); } Database::insert('post_update_link_url', array('link_id' => $link_id, 'url_id' => $url_id, 'alias' => $alias, 'order' => $j)); $j++; } } }
public function merge_tag() { if ( empty(query::$get['master']) || !is_numeric(query::$get['master']) || empty(query::$get['slave']) || !is_numeric(query::$get['slave']) ) { return; } if (query::$get['master'] != query::$get['slave']) { $master = Database::get_full_row('tag', query::$get['master']); $slave = Database::get_full_row('tag', query::$get['slave']); $old_count = $master['post_main'] + $master['post_flea_market'] + $master['video_main'] + $master['video_flea_market'] + $master['art_main'] + $master['art_flea_market']; $params = array( '%|'.$master['alias'].'|%', '|'.$slave['alias'].'|', '|'.$slave['alias'].'|', '|'.$master['alias'].'|', ); Database::sql('update post set tag = if (tag like ?, replace(tag, ?, "|"), replace(tag, ?, ?))', $params); Database::sql('update video set tag = if (tag like ?, replace(tag, ?, "|"), replace(tag, ?, ?))', $params); Database::sql('update art set tag = if (tag like ?, replace(tag, ?, "|"), replace(tag, ?, ?))', $params); $variants = explode('|', $master['variants'].$slave['variants']); if ($slave['name'] != $master['name']) { $variants[] = $slave['name']; } $params_main = array('|'.$master['alias'].'|', 'main'); $params_flea = array('|'.$master['alias'].'|', 'flea_market'); $update = array( 'post_main' => Database::get_count('post', 'locate(?, tag) and area = ?', $params_main), 'post_flea_market' => Database::get_count('post', 'locate(?, tag) and area = ?', $params_flea), 'video_main' => Database::get_count('video', 'locate(?, tag) and area = ?', $params_main), 'video_flea_market' => Database::get_count('video', 'locate(?, tag) and area = ?', $params_flea), 'art_main' => Database::get_count('art', 'locate(?, tag) and area = ?', $params_main), 'art_flea_market' => Database::get_count('art', 'locate(?, tag) and area = ?', $params_flea), 'variants' => '|'.implode('|',array_unique(array_filter($variants))).'|', 'color' => empty($master['color']) ? $slave['color'] : $master['color'] ); Database::update('tag', $update, query::$get['master']); Database::delete('tag', query::$get['slave']); $add_count = array_sum(array_slice($update,0,6)) - $old_count; engine::add_res("Тег {$slave['name']} успешно влит в {$master['name']}. ". "Счет {$master['name']} подрос на $add_count нахождений.", false, true); } }
function get_data() { if ($this->template != 'slideshow') { global $url; global $error; global $sets; global $def; if (is_numeric($url[2])) { $return['display'] = array('booru_single', 'comments'); $return['art'] = $this->get_art(1, 'id=' . $url[2] . ' and area != "deleted"'); $url['area'] = $return['art'][0]['area']; $return['comments'] = $this->get_comments($url[1], $url[2], is_numeric($url[5]) ? $url[5] : ($url[4] == 'all' ? false : 1)); $return['navi']['curr'] = $url[4] == 'all' ? 'all' : max(1, $url[5]); $return['navi']['all'] = true; $return['navi']['name'] = "Страница комментариев"; $return['navi']['meta'] = $url[2] . '/comments/'; $return['navi']['start'] = max($return['navi']['curr'] - 5, 2); $return['navi']['last'] = ceil($return['comments']['number'] / $sets['pp']['comment_in_post']); $this->side_modules['top'] = array(); $return['art'][0]['rating'] = $this->get_rating($url[2]); $return['art'][0]['packs'] = $this->get_packs($url[2]); $return['art'][0]['pool'] = $this->get_pools($url[2]); } elseif ($url[2] != 'pool' && $url[2] != 'cg_packs' && $url[2] != 'download') { $return['display'] = array('booru_page', 'navi'); if ($url[2] == 'page' || !$url[2]) { $area = 'area = "' . $url['area'] . '"'; $return['navi']['curr'] = max(1, $url[3]); if ($sets['art']['sort'] == 'tag-desc') { $return['art']['thumbs'] = $this->get_art(($return['navi']['curr'] - 1) * $sets['pp']['art'] . ', ' . $sets['pp']['art'], $area, 'order by (length(tag) - length(replace(tag,\'|\',\'\'))) desc'); } elseif ($sets['art']['sort'] == 'tag-asc') { $return['art']['thumbs'] = $this->get_art(($return['navi']['curr'] - 1) * $sets['pp']['art'] . ', ' . $sets['pp']['art'], $area, 'order by (length(tag) - length(replace(tag,\'|\',\'\')))'); } else { $return['art']['thumbs'] = $this->get_art(($return['navi']['curr'] - 1) * $sets['pp']['art'] . ', ' . $sets['pp']['art'], $area); } } elseif ($url[2] == 'date') { $parts = explode('-', $url[3]); if (is_numeric($parts[0] . $parts[1] . $parts[2]) && count($parts) == 3) { $area = 'area = "' . $url['area'] . '" and pretty_date ="' . Transform_Time::ru_month($parts[1]) . ' ' . $parts[2] . ', ' . $parts[0] . '"'; $return['navi']['curr'] = max(1, $url[5]); $return['art']['thumbs'] = $this->get_art(($return['navi']['curr'] - 1) * $sets['pp']['art'] . ', ' . $sets['pp']['art'], $area); $return['navi']['meta'] = $url[2] . '/' . $url[3] . '/'; } else { $error = true; } } elseif ($url[2] != 'mixed') { $this->mixed_parse($url[2] . '=' . $url[3]); $area = 'area = "' . $url['area'] . '" and locate("|' . ($url['tag'] ? $url['tag'] : mysql_real_escape_string($url[3])) . '|",art.' . $url[2] . ')'; $return['navi']['curr'] = max(1, $url[5]); $return['art']['thumbs'] = $this->get_art(($return['navi']['curr'] - 1) * $sets['pp']['art'] . ', ' . $sets['pp']['art'], $area); $return['navi']['meta'] = $url[2] . '/' . $url[3] . '/'; $return['rss'] = $this->make_rss($url[1], $url[2], $url[3]); } else { $area = $this->mixed_make_sql($this->mixed_parse($url[3])); $return['navi']['curr'] = max(1, $url[5]); $return['art']['thumbs'] = $this->get_art(($return['navi']['curr'] - 1) * $sets['pp']['art'] . ', ' . $sets['pp']['art'], $area); $return['navi']['meta'] = $url[2] . '/' . $url[3] . '/'; } $return['navi']['start'] = max($return['navi']['curr'] - 5, 2); $return['navi']['last'] = ceil(obj::db()->sql('select count(id) from art where (' . $area . ')', 2) / $sets['pp']['art']); } else { if ($url[2] == 'pool') { if (is_numeric($url[3])) { if ($url[4] != 'sort') { $return['display'] = array('booru_poolsingle', 'booru_page', 'navi'); } else { $return['display'] = array('booru_poolsingle', 'booru_page'); } $return['pool'] = Database::get_full_row('art_pool', $url[3]); $query = Database::set_counter()->order('order', 'asc'); if ($url[4] != 'sort') { $return['navi']['curr'] = max(1, $url[5]); $return['navi']['meta'] = $url[2] . '/' . $url[3] . '/'; $return['navi']['start'] = max($return['navi']['curr'] - 5, 2); $query->limit(sets::pp('art'), ($return['navi']['curr'] - 1) * sets::pp('art')); } $pool = $query->get_vector('art_in_pool', 'art_id', 'pool_id = ?', $url[3]); $return['pool']['count'] = Database::get_counter(); if ($url[4] != 'sort') { $return['navi']['last'] = ceil($return['pool']['count'] / $sets['pp']['art']); } $where = 'id=' . implode(' or id=', $pool); $pool = array_flip($pool); if ($art = $this->get_art(false, $where, '')) { foreach ($art as $one) { $return['art']['thumbs'][$pool[$one['id']]] = $one; } ksort($return['art']['thumbs']); } $return['rss'] = $this->make_rss($url[1], $url[2], $url[3]); } else { $return['display'] = array('booru_poolpage', 'navi'); $return['navi']['curr'] = max(1, $url[4]); $return['navi']['meta'] = $url[2] . '/'; $return['navi']['start'] = max($return['navi']['curr'] - 5, 2); $return['navi']['last'] = ceil(obj::db()->sql('select count(id) from art_pool', 2) / $sets['pp']['art_pool']); $return['pools'] = obj::db()->sql(' select p.id as id, p.name as name, count(*) as count from art_pool as p left join art_in_pool as a on p.id = a.pool_id group by p.id order by p.sortdate desc limit ' . ($return['navi']['curr'] - 1) * $sets['pp']['art_pool'] . ', ' . $sets['pp']['art_pool'], 'id'); } } elseif ($url[2] == 'cg_packs') { $this->side_modules['top'] = array(); if (is_numeric($url[3])) { $return['display'] = array('booru_pack_single', 'booru_page', 'navi'); $return['navi']['curr'] = max(1, $url[5]); $return['navi']['meta'] = $url[2] . '/' . $url[3] . '/'; $return['navi']['start'] = max($return['navi']['curr'] - 5, 2); $return['navi']['last'] = ceil(obj::db()->sql('select count(*) from art_in_pack where pack_id=' . $url[3], 2) / $sets['pp']['art']); $return['pool'] = obj::db()->sql('select * from art_pack where id=' . $url[3], 1); $return['art']['thumbs'] = $this->get_art(($return['navi']['curr'] - 1) * $sets['pp']['art'] . ', ' . $sets['pp']['art'], 'p.pack_id=' . $url[3], 'order by p.`order`', 'as a left join art_in_pack as p on a.id = p.art_id'); } else { $return['display'] = array('booru_pack_list', 'navi'); $return['navi']['curr'] = max(1, $url[4]); $return['navi']['meta'] = $url[2] . '/'; $return['navi']['start'] = max($return['navi']['curr'] - 5, 2); $return['navi']['last'] = ceil(obj::db()->sql('select count(*) from art_pack where cover != ""', 2) / $sets['pp']['art_cg_pool']); $return['pools'] = obj::db()->sql('select * from art_pack where cover != "" order by `date` desc limit ' . ($return['navi']['curr'] - 1) * $sets['pp']['art_cg_pool'] . ', ' . $sets['pp']['art_cg_pool'], 'id'); } } else { if ($url[3] == 'pack') { if (empty($url[4]) || !is_numeric($url[4])) { $error = true; } else { if (empty($url[5]) || !is_numeric($url[5])) { $pack = obj::db()->sql("select title, weight from art_pack where id = {$url['4']}", 1); if ($pack['weight'] == 0) { $error = true; } else { $this->template = 'download'; $this->side_modules = array(); $name = str_replace(array(' ', ';'), '_', $pack['title']); $file = ROOT_DIR . SL . 'files' . SL . 'pack_cache' . SL . 'pack_' . $url[4] . '.zip'; return array('file' => $file, 'name' => $name . '.zip'); } } else { $this->template = 'download'; $this->side_modules = array(); $art = obj::db()->sql("\n\t\t\t\t\t\t\t\t\tselect a.md5, a.extension, p.filename\n\t\t\t\t\t\t\t\t\tfrom art as a left join art_in_pack as p on a.id = p.art_id\n\t\t\t\t\t\t\t\t\twhere a.id = {$url['5']} and p.pack_id = {$url['4']}", 1); $file = ROOT_DIR . SL . 'images' . SL . 'booru' . SL . 'full' . SL . $art['md5'] . '.' . $art['extension']; if (pathinfo($file, PATHINFO_EXTENSION) == 'jpg') { $type = 'jpeg'; } else { $type = pathinfo($file, PATHINFO_EXTENSION); } return array('file' => $file, 'name' => $art['filename'], 'type' => $type); } } } else { $this->template = 'download'; $this->side_modules = array(); if (pathinfo($url[3], PATHINFO_EXTENSION) == 'jpg') { $type = 'jpeg'; } else { $type = pathinfo($url[3], PATHINFO_EXTENSION); } return array('file' => ROOT_DIR . SL . 'images' . SL . 'booru' . SL . 'full' . SL . $url[3], 'name' => $url[3], 'type' => $type); } } } $return['navi']['base'] = '/art' . ($url['area'] != $def['area'][0] ? '/' . $url['area'] : '') . '/'; return $return; } }
public function art_variation_list () { if (!Check::num(query::$get['id']) || query::$get['type'] != 'art') { return false(); } $return = (array) Database::order('order', 'ASC') ->get_full_table('art_variation', 'art_id = ?', query::$get['id']); $image = Database::get_full_row('art', query::$get['id']); array_unshift($return, $image); return $return; }
} $filename = $entry; $entry = $directory . $entry; if (is_dir($entry)) { $this->parse_dir($entry . SL); } elseif (in_array(mime_content_type($entry), self::$imagetypes)) { $this->count++; $sort = str_repeat("0", 5 - strlen($this->count)) . $this->count; $insert[] = array('pack_art', $this->id, $entry, $sort, $filename, 0); } } $handle->close(); Database::bulk_insert('misc', $insert); } } $status = Database::get_full_row('misc', 'type = ? and data1 != ? and data1 != ?', array('pack_status', 'done', 'error')); if (!empty($status)) { $worker = new Process_Pack($status['data2']); switch ($status['data1']) { case 'starting': case 'unpacking': $worker->unpack(); break; case 'unpacked': $worker->get_images(); break; case 'processing': $worker->parse_images(); break; default: break;