select('*') ->get(); } public function getGame($id) { // /api/rpc/store/game/getgame/id return DB::table('str_games') ->select('*') ->where('id', $id) ->get(); } public function newGame(Request $request) { // /api/rpc/store/games/newgame $add = DB::table('str_games') ->insert([ 'name' => $request->name ]); return \Response::json($add); } public function editGame(Request $request) { // /api/rpc/store/games/editgame return DB::table('str_games') ->where('id', $request->id) ->update([ 'name' => $request->name ]); } // Category public function getCategories() { // /api/rpc/store/category/getcategories return DB::table('str_category') ->select('*') ->get(); } public function getCategory($id) { // /api/rpc/store/category/getcategory/id return DB::table('str_category') ->select('*') ->where('id', $id) ->get(); } public function getCategoriesOfGame($id) { // /api/rpc/store/category/getcategoriesofgame/id return DB::table('str_category') ->join('str_games', 'str_category.game_id', '=', 'str_games.id') ->where('str_games.id', $id) ->get(array( 'str_category.id', 'str_category.name' )); } public function getGameOfCategory($id) { // /api/rpc/store/category/getgameofcategory/id return DB::table('str_category') ->join('str_games', 'str_category.game_id', '=', 'str_games.id') ->where('str_category.id', $id) ->get(array( 'str_games.id', 'str_games.name' )); } public function getCategoryGame($id) { // /api/rpc/store/category/getcategorygame/id return DB::table('str_category') ->select('game_id') ->where('id', $id) ->get(); } public function getCategoryMinScreenshots($id) { // /api/rpc/store/category/getcategoryminscrot/id return DB::table('str_category') ->select('min_screenshots') ->where('id', $id) ->get(); } public function getCategoryName($id) { // /api/rpc/store/category/getcategoryname/id return DB::table('str_category') ->select('name') ->where('id', $id) ->get(); } public function newCategory(Request $request) { // /api/rpc/store/category/newcategory $add = DB::table('str_category') ->insert([ 'name' => $request->name, 'game_id' => $request->game_id, 'min_screenshots' => $request->min_screenshots ]); return \Response::json($add); } public function editCategory(Request $request) { // /api/rpc/store/category/editcategory return DB::table('str_category') ->where('id', $request->id) ->update([ 'name' => $request->name, 'min_screenshots' => $request->min_screenshots ]); } // Entries public function getAllEntries() { // /api/rpc/store/entry/getallentries return DB::table('str_file') ->select('*') ->get(); } public function getAllApprovedEntries() { // /api/rpc/store/entry/getallapprovedentries return DB::table('str_file') ->select('*') ->where('isApproved', 1) ->get(); } public function getAllBrokenEntries() { // /api/rpc/store/entry/getallbrokenentries return DB::table('str_file') ->select('*') ->where('isBroken', 1) ->get(); } public function getAllPendingEntries() { // /api/rpc/store/entry/getallpendingentries return DB::table('str_file') ->select('*') ->where('isApproved', 0) ->get(); } public function getNewEntries() { // /api/rpc/store/entry/getnewentries return DB::table('str_file') ->select( 'id', 'title', 'version', 'submit_date' ) ->where('isApproved', 1) ->orderBy('submit_date', 'desc') ->limit(5) ->get(); } public function getHotEntries() { // /api/rpc/store/entry/gethotentries return DB::table('str_file') ->select( 'id', 'title', 'version', 'downloads' ) ->where('isApproved', 1) ->orderBy('downloads', 'desc') ->limit(5) ->get(); } public function getEntriesPageAll($cat, $from, $to) { // /api/rpc/store/entry/getentriespageall/cat/from/to return DB::table('str_file') ->select( 'id', 'title', 'version', 'description', 'submit_date', 'last_date', 'views', 'downloads' ) ->where('cat_id', $cat) ->offset($from) ->limit($to) ->get(); } public function getEntriesPageApproved($cat, $from, $to) { // /api/rpc/store/entry/getentriespageapproved/cat/from/to return DB::table('str_file') ->select( 'id', 'title', 'version', 'description', 'submit_date', 'last_date', 'views', 'downloads' ) ->where('cat_id', $cat) ->where('isApproved', 1) ->offset($from) ->limit($to) ->get(); } public function getEntriesPagePopularView($cat, $from, $to) { // /api/rpc/store/entry/getentriespagepopularview/cat/from/to return DB::table('str_file') ->select( 'id', 'title', 'version', 'description', 'submit_date', 'last_date', 'views', 'downloads' ) ->where('cat_id', $cat) ->where('views', '>', 1000) ->offset($from) ->limit($to) ->get(); } public function getEntriesPagePopularDownload($cat, $from, $to) { // /api/rpc/store/entry/getentriespagepopulardownload/cat/from/to return DB::table('str_file') ->select( 'id', 'title', 'version', 'description', 'submit_date', 'last_date', 'views', 'downloads' ) ->where('cat_id', $cat) ->where('downloads', '>', 1000) ->offset($from) ->limit($to) ->get(); } public function getChangelog($id) { // /api/rpc/store/entry/getchangelog/id return DB::table('str_file') ->select('version', 'changelog') ->where('id', $id) ->get(); } public function getNotice($id) { // /api/rpc/store/entry/getnotice/id return DB::table('str_file') ->select('title', 'version', 'warningnote') ->where('id', $id) ->get(); } public function getDownloadCount($id) { // /api/rpc/store/entry/getdownloadcount/id return DB::table('str_file') ->select('downloads') ->where('id', $id) ->get(); } public function updateDownloadCount(Request $request) { // /api/rpc/store/entry/updatedownloadcount return DB::table('str_file') ->where('id', $request->id) ->update(['downloads', $request->downloads]); } public function FileSizeConvert($bytes) { $bytes = floatval($bytes); $arBytes = array( 0 => array( // "UNIT" => "TiB", // "VALUE" => pow(1024, 4) "UNIT" => "TQ", "VALUE" => pow(4096, 4) ), 1 => array( // "UNIT" => "GiB", // "VALUE" => pow(1024, 3) "UNIT" => "GQ", "VALUE" => pow(4096, 3) ), 2 => array( // "UNIT" => "MiB", // "VALUE" => pow(1024, 2) "UNIT" => "MQ", "VALUE" => pow(4096, 2) ), 3 => array( // "UNIT" => "KiB", // "VALUE" => 1024 "UNIT" => "KQ", "VALUE" => 4096 ), 4 => array( // "UNIT" => "B", "UNIT" => "Q", "VALUE" => 1 ) ); foreach($arBytes as $arItem) { if($bytes >= $arItem["VALUE"]) { $result = $bytes / $arItem["VALUE"]; $result = strval(round($result, 2))." ".$arItem["UNIT"]; break; } } return $result; } public function getFilesOfEntry($id) { // /api/rpc/store/entry/getfilesofentry/id $files = array_map("htmlspecialchars", scandir("assets/store/$id")); $files = array_diff($files, array('..', '.', 'screens')); $result = array(); foreach ($files as $file) { array_push($result, [ 'id' => $id, 'file' => $file, 'size' => $this->FileSizeConvert(filesize('assets/store/'.$id.'/'.$file)) ]); } return $result; } public function getEntry($id, $mode) { // /api/rpc/store/entry/getentry/id/mode if ($mode == 'user') { return DB::table('str_owners') ->join('str_file', 'str_owners.file_id', '=', 'str_file.id') ->join('users', 'str_owners.user_id', '=', 'users.id') ->join('usr_details', 'usr_details.user_id', '=', 'str_owners.user_id') ->join('usr_profile', 'usr_profile.user_id', '=', 'str_owners.user_id') ->join('usr_perm_id', 'usr_perm_id.user_id', '=', 'str_owners.user_id') ->where('str_owners.user_id', $id) ->get(array( 'file_id', 'str_owners.user_id', 'cat_id', 'title', 'version', 'description', 'changelog', 'views', 'downloads', 'isApproved', 'submit_date', 'last_date', 'username', 'avatar', 'perm_id', 'gender', 'display_name', 'name_style', )); } else { return DB::table('str_owners') ->join('str_file', 'str_owners.file_id', '=', 'str_file.id') ->join('users', 'str_owners.user_id', '=', 'users.id') ->join('usr_details', 'usr_details.user_id', '=', 'str_owners.user_id') ->join('usr_profile', 'usr_profile.user_id', '=', 'str_owners.user_id') ->join('usr_perm_id', 'usr_perm_id.user_id', '=', 'str_owners.user_id') ->where('file_id', $id) ->take(1) ->get(array( 'file_id', 'str_owners.user_id', 'cat_id', 'title', 'version', 'description', 'changelog', 'views', 'downloads', 'isApproved', 'submit_date', 'last_date', 'username', 'avatar', 'perm_id', 'gender', 'display_name', 'name_style', )); } } public function getEntryName($id) { // /api/rpc/store/entry/getentryname/id return DB::table('str_file') ->select('title', 'version') ->where('id', $id) ->get(); } public function getEntriesInCategory($cat_id) { // /api/rpc/store/entry/getentriesincategory/cat_id return DB::table('str_file') ->select('*') ->where('cat_id', $cat_id) ->get(); } public function countEntriesInCategory($cat_id) { // /api/rpc/store/entry/countentriesincategory/cat_id return DB::table('str_file') ->where('cat_id', $cat_id) ->where('isApproved', 1) ->count(); } public function countEntriesInCategoryFull($cat_id) { // /api/rpc/store/entry/countentriesincategoryfull/cat_id return DB::table('str_file') ->where('cat_id', $cat_id) ->count(); } public function insertEntry(Request $request) { // /api/rpc/store/entry/insert return; } public function updateEntry(Request $request) { // /api/rpc/store/entry/update return DB::table('str_file') ->where('id', $request->id) ->update([ 'cat_id' => $request->cat_id, 'title' => $request->title, 'version' => $request->version, 'description' => $request->description, 'changelog' => $request->changelog, 'warningnote' => $request->warningnote, 'last_date' => $request->last_date ]); } public function restoreEntry(Request $request) { // /api/rpc/store/entry/restore return DB::table('str_file') ->where('id', $request->id) ->update(['isApproved' => 1]); } public function removeEntry(Request $request) { // /api/rpc/store/entry/remove return DB::table('str_file') ->where('id', $request->id) ->update(['isApproved' => 0]); } }