/**
* WP_oEmbed_Controller class, used to provide an oEmbed endpoint.
*
* @package WordPress
* @subpackage Embeds
* @since 4.4.0
*/
/**
* oEmbed API endpoint controller.
*
* Registers the REST API route and delivers the response data.
* The output format (XML or JSON) is handled by the REST API.
*
* @since 4.4.0
*/
#[AllowDynamicProperties]
final class WP_oEmbed_Controller {
/**
* Register the oEmbed REST API route.
*
* @since 4.4.0
*/
public function register_routes() {
/**
* Filters the maxwidth oEmbed parameter.
*
* @since 4.4.0
*
* @param int $maxwidth Maximum allowed width. Default 600.
*/
$maxwidth = apply_filters( 'oembed_default_width', 600 );
register_rest_route(
'oembed/1.0',
'/embed',
array(
array(
'methods' => WP_REST_Server::READABLE,
'callback' => array( $this, 'get_item' ),
'permission_callback' => '__return_true',
'args' => array(
'url' => array(
'description' => __( 'The URL of the resource for which to fetch oEmbed data.' ),
'required' => true,
'type' => 'string',
'format' => 'uri',
),
'format' => array(
'default' => 'json',
'sanitize_callback' => 'wp_oembed_ensure_format',
),
'maxwidth' => array(
'default' => $maxwidth,
'sanitize_callback' => 'absint',
),
),
),
)
);
register_rest_route(
'oembed/1.0',
'/proxy',
array(
array(
'methods' => WP_REST_Server::READABLE,
'callback' => array( $this, 'get_proxy_item' ),
'permission_callback' => array( $this, 'get_proxy_item_permissions_check' ),
'args' => array(
'url' => array(
'description' => __( 'The URL of the resource for which to fetch oEmbed data.' ),
'required' => true,
'type' => 'string',
'format' => 'uri',
),
'format' => array(
'description' => __( 'The oEmbed format to use.' ),
'type' => 'string',
'default' => 'json',
'enum' => array(
'json',
'xml',
),
),
'maxwidth' => array(
'description' => __( 'The maximum width of the embed frame in pixels.' ),
'type' => 'integer',
'default' => $maxwidth,
'sanitize_callback' => 'absint',
),
'maxheight' => array(
'description' => __( 'The maximum height of the embed frame in pixels.' ),
'type' => 'integer',
'sanitize_callback' => 'absint',
),
'discover' => array(
'description' => __( 'Whether to perform an oEmbed discovery request for unsanctioned providers.' ),
'type' => 'boolean',
'default' => true,
),
),
),
)
);
}
/**
* Callback for the embed API endpoint.
*
* Returns the JSON object for the post.
*
* @since 4.4.0
*
* @param WP_REST_Request $request Full data about the request.
* @return array|WP_Error oEmbed response data or WP_Error on failure.
*/
public function get_item( $request ) {
$post_id = url_to_postid( $request['url'] );
/**
* Filters the determined post ID.
*
* @since 4.4.0
*
* @param int $post_id The post ID.
* @param string $url The requested URL.
*/
$post_id = apply_filters( 'oembed_request_post_id', $post_id, $request['url'] );
$data = get_oembed_response_data( $post_id, $request['maxwidth'] );
if ( ! $data ) {
return new WP_Error( 'oembed_invalid_url', get_status_header_desc( 404 ), array( 'status' => 404 ) );
}
return $data;
}
/**
* Checks if current user can make a proxy oEmbed request.
*
* @since 4.8.0
*
* @return true|WP_Error True if the request has read access, WP_Error object otherwise.
*/
public function get_proxy_item_permissions_check() {
if ( ! current_user_can( 'edit_posts' ) ) {
return new WP_Error( 'rest_forbidden', __( 'Sorry, you are not allowed to make proxied oEmbed requests.' ), array( 'status' => rest_authorization_required_code() ) );
}
return true;
}
/**
* Callback for the proxy API endpoint.
*
* Returns the JSON object for the proxied item.
*
* @since 4.8.0
*
* @see WP_oEmbed::get_html()
* @global WP_Embed $wp_embed WordPress Embed object.
* @global WP_Scripts $wp_scripts
*
* @param WP_REST_Request $request Full data about the request.
* @return object|WP_Error oEmbed response data or WP_Error on failure.
*/
public function get_proxy_item( $request ) {
global $wp_embed, $wp_scripts;
$args = $request->get_params();
// Serve oEmbed data from cache if set.
unset( $args['_wpnonce'] );
$cache_key = 'oembed_' . md5( serialize( $args ) );
$data = get_transient( $cache_key );
if ( ! empty( $data ) ) {
return $data;
}
$url = $request['url'];
unset( $args['url'] );
// Copy maxwidth/maxheight to width/height since WP_oEmbed::fetch() uses these arg names.
if ( isset( $args['maxwidth'] ) ) {
$args['width'] = $args['maxwidth'];
}
if ( isset( $args['maxheight'] ) ) {
$args['height'] = $args['maxheight'];
}
// Short-circuit process for URLs belonging to the current site.
$data = get_oembed_response_data_for_url( $url, $args );
if ( $data ) {
return $data;
}
$data = _wp_oembed_get_object()->get_data( $url, $args );
if ( false === $data ) {
// Try using a classic embed, instead.
/* @var WP_Embed $wp_embed */
$html = $wp_embed->get_embed_handler_html( $args, $url );
if ( $html ) {
// Check if any scripts were enqueued by the shortcode, and include them in the response.
$enqueued_scripts = array();
foreach ( $wp_scripts->queue as $script ) {
$enqueued_scripts[] = $wp_scripts->registered[ $script ]->src;
}
return (object) array(
'provider_name' => __( 'Embed Handler' ),
'html' => $html,
'scripts' => $enqueued_scripts,
);
}
return new WP_Error( 'oembed_invalid_url', get_status_header_desc( 404 ), array( 'status' => 404 ) );
}
/** This filter is documented in wp-includes/class-wp-oembed.php */
$data->html = apply_filters( 'oembed_result', _wp_oembed_get_object()->data2html( (object) $data, $url ), $url, $args );
/**
* Filters the oEmbed TTL value (time to live).
*
* Similar to the {@see 'oembed_ttl'} filter, but for the REST API
* oEmbed proxy endpoint.
*
* @since 4.8.0
*
* @param int $time Time to live (in seconds).
* @param string $url The attempted embed URL.
* @param array $args An array of embed request arguments.
*/
$ttl = apply_filters( 'rest_oembed_ttl', DAY_IN_SECONDS, $url, $args );
set_transient( $cache_key, $data, $ttl );
return $data;
}
}
The post Spille Uden Om Rufus En Guide til Online Spil first appeared on .
]]>
I de seneste år har spillet i Danmark været stærkt reguleret af Rufus, som står for at overvåge og kontrollere gamblingaktivitet for at sikre spillerbeskyttelse. Men der findes måder at få adgang til spil udenom Rufus, hvilket har ført til voksende interesse blandt danske spillere. I denne artikel vil vi udforske, hvordan man kan spille uden om Rufus, [udenlandsk casino med dansk licens](https://strikkeopskrift.com/) og de forskellige muligheder, der er tilgængelige for spillere. Vi vil se på konsekvenserne af at spille uden om de etablerede reguleringer og give tips til, hvordan man kan navigere inden for lovens rammer.
Rufus er den danske spillemyndighed, der blev oprettet med det formål at regulere gamblingaktiviteter i landet. Denne organisation har ansvar for at sikre, at spillere er beskyttet mod svindel og afhængighed, samtidig med at de sikrer, at spiludbydere opererer inden for de fastsatte lovgivninger. Rufus tilbyder en række værktøjer til spillerne, såsom selvudelukkelse, der gør det muligt for dem at tage en pause fra gambling, hvis de føler, at de mister kontrollen.
Mange spillere vælger at spille uden om Rufus af forskellige årsager. Nogle spillere føler, at de er begrænset af de restriktioner og regler, som Rufus har indført. Andre kan være på udkig efter mere spændende og innovative spil, som ikke er tilgængelige på de regulerede platforme. Desuden frister nogle spillere de højere bonusser og mere lukrative odds, som ofte findes på udenlandske casinoer.
Der er flere måder, hvorpå spillere kan navigere uden om Rufus og stadig nyde deres yndlingsspil. Nogle af de mest populære metoder inkluderer:

En af de mest almindelige måder at spille uden om Rufus er at registrere sig på udenlandske online casinoer. Disse platforme opererer under andre jurisdiktioner, hvilket betyder, at de ikke nødvendigvis er underlagt de samme strenge regler som danske casinoer. Spillere har adgang til et bredt udvalg af spil, live dealer-spil og ofte mere attraktive bonusser.
Nogle spillere vælger at bruge VPN-tjenester til at skjule deres placering, når de tilgår udenlandske casinoer. Dette kan give dem mulighed for at registrere sig på platforme, der normalt ikke er tilgængelige i Danmark. Det er dog vigtigt at bemærke, at brugen af VPN kan være i strid med casinoernes vilkår og betingelser, og risikere kontoens lukning.
Brugen af cryptocurrency som Bitcoin og Ethereum er blevet mere udbredt i casino-verdenen. Mange udenlandske casinoer accepterer cryptocurrency som betalingsmetode, hvilket gør det muligt for spillere at indgå transaktioner uden at skulle bruge traditionelle bankmetoder, der kan spores af Rufus.
Selvom det kan være fristende at spille uden om Rufus, er der flere faktorer, man skal overveje, før man træffer beslutningen:

Udenlandske casinoer kan ikke tilbyde den samme beskyttelse og sikkerhed, som regulerede danske casinoer gør. Derudover er der en risiko for, at nogle platforme kan være svigagtige eller bedrageriske. Det er vigtigt at research og vælge casinoer, der har et godt omdømme og er blevet anbefalet af andre spillere.
Når man spiller udenom Rufus, kan man miste muligheden for at indgive klager eller få assistance via danske myndigheder, hvis der opstår problemer. Hvis du skal håndtere problemer som svindel eller betalingsudfordringer, kan det være svært at få hjælp.
Spil uden om Rufus kan være i strid med dansk lovgivning, og spillere bør være opmærksomme på de potentielle rettergang, der kan følge med. Det er vigtigt at overveje konsekvenserne og tage informeret beslutning før man tilgår udenlandske platforme.
At spille uden om Rufus i Danmark kan virke fristende for mange spillere, der søger efter flere muligheder og bedre bonusser. Dog er det afgørende at vurderer konsekvenserne af at spille uden for de regulerede rammer. Vælg altid pålidelige og anerkendte platforme, og vær opmærksom på, at du kan miste spillerbeskyttelsen og klageadgang. Gør dit hjemmearbejde, og vær sikker på, at du træffer informerede valg i din spillerejse.
The post Spille Uden Om Rufus En Guide til Online Spil first appeared on .
]]>