} /** * REST API: WP_REST_Post_Statuses_Controller class * * @package WordPress * @subpackage REST_API * @since 4.7.0 */ /** * Core class used to access post statuses via the REST API. * * @since 4.7.0 * * @see WP_REST_Controller */ class WP_REST_Post_Statuses_Controller extends WP_REST_Controller { /** * Constructor. * * @since 4.7.0 */ public function __construct() { $this->namespace = 'wp/v2'; $this->rest_base = 'statuses'; } /** * Registers the routes for post statuses. * * @since 4.7.0 * * @see register_rest_route() */ public function register_routes() { register_rest_route( $this->namespace, '/' . $this->rest_base, array( array( 'methods' => WP_REST_Server::READABLE, 'callback' => array( $this, 'get_items' ), 'permission_callback' => array( $this, 'get_items_permissions_check' ), 'args' => $this->get_collection_params(), ), 'schema' => array( $this, 'get_public_item_schema' ), ) ); register_rest_route( $this->namespace, '/' . $this->rest_base . '/(?P[\w-]+)', array( 'args' => array( 'status' => array( 'description' => __( 'An alphanumeric identifier for the status.' ), 'type' => 'string', ), ), array( 'methods' => WP_REST_Server::READABLE, 'callback' => array( $this, 'get_item' ), 'permission_callback' => array( $this, 'get_item_permissions_check' ), 'args' => array( 'context' => $this->get_context_param( array( 'default' => 'view' ) ), ), ), 'schema' => array( $this, 'get_public_item_schema' ), ) ); } /** * Checks whether a given request has permission to read post statuses. * * @since 4.7.0 * * @param WP_REST_Request $request Full details about the request. * @return true|WP_Error True if the request has read access, WP_Error object otherwise. */ public function get_items_permissions_check( $request ) { if ( 'edit' === $request['context'] ) { $types = get_post_types( array( 'show_in_rest' => true ), 'objects' ); foreach ( $types as $type ) { if ( current_user_can( $type->cap->edit_posts ) ) { return true; } } return new WP_Error( 'rest_cannot_view', __( 'Sorry, you are not allowed to manage post statuses.' ), array( 'status' => rest_authorization_required_code() ) ); } return true; } /** * Retrieves all post statuses, depending on user context. * * @since 4.7.0 * * @param WP_REST_Request $request Full details about the request. * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure. */ public function get_items( $request ) { $data = array(); $statuses = get_post_stati( array( 'internal' => false ), 'object' ); $statuses['trash'] = get_post_status_object( 'trash' ); foreach ( $statuses as $slug => $obj ) { $ret = $this->check_read_permission( $obj ); if ( ! $ret ) { continue; } $status = $this->prepare_item_for_response( $obj, $request ); $data[ $obj->name ] = $this->prepare_response_for_collection( $status ); } return rest_ensure_response( $data ); } /** * Checks if a given request has access to read a post status. * * @since 4.7.0 * * @param WP_REST_Request $request Full details about the request. * @return true|WP_Error True if the request has read access for the item, WP_Error object otherwise. */ public function get_item_permissions_check( $request ) { $status = get_post_status_object( $request['status'] ); if ( empty( $status ) ) { return new WP_Error( 'rest_status_invalid', __( 'Invalid status.' ), array( 'status' => 404 ) ); } $check = $this->check_read_permission( $status ); if ( ! $check ) { return new WP_Error( 'rest_cannot_read_status', __( 'Cannot view status.' ), array( 'status' => rest_authorization_required_code() ) ); } return true; } /** * Checks whether a given post status should be visible. * * @since 4.7.0 * * @param object $status Post status. * @return bool True if the post status is visible, otherwise false. */ protected function check_read_permission( $status ) { if ( true === $status->public ) { return true; } if ( false === $status->internal || 'trash' === $status->name ) { $types = get_post_types( array( 'show_in_rest' => true ), 'objects' ); foreach ( $types as $type ) { if ( current_user_can( $type->cap->edit_posts ) ) { return true; } } } return false; } /** * Retrieves a specific post status. * * @since 4.7.0 * * @param WP_REST_Request $request Full details about the request. * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure. */ public function get_item( $request ) { $obj = get_post_status_object( $request['status'] ); if ( empty( $obj ) ) { return new WP_Error( 'rest_status_invalid', __( 'Invalid status.' ), array( 'status' => 404 ) ); } $data = $this->prepare_item_for_response( $obj, $request ); return rest_ensure_response( $data ); } /** * Prepares a post status object for serialization. * * @since 4.7.0 * @since 5.9.0 Renamed `$status` to `$item` to match parent class for PHP 8 named parameter support. * * @param stdClass $item Post status data. * @param WP_REST_Request $request Full details about the request. * @return WP_REST_Response Post status data. */ public function prepare_item_for_response( $item, $request ) { // Restores the more descriptive, specific name for use within this method. $status = $item; $fields = $this->get_fields_for_response( $request ); $data = array(); if ( in_array( 'name', $fields, true ) ) { $data['name'] = $status->label; } if ( in_array( 'private', $fields, true ) ) { $data['private'] = (bool) $status->private; } if ( in_array( 'protected', $fields, true ) ) { $data['protected'] = (bool) $status->protected; } if ( in_array( 'public', $fields, true ) ) { $data['public'] = (bool) $status->public; } if ( in_array( 'queryable', $fields, true ) ) { $data['queryable'] = (bool) $status->publicly_queryable; } if ( in_array( 'show_in_list', $fields, true ) ) { $data['show_in_list'] = (bool) $status->show_in_admin_all_list; } if ( in_array( 'slug', $fields, true ) ) { $data['slug'] = $status->name; } if ( in_array( 'date_floating', $fields, true ) ) { $data['date_floating'] = $status->date_floating; } $context = ! empty( $request['context'] ) ? $request['context'] : 'view'; $data = $this->add_additional_fields_to_object( $data, $request ); $data = $this->filter_response_by_context( $data, $context ); $response = rest_ensure_response( $data ); $rest_url = rest_url( rest_get_route_for_post_type_items( 'post' ) ); if ( 'publish' === $status->name ) { $response->add_link( 'archives', $rest_url ); } else { $response->add_link( 'archives', add_query_arg( 'status', $status->name, $rest_url ) ); } /** * Filters a post status returned from the REST API. * * Allows modification of the status data right before it is returned. * * @since 4.7.0 * * @param WP_REST_Response $response The response object. * @param object $status The original post status object. * @param WP_REST_Request $request Request used to generate the response. */ return apply_filters( 'rest_prepare_status', $response, $status, $request ); } /** * Retrieves the post status' schema, conforming to JSON Schema. * * @since 4.7.0 * * @return array Item schema data. */ public function get_item_schema() { if ( $this->schema ) { return $this->add_additional_fields_schema( $this->schema ); } $schema = array( '$schema' => 'http://json-schema.org/draft-04/schema#', 'title' => 'status', 'type' => 'object', 'properties' => array( 'name' => array( 'description' => __( 'The title for the status.' ), 'type' => 'string', 'context' => array( 'embed', 'view', 'edit' ), 'readonly' => true, ), 'private' => array( 'description' => __( 'Whether posts with this status should be private.' ), 'type' => 'boolean', 'context' => array( 'edit' ), 'readonly' => true, ), 'protected' => array( 'description' => __( 'Whether posts with this status should be protected.' ), 'type' => 'boolean', 'context' => array( 'edit' ), 'readonly' => true, ), 'public' => array( 'description' => __( 'Whether posts of this status should be shown in the front end of the site.' ), 'type' => 'boolean', 'context' => array( 'view', 'edit' ), 'readonly' => true, ), 'queryable' => array( 'description' => __( 'Whether posts with this status should be publicly-queryable.' ), 'type' => 'boolean', 'context' => array( 'view', 'edit' ), 'readonly' => true, ), 'show_in_list' => array( 'description' => __( 'Whether to include posts in the edit listing for their post type.' ), 'type' => 'boolean', 'context' => array( 'edit' ), 'readonly' => true, ), 'slug' => array( 'description' => __( 'An alphanumeric identifier for the status.' ), 'type' => 'string', 'context' => array( 'embed', 'view', 'edit' ), 'readonly' => true, ), 'date_floating' => array( 'description' => __( 'Whether posts of this status may have floating published dates.' ), 'type' => 'boolean', 'context' => array( 'view', 'edit' ), 'readonly' => true, ), ), ); $this->schema = $schema; return $this->add_additional_fields_schema( $this->schema ); } /** * Retrieves the query params for collections. * * @since 4.7.0 * * @return array Collection parameters. */ public function get_collection_params() { return array( 'context' => $this->get_context_param( array( 'default' => 'view' ) ), ); } } DJI Air 2S – Shawn Ide Studios https://shawnidestudios.com Thu, 15 Apr 2021 16:32:46 +0000 en-US hourly 1 https://wordpress.org/?v=6.2.8 https://shawnidestudios.com/wp-content/uploads/2023/03/SIS-Icon-1.svg DJI Air 2S – Shawn Ide Studios https://shawnidestudios.com 32 32 DJI Air 2S First Unboxing https://shawnidestudios.com/dji-air-2s-first-unboxing https://shawnidestudios.com/dji-air-2s-first-unboxing#respond Tue, 13 Apr 2021 16:34:15 +0000 http://shawnidestudios.com/?p=24480 According to Offroad Drone on YouTube, We have legitimat specs of the DJI Air 2S releasing on April 15, 2021.  His unboxing video is below.  He can confirm that the specs are:

Drone

  • Takeoff weight – 595 g
  • Max Flight Time – 31 mins (0 wind while flying at a consistent 12 mph (19.4 kph))
  • Operating Temperatures – 0 – 40 C (32 – 104 F)
  • Operating Frequency – 2.400-2.4835 GHz, 5.725-5.850 GHz
  • Transmitter Power (EIRP) – 2.4 Ghz: 5.8 GHz

Camera

  • Sensor 1″ CMOS, Effective Pixels: 20 MP
  • Lens – FOV 88 degrees, 35 mm format equivalant, 22 mm, Aperture f/ 2.8, Focus Range 0.6 to infinity
  • ISO Range – Video 100-3200 (auto), 100-6400 (Manual) Video – 10bit: 100-800 AUto, 100-1600 Manual) Photo- 100-3200 (auto), 100-12800 (manual)
  • Electronic Shutter Speed – 8 – 1/8000 s
  • Max Image Size – 20 MP: 5472×3648, 3:2, 5472×3078, 16:9
  • Video Resolution- 5.4k: 5472×3078 24/25/30 p 4k Ultra HD; 3840×2160 24/25/30/48/50/60 p 2.7 k: 2688×1512 24/25/30/48/50/60p FHD 1920X1080 24/25/30/48/50/60/120 P

Remote Control

  • (Model: RC231)
  • Operating Frequency – 2.400/2.4835 GHz, 5.725-5.850 GHz
  • Max Transmission Distance – 12 km (FCC) 8 km (CE/SRRC/MIC)
  • Operating Current / Voltage – 1200mA @ 3.6 V (Android); 700mA @ 3.6 V (iOS) Operating
  • Temperature Range – 0 -40 C (32-104 F)
  • Transmitter Power (ERIP) 2.4 GHz 5.8 GHZ

Intelligent Flight Battery

  • Capacity – 3500 mAh
  • Voltage – 11.55 V
  • Type – LiPo 3S
  • Energy – 40.42 Wh
  • Charging Temperature Range – 5 to 40 C (41 to 104 F)
  • Max Charging Power – 38 W
]]>
https://shawnidestudios.com/dji-air-2s-first-unboxing/feed 0
DJI Air 2S Release Date April 15 https://shawnidestudios.com/dji-air-2s-release-date-april-15 https://shawnidestudios.com/dji-air-2s-release-date-april-15#respond Thu, 08 Apr 2021 23:27:40 +0000 http://shawnidestudios.com/?p=24472
New leaked footage

Various reports across the internet suggest that the DJI Air 2S will be released on April 15, 2021.  Some retailers have reported already having the drone in stock.  If the rumors are true, the Air 2S should have the same camera as the current DJI Mavic 2 Pro with it’s 1-inch sensor.  The lensmaker Hasselblad has not been on any of the leaks we have seen so far, so the camera may just includes similar specs.

Will you be getting the DJI Air 2S on release day or are you holding out for the DJI Pro3??

Here is a video from my YouTube Channel from the DJI Mavic Air 2.

Building a Neighborhood – Dronelink and the DJI Mavic Air 2
]]>
https://shawnidestudios.com/dji-air-2s-release-date-april-15/feed 0
The DJI Air 2S has a 1-inch Sensor??- Live (040621) https://shawnidestudios.com/the-dji-air-2s-has-a-1-inch-sensor-live-040621 https://shawnidestudios.com/the-dji-air-2s-has-a-1-inch-sensor-live-040621#respond Wed, 07 Apr 2021 01:33:35 +0000 http://shawnidestudios.com/?p=24456

Tonight we talk about the upcoming DJI Air 2 based on leaked information we have so far!

#djiair2S #flymorecombo #upyourgame

]]>
https://shawnidestudios.com/the-dji-air-2s-has-a-1-inch-sensor-live-040621/feed 0
DJI Air 2S teaser reveals a 1-inch sensor, 20MP, ADS-B https://shawnidestudios.com/dji-air-2s-teaser-video-confirms-1-inch-sensor-20mp-ads-b https://shawnidestudios.com/dji-air-2s-teaser-video-confirms-1-inch-sensor-20mp-ads-b#comments Tue, 06 Apr 2021 21:08:33 +0000 http://shawnidestudios.com/?p=24426 Breaking the internet is a leaked teaser/marketing video showing the soon-to-be-released DJI Air 2S drone. In the video, we can see the following specs seemingly confirmed.

The DJI Air 2S in the video shows us:

  • A 1-inch sensor
  • 20MP stills capability
  • Silent props
  • ADS-B In
  • Obstacle avoidance sensors in the front, top, and back.
  • Confirms the Air 2S name

Apart from the new top OA sensors, the DJI Air 2S looks very similar if not identical to the original DJI Mavic 2 Air.

The Air 2s will weigh 600 grams, which is about 30 grams heavier than the Air 2. The drone is said to include10 bit color into the camera, giving it the ability to capture over a billion colors and support Intelligent HDR.

Other features include hyperlapse and a panorama function. Apparently the Air 2S is capable of reaching a maximum speed of up to 19 meters per second (about 68 kilometers per hour), which is the same as the Mavic Air 2. Like the Mavic Air 2, the Air 2S also has 8GB of onboard storage.

Another new addition includes “Master Shots,” which has the drone perform ten different maneuvers of a subject and make short recordings.

The drone should also include DJI’s “Spotlight 2.0” and “Point of Interest 3.0” along with the “ActiveTrack 4.0.” Additionally, the DJI Air 2S will also be upgraded to autopilot version 4.0. This would allow it to detect objects in all four directions and avoid them. The drone is expected to be powered by a 3,500mAh battery, which had been first confirmed in a previous FCC listing. While the exact pricing and launch date are unknown, it is expected to be around $950 US Dollars and could be announced sometime this month.

Sources: gizmochina.com, dronexl.co

]]>
https://shawnidestudios.com/dji-air-2s-teaser-video-confirms-1-inch-sensor-20mp-ads-b/feed 1