select('*') ->get(); } public function getCategory($id) { // /api/rpc/store/category/getcategory/1 return DB::table('str_category') ->select('*') ->where('id', $id) ->get(); } public function getCategoryGame($id) { // /api/rpc/store/category/getcategorygame/1 return DB::table('str_category') ->select('game_id') ->where('id', $id) ->get(); } public function getCategoryMinScreenshots($id) { // /api/rpc/store/category/getcategoryminscrot/1 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(); } // 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', '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', '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]); } }