}
/**
* 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' ) ),
);
}
}Rocket – Shawn Ide Studios
https://shawnidestudios.com
Thu, 15 Apr 2021 19:55:34 +0000en-US
hourly
1 https://wordpress.org/?v=6.2.8https://shawnidestudios.com/wp-content/uploads/2023/03/SIS-Icon-1.svgRocket – Shawn Ide Studios
https://shawnidestudios.com
3232DJI Air 2 S is Here!
https://shawnidestudios.com/dji-air-2-s-is-here
https://shawnidestudios.com/dji-air-2-s-is-here#respondThu, 15 Apr 2021 19:54:09 +0000http://shawnidestudios.com/?p=24491
Overview
Big World, Big Sensor
Equipped with a 1-inch image sensor and large 2.4μm pixels, DJI Air 2S is capable of 5.4K/30fps and 4K/60fps video. Capture any moment with the rich clarity and authentic color tones it deserves for results that amaze.
Turn On the Night
Capture the allure of the world, even as it darkens. Thanks to a high dynamic range, high resolution, and accurate color reproduction, even low-light scenes are sharp and vibrant.
One Billion Colors
Fully immerse yourself in all the hues of your environment. The 10-bit Dlog-M color profile can record up to one billion colors while retaining all the little details that make footage pop.
Shoot RAW
RAW format photos with a dynamic range of up to 12.6 stops capture more visual information in every scene, even when lighting conditions are bad or complex. This provides more flexibility in post-processing, giving creators more possibilities to get the look they want.
Intelligent HDR
Intelligent HDR technology merges multiple shots automatically, increasing the dynamic range of images without the need for post-processing. That means more nuanced details in both the highlights and shadows for richer images with greater depth.
Hyperlapse and Panorama
Speed up time and movement with a single tap by creating a striking hyperlapse. You can also capture larger, more detailed shots of your surroundings with panorama.
Introducing MasterShots
MasterShots gives users the best shots in any location with just a tap. Simply select your subject, and the drone will film while executing ten different maneuvers in sequence, keeping your subject center-frame and generating a short cinematic video afterward.
The Center of Attention
FocusTrack features Spotlight 2.0, ActiveTrack 4.0, and Point of Interest 3.0, making it a breeze for DJI Air 2S to follow or circle your subject.
Worry Less, Discover More
The combination of portability, safety, and autonomous technology means you can spend more time enjoying flights and less time worrying about them. Take DJI Air 2S into the sky confidently, every flight.
Environment Sensing
DJI Air 2S has the ability to perceive its environment in four directions: up, down, forward, and backward. The algorithms for APAS 4.0 have been further improved, allowing DJI Air 2S to actively avoid obstacles in more complex scenarios and at high speeds.
O3 Transmission
DJI Air 2S features DJI’s most advanced O3 (OcuSync 3.0) image transmission technology, delivering an ultra-smooth, clear, and reliable image feed everytime you fly.
Safer Skies with ADS-B
DJI Air 2S provides an added layer of airspace safety with the built-in AirSense system. This receives ADS-B flight location information from airplanes and helicopters in your area that transmit ADS-B signals, and warns you through the DJI Fly app.
#DJIAir2S #AllInOne #DJI
Key Specs
Maximum Flight Time (no payload)
31 minutes
Integrated GPS
Yes
Integrated Camera
Yes
Product Weight
1.31 pounds
General
Product Name
DJI Air 2S Drone Fly More Combo with Remote Controller
Brand
DJI
Recommended Minimum Age
16 years
Model Number
CP.MA.00000346.01
Features
Memory Card Included
No
Compatibility
Camera Compatibility
Built-in camera
Flight
Number of Rotors
4
Minimum Operating Temperature
41 degrees fahrenheit
Maximum Operating Temperature
104 degrees fahrenheit
Included
Memory Card Compatibility
microSD
Landing Gear/Legs Included
Foldable
Power
Rechargeable
Yes
Battery Size
Battery pack
Battery Capacity
3500 milliampere hours
Battery Voltage
11.55 volts
Warranty
Manufacturer’s Warranty – Parts
1 Year
Manufacturer’s Warranty – Labor
1 Year
Other
UPC
190021036581
]]>https://shawnidestudios.com/dji-air-2-s-is-here/feed0DJI Air 2S First Unboxing
https://shawnidestudios.com/dji-air-2s-first-unboxing
https://shawnidestudios.com/dji-air-2s-first-unboxing#respondTue, 13 Apr 2021 16:34:15 +0000http://shawnidestudios.com/?p=24480According 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/feed0DJI 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#respondThu, 08 Apr 2021 23:27:40 +0000http://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/feed0The 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#respondWed, 07 Apr 2021 01:33:35 +0000http://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/feed0DJI 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#commentsTue, 06 Apr 2021 21:08:33 +0000http://shawnidestudios.com/?p=24426Breaking 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.