private function shortIt($url, $md5) { if (!self::API_SHORT) { return $url; } parent::RedBeanConnect('short'); if ($fetch = @R::findOne('short_url', '`title` = ?', [$md5])) { return self::API_SHORT . $fetch->keyword; } $timestamp = date('Y-m-d H:i:s'); do { $uniq = ''; $base = strtolower(hash('sha256', uniqid())); while (strlen($uniq) < 8) { $uniq .= substr($base, (int) -(strlen($base) / (1 + strlen($uniq))), 1); } } while (@R::findOne('short_url', '`keyword` = ?', [$uniq])); $sql = 'INSERT INTO `short`.`short_url` '; $sql .= "(`keyword`, `url`, `title`, `timestamp`, `ip`, `clicks`) "; $sql .= "VALUES ('{$uniq}', '{$url}', '{$md5}', '{$timestamp}', '"; $sql .= getHostByName(getHostName()) . "', '0')"; R::exec($sql); R::close(); return 'http://exsubs.anidb.pl/short/' . $uniq; }
private function createTable() { parent::RedBeanConnect(self::DB_NAME); $sql = 'CREATE TABLE IF NOT EXISTS `' . self::TB_NAME . '`('; $sql .= '`id` int(10) NOT NULL AUTO_INCREMENT,'; $sql .= '`name` varchar(25),'; $sql .= '`orginal` varchar(45) NOT NULL,'; $sql .= '`icon` varchar(100) NOT NULL,'; $sql .= '`link` varchar(100) NOT NULL,'; $sql .= '`linkgc` varchar(100) NOT NULL,'; $sql .= 'PRIMARY KEY (`id`)'; $sql .= ') ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1;'; $sql = trim($sql); R::exec($sql); R::close(); }