<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Vue on Christian Martínez De La Rosa</title><link>https://christt105.github.io/ca/tags/vue/</link><description>Recent content in Vue on Christian Martínez De La Rosa</description><generator>Hugo -- gohugo.io</generator><language>ca</language><lastBuildDate>Thu, 23 Jul 2026 00:00:00 +0200</lastBuildDate><atom:link href="https://christt105.github.io/ca/tags/vue/index.xml" rel="self" type="application/rss+xml"/><item><title>Cinegram</title><link>https://christt105.github.io/ca/projects/cinegram/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://christt105.github.io/ca/projects/cinegram/</guid><enclosure url="https://christt105.github.io/projects/cinegram/cover.webp" length="54036" type="image/webp"/><description>&lt;p&gt;&lt;code&gt;Cinegram&lt;/code&gt; és una plataforma self-hosted que actua de pont entre una biblioteca multimèdia de &lt;a class="link" href="https://jellyfin.org/" target="_blank" rel="noopener"
 &gt;Jellyfin&lt;/a&gt; i &lt;a class="link" href="https://telegram.org/" target="_blank" rel="noopener"
 &gt;Telegram&lt;/a&gt;. Automatitza la descàrrega de pel·lícules i sèries des de Telegram cap a Jellyfin i permet fer còpies de seguretat dels mitjans cap a Telegram.&lt;/p&gt;
&lt;p&gt;Característiques principals:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Transferència bidireccional&lt;/strong&gt;: Descarrega mitjans des de Telegram a la teva biblioteca o realitza còpies de seguretat del teu servidor cap a Telegram.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Gestió de fitxers grans (&amp;gt; 2 GB)&lt;/strong&gt;: Supera el límit de pujada dels bots dividint automàticament els fitxers grans en parts de 1.95 GB (&lt;code&gt;7z&lt;/code&gt;) i reunint-los en descarregar.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Organització i metadades TMDB&lt;/strong&gt;: Estandarditza automàticament noms de fitxers i carpetes per a Jellyfin descarregant caràtules i informació des de TMDB.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tauler Web i Bot de Telegram&lt;/strong&gt;: Tauler de control intuïtiu en Vue 3 i bot interactiu amb ordres (&lt;code&gt;/add&lt;/code&gt;, &lt;code&gt;/import&lt;/code&gt;, &lt;code&gt;/search&lt;/code&gt;, &lt;code&gt;/queue&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Es desplega de manera senzilla en segons mitjançant Docker Compose.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Vista prèvia" class="gallery-image" data-flex-basis="507px" data-flex-grow="211" height="907" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://christt105.github.io/projects/cinegram/preview.png" srcset="https://christt105.github.io/projects/cinegram/preview_hu_2d0f3db2d31aea20.png 800w, https://christt105.github.io/projects/cinegram/preview_hu_20b97c3ee2b54471.png 1600w, https://christt105.github.io/projects/cinegram/preview.png 1919w" width="1919"&gt;&lt;/p&gt;</description></item><item><title>Cinegram: de bot cutre a plataforma completa</title><link>https://christt105.github.io/ca/blog/cinegram/</link><pubDate>Thu, 23 Jul 2026 00:00:00 +0200</pubDate><guid>https://christt105.github.io/ca/blog/cinegram/</guid><enclosure url="https://christt105.github.io/blog/cinegram/cover.jpg" length="91690" type="image/jpeg"/><description>&lt;p&gt;Hola de nou!&lt;/p&gt;
&lt;p&gt;Avui post curtet (espero). Segueixo acabant els projectes que tinc a mitges, per gastar els tokens de Claude sincerament. He tornat a pagar un altre mes i volia avançar en altres projectes que no em requereixin una anàlisi molt exagerada del codi. Així que avui publico Cinegram.&lt;/p&gt;
&lt;h2 id="origen"&gt;Origen
&lt;/h2&gt;&lt;p&gt;Farà cosa d&amp;rsquo;un any que vaig començar a crear un bot de Telegram que et permetia enviar-li arxius, intentava trobar-los a la base de dades de TMDB i els referenciava en una base de dades. Poc després vaig fer que et permetés descarregar arxius. Era un projecte per aprendre a fer serveis amb bases de dades i poder-me connectar des de fora creant un backend amb FastAPI. I allà em vaig quedar, perquè crec que se&amp;rsquo;m va fastidiar alguna cosa del mini PC i vaig perdre una mica de feina i llavors em va fer mandra continuar.&lt;/p&gt;
&lt;h2 id="ai-la-ia"&gt;Ai la IA
&lt;/h2&gt;&lt;p&gt;Doncs com he dit, he tornat a pagar un mes de Claude. Realment volia donar-li una oportunitat a pagar tokens d&amp;rsquo;algun model xinès, he estat investigant, però el poc temps lliure que tinc i el còmode que és que tingui accés a Claude des de qualsevol lloc, ho he deixat per al mes que ve. Bé, això és tema per a un altre post.&lt;/p&gt;
&lt;p&gt;La veritat és que la meva idea era continuar el bot i que tot ho fessis des de Telegram, però, ja que hi és la IA, per què no fa una pàgina web? I ja que hi som, per què no ho linco a la meva instància de Jellyfin? Amb la IA, el límit és la imaginació, els tokens i la paciència.&lt;/p&gt;
&lt;p&gt;Així ho vaig fer, a mesura que se m&amp;rsquo;acudien coses per afegir, anava iterant. La idea era simple: que totes les pel·lícules sense copyright que tinc al meu Jellyfin pugui guardar-les en un bot privat de Telegram i així preservar la cultura. D&amp;rsquo;altra banda si trobo pel·lícules lliures de drets d&amp;rsquo;autor, poder-les passar al bot i quan vulgui veure-les descarregar-les còmodament i que es posin automàticament a Jellyfin. Crec que queda clar.&lt;/p&gt;
&lt;h2 id="per-demanar-que-no-falti"&gt;Per demanar que no falti
&lt;/h2&gt;&lt;p&gt;La veritat és que li vaig posar bastantes coses, moltes més de les que anava a fer en un principi. El projecte es divideix en 3 blocs.&lt;/p&gt;
&lt;h3 id="backend"&gt;Backend
&lt;/h3&gt;&lt;p&gt;L&amp;rsquo;encarregat de guardar totes les dades i dotar els altres serveis d&amp;rsquo;elles. El vaig començar en Python per simple curiositat i per augmentar el coneixement amb FastAPI. La veritat és que és molt fàcil de començar a usar-lo i amb poca cosa ja pots tenir una API decent i amb documentació.&lt;/p&gt;
&lt;p&gt;Quan la vaig fer jo a mà simplement vaig pensar l&amp;rsquo;estructura de les pel·lícules. Cada pel·lícula era única i podia tenir una col·lecció de col·leccions i cada col·lecció té un conjunt d&amp;rsquo;arxius. D&amp;rsquo;aquesta forma si una pel·lícula estava continguda en un únic arxiu, era una col·lecció amb un arxiu, però si per qüestions de límit de mida d&amp;rsquo;arxius és major, estarà continguda en una col·lecció amb diversos arxius. Després amb la IA vaig afegir les sèries que és el mateix però amb sèrie -&amp;gt; temporada -&amp;gt; episodi, i també es va afegir per a les tasques de pujada i descàrrega.&lt;/p&gt;
&lt;p&gt;Per accedir i manipular aquestes dades hi ha diferents rutes. Abans estava tot en un arxiu perquè jo ho vaig començar així en tenir poca cosa però llavors es va fer monstruós. Li vaig demanar a Gemini que ho dividís en arxius i la va liar molt, llavors Claude ho va arreglar. No hi ha res extraordinari, afegir, modificar i eliminar dades, cerca i manteniment si queda alguna col·lecció òrfena.&lt;/p&gt;
&lt;p&gt;També vaig afegir una llibreria per connectar-me amb TMDB i poder obtenir informació rellevant de cada element.&lt;/p&gt;
&lt;h3 id="bot"&gt;Bot
&lt;/h3&gt;&lt;p&gt;El bot el vaig fer amb una llibreria de C# que em va agradar molt, &lt;a class="link" href="https://github.com/wiz0u/WTelegramBot" target="_blank" rel="noopener"
 &gt;WTelegramBot&lt;/a&gt;. És molt simple de configurar i rebenta els límits d&amp;rsquo;altres formes de crear bots de Telegram. Permet pujada i descàrregues d&amp;rsquo;arxius a molt bona velocitat i amb els límits d&amp;rsquo;un usuari normal. Crec que si hagués usat WTelegramClient podria haver millorat si s&amp;rsquo;usa amb un compte premium, però per al que és crec que és suficient.&lt;/p&gt;
&lt;p&gt;Era el primer cop que feia un servei així en .NET pur i la veritat és que em va agradar l&amp;rsquo;experiència i vaig aprendre bastantes coses. Vaig fer un sistema que creaves una comanda i automàticament es registrava sol. La veritat és que em va agradar molt. Realment la idea era poder fer-ho tot amb el bot i comandes, però és més incòmode que tenir una web específica per al projecte i les comandes van quedar bastant inacabades. El propòsit ara del bot és rebre arxius, emmagatzemar-los i retornar-los amb una caràtula bonica si se&amp;rsquo;ls demana.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Exemple d’importar una pel·lícula amb arxius falsos de prova" class="gallery-image" data-flex-basis="139px" data-flex-grow="58" height="2202" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://christt105.github.io/blog/cinegram/example_import.jpg" srcset="https://christt105.github.io/blog/cinegram/example_import_hu_dbe0824871aaec20.jpg 800w, https://christt105.github.io/blog/cinegram/example_import.jpg 1280w" width="1280"&gt;
&lt;img alt="Exemple d’una pel·lícula identificada" class="gallery-image" data-flex-basis="140px" data-flex-grow="58" height="2188" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://christt105.github.io/blog/cinegram/example_film.jpg" srcset="https://christt105.github.io/blog/cinegram/example_film_hu_526091b335344ff9.jpg 800w, https://christt105.github.io/blog/cinegram/example_film.jpg 1280w" width="1280"&gt;
&lt;img alt="Exemple de com retorna els arxius el bot" class="gallery-image" data-flex-basis="140px" data-flex-grow="58" height="2180" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://christt105.github.io/blog/cinegram/example_files.jpg" srcset="https://christt105.github.io/blog/cinegram/example_files_hu_e3e4e152909e5a0a.jpg 800w, https://christt105.github.io/blog/cinegram/example_files.jpg 1280w" width="1280"&gt;&lt;/p&gt;
&lt;h3 id="web"&gt;Web
&lt;/h3&gt;&lt;p&gt;L&amp;rsquo;orquestrador de tot. Peça que millora molt l&amp;rsquo;experiència. La veritat és que el 95% del desenvolupament el vaig fer jo des del mòbil. Està feta amb Vue3 perquè és el framework que he usat, tot i que gairebé no he mirat el codi de la web. Al final del desenvolupament vaig voler provar &lt;a class="link" href="https://stitch.withgoogle.com/" target="_blank" rel="noopener"
 &gt;Stitch&lt;/a&gt;, no el bitxo blau de 4 braços, sinó una nova eina d&amp;rsquo;IA de Google per fer dissenys que no està malament. Vaig exportar el projecte i el vaig donar a Claude i vam anar iterant. Sincerament l&amp;rsquo;aspecte visual m&amp;rsquo;és bastant igual per a aquestes eines, però he de reconèixer que no es veu malament. M&amp;rsquo;he enfocat molt en mòbil ja que és on ho vaig a usar la major part del temps.&lt;/p&gt;
&lt;p&gt;Té una secció per a pel·lícules i sèries que carrega de Jellyfin, amb la seva portada, indicador de si existeix a la base de dades, nom i any de publicació. Pots filtrar i ordenar. Cada targeta té una pantalla individual per poder-la pujar a Telegram.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Vista de la secció de pel·lícules carregades des de Jellyfin" class="gallery-image" data-flex-basis="507px" data-flex-grow="211" height="907" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://christt105.github.io/blog/cinegram/web_example_movies.png" srcset="https://christt105.github.io/blog/cinegram/web_example_movies_hu_2d0f3db2d31aea20.png 800w, https://christt105.github.io/blog/cinegram/web_example_movies_hu_20b97c3ee2b54471.png 1600w, https://christt105.github.io/blog/cinegram/web_example_movies.png 1919w" width="1919"&gt;
&lt;img alt="Vista de la biblioteca de Jellyfin integrada a la web" class="gallery-image" data-flex-basis="302px" data-flex-grow="125" height="1017" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://christt105.github.io/blog/cinegram/web_example_jellyfin.jpg" srcset="https://christt105.github.io/blog/cinegram/web_example_jellyfin_hu_978762723e1d5b1e.jpg 800w, https://christt105.github.io/blog/cinegram/web_example_jellyfin.jpg 1280w" width="1280"&gt;&lt;/p&gt;
&lt;p&gt;En una altra secció es poden veure tots els elements que hi ha a la base de dades de Telegram. Una visualització semblant, però mostrant les col·leccions que conté. Cada una té també una pàgina individual amb informació i controls per canviar la portada, reidentificar l&amp;rsquo;element, descarregar a Jellyfin o enviar pel bot.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Vista dels elements emmagatzemats a la base de dades de Telegram" class="gallery-image" data-flex-basis="136px" data-flex-grow="56" height="2255" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://christt105.github.io/blog/cinegram/web_example_telegram.jpg" srcset="https://christt105.github.io/blog/cinegram/web_example_telegram_hu_eea44001977dd424.jpg 800w, https://christt105.github.io/blog/cinegram/web_example_telegram.jpg 1280w" width="1280"&gt;
&lt;img alt="Pàgina individual d’una pel·lícula amb controls de gestió" class="gallery-image" data-flex-basis="253px" data-flex-grow="105" height="1211" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://christt105.github.io/blog/cinegram/web_example_telegram_film.jpg" srcset="https://christt105.github.io/blog/cinegram/web_example_telegram_film_hu_b3d40e19df699ff7.jpg 800w, https://christt105.github.io/blog/cinegram/web_example_telegram_film.jpg 1280w" width="1280"&gt;&lt;/p&gt;
&lt;p&gt;Per últim he posat una pàgina per veure les descàrregues i pujades actives i una pàgina amb informació de la instància i per corregir algun element que no s&amp;rsquo;hagi pogut identificar.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Pàgina de transferències amb descàrregues i pujades actives" class="gallery-image" data-flex-basis="408px" data-flex-grow="170" height="752" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://christt105.github.io/blog/cinegram/web_transfers.jpg" srcset="https://christt105.github.io/blog/cinegram/web_transfers_hu_49e66842c6436d07.jpg 800w, https://christt105.github.io/blog/cinegram/web_transfers.jpg 1280w" width="1280"&gt;
&lt;img alt="Pàgina de configuració i informació de la instància" class="gallery-image" data-flex-basis="187px" data-flex-grow="77" height="1642" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://christt105.github.io/blog/cinegram/web_settings.jpg" srcset="https://christt105.github.io/blog/cinegram/web_settings_hu_562c3200e696b5fd.jpg 800w, https://christt105.github.io/blog/cinegram/web_settings.jpg 1280w" width="1280"&gt;&lt;/p&gt;
&lt;h2 id="projecte-de-camp-o-projecte-de-ciutat"&gt;Projecte de camp o projecte de ciutat
&lt;/h2&gt;&lt;p&gt;Em va agradar molt la faula del ratolí de camp i el ratolí de ciutat que usen a la pel·lícula de &lt;a class="link" href="https://christt105.github.io/MediaTracker/movies/chainsaw-man---la-pel%C3%ADcula-el-arco-de-reze-2025/" target="_blank" rel="noopener"
 &gt;Chainsaw Man&lt;/a&gt;, i crec que podem fer una analogia amb els projectes i la IA.&lt;/p&gt;
&lt;p&gt;Veig dos tipus de projectes. Els projectes que vols que tot estigui ben estructurat i maco, que et donaria respecte si algú mira el codi i que tens un vincle proper. Vas línia per línia revisant que tot tingui sentit i et passes grans sessions comprovant que el que estàs fent és la millor solució.&lt;/p&gt;
&lt;p&gt;D&amp;rsquo;altra banda estan els projectes que simplement vols el resultat final i t&amp;rsquo;és igual com està fet per dins. Simplement vols que funcioni i t&amp;rsquo;és igual. Això abans de la IA era molt més difícil de veure.&lt;/p&gt;
&lt;p&gt;Cinegram va començar com un projecte de camp. Era un interès personal per automatitzar i fer més còmodes els meus processos, però volia aprendre a usar bé FastAPI, aprofundir més en el desenvolupament de C# fora de Unity i aprendre més de bases de dades molt simples. Però s&amp;rsquo;ha convertit en un projecte de ciutat, i no és dolent.&lt;/p&gt;
&lt;p&gt;Realment sense la IA podria haver-lo continuat, però dubto que hagués arribat a aquest punt, s&amp;rsquo;hagués quedat en un simple bot cutre i hagués trigat molt més a acabar-lo si m&amp;rsquo;haguessin tornat les ganes i la motivació de continuar-lo.&lt;/p&gt;
&lt;p&gt;I aquí ve una mica la reflexió. Sense la IA segurament aquest projecte s&amp;rsquo;hauria quedat en l&amp;rsquo;oblit, però per una simple subscripció de 20€ i una setmana, he estat capaç de reprendre el projecte, ampliar el servei del backend per afegir les sèries i altres millores i afegir-li una pàgina web per gestionar-ho tot. I realment, tampoc hauria passat res si s&amp;rsquo;hagués quedat en l&amp;rsquo;oblit.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Plafó de Chainsaw Man amb la faula del ratolí de camp i ratolí de ciutat" class="gallery-image" data-flex-basis="289px" data-flex-grow="120" height="531" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://christt105.github.io/blog/cinegram/chainsaw_mouse.jpg" width="640"&gt;&lt;/p&gt;
&lt;h2 id="compartir-és-viure"&gt;Compartir és viure
&lt;/h2&gt;&lt;p&gt;I com sempre, de codi obert per a que el pugui usar qui vulgui. Si ho useu deixeu-me aquí a baix la vostra opinió o si teniu alguna dubte. Aquesta vegada he volgut publicar la imatge de docker també a GitHub, la teniu també a Docker Hub, com sempre.&lt;/p&gt;
&lt;a class="github-repo-card" href="https://github.com/christt105/cinegram" target="_blank" rel="noopener"&gt;
 &lt;img src="https://avatars.githubusercontent.com/u/36189169?v=4" alt="christt105 avatar" class="repo-avatar"&gt;
 &lt;h3&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-brand-github" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path stroke="none" d="M0 0h24v24H0z" fill="none"/&gt;
 &lt;path d="M9 19c-4.3 1.4 -4.3 -2.5 -6 -3m12 5v-3.5c0 -1 .1 -1.4 -.5 -2c2.8 -.3 5.5 -1.4 5.5 -6a4.6 4.6 0 0 0 -1.3 -3.2a4.2 4.2 0 0 0 -.1 -3.2s-1.1 -.3 -3.5 1.3a12.3 12.3 0 0 0 -6.2 0c-2.4 -1.6 -3.5 -1.3 -3.5 -1.3a4.2 4.2 0 0 0 -.1 3.2a4.6 4.6 0 0 0 -1.3 3.2c0 4.6 2.7 5.7 5.5 6c-.6 .6 -.6 1.2 -.5 2v3.5" /&gt;
&lt;/svg&gt;


 christt105/cinegram&lt;/h3&gt;
 &lt;p&gt;&lt;/p&gt;
 &lt;div class="repo-stats"&gt;
 &lt;span&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor" class="icon icon-tabler icons-tabler-filled icon-tabler-star"&gt;&lt;path stroke="none" d="M0 0h24v24H0z" fill="none"/&gt;&lt;path d="M8.243 7.34l-6.38 .925l-.113 .023a1 1 0 0 0 -.44 1.684l4.622 4.499l-1.09 6.355l-.013 .11a1 1 0 0 0 1.464 .944l5.706 -3l5.693 3l.1 .046a1 1 0 0 0 1.352 -1.1l-1.091 -6.355l4.624 -4.5l.078 -.085a1 1 0 0 0 -.633 -1.62l-6.38 -.926l-2.852 -5.78a1 1 0 0 0 -1.794 0l-2.853 5.78z" /&gt;&lt;/svg&gt; 0&lt;/span&gt;
 &lt;span&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-git-fork"&gt;&lt;path stroke="none" d="M0 0h24v24H0z" fill="none"/&gt;&lt;path d="M10 18a2 2 0 1 0 4 0a2 2 0 1 0 -4 0" /&gt;&lt;path d="M5 6a2 2 0 1 0 4 0a2 2 0 1 0 -4 0" /&gt;&lt;path d="M15 6a2 2 0 1 0 4 0a2 2 0 1 0 -4 0" /&gt;&lt;path d="M7 8v2a2 2 0 0 0 2 2h6a2 2 0 0 0 2 -2v-2" /&gt;&lt;path d="M12 12l0 4" /&gt;&lt;/svg&gt; 0&lt;/span&gt;
 &lt;span&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-calendar-event"&gt;&lt;path stroke="none" d="M0 0h24v24H0z" fill="none"/&gt;&lt;path d="M4 7a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2l0 -12" /&gt;&lt;path d="M16 3l0 4" /&gt;&lt;path d="M8 3l0 4" /&gt;&lt;path d="M4 11l16 0" /&gt;&lt;path d="M8 15h2v2h-2l0 -2" /&gt;&lt;/svg&gt; 2026-07-22&lt;/span&gt;
 &lt;/div&gt;
 &lt;/a&gt;
&lt;p&gt;I fins aquí, espero que us hagi agradat i ens veiem aviat amb més.&lt;/p&gt;
&lt;p&gt;Agur!&lt;/p&gt;</description></item></channel></rss>