Adding modem 4g usb.
This commit is contained in:
parent
3875114830
commit
3ae4ce6808
41
content/products/05-modem-usb-4g-hmuf-v5.xml
Normal file
41
content/products/05-modem-usb-4g-hmuf-v5.xml
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
<product>
|
||||||
|
<title>Modem USB 4G HMUF-V5</title>
|
||||||
|
<description>
|
||||||
|
<h3>¡¡¡¡IMPORTANTE ESCOGER COLOR "WHITE RED 1PC"!!!!</h3>
|
||||||
|
|
||||||
|
<p>Te permite dar internet en cualquier sitio a través de
|
||||||
|
usb a tu ordenador con una tarjeta SIM extra que puedes pedir
|
||||||
|
en tu operadora usando un plan Multisim usando los datos
|
||||||
|
de tu tarifa con la ventaja de no gastar batería del
|
||||||
|
movil en esta tarea.</p>
|
||||||
|
|
||||||
|
<p>También puede proveer de internet a través de wifi
|
||||||
|
a dispositivos cercanos como móviles u otros ordenadores.</p>
|
||||||
|
|
||||||
|
<p>Es muy importante que al usarlo cambies la clave por defecto
|
||||||
|
del wifi; o incluso que lo desactives si no lo necesitas.</p>
|
||||||
|
|
||||||
|
<p>Para ello deberás conectarte con tu navegador a http://192.168.100.1
|
||||||
|
una vez tengas el modem conectado por usb a tu ordenador para cambiar
|
||||||
|
los ajustes con el usuario admin y la contraseña admin.</p>
|
||||||
|
|
||||||
|
<p>Este modelo contiene un ordenador completo en su interior
|
||||||
|
al que se le puede instalar un sistema operativo alternativo;
|
||||||
|
no obstante no recomiendo comprarlo para ese proposito ya
|
||||||
|
que el proceso no está documentado ni soportado en internet.</p>
|
||||||
|
|
||||||
|
<p>Bajo ningún concepto desactives la opción de usb tethering,
|
||||||
|
no podrás reconfigurar el modem y el vendedor no te ayudará a
|
||||||
|
resolver el problema. (Es solucionable, pero no por usuarios
|
||||||
|
sin conocimientos del uso del terminal)</p>
|
||||||
|
|
||||||
|
<p>Si has comprado este producto a través de nuestro enlace, vives
|
||||||
|
en Burguillos y se te estropea puedes contactar con
|
||||||
|
burguillos.info en Instagram e intentaremos hacer lo
|
||||||
|
posible por ayudarte si el vendedor no responde.</p>
|
||||||
|
</description>
|
||||||
|
<slug>modem-4g-usb-hmuf-v5</slug>
|
||||||
|
<img>/img/hmuf-v5.webp</img>
|
||||||
|
<vendor>Aliexpress</vendor>
|
||||||
|
<url>https://s.click.aliexpress.com/e/_okTlQcF</url>
|
||||||
|
</product>
|
@ -77,7 +77,7 @@ sub _index_products( $self, $index, $products ) {
|
|||||||
for my $key (@product_keys) {
|
for my $key (@product_keys) {
|
||||||
my $product = $products->{$key};
|
my $product = $products->{$key};
|
||||||
my $title = $product->{title};
|
my $title = $product->{title};
|
||||||
my $content = $product->{description};
|
my $content = $product->{description_text};
|
||||||
my $url = "/product/@{[$product->{slug}]}";
|
my $url = "/product/@{[$product->{slug}]}";
|
||||||
my $image = $product->{img};
|
my $image = $product->{img};
|
||||||
my $vendor = $product->{vendor};
|
my $vendor = $product->{vendor};
|
||||||
|
@ -12,9 +12,22 @@ use Data::Dumper;
|
|||||||
use Mojo::Base 'Mojolicious::Controller', '-signatures';
|
use Mojo::Base 'Mojolicious::Controller', '-signatures';
|
||||||
|
|
||||||
sub direct_buy($self) {
|
sub direct_buy($self) {
|
||||||
my $products = BurguillosInfo::Products->new->Retrieve;
|
my $products = BurguillosInfo::Products->new->Retrieve;
|
||||||
my $slug = $self->param('slug');
|
my $slug = $self->param('slug');
|
||||||
$self->redirect_to($products->{$slug}{url});
|
my $product = $products->{$slug};
|
||||||
|
my $referer = $self->req->headers->referer || '';
|
||||||
|
my $base_url = $self->config('base_url');
|
||||||
|
if ( $referer !~ /^$base_url/ ) {
|
||||||
|
undef $referer;
|
||||||
|
}
|
||||||
|
if ( $product->{vendor} eq 'Aliexpress' ) {
|
||||||
|
return $self->render(
|
||||||
|
template => 'page/aliexpress-product',
|
||||||
|
product => $product,
|
||||||
|
referer => $referer,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
$self->redirect_to( $product->{url} );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
1;
|
1;
|
||||||
|
@ -29,7 +29,10 @@ sub Retrieve ($self) {
|
|||||||
my $dom = Mojo::DOM->new->xml(1)->parse( $product_file->slurp_utf8 );
|
my $dom = Mojo::DOM->new->xml(1)->parse( $product_file->slurp_utf8 );
|
||||||
defined( my $title = $dom->at(':root > title')->text )
|
defined( my $title = $dom->at(':root > title')->text )
|
||||||
or die "Missing title at $product_file.";
|
or die "Missing title at $product_file.";
|
||||||
defined( my $description = $dom->at(':root > description')->text )
|
defined( my $description = $dom->at(':root > description')->content )
|
||||||
|
or die "Missing description at $product_file.";
|
||||||
|
defined( my $description_text =
|
||||||
|
$dom->at(':root > description')->all_text )
|
||||||
or die "Missing description at $product_file.";
|
or die "Missing description at $product_file.";
|
||||||
defined( my $slug = $dom->at(':root > slug')->text )
|
defined( my $slug = $dom->at(':root > slug')->text )
|
||||||
or die "Missing slug at $product_file.";
|
or die "Missing slug at $product_file.";
|
||||||
@ -40,12 +43,13 @@ sub Retrieve ($self) {
|
|||||||
defined( my $url = $dom->at(':root > url')->text )
|
defined( my $url = $dom->at(':root > url')->text )
|
||||||
or die "Missing url at $product_file.";
|
or die "Missing url at $product_file.";
|
||||||
$cached_products->{$slug} = {
|
$cached_products->{$slug} = {
|
||||||
title => $title,
|
title => $title,
|
||||||
description => $description,
|
description => $description,
|
||||||
slug => $slug,
|
description_text => $description_text,
|
||||||
img => $img,
|
slug => $slug,
|
||||||
vendor => $vendor,
|
img => $img,
|
||||||
url => $url,
|
vendor => $vendor,
|
||||||
|
url => $url,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
return $cached_products;
|
return $cached_products;
|
||||||
|
@ -2,6 +2,50 @@ html {
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
touch-action: none; }
|
touch-action: none; }
|
||||||
|
|
||||||
|
body.aliexpress-redirection {
|
||||||
|
background: azure; }
|
||||||
|
|
||||||
|
div.warning-aliexpress {
|
||||||
|
display: block;
|
||||||
|
overflow: scroll;
|
||||||
|
background: white;
|
||||||
|
width: calc(90% - 100px);
|
||||||
|
border: solid 3px black;
|
||||||
|
border-radius: 20px;
|
||||||
|
position: absolute;
|
||||||
|
left: 50%;
|
||||||
|
transform: translate(-50%, -50%);
|
||||||
|
top: 50%;
|
||||||
|
height: 80%;
|
||||||
|
padding: 50px;
|
||||||
|
max-width: 874px; }
|
||||||
|
div.warning-aliexpress h1 {
|
||||||
|
margin-top: 10px;
|
||||||
|
text-align: center; }
|
||||||
|
div.warning-aliexpress div.buttons {
|
||||||
|
width: 50%;
|
||||||
|
max-width: 409px;
|
||||||
|
margin-left: 50%;
|
||||||
|
transform: translateX(-50%); }
|
||||||
|
div.warning-aliexpress div.buttons img {
|
||||||
|
width: 100%; }
|
||||||
|
div.warning-aliexpress div.buttons a {
|
||||||
|
display: inline-block;
|
||||||
|
margin-top: 20px;
|
||||||
|
border-radius: 10px;
|
||||||
|
padding: 10px;
|
||||||
|
border: solid 3px black;
|
||||||
|
text-decoration: none;
|
||||||
|
font-weight: bold; }
|
||||||
|
div.warning-aliexpress div.buttons a.buy {
|
||||||
|
color: #445E45;
|
||||||
|
background: #a9d9ab;
|
||||||
|
border-color: #749d72; }
|
||||||
|
div.warning-aliexpress div.buttons a.back {
|
||||||
|
color: grey;
|
||||||
|
background: #ff958c;
|
||||||
|
border-color: #ed574b; }
|
||||||
|
|
||||||
div.tooltip-search-promo::after {
|
div.tooltip-search-promo::after {
|
||||||
content: " ";
|
content: " ";
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
@ -18,6 +18,58 @@ html {
|
|||||||
touch-action: none;
|
touch-action: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
body.aliexpress-redirection {
|
||||||
|
background: azure;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.warning-aliexpress {
|
||||||
|
display: block;
|
||||||
|
overflow: scroll;
|
||||||
|
background: white;
|
||||||
|
width: calc(90% - 100px);
|
||||||
|
border: solid 3px black;
|
||||||
|
border-radius: 20px;
|
||||||
|
position: absolute;
|
||||||
|
left: 50%;
|
||||||
|
transform: translate(-50%, -50%);
|
||||||
|
top: 50%;
|
||||||
|
height: 80%;
|
||||||
|
padding: 50px;
|
||||||
|
max-width: 874px;
|
||||||
|
h1 {
|
||||||
|
margin-top: 10px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
div.buttons {
|
||||||
|
width: 50%;
|
||||||
|
max-width: 409px;
|
||||||
|
img {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
margin-left: 50%;
|
||||||
|
transform: translateX(-50%);
|
||||||
|
a {
|
||||||
|
display: inline-block;
|
||||||
|
margin-top: 20px;
|
||||||
|
border-radius: 10px;
|
||||||
|
padding: 10px;
|
||||||
|
border: solid 3px black;
|
||||||
|
text-decoration: none;
|
||||||
|
font-weight: bold;
|
||||||
|
&.buy {
|
||||||
|
color: #445e45;
|
||||||
|
background: #a9d9ab;
|
||||||
|
border-color: #749d72;
|
||||||
|
}
|
||||||
|
&.back {
|
||||||
|
color: grey;
|
||||||
|
background: #ff958c;
|
||||||
|
border-color: #ed574b;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
div.tooltip-search-promo::after {
|
div.tooltip-search-promo::after {
|
||||||
content: " ";
|
content: " ";
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
BIN
public/img/hmuf-v5.webp
Normal file
BIN
public/img/hmuf-v5.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 10 KiB |
108
templates/page/aliexpress-product.html.ep
Normal file
108
templates/page/aliexpress-product.html.ep
Normal file
@ -0,0 +1,108 @@
|
|||||||
|
<html lang="es">
|
||||||
|
% my $product = stash 'product';
|
||||||
|
% my $referer = stash 'referer';
|
||||||
|
% my $description_og = $product->{description};
|
||||||
|
% $description_og =~ s/\s+/ /g;
|
||||||
|
% $description_og = substr $description_og, 0, 157;
|
||||||
|
% $description_og =~ s/\s\S+$//;
|
||||||
|
% $description_og.='...';
|
||||||
|
% my $base_url = config 'base_url';
|
||||||
|
% use Time::Piece;
|
||||||
|
% my $t = Time::Piece->new();
|
||||||
|
% my $year = $t->year;
|
||||||
|
<head>
|
||||||
|
<!-- Google Tag Manager -->
|
||||||
|
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
|
||||||
|
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
|
||||||
|
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
|
||||||
|
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
|
||||||
|
})(window,document,'script','dataLayer','GTM-P9K5VBGN');</script>
|
||||||
|
<!-- End Google Tag Manager -->
|
||||||
|
<!-- Google tag (gtag.js) -->
|
||||||
|
<script async src="https://www.googletagmanager.com/gtag/js?id=G-SBSKCCF31B"></script>
|
||||||
|
<script type="module" src="/js/cookie.js"></script>
|
||||||
|
<script>
|
||||||
|
window.dataLayer = window.dataLayer || [];
|
||||||
|
function gtag(){dataLayer.push(arguments);}
|
||||||
|
gtag('js', new Date());
|
||||||
|
|
||||||
|
gtag('config', 'G-SBSKCCF31B');
|
||||||
|
</script>
|
||||||
|
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8178723521508611" crossorigin="anonymous"></script>
|
||||||
|
% my $css_version = config 'css_version';
|
||||||
|
<script src="/js/bundle.js?v=<%=$css_version%>"></script>
|
||||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/orestbida/cookieconsent@3.0.1/dist/cookieconsent.css"/>
|
||||||
|
<link rel="stylesheet" href="/css/styles.css?v=<%=$css_version%>"/>
|
||||||
|
<meta charset="UTF-8"/>
|
||||||
|
<meta name="description" content="<%=defined $description_og ? $description_og : 'Lee más sobre: ' . title %>" />
|
||||||
|
<meta property="og:description" content="<%=defined $description_og ? $description_og : 'Lee más sobre: ' . title %>" />
|
||||||
|
<meta property="og:title" content="<%="Burguillos Info - @{[$product->{title}]}"%>"/>
|
||||||
|
<meta property="og:site_name" content="Burguillos Info" />
|
||||||
|
<meta property="og:type" content="website" />
|
||||||
|
% my $ogimage = stash 'ogimage';
|
||||||
|
% say STDERR $ogimage;
|
||||||
|
% my $user_agent = stash 'useragent';
|
||||||
|
|
||||||
|
<meta property="og:url" content="<%=$base_url%><%= url_for %>"/>
|
||||||
|
% if (defined $ogimage) {
|
||||||
|
% my $url_for = url_for || '';
|
||||||
|
<meta itemprop="image" property="og:image" content="<%= $ogimage %>"/>
|
||||||
|
<meta name="image" content="<%= $ogimage %>"/>
|
||||||
|
<meta name="twitter:image" content="<%=$ogimage%>" />
|
||||||
|
% } else {
|
||||||
|
<meta name="image" property="og:image" content="<%=$base_url%>/img/burguillos.webp?v=4">
|
||||||
|
<meta name="twitter:image" content="<%=$base_url%>/img/burguillos.webp?v=4">
|
||||||
|
% }
|
||||||
|
<meta property="og:image:alt" content="Portada de <%= title %>"/>
|
||||||
|
<meta name="twitter:card" content="summary_large_image"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
|
||||||
|
</head>
|
||||||
|
<body class="aliexpress-redirection">
|
||||||
|
<div class="warning-aliexpress">
|
||||||
|
<h1>Aviso antes de ir a Aliexpress.</h1>
|
||||||
|
|
||||||
|
<div class="buttons">
|
||||||
|
<img src="<%=$product->{img}%>" alt=""/>
|
||||||
|
<a class="buy" href="<%=$product->{url}%>">Comprar ahora</a>
|
||||||
|
% if (defined $referer) {
|
||||||
|
<a class="back" href="<%=$referer%>">Volver atrás</a>
|
||||||
|
% }
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h2>Compra <%=$product->{title}%> con seguridad en Aliexpress.</h1>
|
||||||
|
|
||||||
|
<div class="description"><%==$product->{description}%></div>
|
||||||
|
|
||||||
|
<h2>Lee esto antes de comprar</h2>
|
||||||
|
|
||||||
|
<p>Aliexpress es una gran tienda para obtener productos que no se pueden obtener en ningún otro sitio, pero es importante seguir estas medidas de seguridad para tener la mejor experiencia:</p>
|
||||||
|
|
||||||
|
<ol>
|
||||||
|
<li>Paga siempre usando Paypal, no con la tarjeta de credito directamente: La mejor forma de tener
|
||||||
|
seguridad en caso de que haya algún problema en tu pedido es usar el centro de disputas de Paypal,
|
||||||
|
Aliexpress no suele gestionar las devoluciones de forma tan eficaz como Paypal.</li>
|
||||||
|
|
||||||
|
<li>Si la rapidez con la que debe llegar el producto es muy importante para ti es muy recomendable
|
||||||
|
que escojas una opción alternativa a Aliexpress si existe, incluso si Aliexpress afirma una
|
||||||
|
fecha de llegada rápida es muy frecuente que haya retrasos debido a la larga cadena logística
|
||||||
|
detrás de Aliexpress. Esto es especialmente cierto en Navidades y otras fechas señaladas.</li>
|
||||||
|
|
||||||
|
<li>Nosotros solo promocionamos productos que consideramos interesantes y o hemos probado o hemos escuchado
|
||||||
|
hablar bien de ellos por gente que los ha probado, por desgracia no podemos asegurarte la misma
|
||||||
|
experiencia descrita debido a que no somos los vendedores.</li>
|
||||||
|
|
||||||
|
<li>Si el pedido llega usando Correos la fecha de entrega estimada no significa nada por como funciona Correos,
|
||||||
|
puede llegar o antes o después.</li>
|
||||||
|
|
||||||
|
<li>Lee siempre la descripción que te dejamos del producto, ya que muchos los hemos probado y
|
||||||
|
puede contener indicaciones importantes a la hora de usarlo o recibirlo, esto es muy importante en productos
|
||||||
|
de informática, especialmente en aquellos que promocionamos como productos hackeables en los
|
||||||
|
que instalar sistemas operativos alternativos y usables para cosas para las que no fueron
|
||||||
|
diseñados.</li>
|
||||||
|
|
||||||
|
<li>Si es posible graba como abres el paquete mostrando en la grabación que el paquete se encuentra correctamente
|
||||||
|
sellado por si fuese necesario el video para una posible disputa en Paypal.</li>
|
||||||
|
</ol>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
Loading…
Reference in New Issue
Block a user