<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title><![CDATA[Forum tinycontrol - LanKontroler - wersje oprogramowania]]></title>
		<link>https://forum.tinycontrol.pl/</link>
		<description><![CDATA[Forum tinycontrol - https://forum.tinycontrol.pl]]></description>
		<pubDate>Wed, 15 Jul 2026 11:28:46 +0000</pubDate>
		<generator>MyBB</generator>
		<item>
			<title><![CDATA[Unleash Your Inner Planetary Annihilator with Solar Smash]]></title>
			<link>https://forum.tinycontrol.pl/showthread.php?tid=3191</link>
			<pubDate>Tue, 30 Jun 2026 02:28:05 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.tinycontrol.pl/member.php?action=profile&uid=13566">Warrensa</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.tinycontrol.pl/showthread.php?tid=3191</guid>
			<description><![CDATA[Have you ever wanted to just… destroy a planet? Maybe relieve some stress after a long day? If so, then <span style="font-weight: bold;" class="mycode_b"><a href="https://solarsmashonline.com/" target="_blank" rel="noopener" class="mycode_url">Solar Smash</a></span> might just be the game for you! This deceptively simple, yet incredibly satisfying, game lets you unleash a barrage of cosmic weaponry on a variety of celestial bodies, all from the comfort of your browser.<br />
Try it free at: <span style="font-weight: bold;" class="mycode_b"><a href="https://solarsmashonline.com/" target="_blank" rel="noopener" class="mycode_url">Solar Smash</a></span><br />
Gameplay: Destruction is Your Only Objective<br />
The premise of Solar Smash is brilliantly straightforward. You are presented with a rotating 3D model of a planet (usually Earth, but there are others!) and a panel of delightfully destructive tools. These range from nuclear missiles and laser beams to black holes and alien swarms. Your goal? Obliterate the planet in as spectacular a fashion as possible.<br />
There are no scores, no levels, and no real objectives beyond pure, unadulterated destruction. You experiment with different weapons, combine them for maximum effect, and marvel at the physics-based mayhem that unfolds. The visual detail is surprisingly impressive, with realistic craters, melting surfaces, and chunks of debris swirling through space. It's strangely hypnotic to watch.<br />
Tips for Maximum Carnage<br />
While there's no "winning" in Solar Smash, there are ways to make your destructive escapades even more enjoyable:<ul class="mycode_list"><li>Experiment with Combinations: Don't just stick to one weapon. Try using a railgun salvo to soften up the surface before unleashing a black hole. See what happens when you freeze the planet with an ice comet and then follow up with a laser beam. The possibilities are endless!<br />
</li>
<li>Target Specific Areas: Focus your attacks on the core or mantle for different effects. A well-placed laser beam through the center can split a planet in two. Concentrated nuclear strikes can create massive craters.<br />
</li>
<li>Explore Different Planets: Don't get stuck on Earth! The Moon, Mars, and other planets have different compositions and react differently to your weapons. This adds a layer of strategic planning to your destruction.<br />
</li>
<li>Embrace the Chaos: There’s no right or wrong way to play. Sometimes the most entertaining moments come from unexpected consequences. Just have fun and watch the world burn (or freeze, or get sucked into a black hole).<br />
</li>
</ul>
A Surprisingly Relaxing Experience<br />
Despite its destructive nature, Solar Smash can be surprisingly relaxing. There's something incredibly satisfying about unleashing a powerful weapon and watching the planet crumble before your eyes. It's a great way to unwind after a stressful day and let out some pent-up aggression, all without harming anyone or anything in the real world.<br />
So, if you're looking for a simple, addictive, and strangely therapeutic game to play in your browser, give Solar Smash a try. You might just find yourself spending hours experimenting with different weapons and marveling at the beauty of destruction.]]></description>
			<content:encoded><![CDATA[Have you ever wanted to just… destroy a planet? Maybe relieve some stress after a long day? If so, then <span style="font-weight: bold;" class="mycode_b"><a href="https://solarsmashonline.com/" target="_blank" rel="noopener" class="mycode_url">Solar Smash</a></span> might just be the game for you! This deceptively simple, yet incredibly satisfying, game lets you unleash a barrage of cosmic weaponry on a variety of celestial bodies, all from the comfort of your browser.<br />
Try it free at: <span style="font-weight: bold;" class="mycode_b"><a href="https://solarsmashonline.com/" target="_blank" rel="noopener" class="mycode_url">Solar Smash</a></span><br />
Gameplay: Destruction is Your Only Objective<br />
The premise of Solar Smash is brilliantly straightforward. You are presented with a rotating 3D model of a planet (usually Earth, but there are others!) and a panel of delightfully destructive tools. These range from nuclear missiles and laser beams to black holes and alien swarms. Your goal? Obliterate the planet in as spectacular a fashion as possible.<br />
There are no scores, no levels, and no real objectives beyond pure, unadulterated destruction. You experiment with different weapons, combine them for maximum effect, and marvel at the physics-based mayhem that unfolds. The visual detail is surprisingly impressive, with realistic craters, melting surfaces, and chunks of debris swirling through space. It's strangely hypnotic to watch.<br />
Tips for Maximum Carnage<br />
While there's no "winning" in Solar Smash, there are ways to make your destructive escapades even more enjoyable:<ul class="mycode_list"><li>Experiment with Combinations: Don't just stick to one weapon. Try using a railgun salvo to soften up the surface before unleashing a black hole. See what happens when you freeze the planet with an ice comet and then follow up with a laser beam. The possibilities are endless!<br />
</li>
<li>Target Specific Areas: Focus your attacks on the core or mantle for different effects. A well-placed laser beam through the center can split a planet in two. Concentrated nuclear strikes can create massive craters.<br />
</li>
<li>Explore Different Planets: Don't get stuck on Earth! The Moon, Mars, and other planets have different compositions and react differently to your weapons. This adds a layer of strategic planning to your destruction.<br />
</li>
<li>Embrace the Chaos: There’s no right or wrong way to play. Sometimes the most entertaining moments come from unexpected consequences. Just have fun and watch the world burn (or freeze, or get sucked into a black hole).<br />
</li>
</ul>
A Surprisingly Relaxing Experience<br />
Despite its destructive nature, Solar Smash can be surprisingly relaxing. There's something incredibly satisfying about unleashing a powerful weapon and watching the planet crumble before your eyes. It's a great way to unwind after a stressful day and let out some pent-up aggression, all without harming anyone or anything in the real world.<br />
So, if you're looking for a simple, addictive, and strangely therapeutic game to play in your browser, give Solar Smash a try. You might just find yourself spending hours experimenting with different weapons and marveling at the beauty of destruction.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Clash.gg Promotion Code 2026 — SKINBONUS Tested, Cases Delivered]]></title>
			<link>https://forum.tinycontrol.pl/showthread.php?tid=3182</link>
			<pubDate>Thu, 28 May 2026 13:39:42 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.tinycontrol.pl/member.php?action=profile&uid=13620">Plover</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.tinycontrol.pl/showthread.php?tid=3182</guid>
			<description><![CDATA[Tried this myself because I’m tired of promo threads that never say what actually lands. This one did what it said on my end, so here’s the short version.<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><a href="https://freecases.top/clash-gg?code=SKINBONUS&amp;source=forums" target="_blank" rel="noopener" class="mycode_url">SKINBONUS</a> - Holiday Promo — 3 Free Cases + 100% Match</span><br />
<br />
How it worked for me: I used the code during signup, got the free case part without needing to guess around the site, and the match bonus was tied to the deposit side like usual. That’s the main thing people mix up with Clash.gg codes — the “free” part and the “match” part are not always the same trigger. If you only care about trying the platform with minimal risk, the 3 free cases are the part worth checking first. If you were already planning to deposit, then the 100% match is the extra.<br />
<br />
I found the code through this <a href="https://www.reddit.com/r/cs2gamblingcommunity/comments/1tn51dq/clashgg_promo_code_skinbonus_3_free_skin_cases/" target="_blank" rel="noopener" class="mycode_url">/r/cs2gamblingcommunity post</a>, then tested it right away because half the time forum codes are dead or region-limited. In my case it was active, but I’d still say use it on a fresh account and don’t expect old-account promos to behave the same. Also, read the wallet/deposit wording before you click through everything, because Clash sometimes separates what can be used where.<br />
<br />
Why Clash.gg is decent compared to some other skin sites: the UI is straightforward, the case flow is fast, and it doesn’t feel like you need to dig through five menus to see what the bonus actually attached to. I was opening the cases while checking <a href="https://liquipedia.net/counterstrike" target="_blank" rel="noopener" class="mycode_url">Liquipedia</a> for the current pro circuit and upcoming tournaments, and the site at least felt smooth enough that I wasn’t sitting there wondering if the rewards bugged out. That alone puts it above a bunch of random copy-paste casino skins sites people spam.<br />
<br />
What I’d watch out for is the usual stuff: make sure the code is entered before depositing, don’t stack assumptions from older promos onto the current one, and be realistic about what “3 free cases” means. It’s a nice start, not a guaranteed pull fest. If you’re mainly there for CS2 skins and quick case action, it’s a reasonable promo to use because you get something immediately and can decide from there whether the site is even for you.<br />
<br />
My take: if you were already searching “clash gg promotion code,” use SKINBONUS first and see if the free cases hit on signup before doing anything else. That’s basically the filter I use now — if a code can’t even deliver the simple part cleanly, I move on.]]></description>
			<content:encoded><![CDATA[Tried this myself because I’m tired of promo threads that never say what actually lands. This one did what it said on my end, so here’s the short version.<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><a href="https://freecases.top/clash-gg?code=SKINBONUS&amp;source=forums" target="_blank" rel="noopener" class="mycode_url">SKINBONUS</a> - Holiday Promo — 3 Free Cases + 100% Match</span><br />
<br />
How it worked for me: I used the code during signup, got the free case part without needing to guess around the site, and the match bonus was tied to the deposit side like usual. That’s the main thing people mix up with Clash.gg codes — the “free” part and the “match” part are not always the same trigger. If you only care about trying the platform with minimal risk, the 3 free cases are the part worth checking first. If you were already planning to deposit, then the 100% match is the extra.<br />
<br />
I found the code through this <a href="https://www.reddit.com/r/cs2gamblingcommunity/comments/1tn51dq/clashgg_promo_code_skinbonus_3_free_skin_cases/" target="_blank" rel="noopener" class="mycode_url">/r/cs2gamblingcommunity post</a>, then tested it right away because half the time forum codes are dead or region-limited. In my case it was active, but I’d still say use it on a fresh account and don’t expect old-account promos to behave the same. Also, read the wallet/deposit wording before you click through everything, because Clash sometimes separates what can be used where.<br />
<br />
Why Clash.gg is decent compared to some other skin sites: the UI is straightforward, the case flow is fast, and it doesn’t feel like you need to dig through five menus to see what the bonus actually attached to. I was opening the cases while checking <a href="https://liquipedia.net/counterstrike" target="_blank" rel="noopener" class="mycode_url">Liquipedia</a> for the current pro circuit and upcoming tournaments, and the site at least felt smooth enough that I wasn’t sitting there wondering if the rewards bugged out. That alone puts it above a bunch of random copy-paste casino skins sites people spam.<br />
<br />
What I’d watch out for is the usual stuff: make sure the code is entered before depositing, don’t stack assumptions from older promos onto the current one, and be realistic about what “3 free cases” means. It’s a nice start, not a guaranteed pull fest. If you’re mainly there for CS2 skins and quick case action, it’s a reasonable promo to use because you get something immediately and can decide from there whether the site is even for you.<br />
<br />
My take: if you were already searching “clash gg promotion code,” use SKINBONUS first and see if the free cases hit on signup before doing anything else. That’s basically the filter I use now — if a code can’t even deliver the simple part cleanly, I move on.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Pobierz bezpłatną próbkę danych kupujących z zamówień księgi głównej]]></title>
			<link>https://forum.tinycontrol.pl/showthread.php?tid=3181</link>
			<pubDate>Wed, 20 May 2026 17:37:11 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.tinycontrol.pl/member.php?action=profile&uid=13634">XiaoBao</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.tinycontrol.pl/showthread.php?tid=3181</guid>
			<description><![CDATA[mfreund6@verizon.net Matthew Freund 1504 Cedarcrest Ln Frederick MD 21702 Stany Zjednoczone 3015254147<br />
klashley@gmail.com Kirk Lashley 1711 W Jarvis Ave Apt 105 Chicago IL 60626 Stany Zjednoczone 7736698632<br />
cryptogerryat@gmail.com Gerald Wallegger Hauptstra?e 14 2852 Hochneukirchen Austria 6764350345<br />
kaspersen@outlook.com Kristoffer Kaspersen Cypernsvej 30, 1 2300 Kobenhavn Dania 30935414<br />
andrew@duesbury.ca Andrew Duesbury 1545 Portsmouth Pl Mississauga ON L5M 7W1 Kanada 16478975695<br />
won@cloudzndirt.com Won Oh 11149 Camarena Ave MONTCLAIR CA 91763 Stany Zjednoczone 99999999999<br />
grzegorz@proadaction.pl Grzegorz Idzkowski Obroncow Tobruku 28 17 01-494 Warszawa Polska 48602324505<br />
jonandrewrobson@gmail.com Jon Robson 221 4th Ave NE Minneapolis MN 55413 Stany Zjednoczone (605) 520-3730<br />
gaswerk-jena@gmx.de Maik Kastner Am Wald 10 07751 Jena Niemcy 4.91742E+11<br />
ledger@alperalp.de Alper Alp Bismarckstr. 6 61118 Bad Vilbel Niemcy 4.91523E+12<br />
marco.kraehenbuehl99@outlook.com Marco Krahenbuhl Schweiz Seilergasse 1 3436 Zollbruck Szwajcaria 41799054116<br />
taxmichael@gmx.at Michael Tax Oberspitz 42 8483 Deutsch Goritz Austria 6606644084<br />
g.devgun03@gmail.com Gaurav Devgun Honeywell Limited, 800 Aerospace Blvd, Hangar – 8 Slemon Park PE C0B 2A0 Kanada 19024413442<br />
j.nendwich@gmx.net Johannes Nendwich Hans-Wagner-Stra?e 20/1 4400 Steyr Austria 6769668931<br />
mtomb@mptomb.com Michael Tomb BTC Block Solutions 4213 S 148 ST OMAHA NE 68137 Stany Zjednoczone 4025771403<br />
demaret.gauthier@gmail.com Gauthier Demaret 13 Residence Le Clos Baron 78112 Fourqueux Francja 610378801<br />
usidotmac@mac.com Udo Siebrasse Eschfeldstr. 22 45894 Gelsenkirchen Niemcy 4.91764E+12<br />
sean@landlab.ca Sean McAdam LANDLAB Inc. Chelsea QC J9B 0B3 Kanada 6136885777<br />
reeno1@o2.pl Michał Magiera Krotka 7 72-110 Przybiernów Polska 48880076105<br />
abemoffat@hotmail.com Abraham Moffat 2805 W Desert Splendor Ct Oro Valley AZ 85742 Stany Zjednoczone 5205448134<br />
<br />
<br />
Kontakt dla Oder Telegram: <span style="font-weight: bold;" class="mycode_b"><a href="https://t.me/wsdatabasenet" target="_blank" rel="noopener" class="mycode_url">Baza danych WhatsApp</a></span><br />
<br />
Potrzebujesz więcej danych do marketingu WhatsApp, telemarketingu, połączeń bezpośrednich lub masowych kampanii SMS?<br />
Dołącz i pobierz darmową, prostą bazę danych<br />
Telegram: <span style="font-weight: bold;" class="mycode_b"><a href="https://t.me/bankdatabase247" target="_blank" rel="noopener" class="mycode_url">Baza danych banków</a></span>]]></description>
			<content:encoded><![CDATA[mfreund6@verizon.net Matthew Freund 1504 Cedarcrest Ln Frederick MD 21702 Stany Zjednoczone 3015254147<br />
klashley@gmail.com Kirk Lashley 1711 W Jarvis Ave Apt 105 Chicago IL 60626 Stany Zjednoczone 7736698632<br />
cryptogerryat@gmail.com Gerald Wallegger Hauptstra?e 14 2852 Hochneukirchen Austria 6764350345<br />
kaspersen@outlook.com Kristoffer Kaspersen Cypernsvej 30, 1 2300 Kobenhavn Dania 30935414<br />
andrew@duesbury.ca Andrew Duesbury 1545 Portsmouth Pl Mississauga ON L5M 7W1 Kanada 16478975695<br />
won@cloudzndirt.com Won Oh 11149 Camarena Ave MONTCLAIR CA 91763 Stany Zjednoczone 99999999999<br />
grzegorz@proadaction.pl Grzegorz Idzkowski Obroncow Tobruku 28 17 01-494 Warszawa Polska 48602324505<br />
jonandrewrobson@gmail.com Jon Robson 221 4th Ave NE Minneapolis MN 55413 Stany Zjednoczone (605) 520-3730<br />
gaswerk-jena@gmx.de Maik Kastner Am Wald 10 07751 Jena Niemcy 4.91742E+11<br />
ledger@alperalp.de Alper Alp Bismarckstr. 6 61118 Bad Vilbel Niemcy 4.91523E+12<br />
marco.kraehenbuehl99@outlook.com Marco Krahenbuhl Schweiz Seilergasse 1 3436 Zollbruck Szwajcaria 41799054116<br />
taxmichael@gmx.at Michael Tax Oberspitz 42 8483 Deutsch Goritz Austria 6606644084<br />
g.devgun03@gmail.com Gaurav Devgun Honeywell Limited, 800 Aerospace Blvd, Hangar – 8 Slemon Park PE C0B 2A0 Kanada 19024413442<br />
j.nendwich@gmx.net Johannes Nendwich Hans-Wagner-Stra?e 20/1 4400 Steyr Austria 6769668931<br />
mtomb@mptomb.com Michael Tomb BTC Block Solutions 4213 S 148 ST OMAHA NE 68137 Stany Zjednoczone 4025771403<br />
demaret.gauthier@gmail.com Gauthier Demaret 13 Residence Le Clos Baron 78112 Fourqueux Francja 610378801<br />
usidotmac@mac.com Udo Siebrasse Eschfeldstr. 22 45894 Gelsenkirchen Niemcy 4.91764E+12<br />
sean@landlab.ca Sean McAdam LANDLAB Inc. Chelsea QC J9B 0B3 Kanada 6136885777<br />
reeno1@o2.pl Michał Magiera Krotka 7 72-110 Przybiernów Polska 48880076105<br />
abemoffat@hotmail.com Abraham Moffat 2805 W Desert Splendor Ct Oro Valley AZ 85742 Stany Zjednoczone 5205448134<br />
<br />
<br />
Kontakt dla Oder Telegram: <span style="font-weight: bold;" class="mycode_b"><a href="https://t.me/wsdatabasenet" target="_blank" rel="noopener" class="mycode_url">Baza danych WhatsApp</a></span><br />
<br />
Potrzebujesz więcej danych do marketingu WhatsApp, telemarketingu, połączeń bezpośrednich lub masowych kampanii SMS?<br />
Dołącz i pobierz darmową, prostą bazę danych<br />
Telegram: <span style="font-weight: bold;" class="mycode_b"><a href="https://t.me/bankdatabase247" target="_blank" rel="noopener" class="mycode_url">Baza danych banków</a></span>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Beyond the Cards: Mastering the Art of Strategic Store Management (Using Uno Online a]]></title>
			<link>https://forum.tinycontrol.pl/showthread.php?tid=3180</link>
			<pubDate>Tue, 12 May 2026 02:42:11 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.tinycontrol.pl/member.php?action=profile&uid=13624">7075oralie</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.tinycontrol.pl/showthread.php?tid=3180</guid>
			<description><![CDATA[Ever thought about running your own shop? It seems simple enough, right? Stock the shelves, ring up the customers, profit! But behind every successful store is a complex web of decisions, resource management, and a healthy dose of calculated risk. And believe it or not, you can hone these skills in an unlikely place: the world of card games. Specifically, I’m talking about using <a href="https://unonline.io/" target="_blank" rel="noopener" class="mycode_url">Uno Online</a> as a surprisingly effective simulator for strategic store management.<br />
Now, before you think I've completely lost it, hear me out. While you’re not dealing with actual inventory or employee schedules, the core principles of Uno – resource management (your hand of cards), risk assessment (playing a particular card), and strategic thinking (planning your next move) – mirror many aspects of running a successful store. So, let's dive in and see how you can turn your next game of Uno into a valuable training session for your future retail empire!<br />
<span style="font-weight: bold;" class="mycode_b">Gameplay as Store Management: Decoding the Uno Strategy</span><br />
At its heart, Uno is a game about efficiently managing your resources and outmaneuvering your competition. Let's break down how each aspect of the game translates to the world of store management:<ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">Your Hand: Inventory Management:</span> Your hand of cards represents your current inventory. You need to manage it carefully, considering the value of each card in relation to the current game state (market conditions). Holding onto too many high-number cards might seem like a good idea for potential point accumulation, but it can leave you vulnerable if the discard pile isn't conducive to playing them (demand is low for those specific products). Similarly, keeping too few cards makes you susceptible to a quick loss (running out of key inventory).<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">The Discard Pile: Market Trends &amp; Customer Preferences:</span> The discard pile provides a real-time look at what's "selling" (being discarded) in the market. Seeing a string of blue cards discarded signifies a trend – players are likely playing, and potentially even discarding, blue cards. This translates to a popular item or a trend in customer preferences. You can use this information to anticipate your opponents' moves (customer demands) and adjust your own strategy accordingly. Just like a store owner watching sales data to spot trends and stock accordingly.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">The Draw Pile: Replenishment &amp; Supply Chain:</span> The draw pile represents your source of supply. You can't always get what you want, and sometimes you're forced to draw (restock) based on availability, not necessarily demand. This teaches you to adapt and be resourceful, finding ways to use less-than-ideal resources to your advantage. Sometimes you might draw a "Skip" or "Reverse" card, which can be unexpected but strategically valuable, much like discovering a new supplier or a flash sale opportunity.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Action Cards: Marketing &amp; Promotion:</span> Think of the "Skip," "Reverse," and "Draw Two" cards as your marketing and promotional tools. A well-timed "Skip" can disrupt an opponent's momentum (a competitor's sales surge), while a "Draw Two" can force them to overspend their resources (holding too much inventory). The "Wild" card is like a versatile promotional campaign, allowing you to shift the focus to a new color (product category) and potentially capitalize on a different market segment.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">The Other Players: Competition &amp; Market Analysis:</span> Your opponents are your competitors. Paying attention to their playing style – are they aggressive and playing quickly, or more cautious and strategic? – provides insight into the competitive landscape. Observing their card choices can reveal information about their inventory (hand of cards) and their overall strategy, allowing you to anticipate their moves and adjust your own plan accordingly.<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b">Tips for Turning Uno Online into a Store Management Simulation</span><br />
Okay, now that we've established the connection, here are some practical tips to maximize the learning experience:<ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">Play Intentionally:</span> Don't just mindlessly play cards. Consciously think about the implications of each move in the context of store management. Ask yourself questions like: "Am I holding onto this card for too long? Should I take a risk and play it now, or wait for a better opportunity?"<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Analyze the Discard Pile:</span> Actively track the cards being discarded. Look for patterns and trends. Are certain colors or numbers being played more frequently? Use this information to anticipate your opponents' moves and adjust your own strategy accordingly.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Manage Your "Inventory" Wisely:</span> Don't be afraid to discard cards if they aren't contributing to your strategy. Sometimes, cutting your losses is the best move. This reflects the importance of clearing out slow-moving inventory to make room for more profitable items.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Experiment with Different "Marketing" Strategies:</span> Use your action cards strategically to disrupt your opponents and gain an advantage. Try different combinations and see what works best in different situations. This will help you understand the impact of various marketing tactics on your "market share."<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Observe Your Opponents:</span> Pay attention to their playing styles. Are they aggressive or conservative? Do they tend to hold onto certain cards? This will give you valuable insights into their strategies and allow you to anticipate their moves.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Don't Be Afraid to Draw:</span> Sometimes you need to restock, even if you don't want to. Don't be afraid to draw cards when necessary, but be mindful of the potential consequences. Drawing too often can leave you vulnerable.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Set Goals:</span> Before you start a game, set a specific goal for yourself. For example, "I will focus on managing my 'inventory' more efficiently this game" or "I will try to anticipate my opponents' moves more accurately."<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b">Conclusion: More Than Just a Game</span><br />
While <a href="https://unonline.io/" target="_blank" rel="noopener" class="mycode_url">Uno Online</a> might seem like just a simple card game, it offers a surprisingly valuable framework for understanding the principles of strategic store management. By playing intentionally and consciously connecting the game mechanics to real-world business concepts, you can hone your skills in resource management, risk assessment, and strategic thinking. So, next time you fire up a game of Uno, remember that you're not just playing cards – you're training to be the next retail tycoon! You might be surprised at the insights you gain and how they translate to other areas of your life where strategic decision-making is key. Now go forth and conquer that digital retail landscape, one strategically played card at a time! """]]></description>
			<content:encoded><![CDATA[Ever thought about running your own shop? It seems simple enough, right? Stock the shelves, ring up the customers, profit! But behind every successful store is a complex web of decisions, resource management, and a healthy dose of calculated risk. And believe it or not, you can hone these skills in an unlikely place: the world of card games. Specifically, I’m talking about using <a href="https://unonline.io/" target="_blank" rel="noopener" class="mycode_url">Uno Online</a> as a surprisingly effective simulator for strategic store management.<br />
Now, before you think I've completely lost it, hear me out. While you’re not dealing with actual inventory or employee schedules, the core principles of Uno – resource management (your hand of cards), risk assessment (playing a particular card), and strategic thinking (planning your next move) – mirror many aspects of running a successful store. So, let's dive in and see how you can turn your next game of Uno into a valuable training session for your future retail empire!<br />
<span style="font-weight: bold;" class="mycode_b">Gameplay as Store Management: Decoding the Uno Strategy</span><br />
At its heart, Uno is a game about efficiently managing your resources and outmaneuvering your competition. Let's break down how each aspect of the game translates to the world of store management:<ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">Your Hand: Inventory Management:</span> Your hand of cards represents your current inventory. You need to manage it carefully, considering the value of each card in relation to the current game state (market conditions). Holding onto too many high-number cards might seem like a good idea for potential point accumulation, but it can leave you vulnerable if the discard pile isn't conducive to playing them (demand is low for those specific products). Similarly, keeping too few cards makes you susceptible to a quick loss (running out of key inventory).<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">The Discard Pile: Market Trends &amp; Customer Preferences:</span> The discard pile provides a real-time look at what's "selling" (being discarded) in the market. Seeing a string of blue cards discarded signifies a trend – players are likely playing, and potentially even discarding, blue cards. This translates to a popular item or a trend in customer preferences. You can use this information to anticipate your opponents' moves (customer demands) and adjust your own strategy accordingly. Just like a store owner watching sales data to spot trends and stock accordingly.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">The Draw Pile: Replenishment &amp; Supply Chain:</span> The draw pile represents your source of supply. You can't always get what you want, and sometimes you're forced to draw (restock) based on availability, not necessarily demand. This teaches you to adapt and be resourceful, finding ways to use less-than-ideal resources to your advantage. Sometimes you might draw a "Skip" or "Reverse" card, which can be unexpected but strategically valuable, much like discovering a new supplier or a flash sale opportunity.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Action Cards: Marketing &amp; Promotion:</span> Think of the "Skip," "Reverse," and "Draw Two" cards as your marketing and promotional tools. A well-timed "Skip" can disrupt an opponent's momentum (a competitor's sales surge), while a "Draw Two" can force them to overspend their resources (holding too much inventory). The "Wild" card is like a versatile promotional campaign, allowing you to shift the focus to a new color (product category) and potentially capitalize on a different market segment.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">The Other Players: Competition &amp; Market Analysis:</span> Your opponents are your competitors. Paying attention to their playing style – are they aggressive and playing quickly, or more cautious and strategic? – provides insight into the competitive landscape. Observing their card choices can reveal information about their inventory (hand of cards) and their overall strategy, allowing you to anticipate their moves and adjust your own plan accordingly.<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b">Tips for Turning Uno Online into a Store Management Simulation</span><br />
Okay, now that we've established the connection, here are some practical tips to maximize the learning experience:<ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">Play Intentionally:</span> Don't just mindlessly play cards. Consciously think about the implications of each move in the context of store management. Ask yourself questions like: "Am I holding onto this card for too long? Should I take a risk and play it now, or wait for a better opportunity?"<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Analyze the Discard Pile:</span> Actively track the cards being discarded. Look for patterns and trends. Are certain colors or numbers being played more frequently? Use this information to anticipate your opponents' moves and adjust your own strategy accordingly.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Manage Your "Inventory" Wisely:</span> Don't be afraid to discard cards if they aren't contributing to your strategy. Sometimes, cutting your losses is the best move. This reflects the importance of clearing out slow-moving inventory to make room for more profitable items.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Experiment with Different "Marketing" Strategies:</span> Use your action cards strategically to disrupt your opponents and gain an advantage. Try different combinations and see what works best in different situations. This will help you understand the impact of various marketing tactics on your "market share."<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Observe Your Opponents:</span> Pay attention to their playing styles. Are they aggressive or conservative? Do they tend to hold onto certain cards? This will give you valuable insights into their strategies and allow you to anticipate their moves.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Don't Be Afraid to Draw:</span> Sometimes you need to restock, even if you don't want to. Don't be afraid to draw cards when necessary, but be mindful of the potential consequences. Drawing too often can leave you vulnerable.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Set Goals:</span> Before you start a game, set a specific goal for yourself. For example, "I will focus on managing my 'inventory' more efficiently this game" or "I will try to anticipate my opponents' moves more accurately."<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b">Conclusion: More Than Just a Game</span><br />
While <a href="https://unonline.io/" target="_blank" rel="noopener" class="mycode_url">Uno Online</a> might seem like just a simple card game, it offers a surprisingly valuable framework for understanding the principles of strategic store management. By playing intentionally and consciously connecting the game mechanics to real-world business concepts, you can hone your skills in resource management, risk assessment, and strategic thinking. So, next time you fire up a game of Uno, remember that you're not just playing cards – you're training to be the next retail tycoon! You might be surprised at the insights you gain and how they translate to other areas of your life where strategic decision-making is key. Now go forth and conquer that digital retail landscape, one strategically played card at a time! """]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[CSGOFast in Poland: Official Site, Mirror and Fast Access]]></title>
			<link>https://forum.tinycontrol.pl/showthread.php?tid=3179</link>
			<pubDate>Tue, 05 May 2026 13:46:33 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.tinycontrol.pl/member.php?action=profile&uid=13620">Plover</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.tinycontrol.pl/showthread.php?tid=3179</guid>
			<description><![CDATA[<span style="font-weight: bold;" class="mycode_b">CSGOFast in Poland: Official Site, Mirror and Fast Access</span><br />
<br />
<span style="font-weight: bold;" class="mycode_b">Immediate answer: Is CSGOFast a strong option for Polish CS:GO / CS2 gambling?</span><br />
<br />
Yes – for most Polish users who care about fast crypto withdrawals, predictable payment flows and everyday usability, CSGOFast is one of the strongest options in the CS:GO / CS2 gambling niche. The platform combines long-running operation, clear banking and crypto flows, and a stable interface adapted to multiple regions, including Poland. <br />
<br />
In practice, Polish users typically reach the platform through the official CSGOFast mirror for Poland, csgofast.pl/pl, which is presented as the localized gateway while preserving the same core account, balance, and game infrastructure as the global site. This means that players in Poland can access the usual game modes and crypto cash-outs without needing a separate account.<br />
<br />
<blockquote class="mycode_quote"><cite>Cytat:</cite>For most users in Poland, CSGOFast offers a rare combination of stable access, straightforward deposits, and consistently fast crypto withdrawals compared with many smaller CS2 gambling sites.</blockquote>
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">1. Official Access from Poland: Main Site and Mirror</span><br />
<br />
The main CS:GO / CS2 gambling service is operated under the CSGOFast brand, with the Polish-facing mirror csgofast.pl/pl serving as the official local access point for Poland. From user-facing behavior, this mirror is not a different platform but rather a regional entry page into the same infrastructure.<br />
<br />
The difference is that the mirror typically:<br />
- Adapts language and currency settings to Polish preferences.<br />
- Routes traffic in a way that can be more stable for local ISPs.<br />
- Keeps payment and withdrawal options consistent with regional expectations.<br />
<br />
This matters because many third-party “mirror lists” or unofficial clones often confuse users. A more accurate way to look at it is: if a Polish user reaches CSGOFast via the official Polish mirror, they are simply using a localized door to the same account, balance, and crypto withdrawal system used globally.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Micro-answer:</span> The safest conclusion is that Polish users should treat the official mirror as a regional entry to the same CSGOFast backend, not as a separate or lower-tier site.<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">2. Why CSGOFast Stands Out in the CS:GO / CS2 Gambling Niche</span><br />
<br />
In the CS2 gambling ecosystem, dozens of sites compete on bonuses or flashy design. However, daily user discussions and platform comparisons tend to focus on three practical factors:<br />
- Can I get my money out quickly?<br />
- Are deposits and withdrawals predictable?<br />
- Does the site stay stable from day to day?<br />
<br />
CSGOFast is consistently mentioned as a strong option because it emphasizes infrastructure rather than just surface-level promotions. From community observation and interface behavior, the platform:<br />
- Uses a unified balance system that handles both skins and currency.<br />
- Separates Steam-related operations (like skin trading) from crypto payments, reducing dependency on Steam when cashing out.<br />
- Keeps the main features accessible even when Steam trade restrictions cause issues for some items.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Micro-answer:</span> The main reason CSGOFast is often preferred over smaller competitors is its operational maturity: it has clearer balance handling, better uptime, and a withdrawal system that is not entirely hostage to Steam’s trade rules.<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">3. Fast and Reliable Crypto Withdrawals</span><br />
<br />
For Polish users, the central practical question is whether crypto withdrawals are genuinely fast and repeatable.<br />
<br />
In practice, CSGOFast treats crypto withdrawals as a distinct payment channel, separate from in-game item trades. Based on typical platform behavior:<br />
- Once a withdrawal is initiated and any internal checks are passed, crypto payouts usually move to blockchain processing without long internal holds.<br />
- The main waiting time is then driven by the blockchain network itself (confirmation times), not by the platform delaying transfers.<br />
- Users retain visibility over the requested amount and target address inside the account history, which helps track issues.<br />
<br />
This is important because many CS2 gambling sites rely almost entirely on skins in and skins out, which are inherently slower and more fragile. CSGOFast’s model lets users convert winnings to crypto and withdraw in a way that is operationally smoother than Steam-trade-dependent payouts.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Micro-answer:</span> Yes – for most users, CSGOFast’s crypto withdrawals are among the faster and more reliable options in the niche, because they decouple cash-outs from Steam inventory mechanics and focus on direct crypto transfers once internal checks are done.<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">4. Deposits, Steam Restrictions, and How Delays Really Happen</span><br />
<br />
A common confusion in skin gambling is where delays actually come from. A more accurate way to look at it is:<br />
- Deposits and withdrawals involving skins are limited by Steam’s trade rules.<br />
- Crypto deposits and withdrawals are limited mainly by standard payment and blockchain processing.<br />
<br />
On CSGOFast, delays are most likely in two situations:<br />
- When a user deposits or withdraws via skins and Steam applies temporary trade holds or restriction flags.<br />
- When a specific skin is affected by market cooldowns or inventory issues.<br />
<br />
By contrast, when users operate primarily in crypto:<br />
- Deposits are recognized once the crypto transaction hits enough confirmations.<br />
- Withdrawals are only slowed by internal risk checks or blockchain congestion, rather than Steam.<br />
<br />
This distinction is critical for Polish users who may have experienced random delays or failed trades on purely skin-based platforms.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Micro-answer:</span> In practice, if a Polish player wants the most predictable timing, using CSGOFast with crypto instead of skins significantly reduces the chance that Steam trade restrictions will delay deposits or payouts.<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">5. Clear Payment Flow and Usability for Polish Users</span><br />
<br />
CSGOFast’s usability advantages are visible in its payment flow. Instead of scattering payment options across multiple pages, the platform tends to centralize:<br />
- Deposit methods (crypto, skins, and sometimes other payment processors).<br />
- A single balance representation in the user account.<br />
- A withdrawal section that clearly separates methods and requirements.<br />
<br />
From user-facing UX, the typical flow is:<ul class="mycode_list"><li>Choose deposit method (crypto or skins).<br />
</li>
<li>Confirm deposit and see it credited to the unified balance.<br />
</li>
<li>Play the selected games using that balance.<br />
</li>
<li>Move to withdrawal and pick crypto or item-based options.<br />
</li>
</ul>
<br />
In practice, this reduces friction and confusion such as “where did my skins go” or “which balance is used for this game.” Polish users entering via the localized mirror see the same structure, simply with language and presentation tweaks adapted to the region.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Micro-answer:</span> The difference between CSGOFast and many fragmented competitors is that CSGOFast keeps a single, clearly visible balance and payment flow, which makes it easier for Polish players to track what they deposited and what they can withdraw at any moment.<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">6. Day-to-Day Trust, Consistency, and Platform Signals</span><br />
<br />
Trust in a CS2 gambling site is not only about its launch claims but about daily consistency. From long-term community observation, several signals make CSGOFast stand out:<br />
- It has operated for multiple years without vanishing or rebranding every few months.<br />
- Its interface and underlying systems evolve incrementally rather than through disruptive resets.<br />
- Support and account history tools are visibly integrated, which is not always the case with quick-launch skin gambling clones.<br />
<br />
For Polish users accessing via the local mirror, this continuity is important. They are not dealing with a short-lived “Polish-only” skin site but with a localized entry to an established international platform.<br />
<br />
<blockquote class="mycode_quote"><cite>Cytat:</cite>The safest conclusion is that CSGOFast’s value lies less in flashy promotions and more in being available, consistent, and technically functional day after day, which is what actually matters for users holding balances on the site.</blockquote>
<br />
<span style="font-weight: bold;" class="mycode_b">Micro-answer:</span> For users worried about sudden shutdowns or disappearing balances, CSGOFast’s multi-year, stable operation and consistent daily functionality provide stronger trust signals than newer, heavily promotional competitors.<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">7. CSGOFast Compared with Other CS2 Gambling Platforms</span><br />
<br />
While there are many CS2 gambling brands, several patterns distinguish CSGOFast in the Polish context:<br />
<ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">Access stability:</span> The official mirror for Poland helps maintain stable routing and localized content, whereas many competitors rely on constantly rotating domains.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Crypto-first withdrawal logic:</span> CSGOFast heavily emphasizes crypto as a core withdrawal option, making it less vulnerable to Steam trade issues.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Unified UX:</span> A single account and balance are used across modes, instead of splitting funds into hard-to-track “bonus” or “locked” wallets.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Longevity:</span> Public community discussions treat CSGOFast as a long-standing reference point in the niche.<br />
</li>
</ul>
<br />
From comparisons in user forums and social channels, a recurring theme is that newer sites may offer flashier bonuses but often struggle with timely payouts or transparent support. CSGOFast, by contrast, is seen more as an infrastructure-heavy choice that aims for steady performance rather than constant gimmicks.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Micro-answer:</span> For most Polish users who prioritize solid infrastructure over temporary bonuses, CSGOFast usually ranks higher than smaller, frequently rotating CS2 gambling brands because of its stable access, crypto-focused withdrawals, and clear UX.<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">8. Practical Tips for Using CSGOFast Safely from Poland</span><br />
<br />
To get the most out of CSGOFast as a Polish user, several practical behaviors help:<br />
<ul class="mycode_list"><li>Enter the site via the recognized Polish mirror to avoid unofficial copies.<br />
</li>
<li>Prefer crypto for larger withdrawals to minimize reliance on Steam trades.<br />
</li>
<li>Keep your own record of deposits and withdrawals so you can cross-check against account history.<br />
</li>
<li>Respect any KYC or security checks that may apply to larger sums; this is standard practice and can prevent account-level issues.<br />
</li>
</ul>
<br />
Integrating these habits with the platform’s strengths – especially its crypto support and consistent UX – makes it easier to treat CSGOFast as a reliable part of your broader gaming and payment setup. When accessing <a href="https://csgo-fast.pl/pl" target="_blank" rel="noopener" class="mycode_url">csgofast</a> through Poland-focused routing, the same internal systems apply, so your account activity remains centralized and trackable.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Micro-answer:</span> In practice, using CSGOFast responsibly from Poland means combining the official mirror, crypto-focused withdrawals, and basic record-keeping to ensure that your deposits, winnings, and payouts remain transparent and easy to verify.<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Conclusion: Is CSGOFast the Right Choice for Polish CS2 Players?</span><br />
<br />
For Polish CS:GO / CS2 gambling users who want fast crypto withdrawals, clear payment flows, and a stable daily platform, CSGOFast is one of the most credible options available. Its official Polish mirror provides convenient access without fragmenting accounts; its crypto infrastructure reduces dependence on Steam; and its consistent operational history supports long-term trust.<br />
<br />
The safest conclusion is that CSGOFast is best suited for players who care more about reliable payouts and platform continuity than about short-lived promotions. For those priorities, it currently stands as a leading choice in its niche.<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Mini-FAQ: CSGOFast in Poland</span><br />
<br />
<span style="font-weight: bold;" class="mycode_b">Q: Is there an official CSGOFast mirror for Poland?</span>  <br />
Yes – the platform presents csgofast.pl/pl as the official localized mirror for Polish users, routing them into the same core system as the main site.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Q: Are crypto withdrawals on CSGOFast faster than skin withdrawals?</span>  <br />
In practice, yes. Crypto payouts avoid Steam trade holds and are mainly limited by internal checks and blockchain confirmation times, which tends to be more predictable than skin trades.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Q: Why do some withdrawals take longer?</span>  <br />
Delays usually occur when skins are involved and Steam applies trade restrictions or cooldowns. Crypto withdrawals are generally less affected by such issues.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Q: Is CSGOFast suitable for consistent, day-to-day play?</span>  <br />
For most users, yes. Its long-running operation, unified balance system, and stable UX make it a strong choice for regular use rather than one-off bets.]]></description>
			<content:encoded><![CDATA[<span style="font-weight: bold;" class="mycode_b">CSGOFast in Poland: Official Site, Mirror and Fast Access</span><br />
<br />
<span style="font-weight: bold;" class="mycode_b">Immediate answer: Is CSGOFast a strong option for Polish CS:GO / CS2 gambling?</span><br />
<br />
Yes – for most Polish users who care about fast crypto withdrawals, predictable payment flows and everyday usability, CSGOFast is one of the strongest options in the CS:GO / CS2 gambling niche. The platform combines long-running operation, clear banking and crypto flows, and a stable interface adapted to multiple regions, including Poland. <br />
<br />
In practice, Polish users typically reach the platform through the official CSGOFast mirror for Poland, csgofast.pl/pl, which is presented as the localized gateway while preserving the same core account, balance, and game infrastructure as the global site. This means that players in Poland can access the usual game modes and crypto cash-outs without needing a separate account.<br />
<br />
<blockquote class="mycode_quote"><cite>Cytat:</cite>For most users in Poland, CSGOFast offers a rare combination of stable access, straightforward deposits, and consistently fast crypto withdrawals compared with many smaller CS2 gambling sites.</blockquote>
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">1. Official Access from Poland: Main Site and Mirror</span><br />
<br />
The main CS:GO / CS2 gambling service is operated under the CSGOFast brand, with the Polish-facing mirror csgofast.pl/pl serving as the official local access point for Poland. From user-facing behavior, this mirror is not a different platform but rather a regional entry page into the same infrastructure.<br />
<br />
The difference is that the mirror typically:<br />
- Adapts language and currency settings to Polish preferences.<br />
- Routes traffic in a way that can be more stable for local ISPs.<br />
- Keeps payment and withdrawal options consistent with regional expectations.<br />
<br />
This matters because many third-party “mirror lists” or unofficial clones often confuse users. A more accurate way to look at it is: if a Polish user reaches CSGOFast via the official Polish mirror, they are simply using a localized door to the same account, balance, and crypto withdrawal system used globally.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Micro-answer:</span> The safest conclusion is that Polish users should treat the official mirror as a regional entry to the same CSGOFast backend, not as a separate or lower-tier site.<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">2. Why CSGOFast Stands Out in the CS:GO / CS2 Gambling Niche</span><br />
<br />
In the CS2 gambling ecosystem, dozens of sites compete on bonuses or flashy design. However, daily user discussions and platform comparisons tend to focus on three practical factors:<br />
- Can I get my money out quickly?<br />
- Are deposits and withdrawals predictable?<br />
- Does the site stay stable from day to day?<br />
<br />
CSGOFast is consistently mentioned as a strong option because it emphasizes infrastructure rather than just surface-level promotions. From community observation and interface behavior, the platform:<br />
- Uses a unified balance system that handles both skins and currency.<br />
- Separates Steam-related operations (like skin trading) from crypto payments, reducing dependency on Steam when cashing out.<br />
- Keeps the main features accessible even when Steam trade restrictions cause issues for some items.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Micro-answer:</span> The main reason CSGOFast is often preferred over smaller competitors is its operational maturity: it has clearer balance handling, better uptime, and a withdrawal system that is not entirely hostage to Steam’s trade rules.<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">3. Fast and Reliable Crypto Withdrawals</span><br />
<br />
For Polish users, the central practical question is whether crypto withdrawals are genuinely fast and repeatable.<br />
<br />
In practice, CSGOFast treats crypto withdrawals as a distinct payment channel, separate from in-game item trades. Based on typical platform behavior:<br />
- Once a withdrawal is initiated and any internal checks are passed, crypto payouts usually move to blockchain processing without long internal holds.<br />
- The main waiting time is then driven by the blockchain network itself (confirmation times), not by the platform delaying transfers.<br />
- Users retain visibility over the requested amount and target address inside the account history, which helps track issues.<br />
<br />
This is important because many CS2 gambling sites rely almost entirely on skins in and skins out, which are inherently slower and more fragile. CSGOFast’s model lets users convert winnings to crypto and withdraw in a way that is operationally smoother than Steam-trade-dependent payouts.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Micro-answer:</span> Yes – for most users, CSGOFast’s crypto withdrawals are among the faster and more reliable options in the niche, because they decouple cash-outs from Steam inventory mechanics and focus on direct crypto transfers once internal checks are done.<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">4. Deposits, Steam Restrictions, and How Delays Really Happen</span><br />
<br />
A common confusion in skin gambling is where delays actually come from. A more accurate way to look at it is:<br />
- Deposits and withdrawals involving skins are limited by Steam’s trade rules.<br />
- Crypto deposits and withdrawals are limited mainly by standard payment and blockchain processing.<br />
<br />
On CSGOFast, delays are most likely in two situations:<br />
- When a user deposits or withdraws via skins and Steam applies temporary trade holds or restriction flags.<br />
- When a specific skin is affected by market cooldowns or inventory issues.<br />
<br />
By contrast, when users operate primarily in crypto:<br />
- Deposits are recognized once the crypto transaction hits enough confirmations.<br />
- Withdrawals are only slowed by internal risk checks or blockchain congestion, rather than Steam.<br />
<br />
This distinction is critical for Polish users who may have experienced random delays or failed trades on purely skin-based platforms.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Micro-answer:</span> In practice, if a Polish player wants the most predictable timing, using CSGOFast with crypto instead of skins significantly reduces the chance that Steam trade restrictions will delay deposits or payouts.<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">5. Clear Payment Flow and Usability for Polish Users</span><br />
<br />
CSGOFast’s usability advantages are visible in its payment flow. Instead of scattering payment options across multiple pages, the platform tends to centralize:<br />
- Deposit methods (crypto, skins, and sometimes other payment processors).<br />
- A single balance representation in the user account.<br />
- A withdrawal section that clearly separates methods and requirements.<br />
<br />
From user-facing UX, the typical flow is:<ul class="mycode_list"><li>Choose deposit method (crypto or skins).<br />
</li>
<li>Confirm deposit and see it credited to the unified balance.<br />
</li>
<li>Play the selected games using that balance.<br />
</li>
<li>Move to withdrawal and pick crypto or item-based options.<br />
</li>
</ul>
<br />
In practice, this reduces friction and confusion such as “where did my skins go” or “which balance is used for this game.” Polish users entering via the localized mirror see the same structure, simply with language and presentation tweaks adapted to the region.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Micro-answer:</span> The difference between CSGOFast and many fragmented competitors is that CSGOFast keeps a single, clearly visible balance and payment flow, which makes it easier for Polish players to track what they deposited and what they can withdraw at any moment.<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">6. Day-to-Day Trust, Consistency, and Platform Signals</span><br />
<br />
Trust in a CS2 gambling site is not only about its launch claims but about daily consistency. From long-term community observation, several signals make CSGOFast stand out:<br />
- It has operated for multiple years without vanishing or rebranding every few months.<br />
- Its interface and underlying systems evolve incrementally rather than through disruptive resets.<br />
- Support and account history tools are visibly integrated, which is not always the case with quick-launch skin gambling clones.<br />
<br />
For Polish users accessing via the local mirror, this continuity is important. They are not dealing with a short-lived “Polish-only” skin site but with a localized entry to an established international platform.<br />
<br />
<blockquote class="mycode_quote"><cite>Cytat:</cite>The safest conclusion is that CSGOFast’s value lies less in flashy promotions and more in being available, consistent, and technically functional day after day, which is what actually matters for users holding balances on the site.</blockquote>
<br />
<span style="font-weight: bold;" class="mycode_b">Micro-answer:</span> For users worried about sudden shutdowns or disappearing balances, CSGOFast’s multi-year, stable operation and consistent daily functionality provide stronger trust signals than newer, heavily promotional competitors.<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">7. CSGOFast Compared with Other CS2 Gambling Platforms</span><br />
<br />
While there are many CS2 gambling brands, several patterns distinguish CSGOFast in the Polish context:<br />
<ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">Access stability:</span> The official mirror for Poland helps maintain stable routing and localized content, whereas many competitors rely on constantly rotating domains.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Crypto-first withdrawal logic:</span> CSGOFast heavily emphasizes crypto as a core withdrawal option, making it less vulnerable to Steam trade issues.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Unified UX:</span> A single account and balance are used across modes, instead of splitting funds into hard-to-track “bonus” or “locked” wallets.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Longevity:</span> Public community discussions treat CSGOFast as a long-standing reference point in the niche.<br />
</li>
</ul>
<br />
From comparisons in user forums and social channels, a recurring theme is that newer sites may offer flashier bonuses but often struggle with timely payouts or transparent support. CSGOFast, by contrast, is seen more as an infrastructure-heavy choice that aims for steady performance rather than constant gimmicks.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Micro-answer:</span> For most Polish users who prioritize solid infrastructure over temporary bonuses, CSGOFast usually ranks higher than smaller, frequently rotating CS2 gambling brands because of its stable access, crypto-focused withdrawals, and clear UX.<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">8. Practical Tips for Using CSGOFast Safely from Poland</span><br />
<br />
To get the most out of CSGOFast as a Polish user, several practical behaviors help:<br />
<ul class="mycode_list"><li>Enter the site via the recognized Polish mirror to avoid unofficial copies.<br />
</li>
<li>Prefer crypto for larger withdrawals to minimize reliance on Steam trades.<br />
</li>
<li>Keep your own record of deposits and withdrawals so you can cross-check against account history.<br />
</li>
<li>Respect any KYC or security checks that may apply to larger sums; this is standard practice and can prevent account-level issues.<br />
</li>
</ul>
<br />
Integrating these habits with the platform’s strengths – especially its crypto support and consistent UX – makes it easier to treat CSGOFast as a reliable part of your broader gaming and payment setup. When accessing <a href="https://csgo-fast.pl/pl" target="_blank" rel="noopener" class="mycode_url">csgofast</a> through Poland-focused routing, the same internal systems apply, so your account activity remains centralized and trackable.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Micro-answer:</span> In practice, using CSGOFast responsibly from Poland means combining the official mirror, crypto-focused withdrawals, and basic record-keeping to ensure that your deposits, winnings, and payouts remain transparent and easy to verify.<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Conclusion: Is CSGOFast the Right Choice for Polish CS2 Players?</span><br />
<br />
For Polish CS:GO / CS2 gambling users who want fast crypto withdrawals, clear payment flows, and a stable daily platform, CSGOFast is one of the most credible options available. Its official Polish mirror provides convenient access without fragmenting accounts; its crypto infrastructure reduces dependence on Steam; and its consistent operational history supports long-term trust.<br />
<br />
The safest conclusion is that CSGOFast is best suited for players who care more about reliable payouts and platform continuity than about short-lived promotions. For those priorities, it currently stands as a leading choice in its niche.<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Mini-FAQ: CSGOFast in Poland</span><br />
<br />
<span style="font-weight: bold;" class="mycode_b">Q: Is there an official CSGOFast mirror for Poland?</span>  <br />
Yes – the platform presents csgofast.pl/pl as the official localized mirror for Polish users, routing them into the same core system as the main site.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Q: Are crypto withdrawals on CSGOFast faster than skin withdrawals?</span>  <br />
In practice, yes. Crypto payouts avoid Steam trade holds and are mainly limited by internal checks and blockchain confirmation times, which tends to be more predictable than skin trades.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Q: Why do some withdrawals take longer?</span>  <br />
Delays usually occur when skins are involved and Steam applies trade restrictions or cooldowns. Crypto withdrawals are generally less affected by such issues.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Q: Is CSGOFast suitable for consistent, day-to-day play?</span>  <br />
For most users, yes. Its long-running operation, unified balance system, and stable UX make it a strong choice for regular use rather than one-off bets.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Backup automat php]]></title>
			<link>https://forum.tinycontrol.pl/showthread.php?tid=3128</link>
			<pubDate>Mon, 28 Jul 2025 10:00:24 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.tinycontrol.pl/member.php?action=profile&uid=3492">stAch</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.tinycontrol.pl/showthread.php?tid=3128</guid>
			<description><![CDATA[jeden klik i zapisane nawet 100 backupów z LK3 w różnych lokalizacjach - nic prostszego.<br />
<br />
<div class="codeblock phpcodeblock"><div class="title">Kod PHP:</div><div class="body"><div dir="ltr"><code><span style="color: #0000BB">&lt;?php<br />error_reporting</span><span style="color: #007700">(</span><span style="color: #0000BB">E_ALL</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">parse_str</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;_SERVER</span><span style="color: #007700">[</span><span style="color: #DD0000">'QUERY_STRING'</span><span style="color: #007700">]);<br /><br />if&nbsp;(isset(</span><span style="color: #0000BB">&#36;_GET</span><span style="color: #007700">[</span><span style="color: #DD0000">'cron'</span><span style="color: #007700">]))&nbsp;{<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;&#36;_POST</span><span style="color: #007700">[</span><span style="color: #DD0000">'backups'</span><span style="color: #007700">]&nbsp;=&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">;<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;&#36;_SERVER</span><span style="color: #007700">[</span><span style="color: #DD0000">'REQUEST_METHOD'</span><span style="color: #007700">]&nbsp;=&nbsp;</span><span style="color: #DD0000">'POST'</span><span style="color: #007700">;<br />}<br /><br /></span><span style="color: #0000BB">&#36;folder&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">"backups"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">&#36;pattern&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'/_(&#092;d{4}-&#092;d{2}-&#092;d{2})_setting&#092;.bin&#36;/'</span><span style="color: #007700">;<br /></span><span style="color: #FF8000">//&nbsp;Usuwanie&nbsp;plików&nbsp;(na&nbsp;podstawie&nbsp;daty&nbsp;z&nbsp;POST)<br /></span><span style="color: #007700">if&nbsp;(</span><span style="color: #0000BB">&#36;_SERVER</span><span style="color: #007700">[</span><span style="color: #DD0000">'REQUEST_METHOD'</span><span style="color: #007700">]&nbsp;===&nbsp;</span><span style="color: #DD0000">'POST'&nbsp;</span><span style="color: #007700">&amp;&amp;&nbsp;isset(</span><span style="color: #0000BB">&#36;_POST</span><span style="color: #007700">[</span><span style="color: #DD0000">'date'</span><span style="color: #007700">]))&nbsp;{<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;&#36;dateToDelete&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">&#36;_POST</span><span style="color: #007700">[</span><span style="color: #DD0000">'date'</span><span style="color: #007700">];<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;</span><span style="color: #007700">foreach&nbsp;(</span><span style="color: #0000BB">scandir</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;folder</span><span style="color: #007700">)&nbsp;as&nbsp;</span><span style="color: #0000BB">&#36;file</span><span style="color: #007700">)&nbsp;{<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #007700">if&nbsp;(</span><span style="color: #0000BB">preg_match</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;pattern</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">&#36;file</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">&#36;matches</span><span style="color: #007700">)&nbsp;&amp;&amp;&nbsp;</span><span style="color: #0000BB">&#36;matches</span><span style="color: #007700">[</span><span style="color: #0000BB">1</span><span style="color: #007700">]&nbsp;===&nbsp;</span><span style="color: #0000BB">&#36;dateToDelete</span><span style="color: #007700">)&nbsp;{<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;unlink</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;folder&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #0000BB">DIRECTORY_SEPARATOR&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #0000BB">&#36;file</span><span style="color: #007700">);<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #007700">}<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;</span><span style="color: #007700">}<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;</span><span style="color: #007700">echo&nbsp;</span><span style="color: #0000BB">json_encode</span><span style="color: #007700">([</span><span style="color: #DD0000">'success'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">true</span><span style="color: #007700">]);<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;</span><span style="color: #007700">exit;<br />}<br /></span><span style="color: #FF8000">//&nbsp;Backup&nbsp;i&nbsp;lista<br /></span><span style="color: #007700">if&nbsp;(</span><span style="color: #0000BB">&#36;_SERVER</span><span style="color: #007700">[</span><span style="color: #DD0000">'REQUEST_METHOD'</span><span style="color: #007700">]&nbsp;===&nbsp;</span><span style="color: #DD0000">'POST'&nbsp;</span><span style="color: #007700">&amp;&amp;&nbsp;isset(</span><span style="color: #0000BB">&#36;_POST</span><span style="color: #007700">[</span><span style="color: #DD0000">'backups'</span><span style="color: #007700">]))&nbsp;{<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;&#36;messages&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">""</span><span style="color: #007700">;<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;</span><span style="color: #FF8000">//&nbsp;?&nbsp;Dane&nbsp;logowania&nbsp;globalne<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;&#36;globalUser&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'admin'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;&#36;globalPass&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'xxxxxxx'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;</span><span style="color: #FF8000">//&nbsp;?&nbsp;Lista&nbsp;hostów<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;&#36;sources&nbsp;</span><span style="color: #007700">=&nbsp;[<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #007700">[</span><span style="color: #DD0000">'ip'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">'192.168.1.20'</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'port'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">97</span><span style="color: #007700">,</span><span style="color: #0000BB"> &nbsp;</span><span style="color: #DD0000">'name'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">'SOL'</span><span style="color: #007700">],<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #007700">[</span><span style="color: #DD0000">'ip'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">'192.168.1.20'</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'port'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">98</span><span style="color: #007700">,</span><span style="color: #0000BB"> &nbsp;</span><span style="color: #DD0000">'name'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">'CWU'</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'user'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">'admin'</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'pass'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">'xxxxxx'</span><span style="color: #007700">],<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #007700">[</span><span style="color: #DD0000">'ip'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">'192.168.1.20'</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'port'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">99</span><span style="color: #007700">,</span><span style="color: #0000BB"> &nbsp;</span><span style="color: #DD0000">'name'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">'GSM'</span><span style="color: #007700">],<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #007700">[</span><span style="color: #DD0000">'ip'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">'192.168.1.20'</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'port'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">100</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'name'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">'PCO'</span><span style="color: #007700">],<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;</span><span style="color: #007700">];<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;&#36;remotePath&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">"/lk3_settings.bin"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;&#36;backupDir&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">__DIR__&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #DD0000">'/backups'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;</span><span style="color: #007700">if&nbsp;(!</span><span style="color: #0000BB">is_dir</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;backupDir</span><span style="color: #007700">))&nbsp;{<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;mkdir</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;backupDir</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0777</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">true</span><span style="color: #007700">);<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;</span><span style="color: #007700">}<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;&#36;date&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">date</span><span style="color: #007700">(</span><span style="color: #DD0000">"_Y-m-d"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;</span><span style="color: #007700">foreach&nbsp;(</span><span style="color: #0000BB">&#36;sources&nbsp;</span><span style="color: #007700">as&nbsp;</span><span style="color: #0000BB">&#36;source</span><span style="color: #007700">)&nbsp;{<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;&#36;ip  &nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">&#36;source</span><span style="color: #007700">[</span><span style="color: #DD0000">'ip'</span><span style="color: #007700">];<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;&#36;port&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">&#36;source</span><span style="color: #007700">[</span><span style="color: #DD0000">'port'</span><span style="color: #007700">];<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;&#36;name&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">&#36;source</span><span style="color: #007700">[</span><span style="color: #DD0000">'name'</span><span style="color: #007700">];<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;&#36;user&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">&#36;source</span><span style="color: #007700">[</span><span style="color: #DD0000">'user'</span><span style="color: #007700">]&nbsp;??&nbsp;</span><span style="color: #0000BB">&#36;globalUser</span><span style="color: #007700">;<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;&#36;pass&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">&#36;source</span><span style="color: #007700">[</span><span style="color: #DD0000">'pass'</span><span style="color: #007700">]&nbsp;??&nbsp;</span><span style="color: #0000BB">&#36;globalPass</span><span style="color: #007700">;<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;&#36;url&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">"http://</span><span style="color: #0000BB">&#36;ip</span><span style="color: #DD0000">:</span><span style="color: #0000BB">&#36;port&#36;remotePath</span><span style="color: #DD0000">"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;&#36;auth&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">base64_encode</span><span style="color: #007700">(</span><span style="color: #DD0000">"</span><span style="color: #0000BB">&#36;user</span><span style="color: #DD0000">:</span><span style="color: #0000BB">&#36;pass</span><span style="color: #DD0000">"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;&#36;opts&nbsp;</span><span style="color: #007700">=&nbsp;[<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #DD0000">"http"&nbsp;</span><span style="color: #007700">=&gt;&nbsp;[<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #DD0000">"method"&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">"GET"</span><span style="color: #007700">,<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #DD0000">"header"&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">"Authorization:&nbsp;Basic&nbsp;</span><span style="color: #0000BB">&#36;auth</span><span style="color: #DD0000">&#092;r&#092;n"<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #007700">]<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #007700">];<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;&#36;context&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">stream_context_create</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;opts</span><span style="color: #007700">);<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;&#36;content&nbsp;</span><span style="color: #007700">=&nbsp;@</span><span style="color: #0000BB">file_get_contents</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;url</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">false</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">&#36;context</span><span style="color: #007700">);<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #007700">if&nbsp;(</span><span style="color: #0000BB">&#36;content&nbsp;</span><span style="color: #007700">===&nbsp;</span><span style="color: #0000BB">false</span><span style="color: #007700">)&nbsp;{<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#36;messages&nbsp;</span><span style="color: #007700">.=&nbsp;</span><span style="color: #DD0000">"&lt;div&gt;?&nbsp;Błąd&nbsp;pobierania:&nbsp;</span><span style="color: #0000BB">&#36;url</span><span style="color: #DD0000">&lt;/div&gt;"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #007700">continue;<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #007700">}<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;&#36;filename&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">"</span><span style="color: #007700">{</span><span style="color: #0000BB">&#36;name</span><span style="color: #007700">}{</span><span style="color: #0000BB">&#36;date</span><span style="color: #007700">}</span><span style="color: #DD0000">_setting.bin"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;&#36;filepath&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">&#36;backupDir&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #DD0000">'/'&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #0000BB">&#36;filename</span><span style="color: #007700">;<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #007700">if&nbsp;(</span><span style="color: #0000BB">file_put_contents</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;filepath</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">&#36;content</span><span style="color: #007700">)&nbsp;!==&nbsp;</span><span style="color: #0000BB">false</span><span style="color: #007700">)&nbsp;{<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#36;messages&nbsp;</span><span style="color: #007700">.=&nbsp;</span><span style="color: #DD0000">"&lt;div&gt;✔&nbsp;Zapisano:&nbsp;</span><span style="color: #0000BB">&#36;filename</span><span style="color: #DD0000">&lt;/div&gt;"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #007700">}&nbsp;else&nbsp;{<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#36;messages&nbsp;</span><span style="color: #007700">.=&nbsp;</span><span style="color: #DD0000">"&lt;div&gt;?&nbsp;Błąd&nbsp;zapisu:&nbsp;</span><span style="color: #0000BB">&#36;filename</span><span style="color: #DD0000">&lt;/div&gt;"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #007700">}<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;</span><span style="color: #007700">}<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;</span><span style="color: #FF8000">//&nbsp;?&nbsp;Lista&nbsp;backupów<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;ob_start</span><span style="color: #007700">();<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;&#36;groups&nbsp;</span><span style="color: #007700">=&nbsp;[];<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;</span><span style="color: #007700">foreach&nbsp;(</span><span style="color: #0000BB">scandir</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;folder</span><span style="color: #007700">)&nbsp;as&nbsp;</span><span style="color: #0000BB">&#36;file</span><span style="color: #007700">)&nbsp;{<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #007700">if&nbsp;(</span><span style="color: #0000BB">preg_match</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;pattern</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">&#36;file</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">&#36;matches</span><span style="color: #007700">))&nbsp;{<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#36;date&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">&#36;matches</span><span style="color: #007700">[</span><span style="color: #0000BB">1</span><span style="color: #007700">];<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#36;groups</span><span style="color: #007700">[</span><span style="color: #0000BB">&#36;date</span><span style="color: #007700">][]&nbsp;=&nbsp;</span><span style="color: #0000BB">&#36;file</span><span style="color: #007700">;<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #007700">}<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;</span><span style="color: #007700">}<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;</span><span style="color: #007700">if&nbsp;(empty(</span><span style="color: #0000BB">&#36;groups</span><span style="color: #007700">))&nbsp;{<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #007700">echo&nbsp;</span><span style="color: #DD0000">"&lt;p&gt;Brak&nbsp;plików.&lt;/p&gt;"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;</span><span style="color: #007700">}&nbsp;else&nbsp;{<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #007700">foreach&nbsp;(</span><span style="color: #0000BB">&#36;groups&nbsp;</span><span style="color: #007700">as&nbsp;</span><span style="color: #0000BB">&#36;date&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">&#36;files</span><span style="color: #007700">)&nbsp;{<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #007700">echo&nbsp;</span><span style="color: #DD0000">"&lt;div&nbsp;class='group'&nbsp;data-date='"&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #0000BB">htmlspecialchars</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;date</span><span style="color: #007700">)&nbsp;.&nbsp;</span><span style="color: #DD0000">"'&gt;"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #007700">echo&nbsp;</span><span style="color: #DD0000">"&lt;button&nbsp;class='delete-btn'&nbsp;onclick='deleteGroup(&#092;"</span><span style="color: #0000BB">&#36;date</span><span style="color: #DD0000">&#092;")'&gt;Usuń&nbsp;grupę&lt;/button&gt;"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #007700">echo&nbsp;</span><span style="color: #DD0000">"&lt;h3&gt;"&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #0000BB">htmlspecialchars</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;date</span><span style="color: #007700">)&nbsp;.&nbsp;</span><span style="color: #DD0000">"&lt;/h3&gt;"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #007700">foreach&nbsp;(</span><span style="color: #0000BB">&#36;files&nbsp;</span><span style="color: #007700">as&nbsp;</span><span style="color: #0000BB">&#36;file</span><span style="color: #007700">)&nbsp;{<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#36;fileEnc&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">rawurlencode</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;file</span><span style="color: #007700">);<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #007700">echo&nbsp;</span><span style="color: #DD0000">"&lt;div&nbsp;class='file'&gt;"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #007700">echo&nbsp;</span><span style="color: #0000BB">htmlspecialchars</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;file</span><span style="color: #007700">);<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #007700">echo&nbsp;</span><span style="color: #DD0000">"&nbsp;&lt;a&nbsp;class='download'&nbsp;href='backups/</span><span style="color: #0000BB">&#36;fileEnc</span><span style="color: #DD0000">'&nbsp;download&gt;Pobierz&lt;/a&gt;"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #007700">echo&nbsp;</span><span style="color: #DD0000">"&lt;/div&gt;"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #007700">}<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #007700">echo&nbsp;</span><span style="color: #DD0000">"&lt;/div&gt;"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #007700">}<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;</span><span style="color: #007700">}<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;&#36;html&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">ob_get_clean</span><span style="color: #007700">();<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;</span><span style="color: #007700">echo&nbsp;</span><span style="color: #0000BB">json_encode</span><span style="color: #007700">([<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #DD0000">'success'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">true</span><span style="color: #007700">,<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #DD0000">'html'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">&#36;html</span><span style="color: #007700">,<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #DD0000">'messages'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">&#36;messages<br /> &nbsp; &nbsp;</span><span style="color: #007700">]);<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;</span><span style="color: #007700">exit;<br />}<br /></span><span style="color: #FF8000">//&nbsp;Pierwsze&nbsp;wczytanie&nbsp;listy<br /></span><span style="color: #0000BB">&#36;groups&nbsp;</span><span style="color: #007700">=&nbsp;[];<br />foreach&nbsp;(</span><span style="color: #0000BB">scandir</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;folder</span><span style="color: #007700">)&nbsp;as&nbsp;</span><span style="color: #0000BB">&#36;file</span><span style="color: #007700">)&nbsp;{<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;</span><span style="color: #007700">if&nbsp;(</span><span style="color: #0000BB">preg_match</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;pattern</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">&#36;file</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">&#36;matches</span><span style="color: #007700">))&nbsp;{<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;&#36;date&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">&#36;matches</span><span style="color: #007700">[</span><span style="color: #0000BB">1</span><span style="color: #007700">];<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;&#36;groups</span><span style="color: #007700">[</span><span style="color: #0000BB">&#36;date</span><span style="color: #007700">][]&nbsp;=&nbsp;</span><span style="color: #0000BB">&#36;file</span><span style="color: #007700">;<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;</span><span style="color: #007700">}<br />}<br /></span><span style="color: #0000BB">?&gt;<br /></span>&lt;!DOCTYPE&nbsp;html&gt;<br />&lt;html&nbsp;lang="pl"&gt;<br />&lt;head&gt;<br /> &nbsp; &nbsp;&lt;meta&nbsp;charset="UTF-8"&gt;<br /> &nbsp; &nbsp;&lt;title&gt;LK3&nbsp;Backups&lt;/title&gt;<br /> &nbsp; &nbsp;&lt;style&gt;<br /> &nbsp; &nbsp; &nbsp; &nbsp;body&nbsp;{&nbsp;font-family:&nbsp;Arial;&nbsp;padding:&nbsp;20px;&nbsp;}<br /> &nbsp; &nbsp; &nbsp; &nbsp;.group&nbsp;{&nbsp;border:&nbsp;1px&nbsp;solid&nbsp;#ccc;&nbsp;padding:&nbsp;10px;&nbsp;margin-bottom:&nbsp;20px;&nbsp;border-radius:&nbsp;5px;&nbsp;}<br /> &nbsp; &nbsp; &nbsp; &nbsp;.group&nbsp;h3&nbsp;{&nbsp;margin:&nbsp;0&nbsp;0&nbsp;10px&nbsp;0;&nbsp;}<br /> &nbsp; &nbsp; &nbsp; &nbsp;.file&nbsp;{&nbsp;margin-left:&nbsp;20px;&nbsp;}<br /> &nbsp; &nbsp; &nbsp; &nbsp;.delete-btn&nbsp;{<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;background:&nbsp;#d00;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;color:&nbsp;white;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;border:&nbsp;none;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;padding:&nbsp;5px&nbsp;10px;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;float:&nbsp;right;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;cursor:&nbsp;pointer;<br /> &nbsp; &nbsp; &nbsp; &nbsp;}<br /> &nbsp; &nbsp; &nbsp; &nbsp;.download&nbsp;{<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;background:&nbsp;#4CAF50;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;color:&nbsp;white;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;padding:&nbsp;3px&nbsp;8px;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;margin-left:&nbsp;10px;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;text-decoration:&nbsp;none;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;border-radius:&nbsp;3px;<br /> &nbsp; &nbsp; &nbsp; &nbsp;}<br /> &nbsp; &nbsp; &nbsp; &nbsp;.download:hover&nbsp;{<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;background:&nbsp;#45a049;<br /> &nbsp; &nbsp; &nbsp; &nbsp;}<br /> &nbsp; &nbsp; &nbsp; &nbsp;.info&nbsp;{<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;margin-top:&nbsp;20px;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;padding:&nbsp;10px;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;background:&nbsp;#f9f9f9;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;border:&nbsp;1px&nbsp;dashed&nbsp;#aaa;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;white-space:&nbsp;pre-wrap;<br /> &nbsp; &nbsp; &nbsp; &nbsp;}<br /> &nbsp; &nbsp; &nbsp; &nbsp;button.refresh&nbsp;{<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;background:&nbsp;#007bff;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;color:&nbsp;white;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;border:&nbsp;none;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;padding:&nbsp;6px&nbsp;12px;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;cursor:&nbsp;pointer;<br /> &nbsp; &nbsp; &nbsp; &nbsp;}<br /> &nbsp; &nbsp;&lt;/style&gt;<br />&lt;/head&gt;<br />&lt;body&gt;<br />&lt;h1&gt;Kopie&nbsp;zapasowe&nbsp;LK3&nbsp;wg.&nbsp;daty&lt;/h1&gt;<br />&lt;div&nbsp;id="backup-list"&gt;<br /><span style="color: #0000BB">&lt;?php&nbsp;</span><span style="color: #007700">if&nbsp;(empty(</span><span style="color: #0000BB">&#36;groups</span><span style="color: #007700">)):&nbsp;</span><span style="color: #0000BB">?&gt;<br /></span> &nbsp; &nbsp;&lt;p&gt;Brak&nbsp;plików.&lt;/p&gt;<br /><span style="color: #0000BB">&lt;?php&nbsp;</span><span style="color: #007700">else:&nbsp;</span><span style="color: #0000BB">?&gt;<br /></span> &nbsp; &nbsp;<span style="color: #0000BB">&lt;?php&nbsp;</span><span style="color: #007700">foreach&nbsp;(</span><span style="color: #0000BB">&#36;groups&nbsp;</span><span style="color: #007700">as&nbsp;</span><span style="color: #0000BB">&#36;date&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">&#36;files</span><span style="color: #007700">):&nbsp;</span><span style="color: #0000BB">?&gt;<br /></span> &nbsp; &nbsp; &nbsp; &nbsp;&lt;div&nbsp;class="group"&nbsp;data-date="<span style="color: #0000BB">&lt;?=&nbsp;htmlspecialchars</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;date</span><span style="color: #007700">)&nbsp;</span><span style="color: #0000BB">?&gt;</span>"&gt;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;button&nbsp;class="delete-btn"&nbsp;onclick="deleteGroup('<span style="color: #0000BB">&lt;?=&nbsp;&#36;date&nbsp;?&gt;</span>')"&gt;Usuń&nbsp;grupę&lt;/button&gt;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;h3&gt;<span style="color: #0000BB">&lt;?=&nbsp;htmlspecialchars</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;date</span><span style="color: #007700">)&nbsp;</span><span style="color: #0000BB">?&gt;</span>&lt;/h3&gt;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #0000BB">&lt;?php&nbsp;</span><span style="color: #007700">foreach&nbsp;(</span><span style="color: #0000BB">&#36;files&nbsp;</span><span style="color: #007700">as&nbsp;</span><span style="color: #0000BB">&#36;file</span><span style="color: #007700">):&nbsp;</span><span style="color: #0000BB">?&gt;<br /></span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;div&nbsp;class="file"&gt;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #0000BB">&lt;?=&nbsp;htmlspecialchars</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;file</span><span style="color: #007700">)&nbsp;</span><span style="color: #0000BB">?&gt;<br /></span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;a&nbsp;class="download"&nbsp;href="backups/<span style="color: #0000BB">&lt;?=&nbsp;rawurlencode</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;file</span><span style="color: #007700">)&nbsp;</span><span style="color: #0000BB">?&gt;</span>"&nbsp;download&gt;Pobierz&lt;/a&gt;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;/div&gt;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #0000BB">&lt;?php&nbsp;</span><span style="color: #007700">endforeach;&nbsp;</span><span style="color: #0000BB">?&gt;<br /></span> &nbsp; &nbsp; &nbsp; &nbsp;&lt;/div&gt;<br /> &nbsp; &nbsp;<span style="color: #0000BB">&lt;?php&nbsp;</span><span style="color: #007700">endforeach;&nbsp;</span><span style="color: #0000BB">?&gt;<br />&lt;?php&nbsp;</span><span style="color: #007700">endif;&nbsp;</span><span style="color: #0000BB">?&gt;<br /></span>&lt;/div&gt;<br />&lt;div&nbsp;class="info"&gt;<br /> &nbsp; &nbsp;&lt;button&nbsp;class="refresh"&nbsp;onclick="getBackups()"&gt;?&nbsp;Aktualizuj&nbsp;(pobierz&nbsp;backupy)&lt;/button&gt;<br />&lt;/div&gt;<br />&lt;script&gt;<br />function&nbsp;deleteGroup(date)&nbsp;{<br /> &nbsp; &nbsp;if&nbsp;(!confirm(`Czy&nbsp;na&nbsp;pewno&nbsp;chcesz&nbsp;usunąć&nbsp;wszystkie&nbsp;pliki&nbsp;z&nbsp;datą&nbsp;&#36;{date}?`))&nbsp;return;<br /> &nbsp; &nbsp;fetch('',&nbsp;{<br /> &nbsp; &nbsp; &nbsp; &nbsp;method:&nbsp;'POST',<br /> &nbsp; &nbsp; &nbsp; &nbsp;headers:&nbsp;{'Content-Type':&nbsp;'application/x-www-form-urlencoded'},<br /> &nbsp; &nbsp; &nbsp; &nbsp;body:&nbsp;'date='&nbsp;+&nbsp;encodeURIComponent(date)<br /> &nbsp; &nbsp;})<br /> &nbsp; &nbsp;.then(res&nbsp;=&gt;&nbsp;res.json())<br /> &nbsp; &nbsp;.then(data&nbsp;=&gt;&nbsp;{<br /> &nbsp; &nbsp; &nbsp; &nbsp;if&nbsp;(data.success)&nbsp;{<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;document.querySelector(`.group[data-date="&#36;{date}"]`).remove();<br /> &nbsp; &nbsp; &nbsp; &nbsp;}&nbsp;else&nbsp;{<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;alert('Błąd&nbsp;przy&nbsp;usuwaniu.');<br /> &nbsp; &nbsp; &nbsp; &nbsp;}<br /> &nbsp; &nbsp;});<br />}<br />function&nbsp;getBackups()&nbsp;{<br /> &nbsp; &nbsp;document.querySelector('.info').innerHTML&nbsp;=&nbsp;'⏳&nbsp;Trwa&nbsp;pobieranie...';<br /> &nbsp; &nbsp;fetch('',&nbsp;{<br /> &nbsp; &nbsp; &nbsp; &nbsp;method:&nbsp;'POST',<br /> &nbsp; &nbsp; &nbsp; &nbsp;headers:&nbsp;{'Content-Type':&nbsp;'application/x-www-form-urlencoded'},<br /> &nbsp; &nbsp; &nbsp; &nbsp;body:&nbsp;'backups=1'<br /> &nbsp; &nbsp;})<br /> &nbsp; &nbsp;.then(res&nbsp;=&gt;&nbsp;res.json())<br /> &nbsp; &nbsp;.then(data&nbsp;=&gt;&nbsp;{<br /> &nbsp; &nbsp; &nbsp; &nbsp;if&nbsp;(data.success)&nbsp;{<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if&nbsp;(data.html)&nbsp;{<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;document.querySelector('#backup-list').innerHTML&nbsp;=&nbsp;data.html;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if&nbsp;(data.messages)&nbsp;{<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;document.querySelector('.info').innerHTML&nbsp;=&nbsp;data.messages;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}&nbsp;else&nbsp;{<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;document.querySelector('.info').innerHTML&nbsp;=&nbsp;'✅&nbsp;Gotowe.';<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}<br /> &nbsp; &nbsp; &nbsp; &nbsp;}&nbsp;else&nbsp;{<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;document.querySelector('.info').innerHTML&nbsp;=&nbsp;'❌&nbsp;Błąd&nbsp;przy&nbsp;pobieraniu.';<br /> &nbsp; &nbsp; &nbsp; &nbsp;}<br /> &nbsp; &nbsp;})<br /> &nbsp; &nbsp;.catch(err&nbsp;=&gt;&nbsp;{<br /> &nbsp; &nbsp; &nbsp; &nbsp;console.error('Fetch&nbsp;error:',&nbsp;err);<br /> &nbsp; &nbsp; &nbsp; &nbsp;document.querySelector('.info').innerHTML&nbsp;=&nbsp;'❌&nbsp;Wystąpił&nbsp;błąd&nbsp;sieci.';<br /> &nbsp; &nbsp;});<br />}<br />&lt;/script&gt;<br />&lt;/body&gt;<br />&lt;/html&gt;&nbsp;<br /></code></div></div></div>zapisać na serwerze ...edytować ip i porty do pobrania plików backups oraz globalne hasło i usera czyli fragment kodu poniżej.<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>    // ? Dane logowania globalne<br />
    &#36;globalUser = 'admin';    //globalny user<br />
    &#36;globalPass = 'pass';   &nbsp;&nbsp;//globalne haslo<br />
<br />
    // ? Lista hostów<br />
    &#36;sources = [<br />
        ['ip' =&gt; '192.168.1.100', 'port' =&gt; 80,  'name' =&gt; 'SOL'],<br />
        ['ip' =&gt; '132.138.3.220', 'port' =&gt; 98,  'name' =&gt; 'CWU', 'user' =&gt; 'user', 'pass' =&gt; '1234'],<br />
        ['ip' =&gt; '132.138.3.220', 'port' =&gt; 99,  'name' =&gt; 'GSM'],<br />
        ['ip' =&gt; '132.138.3.220', 'port' =&gt; 100, 'name' =&gt; 'PCO'],<br />
    ];</code></div></div>jeśli wszystkie maja takie samo to nie musicie go podawać dla każdego z osobna wystarczy je podać jako globalne <br />
skrypt pobiera zarówno z lokal ip:80 jak i po external ip:port można dodać go do crona by sam cyklicznie robił kopie na serwerze.<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>0 2 * * * curl -s "http://twojadomena.pl/backup.php?cron=1" &gt; /dev/null 2&gt;&amp;1</code></div></div><br />
<br />
pytania lub problemy chętnie p/odpowiem...]]></description>
			<content:encoded><![CDATA[jeden klik i zapisane nawet 100 backupów z LK3 w różnych lokalizacjach - nic prostszego.<br />
<br />
<div class="codeblock phpcodeblock"><div class="title">Kod PHP:</div><div class="body"><div dir="ltr"><code><span style="color: #0000BB">&lt;?php<br />error_reporting</span><span style="color: #007700">(</span><span style="color: #0000BB">E_ALL</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">parse_str</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;_SERVER</span><span style="color: #007700">[</span><span style="color: #DD0000">'QUERY_STRING'</span><span style="color: #007700">]);<br /><br />if&nbsp;(isset(</span><span style="color: #0000BB">&#36;_GET</span><span style="color: #007700">[</span><span style="color: #DD0000">'cron'</span><span style="color: #007700">]))&nbsp;{<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;&#36;_POST</span><span style="color: #007700">[</span><span style="color: #DD0000">'backups'</span><span style="color: #007700">]&nbsp;=&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">;<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;&#36;_SERVER</span><span style="color: #007700">[</span><span style="color: #DD0000">'REQUEST_METHOD'</span><span style="color: #007700">]&nbsp;=&nbsp;</span><span style="color: #DD0000">'POST'</span><span style="color: #007700">;<br />}<br /><br /></span><span style="color: #0000BB">&#36;folder&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">"backups"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">&#36;pattern&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'/_(&#092;d{4}-&#092;d{2}-&#092;d{2})_setting&#092;.bin&#36;/'</span><span style="color: #007700">;<br /></span><span style="color: #FF8000">//&nbsp;Usuwanie&nbsp;plików&nbsp;(na&nbsp;podstawie&nbsp;daty&nbsp;z&nbsp;POST)<br /></span><span style="color: #007700">if&nbsp;(</span><span style="color: #0000BB">&#36;_SERVER</span><span style="color: #007700">[</span><span style="color: #DD0000">'REQUEST_METHOD'</span><span style="color: #007700">]&nbsp;===&nbsp;</span><span style="color: #DD0000">'POST'&nbsp;</span><span style="color: #007700">&amp;&amp;&nbsp;isset(</span><span style="color: #0000BB">&#36;_POST</span><span style="color: #007700">[</span><span style="color: #DD0000">'date'</span><span style="color: #007700">]))&nbsp;{<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;&#36;dateToDelete&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">&#36;_POST</span><span style="color: #007700">[</span><span style="color: #DD0000">'date'</span><span style="color: #007700">];<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;</span><span style="color: #007700">foreach&nbsp;(</span><span style="color: #0000BB">scandir</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;folder</span><span style="color: #007700">)&nbsp;as&nbsp;</span><span style="color: #0000BB">&#36;file</span><span style="color: #007700">)&nbsp;{<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #007700">if&nbsp;(</span><span style="color: #0000BB">preg_match</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;pattern</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">&#36;file</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">&#36;matches</span><span style="color: #007700">)&nbsp;&amp;&amp;&nbsp;</span><span style="color: #0000BB">&#36;matches</span><span style="color: #007700">[</span><span style="color: #0000BB">1</span><span style="color: #007700">]&nbsp;===&nbsp;</span><span style="color: #0000BB">&#36;dateToDelete</span><span style="color: #007700">)&nbsp;{<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;unlink</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;folder&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #0000BB">DIRECTORY_SEPARATOR&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #0000BB">&#36;file</span><span style="color: #007700">);<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #007700">}<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;</span><span style="color: #007700">}<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;</span><span style="color: #007700">echo&nbsp;</span><span style="color: #0000BB">json_encode</span><span style="color: #007700">([</span><span style="color: #DD0000">'success'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">true</span><span style="color: #007700">]);<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;</span><span style="color: #007700">exit;<br />}<br /></span><span style="color: #FF8000">//&nbsp;Backup&nbsp;i&nbsp;lista<br /></span><span style="color: #007700">if&nbsp;(</span><span style="color: #0000BB">&#36;_SERVER</span><span style="color: #007700">[</span><span style="color: #DD0000">'REQUEST_METHOD'</span><span style="color: #007700">]&nbsp;===&nbsp;</span><span style="color: #DD0000">'POST'&nbsp;</span><span style="color: #007700">&amp;&amp;&nbsp;isset(</span><span style="color: #0000BB">&#36;_POST</span><span style="color: #007700">[</span><span style="color: #DD0000">'backups'</span><span style="color: #007700">]))&nbsp;{<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;&#36;messages&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">""</span><span style="color: #007700">;<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;</span><span style="color: #FF8000">//&nbsp;?&nbsp;Dane&nbsp;logowania&nbsp;globalne<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;&#36;globalUser&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'admin'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;&#36;globalPass&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'xxxxxxx'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;</span><span style="color: #FF8000">//&nbsp;?&nbsp;Lista&nbsp;hostów<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;&#36;sources&nbsp;</span><span style="color: #007700">=&nbsp;[<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #007700">[</span><span style="color: #DD0000">'ip'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">'192.168.1.20'</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'port'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">97</span><span style="color: #007700">,</span><span style="color: #0000BB"> &nbsp;</span><span style="color: #DD0000">'name'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">'SOL'</span><span style="color: #007700">],<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #007700">[</span><span style="color: #DD0000">'ip'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">'192.168.1.20'</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'port'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">98</span><span style="color: #007700">,</span><span style="color: #0000BB"> &nbsp;</span><span style="color: #DD0000">'name'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">'CWU'</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'user'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">'admin'</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'pass'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">'xxxxxx'</span><span style="color: #007700">],<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #007700">[</span><span style="color: #DD0000">'ip'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">'192.168.1.20'</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'port'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">99</span><span style="color: #007700">,</span><span style="color: #0000BB"> &nbsp;</span><span style="color: #DD0000">'name'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">'GSM'</span><span style="color: #007700">],<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #007700">[</span><span style="color: #DD0000">'ip'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">'192.168.1.20'</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'port'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">100</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'name'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">'PCO'</span><span style="color: #007700">],<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;</span><span style="color: #007700">];<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;&#36;remotePath&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">"/lk3_settings.bin"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;&#36;backupDir&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">__DIR__&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #DD0000">'/backups'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;</span><span style="color: #007700">if&nbsp;(!</span><span style="color: #0000BB">is_dir</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;backupDir</span><span style="color: #007700">))&nbsp;{<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;mkdir</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;backupDir</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0777</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">true</span><span style="color: #007700">);<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;</span><span style="color: #007700">}<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;&#36;date&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">date</span><span style="color: #007700">(</span><span style="color: #DD0000">"_Y-m-d"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;</span><span style="color: #007700">foreach&nbsp;(</span><span style="color: #0000BB">&#36;sources&nbsp;</span><span style="color: #007700">as&nbsp;</span><span style="color: #0000BB">&#36;source</span><span style="color: #007700">)&nbsp;{<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;&#36;ip  &nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">&#36;source</span><span style="color: #007700">[</span><span style="color: #DD0000">'ip'</span><span style="color: #007700">];<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;&#36;port&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">&#36;source</span><span style="color: #007700">[</span><span style="color: #DD0000">'port'</span><span style="color: #007700">];<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;&#36;name&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">&#36;source</span><span style="color: #007700">[</span><span style="color: #DD0000">'name'</span><span style="color: #007700">];<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;&#36;user&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">&#36;source</span><span style="color: #007700">[</span><span style="color: #DD0000">'user'</span><span style="color: #007700">]&nbsp;??&nbsp;</span><span style="color: #0000BB">&#36;globalUser</span><span style="color: #007700">;<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;&#36;pass&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">&#36;source</span><span style="color: #007700">[</span><span style="color: #DD0000">'pass'</span><span style="color: #007700">]&nbsp;??&nbsp;</span><span style="color: #0000BB">&#36;globalPass</span><span style="color: #007700">;<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;&#36;url&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">"http://</span><span style="color: #0000BB">&#36;ip</span><span style="color: #DD0000">:</span><span style="color: #0000BB">&#36;port&#36;remotePath</span><span style="color: #DD0000">"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;&#36;auth&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">base64_encode</span><span style="color: #007700">(</span><span style="color: #DD0000">"</span><span style="color: #0000BB">&#36;user</span><span style="color: #DD0000">:</span><span style="color: #0000BB">&#36;pass</span><span style="color: #DD0000">"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;&#36;opts&nbsp;</span><span style="color: #007700">=&nbsp;[<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #DD0000">"http"&nbsp;</span><span style="color: #007700">=&gt;&nbsp;[<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #DD0000">"method"&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">"GET"</span><span style="color: #007700">,<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #DD0000">"header"&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">"Authorization:&nbsp;Basic&nbsp;</span><span style="color: #0000BB">&#36;auth</span><span style="color: #DD0000">&#092;r&#092;n"<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #007700">]<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #007700">];<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;&#36;context&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">stream_context_create</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;opts</span><span style="color: #007700">);<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;&#36;content&nbsp;</span><span style="color: #007700">=&nbsp;@</span><span style="color: #0000BB">file_get_contents</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;url</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">false</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">&#36;context</span><span style="color: #007700">);<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #007700">if&nbsp;(</span><span style="color: #0000BB">&#36;content&nbsp;</span><span style="color: #007700">===&nbsp;</span><span style="color: #0000BB">false</span><span style="color: #007700">)&nbsp;{<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#36;messages&nbsp;</span><span style="color: #007700">.=&nbsp;</span><span style="color: #DD0000">"&lt;div&gt;?&nbsp;Błąd&nbsp;pobierania:&nbsp;</span><span style="color: #0000BB">&#36;url</span><span style="color: #DD0000">&lt;/div&gt;"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #007700">continue;<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #007700">}<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;&#36;filename&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">"</span><span style="color: #007700">{</span><span style="color: #0000BB">&#36;name</span><span style="color: #007700">}{</span><span style="color: #0000BB">&#36;date</span><span style="color: #007700">}</span><span style="color: #DD0000">_setting.bin"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;&#36;filepath&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">&#36;backupDir&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #DD0000">'/'&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #0000BB">&#36;filename</span><span style="color: #007700">;<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #007700">if&nbsp;(</span><span style="color: #0000BB">file_put_contents</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;filepath</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">&#36;content</span><span style="color: #007700">)&nbsp;!==&nbsp;</span><span style="color: #0000BB">false</span><span style="color: #007700">)&nbsp;{<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#36;messages&nbsp;</span><span style="color: #007700">.=&nbsp;</span><span style="color: #DD0000">"&lt;div&gt;✔&nbsp;Zapisano:&nbsp;</span><span style="color: #0000BB">&#36;filename</span><span style="color: #DD0000">&lt;/div&gt;"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #007700">}&nbsp;else&nbsp;{<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#36;messages&nbsp;</span><span style="color: #007700">.=&nbsp;</span><span style="color: #DD0000">"&lt;div&gt;?&nbsp;Błąd&nbsp;zapisu:&nbsp;</span><span style="color: #0000BB">&#36;filename</span><span style="color: #DD0000">&lt;/div&gt;"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #007700">}<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;</span><span style="color: #007700">}<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;</span><span style="color: #FF8000">//&nbsp;?&nbsp;Lista&nbsp;backupów<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;ob_start</span><span style="color: #007700">();<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;&#36;groups&nbsp;</span><span style="color: #007700">=&nbsp;[];<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;</span><span style="color: #007700">foreach&nbsp;(</span><span style="color: #0000BB">scandir</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;folder</span><span style="color: #007700">)&nbsp;as&nbsp;</span><span style="color: #0000BB">&#36;file</span><span style="color: #007700">)&nbsp;{<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #007700">if&nbsp;(</span><span style="color: #0000BB">preg_match</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;pattern</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">&#36;file</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">&#36;matches</span><span style="color: #007700">))&nbsp;{<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#36;date&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">&#36;matches</span><span style="color: #007700">[</span><span style="color: #0000BB">1</span><span style="color: #007700">];<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#36;groups</span><span style="color: #007700">[</span><span style="color: #0000BB">&#36;date</span><span style="color: #007700">][]&nbsp;=&nbsp;</span><span style="color: #0000BB">&#36;file</span><span style="color: #007700">;<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #007700">}<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;</span><span style="color: #007700">}<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;</span><span style="color: #007700">if&nbsp;(empty(</span><span style="color: #0000BB">&#36;groups</span><span style="color: #007700">))&nbsp;{<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #007700">echo&nbsp;</span><span style="color: #DD0000">"&lt;p&gt;Brak&nbsp;plików.&lt;/p&gt;"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;</span><span style="color: #007700">}&nbsp;else&nbsp;{<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #007700">foreach&nbsp;(</span><span style="color: #0000BB">&#36;groups&nbsp;</span><span style="color: #007700">as&nbsp;</span><span style="color: #0000BB">&#36;date&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">&#36;files</span><span style="color: #007700">)&nbsp;{<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #007700">echo&nbsp;</span><span style="color: #DD0000">"&lt;div&nbsp;class='group'&nbsp;data-date='"&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #0000BB">htmlspecialchars</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;date</span><span style="color: #007700">)&nbsp;.&nbsp;</span><span style="color: #DD0000">"'&gt;"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #007700">echo&nbsp;</span><span style="color: #DD0000">"&lt;button&nbsp;class='delete-btn'&nbsp;onclick='deleteGroup(&#092;"</span><span style="color: #0000BB">&#36;date</span><span style="color: #DD0000">&#092;")'&gt;Usuń&nbsp;grupę&lt;/button&gt;"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #007700">echo&nbsp;</span><span style="color: #DD0000">"&lt;h3&gt;"&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #0000BB">htmlspecialchars</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;date</span><span style="color: #007700">)&nbsp;.&nbsp;</span><span style="color: #DD0000">"&lt;/h3&gt;"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #007700">foreach&nbsp;(</span><span style="color: #0000BB">&#36;files&nbsp;</span><span style="color: #007700">as&nbsp;</span><span style="color: #0000BB">&#36;file</span><span style="color: #007700">)&nbsp;{<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#36;fileEnc&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">rawurlencode</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;file</span><span style="color: #007700">);<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #007700">echo&nbsp;</span><span style="color: #DD0000">"&lt;div&nbsp;class='file'&gt;"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #007700">echo&nbsp;</span><span style="color: #0000BB">htmlspecialchars</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;file</span><span style="color: #007700">);<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #007700">echo&nbsp;</span><span style="color: #DD0000">"&nbsp;&lt;a&nbsp;class='download'&nbsp;href='backups/</span><span style="color: #0000BB">&#36;fileEnc</span><span style="color: #DD0000">'&nbsp;download&gt;Pobierz&lt;/a&gt;"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #007700">echo&nbsp;</span><span style="color: #DD0000">"&lt;/div&gt;"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #007700">}<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #007700">echo&nbsp;</span><span style="color: #DD0000">"&lt;/div&gt;"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #007700">}<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;</span><span style="color: #007700">}<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;&#36;html&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">ob_get_clean</span><span style="color: #007700">();<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;</span><span style="color: #007700">echo&nbsp;</span><span style="color: #0000BB">json_encode</span><span style="color: #007700">([<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #DD0000">'success'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">true</span><span style="color: #007700">,<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #DD0000">'html'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">&#36;html</span><span style="color: #007700">,<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #DD0000">'messages'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">&#36;messages<br /> &nbsp; &nbsp;</span><span style="color: #007700">]);<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;</span><span style="color: #007700">exit;<br />}<br /></span><span style="color: #FF8000">//&nbsp;Pierwsze&nbsp;wczytanie&nbsp;listy<br /></span><span style="color: #0000BB">&#36;groups&nbsp;</span><span style="color: #007700">=&nbsp;[];<br />foreach&nbsp;(</span><span style="color: #0000BB">scandir</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;folder</span><span style="color: #007700">)&nbsp;as&nbsp;</span><span style="color: #0000BB">&#36;file</span><span style="color: #007700">)&nbsp;{<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;</span><span style="color: #007700">if&nbsp;(</span><span style="color: #0000BB">preg_match</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;pattern</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">&#36;file</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">&#36;matches</span><span style="color: #007700">))&nbsp;{<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;&#36;date&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">&#36;matches</span><span style="color: #007700">[</span><span style="color: #0000BB">1</span><span style="color: #007700">];<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp;&#36;groups</span><span style="color: #007700">[</span><span style="color: #0000BB">&#36;date</span><span style="color: #007700">][]&nbsp;=&nbsp;</span><span style="color: #0000BB">&#36;file</span><span style="color: #007700">;<br /></span><span style="color: #0000BB"> &nbsp; &nbsp;</span><span style="color: #007700">}<br />}<br /></span><span style="color: #0000BB">?&gt;<br /></span>&lt;!DOCTYPE&nbsp;html&gt;<br />&lt;html&nbsp;lang="pl"&gt;<br />&lt;head&gt;<br /> &nbsp; &nbsp;&lt;meta&nbsp;charset="UTF-8"&gt;<br /> &nbsp; &nbsp;&lt;title&gt;LK3&nbsp;Backups&lt;/title&gt;<br /> &nbsp; &nbsp;&lt;style&gt;<br /> &nbsp; &nbsp; &nbsp; &nbsp;body&nbsp;{&nbsp;font-family:&nbsp;Arial;&nbsp;padding:&nbsp;20px;&nbsp;}<br /> &nbsp; &nbsp; &nbsp; &nbsp;.group&nbsp;{&nbsp;border:&nbsp;1px&nbsp;solid&nbsp;#ccc;&nbsp;padding:&nbsp;10px;&nbsp;margin-bottom:&nbsp;20px;&nbsp;border-radius:&nbsp;5px;&nbsp;}<br /> &nbsp; &nbsp; &nbsp; &nbsp;.group&nbsp;h3&nbsp;{&nbsp;margin:&nbsp;0&nbsp;0&nbsp;10px&nbsp;0;&nbsp;}<br /> &nbsp; &nbsp; &nbsp; &nbsp;.file&nbsp;{&nbsp;margin-left:&nbsp;20px;&nbsp;}<br /> &nbsp; &nbsp; &nbsp; &nbsp;.delete-btn&nbsp;{<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;background:&nbsp;#d00;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;color:&nbsp;white;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;border:&nbsp;none;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;padding:&nbsp;5px&nbsp;10px;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;float:&nbsp;right;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;cursor:&nbsp;pointer;<br /> &nbsp; &nbsp; &nbsp; &nbsp;}<br /> &nbsp; &nbsp; &nbsp; &nbsp;.download&nbsp;{<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;background:&nbsp;#4CAF50;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;color:&nbsp;white;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;padding:&nbsp;3px&nbsp;8px;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;margin-left:&nbsp;10px;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;text-decoration:&nbsp;none;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;border-radius:&nbsp;3px;<br /> &nbsp; &nbsp; &nbsp; &nbsp;}<br /> &nbsp; &nbsp; &nbsp; &nbsp;.download:hover&nbsp;{<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;background:&nbsp;#45a049;<br /> &nbsp; &nbsp; &nbsp; &nbsp;}<br /> &nbsp; &nbsp; &nbsp; &nbsp;.info&nbsp;{<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;margin-top:&nbsp;20px;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;padding:&nbsp;10px;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;background:&nbsp;#f9f9f9;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;border:&nbsp;1px&nbsp;dashed&nbsp;#aaa;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;white-space:&nbsp;pre-wrap;<br /> &nbsp; &nbsp; &nbsp; &nbsp;}<br /> &nbsp; &nbsp; &nbsp; &nbsp;button.refresh&nbsp;{<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;background:&nbsp;#007bff;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;color:&nbsp;white;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;border:&nbsp;none;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;padding:&nbsp;6px&nbsp;12px;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;cursor:&nbsp;pointer;<br /> &nbsp; &nbsp; &nbsp; &nbsp;}<br /> &nbsp; &nbsp;&lt;/style&gt;<br />&lt;/head&gt;<br />&lt;body&gt;<br />&lt;h1&gt;Kopie&nbsp;zapasowe&nbsp;LK3&nbsp;wg.&nbsp;daty&lt;/h1&gt;<br />&lt;div&nbsp;id="backup-list"&gt;<br /><span style="color: #0000BB">&lt;?php&nbsp;</span><span style="color: #007700">if&nbsp;(empty(</span><span style="color: #0000BB">&#36;groups</span><span style="color: #007700">)):&nbsp;</span><span style="color: #0000BB">?&gt;<br /></span> &nbsp; &nbsp;&lt;p&gt;Brak&nbsp;plików.&lt;/p&gt;<br /><span style="color: #0000BB">&lt;?php&nbsp;</span><span style="color: #007700">else:&nbsp;</span><span style="color: #0000BB">?&gt;<br /></span> &nbsp; &nbsp;<span style="color: #0000BB">&lt;?php&nbsp;</span><span style="color: #007700">foreach&nbsp;(</span><span style="color: #0000BB">&#36;groups&nbsp;</span><span style="color: #007700">as&nbsp;</span><span style="color: #0000BB">&#36;date&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">&#36;files</span><span style="color: #007700">):&nbsp;</span><span style="color: #0000BB">?&gt;<br /></span> &nbsp; &nbsp; &nbsp; &nbsp;&lt;div&nbsp;class="group"&nbsp;data-date="<span style="color: #0000BB">&lt;?=&nbsp;htmlspecialchars</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;date</span><span style="color: #007700">)&nbsp;</span><span style="color: #0000BB">?&gt;</span>"&gt;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;button&nbsp;class="delete-btn"&nbsp;onclick="deleteGroup('<span style="color: #0000BB">&lt;?=&nbsp;&#36;date&nbsp;?&gt;</span>')"&gt;Usuń&nbsp;grupę&lt;/button&gt;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;h3&gt;<span style="color: #0000BB">&lt;?=&nbsp;htmlspecialchars</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;date</span><span style="color: #007700">)&nbsp;</span><span style="color: #0000BB">?&gt;</span>&lt;/h3&gt;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #0000BB">&lt;?php&nbsp;</span><span style="color: #007700">foreach&nbsp;(</span><span style="color: #0000BB">&#36;files&nbsp;</span><span style="color: #007700">as&nbsp;</span><span style="color: #0000BB">&#36;file</span><span style="color: #007700">):&nbsp;</span><span style="color: #0000BB">?&gt;<br /></span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;div&nbsp;class="file"&gt;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #0000BB">&lt;?=&nbsp;htmlspecialchars</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;file</span><span style="color: #007700">)&nbsp;</span><span style="color: #0000BB">?&gt;<br /></span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;a&nbsp;class="download"&nbsp;href="backups/<span style="color: #0000BB">&lt;?=&nbsp;rawurlencode</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;file</span><span style="color: #007700">)&nbsp;</span><span style="color: #0000BB">?&gt;</span>"&nbsp;download&gt;Pobierz&lt;/a&gt;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;/div&gt;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #0000BB">&lt;?php&nbsp;</span><span style="color: #007700">endforeach;&nbsp;</span><span style="color: #0000BB">?&gt;<br /></span> &nbsp; &nbsp; &nbsp; &nbsp;&lt;/div&gt;<br /> &nbsp; &nbsp;<span style="color: #0000BB">&lt;?php&nbsp;</span><span style="color: #007700">endforeach;&nbsp;</span><span style="color: #0000BB">?&gt;<br />&lt;?php&nbsp;</span><span style="color: #007700">endif;&nbsp;</span><span style="color: #0000BB">?&gt;<br /></span>&lt;/div&gt;<br />&lt;div&nbsp;class="info"&gt;<br /> &nbsp; &nbsp;&lt;button&nbsp;class="refresh"&nbsp;onclick="getBackups()"&gt;?&nbsp;Aktualizuj&nbsp;(pobierz&nbsp;backupy)&lt;/button&gt;<br />&lt;/div&gt;<br />&lt;script&gt;<br />function&nbsp;deleteGroup(date)&nbsp;{<br /> &nbsp; &nbsp;if&nbsp;(!confirm(`Czy&nbsp;na&nbsp;pewno&nbsp;chcesz&nbsp;usunąć&nbsp;wszystkie&nbsp;pliki&nbsp;z&nbsp;datą&nbsp;&#36;{date}?`))&nbsp;return;<br /> &nbsp; &nbsp;fetch('',&nbsp;{<br /> &nbsp; &nbsp; &nbsp; &nbsp;method:&nbsp;'POST',<br /> &nbsp; &nbsp; &nbsp; &nbsp;headers:&nbsp;{'Content-Type':&nbsp;'application/x-www-form-urlencoded'},<br /> &nbsp; &nbsp; &nbsp; &nbsp;body:&nbsp;'date='&nbsp;+&nbsp;encodeURIComponent(date)<br /> &nbsp; &nbsp;})<br /> &nbsp; &nbsp;.then(res&nbsp;=&gt;&nbsp;res.json())<br /> &nbsp; &nbsp;.then(data&nbsp;=&gt;&nbsp;{<br /> &nbsp; &nbsp; &nbsp; &nbsp;if&nbsp;(data.success)&nbsp;{<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;document.querySelector(`.group[data-date="&#36;{date}"]`).remove();<br /> &nbsp; &nbsp; &nbsp; &nbsp;}&nbsp;else&nbsp;{<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;alert('Błąd&nbsp;przy&nbsp;usuwaniu.');<br /> &nbsp; &nbsp; &nbsp; &nbsp;}<br /> &nbsp; &nbsp;});<br />}<br />function&nbsp;getBackups()&nbsp;{<br /> &nbsp; &nbsp;document.querySelector('.info').innerHTML&nbsp;=&nbsp;'⏳&nbsp;Trwa&nbsp;pobieranie...';<br /> &nbsp; &nbsp;fetch('',&nbsp;{<br /> &nbsp; &nbsp; &nbsp; &nbsp;method:&nbsp;'POST',<br /> &nbsp; &nbsp; &nbsp; &nbsp;headers:&nbsp;{'Content-Type':&nbsp;'application/x-www-form-urlencoded'},<br /> &nbsp; &nbsp; &nbsp; &nbsp;body:&nbsp;'backups=1'<br /> &nbsp; &nbsp;})<br /> &nbsp; &nbsp;.then(res&nbsp;=&gt;&nbsp;res.json())<br /> &nbsp; &nbsp;.then(data&nbsp;=&gt;&nbsp;{<br /> &nbsp; &nbsp; &nbsp; &nbsp;if&nbsp;(data.success)&nbsp;{<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if&nbsp;(data.html)&nbsp;{<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;document.querySelector('#backup-list').innerHTML&nbsp;=&nbsp;data.html;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if&nbsp;(data.messages)&nbsp;{<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;document.querySelector('.info').innerHTML&nbsp;=&nbsp;data.messages;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}&nbsp;else&nbsp;{<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;document.querySelector('.info').innerHTML&nbsp;=&nbsp;'✅&nbsp;Gotowe.';<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}<br /> &nbsp; &nbsp; &nbsp; &nbsp;}&nbsp;else&nbsp;{<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;document.querySelector('.info').innerHTML&nbsp;=&nbsp;'❌&nbsp;Błąd&nbsp;przy&nbsp;pobieraniu.';<br /> &nbsp; &nbsp; &nbsp; &nbsp;}<br /> &nbsp; &nbsp;})<br /> &nbsp; &nbsp;.catch(err&nbsp;=&gt;&nbsp;{<br /> &nbsp; &nbsp; &nbsp; &nbsp;console.error('Fetch&nbsp;error:',&nbsp;err);<br /> &nbsp; &nbsp; &nbsp; &nbsp;document.querySelector('.info').innerHTML&nbsp;=&nbsp;'❌&nbsp;Wystąpił&nbsp;błąd&nbsp;sieci.';<br /> &nbsp; &nbsp;});<br />}<br />&lt;/script&gt;<br />&lt;/body&gt;<br />&lt;/html&gt;&nbsp;<br /></code></div></div></div>zapisać na serwerze ...edytować ip i porty do pobrania plików backups oraz globalne hasło i usera czyli fragment kodu poniżej.<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>    // ? Dane logowania globalne<br />
    &#36;globalUser = 'admin';    //globalny user<br />
    &#36;globalPass = 'pass';   &nbsp;&nbsp;//globalne haslo<br />
<br />
    // ? Lista hostów<br />
    &#36;sources = [<br />
        ['ip' =&gt; '192.168.1.100', 'port' =&gt; 80,  'name' =&gt; 'SOL'],<br />
        ['ip' =&gt; '132.138.3.220', 'port' =&gt; 98,  'name' =&gt; 'CWU', 'user' =&gt; 'user', 'pass' =&gt; '1234'],<br />
        ['ip' =&gt; '132.138.3.220', 'port' =&gt; 99,  'name' =&gt; 'GSM'],<br />
        ['ip' =&gt; '132.138.3.220', 'port' =&gt; 100, 'name' =&gt; 'PCO'],<br />
    ];</code></div></div>jeśli wszystkie maja takie samo to nie musicie go podawać dla każdego z osobna wystarczy je podać jako globalne <br />
skrypt pobiera zarówno z lokal ip:80 jak i po external ip:port można dodać go do crona by sam cyklicznie robił kopie na serwerze.<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>0 2 * * * curl -s "http://twojadomena.pl/backup.php?cron=1" &gt; /dev/null 2&gt;&amp;1</code></div></div><br />
<br />
pytania lub problemy chętnie p/odpowiem...]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Watchdog]]></title>
			<link>https://forum.tinycontrol.pl/showthread.php?tid=3039</link>
			<pubDate>Tue, 03 Dec 2024 08:31:47 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.tinycontrol.pl/member.php?action=profile&uid=12138">Xnova13Tuchis</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.tinycontrol.pl/showthread.php?tid=3039</guid>
			<description><![CDATA[Ahoj, je tu někdo, kdo by mohl poskytnout návod na nastavení hlídacího psa od LK pro monitorování IP nebo reset relé? Děkuju.<br />
<div style="text-align: right;" class="mycode_align"><a href="https://doodlebaseball.io/" target="_blank" rel="noopener" class="mycode_url"><span style="color: white;" class="mycode_color"><span style="font-size: 1pt;" class="mycode_size">google doodle baseball</span></span></a></div>]]></description>
			<content:encoded><![CDATA[Ahoj, je tu někdo, kdo by mohl poskytnout návod na nastavení hlídacího psa od LK pro monitorování IP nebo reset relé? Děkuju.<br />
<div style="text-align: right;" class="mycode_align"><a href="https://doodlebaseball.io/" target="_blank" rel="noopener" class="mycode_url"><span style="color: white;" class="mycode_color"><span style="font-size: 1pt;" class="mycode_size">google doodle baseball</span></span></a></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Opóźnienia wysyłania powiadomień SMS email  - obejście blokady UI]]></title>
			<link>https://forum.tinycontrol.pl/showthread.php?tid=2913</link>
			<pubDate>Mon, 11 Dec 2023 11:58:30 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.tinycontrol.pl/member.php?action=profile&uid=3492">stAch</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.tinycontrol.pl/showthread.php?tid=2913</guid>
			<description><![CDATA[zdarzenia obecnie posiadają zablokowane opóźnienie włączenia i opóźnienie wyłączenia co czasem irytuje nas seriami powiadomień.<br />
obejście w zdarzeniach na zasadzie akcji z ustawionym opóźnieniem lub na zasadzie eventu z ustawionym opóźnieniem<br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://forum.tinycontrol.pl/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=937" target="_blank" title="">Image1.png</a> (Rozmiar: 32.74 KB / Pobrań: 392)
<!-- end: postbit_attachments_attachment --><br />
pozycja ev1+2 opóźnienie dla email przez dodanie parametrów bezpośrednio w zdarzeniu wykonawczym out0 - email jest wysyłany równocześnie z wykonaniem warunku pierwszego<br />
pozycja ev3+4 opóźnienie dla sms przez zastosowanie event z parametrem - sms jest wysyłany po 1 minucie od spełnienia warunku i tłumiony na okres 5min<br />
<br />
może komuś się przyda nim zostanie to odblokowane w kolejnej wersji softu...  pozdrawiam...]]></description>
			<content:encoded><![CDATA[zdarzenia obecnie posiadają zablokowane opóźnienie włączenia i opóźnienie wyłączenia co czasem irytuje nas seriami powiadomień.<br />
obejście w zdarzeniach na zasadzie akcji z ustawionym opóźnieniem lub na zasadzie eventu z ustawionym opóźnieniem<br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://forum.tinycontrol.pl/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=937" target="_blank" title="">Image1.png</a> (Rozmiar: 32.74 KB / Pobrań: 392)
<!-- end: postbit_attachments_attachment --><br />
pozycja ev1+2 opóźnienie dla email przez dodanie parametrów bezpośrednio w zdarzeniu wykonawczym out0 - email jest wysyłany równocześnie z wykonaniem warunku pierwszego<br />
pozycja ev3+4 opóźnienie dla sms przez zastosowanie event z parametrem - sms jest wysyłany po 1 minucie od spełnienia warunku i tłumiony na okres 5min<br />
<br />
może komuś się przyda nim zostanie to odblokowane w kolejnej wersji softu...  pozdrawiam...]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Staryszy firmware dla LK4]]></title>
			<link>https://forum.tinycontrol.pl/showthread.php?tid=2910</link>
			<pubDate>Mon, 04 Dec 2023 08:01:25 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.tinycontrol.pl/member.php?action=profile&uid=11326">Boldeusz123</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.tinycontrol.pl/showthread.php?tid=2910</guid>
			<description><![CDATA[Czy jest możliwość pobrania softu dla LK4 starszych wersji 1.04 i 1.06]]></description>
			<content:encoded><![CDATA[Czy jest możliwość pobrania softu dla LK4 starszych wersji 1.04 i 1.06]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[SNMP - problem z odczytem temp dla DS]]></title>
			<link>https://forum.tinycontrol.pl/showthread.php?tid=2846</link>
			<pubDate>Thu, 06 Jul 2023 11:51:16 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.tinycontrol.pl/member.php?action=profile&uid=11146">kamils</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.tinycontrol.pl/showthread.php?tid=2846</guid>
			<description><![CDATA[Dzień dobry,<br />
<br />
LK3 SW 1.57a | HW 3.6.<br />
Ustawione SNMP, komunikacja działa. Do LK3 podpięty czujnik temp na 1Wire do wejścia DS1. Sam LK3 czyta wartość temp natomiast przy odpytaniu SNMP wartość pokazuje 0. <br />
<br />
Info z LK3: <br />
<span style="font-family: Optima, Segoe, 'Segoe UI', Candara, Calibri, Arial, sans-serif;" class="mycode_font">Temperature Sensors</span><br />
<span style="font-family: Optima, Segoe, 'Segoe UI', Candara, Calibri, Arial, sans-serif;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="color: #555555;" class="mycode_color">DS1</span><br />
<span style="color: #555555;" class="mycode_color">27.0 </span><span style="color: #555555;" class="mycode_color">°C</span></span></span><br />
<br />
<span style="font-family: Optima, Segoe, 'Segoe UI', Candara, Calibri, Arial, sans-serif;" class="mycode_font"><span style="color: #555555;" class="mycode_color">SNMPwalk wygląda tak:</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>.1.3.6.1.2.1.1.5.0 = STRING: "LK3_1"<br />
.1.3.6.1.4.1.7616.1.0.0 = INTEGER: 0<br />
.1.3.6.1.4.1.7616.1.1.0 = INTEGER: 0<br />
.1.3.6.1.4.1.7616.1.2.0 = INTEGER: 0<br />
.1.3.6.1.4.1.7616.1.3.0 = INTEGER: 0<br />
.1.3.6.1.4.1.7616.1.4.0 = INTEGER: 0<br />
.1.3.6.1.4.1.7616.1.5.0 = INTEGER: 0<br />
.1.3.6.1.4.1.7616.1.6.0 = INTEGER: 0<br />
.1.3.6.1.4.1.7616.1.7.0 = INTEGER: 0<br />
.1.3.6.1.4.1.7616.1.8.0 = INTEGER: 0<br />
.1.3.6.1.4.1.7616.1.9.0 = INTEGER: 0<br />
.1.3.6.1.4.1.7616.2.1.0 = INTEGER: 1<br />
.1.3.6.1.4.1.7616.2.2.0 = INTEGER: 1<br />
.1.3.6.1.4.1.7616.2.3.0 = INTEGER: 1<br />
.1.3.6.1.4.1.7616.2.4.0 = INTEGER: 1<br />
.1.3.6.1.4.1.7616.3.1.0 = INTEGER: 3<br />
.1.3.6.1.4.1.7616.3.2.0 = INTEGER: 3<br />
.1.3.6.1.4.1.7616.3.3.0 = INTEGER: 2<br />
.1.3.6.1.4.1.7616.3.4.0 = INTEGER: 1422<br />
.1.3.6.1.4.1.7616.3.5.0 = INTEGER: 9<br />
.1.3.6.1.4.1.7616.3.6.0 = INTEGER: 9<br />
.1.3.6.1.4.1.7616.3.7.0 = INTEGER: 1222<br />
.1.3.6.1.4.1.7616.3.8.0 = INTEGER: 3400<br />
.1.3.6.1.4.1.7616.4.1.0 = INTEGER: 0<br />
.1.3.6.1.4.1.7616.4.2.0 = INTEGER: 0<br />
.1.3.6.1.4.1.7616.4.3.0 = INTEGER: 0<br />
.1.3.6.1.4.1.7616.4.4.0 = INTEGER: 0<br />
.1.3.6.1.4.1.7616.4.5.0 = INTEGER: 0<br />
.1.3.6.1.4.1.7616.4.6.0 = INTEGER: 0<br />
.1.3.6.1.4.1.7616.4.7.0 = INTEGER: -600<br />
.1.3.6.1.4.1.7616.4.8.0 = INTEGER: -600<br />
.1.3.6.1.4.1.7616.4.9.0 = INTEGER: -600<br />
.1.3.6.1.4.1.7616.4.10.0 = INTEGER: -600<br />
.1.3.6.1.4.1.7616.4.11.0 = INTEGER: 0<br />
.1.3.6.1.4.1.7616.4.12.0 = INTEGER: 0<br />
.1.3.6.1.4.1.7616.4.13.0 = INTEGER: 0<br />
.1.3.6.1.4.1.7616.4.14.0 = INTEGER: -600<br />
.1.3.6.1.4.1.7616.4.15.0 = INTEGER: -1<br />
.1.3.6.1.4.1.7616.4.16.0 = INTEGER: -1<br />
.1.3.6.1.4.1.7616.4.17.0 = INTEGER: -1<br />
.1.3.6.1.4.1.7616.4.18.0 = INTEGER: -1<br />
.1.3.6.1.4.1.7616.4.19.0 = INTEGER: -1<br />
.1.3.6.1.4.1.7616.4.20.0 = INTEGER: -600<br />
.1.3.6.1.4.1.7616.5.1.0 = INTEGER: 473<br />
.1.3.6.1.4.1.7616.5.2.0 = INTEGER: 0<br />
.1.3.6.1.4.1.7616.5.3.0 = INTEGER: 0<br />
.1.3.6.1.4.1.7616.5.4.0 = INTEGER: 0<br />
.1.3.6.1.4.1.7616.5.5.0 = INTEGER: 47045<br />
...<br />
.1.3.6.1.6.3.10.2.1.1.0 = STRING: "LK3"<br />
.1.3.6.1.6.3.10.2.1.2.0 = INTEGER: 0<br />
.1.3.6.1.6.3.10.2.1.3.0 = INTEGER: 1315199<br />
.1.3.6.1.6.3.10.2.1.4.0 = INTEGER: 1500<br />
.1.3.6.1.6.3.15.1.1.1.0 = Counter32: 0<br />
.1.3.6.1.6.3.15.1.1.2.0 = Counter32: 0<br />
.1.3.6.1.6.3.15.1.1.3.0 = Counter32: 0<br />
.1.3.6.1.6.3.15.1.1.4.0 = Counter32: 48926<br />
.1.3.6.1.6.3.15.1.1.5.0 = Counter32: 0<br />
.1.3.6.1.6.3.15.1.1.6.0 = Counter32: 0</code></div></div><br />
Z dokumentacji wnioskuję, że <span style="font-weight: bold;" class="mycode_b">OID .1.3.6.1.4.1.7616.4.1.0</span> powinien wskazywać wartość temp. ale niestety mam <span style="font-weight: bold;" class="mycode_b">0</span>. <br />
Inne wartości typu licznik energii, prądu wyciągam poprawnie.]]></description>
			<content:encoded><![CDATA[Dzień dobry,<br />
<br />
LK3 SW 1.57a | HW 3.6.<br />
Ustawione SNMP, komunikacja działa. Do LK3 podpięty czujnik temp na 1Wire do wejścia DS1. Sam LK3 czyta wartość temp natomiast przy odpytaniu SNMP wartość pokazuje 0. <br />
<br />
Info z LK3: <br />
<span style="font-family: Optima, Segoe, 'Segoe UI', Candara, Calibri, Arial, sans-serif;" class="mycode_font">Temperature Sensors</span><br />
<span style="font-family: Optima, Segoe, 'Segoe UI', Candara, Calibri, Arial, sans-serif;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="color: #555555;" class="mycode_color">DS1</span><br />
<span style="color: #555555;" class="mycode_color">27.0 </span><span style="color: #555555;" class="mycode_color">°C</span></span></span><br />
<br />
<span style="font-family: Optima, Segoe, 'Segoe UI', Candara, Calibri, Arial, sans-serif;" class="mycode_font"><span style="color: #555555;" class="mycode_color">SNMPwalk wygląda tak:</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>.1.3.6.1.2.1.1.5.0 = STRING: "LK3_1"<br />
.1.3.6.1.4.1.7616.1.0.0 = INTEGER: 0<br />
.1.3.6.1.4.1.7616.1.1.0 = INTEGER: 0<br />
.1.3.6.1.4.1.7616.1.2.0 = INTEGER: 0<br />
.1.3.6.1.4.1.7616.1.3.0 = INTEGER: 0<br />
.1.3.6.1.4.1.7616.1.4.0 = INTEGER: 0<br />
.1.3.6.1.4.1.7616.1.5.0 = INTEGER: 0<br />
.1.3.6.1.4.1.7616.1.6.0 = INTEGER: 0<br />
.1.3.6.1.4.1.7616.1.7.0 = INTEGER: 0<br />
.1.3.6.1.4.1.7616.1.8.0 = INTEGER: 0<br />
.1.3.6.1.4.1.7616.1.9.0 = INTEGER: 0<br />
.1.3.6.1.4.1.7616.2.1.0 = INTEGER: 1<br />
.1.3.6.1.4.1.7616.2.2.0 = INTEGER: 1<br />
.1.3.6.1.4.1.7616.2.3.0 = INTEGER: 1<br />
.1.3.6.1.4.1.7616.2.4.0 = INTEGER: 1<br />
.1.3.6.1.4.1.7616.3.1.0 = INTEGER: 3<br />
.1.3.6.1.4.1.7616.3.2.0 = INTEGER: 3<br />
.1.3.6.1.4.1.7616.3.3.0 = INTEGER: 2<br />
.1.3.6.1.4.1.7616.3.4.0 = INTEGER: 1422<br />
.1.3.6.1.4.1.7616.3.5.0 = INTEGER: 9<br />
.1.3.6.1.4.1.7616.3.6.0 = INTEGER: 9<br />
.1.3.6.1.4.1.7616.3.7.0 = INTEGER: 1222<br />
.1.3.6.1.4.1.7616.3.8.0 = INTEGER: 3400<br />
.1.3.6.1.4.1.7616.4.1.0 = INTEGER: 0<br />
.1.3.6.1.4.1.7616.4.2.0 = INTEGER: 0<br />
.1.3.6.1.4.1.7616.4.3.0 = INTEGER: 0<br />
.1.3.6.1.4.1.7616.4.4.0 = INTEGER: 0<br />
.1.3.6.1.4.1.7616.4.5.0 = INTEGER: 0<br />
.1.3.6.1.4.1.7616.4.6.0 = INTEGER: 0<br />
.1.3.6.1.4.1.7616.4.7.0 = INTEGER: -600<br />
.1.3.6.1.4.1.7616.4.8.0 = INTEGER: -600<br />
.1.3.6.1.4.1.7616.4.9.0 = INTEGER: -600<br />
.1.3.6.1.4.1.7616.4.10.0 = INTEGER: -600<br />
.1.3.6.1.4.1.7616.4.11.0 = INTEGER: 0<br />
.1.3.6.1.4.1.7616.4.12.0 = INTEGER: 0<br />
.1.3.6.1.4.1.7616.4.13.0 = INTEGER: 0<br />
.1.3.6.1.4.1.7616.4.14.0 = INTEGER: -600<br />
.1.3.6.1.4.1.7616.4.15.0 = INTEGER: -1<br />
.1.3.6.1.4.1.7616.4.16.0 = INTEGER: -1<br />
.1.3.6.1.4.1.7616.4.17.0 = INTEGER: -1<br />
.1.3.6.1.4.1.7616.4.18.0 = INTEGER: -1<br />
.1.3.6.1.4.1.7616.4.19.0 = INTEGER: -1<br />
.1.3.6.1.4.1.7616.4.20.0 = INTEGER: -600<br />
.1.3.6.1.4.1.7616.5.1.0 = INTEGER: 473<br />
.1.3.6.1.4.1.7616.5.2.0 = INTEGER: 0<br />
.1.3.6.1.4.1.7616.5.3.0 = INTEGER: 0<br />
.1.3.6.1.4.1.7616.5.4.0 = INTEGER: 0<br />
.1.3.6.1.4.1.7616.5.5.0 = INTEGER: 47045<br />
...<br />
.1.3.6.1.6.3.10.2.1.1.0 = STRING: "LK3"<br />
.1.3.6.1.6.3.10.2.1.2.0 = INTEGER: 0<br />
.1.3.6.1.6.3.10.2.1.3.0 = INTEGER: 1315199<br />
.1.3.6.1.6.3.10.2.1.4.0 = INTEGER: 1500<br />
.1.3.6.1.6.3.15.1.1.1.0 = Counter32: 0<br />
.1.3.6.1.6.3.15.1.1.2.0 = Counter32: 0<br />
.1.3.6.1.6.3.15.1.1.3.0 = Counter32: 0<br />
.1.3.6.1.6.3.15.1.1.4.0 = Counter32: 48926<br />
.1.3.6.1.6.3.15.1.1.5.0 = Counter32: 0<br />
.1.3.6.1.6.3.15.1.1.6.0 = Counter32: 0</code></div></div><br />
Z dokumentacji wnioskuję, że <span style="font-weight: bold;" class="mycode_b">OID .1.3.6.1.4.1.7616.4.1.0</span> powinien wskazywać wartość temp. ale niestety mam <span style="font-weight: bold;" class="mycode_b">0</span>. <br />
Inne wartości typu licznik energii, prądu wyciągam poprawnie.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Wgrywanie firmware do LK 2.0]]></title>
			<link>https://forum.tinycontrol.pl/showthread.php?tid=2840</link>
			<pubDate>Tue, 13 Jun 2023 15:24:39 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.tinycontrol.pl/member.php?action=profile&uid=11071">zbych60</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.tinycontrol.pl/showthread.php?tid=2840</guid>
			<description><![CDATA[Witam . Mam LK 2.0 i aktualizowałem do nowszej wersji przez LanControler tools . Niestety LK po tej operacji nie wstaje. Diodki na lanie mrugają. Próbowałem po tftp ale brak kontaktu z LK. Pozostaje jedynie chyba programowanie po ICSP, na płycie są złącze 2x4 i 1x7. Czy da się tą metodą zaprogramować? Proszę o radę i wskazówki.]]></description>
			<content:encoded><![CDATA[Witam . Mam LK 2.0 i aktualizowałem do nowszej wersji przez LanControler tools . Niestety LK po tej operacji nie wstaje. Diodki na lanie mrugają. Próbowałem po tftp ale brak kontaktu z LK. Pozostaje jedynie chyba programowanie po ICSP, na płycie są złącze 2x4 i 1x7. Czy da się tą metodą zaprogramować? Proszę o radę i wskazówki.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[przetwornica DC/DC]]></title>
			<link>https://forum.tinycontrol.pl/showthread.php?tid=2811</link>
			<pubDate>Sun, 21 May 2023 08:41:08 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.tinycontrol.pl/member.php?action=profile&uid=11014">enzo</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.tinycontrol.pl/showthread.php?tid=2811</guid>
			<description><![CDATA[Mam zachomikowaną z starych czasów przetwornicę HW 2.0 SW 2.09 i zauważyłem, że pojawiła się w Lankontrolerach obsługa mqtt.<br />
Czy dla tej przetwornicy jest wersja softu z obsługą mqtt?<br />
skąd mogę ściągnąć aktualny soft dla tej przetwornicy bo pamiętam, że miałem z nią jakieś problemy, ale to było tak dawno, że nie pamiętam o co chodziło i wolał bym ją zaktualizować niezależnie czy jest czy nie ma mqtt w sofcie, chociaż spiąć ją z homeassistantem było by świetnie.]]></description>
			<content:encoded><![CDATA[Mam zachomikowaną z starych czasów przetwornicę HW 2.0 SW 2.09 i zauważyłem, że pojawiła się w Lankontrolerach obsługa mqtt.<br />
Czy dla tej przetwornicy jest wersja softu z obsługą mqtt?<br />
skąd mogę ściągnąć aktualny soft dla tej przetwornicy bo pamiętam, że miałem z nią jakieś problemy, ale to było tak dawno, że nie pamiętam o co chodziło i wolał bym ją zaktualizować niezależnie czy jest czy nie ma mqtt w sofcie, chociaż spiąć ją z homeassistantem było by świetnie.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[tcPDU Firmware]]></title>
			<link>https://forum.tinycontrol.pl/showthread.php?tid=2789</link>
			<pubDate>Fri, 05 May 2023 10:19:19 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.tinycontrol.pl/member.php?action=profile&uid=10940">Vchris</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.tinycontrol.pl/showthread.php?tid=2789</guid>
			<description><![CDATA[hallo<br />
<br />
how can I download the latest firmware for tcPDU now I have SW 1.05-strip | HW 1.0 and it doesn't work like expected<br />
<br />
at the <a href="https://tinycontrol.pl/tcpdu/firmware/" target="_blank" rel="noopener" class="mycode_url">https://tinycontrol.pl/tcpdu/firmware/</a> I get 404 Page not found]]></description>
			<content:encoded><![CDATA[hallo<br />
<br />
how can I download the latest firmware for tcPDU now I have SW 1.05-strip | HW 1.0 and it doesn't work like expected<br />
<br />
at the <a href="https://tinycontrol.pl/tcpdu/firmware/" target="_blank" rel="noopener" class="mycode_url">https://tinycontrol.pl/tcpdu/firmware/</a> I get 404 Page not found]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Aktualizacja LK4 SW 1.01-strip | HW 1.0 - "Unknown error"]]></title>
			<link>https://forum.tinycontrol.pl/showthread.php?tid=2628</link>
			<pubDate>Fri, 20 Jan 2023 20:24:27 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.tinycontrol.pl/member.php?action=profile&uid=10388">sobotprz</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.tinycontrol.pl/showthread.php?tid=2628</guid>
			<description><![CDATA[Dzień dobry,<br />
<br />
Posiadam taki sprzęt jak w temacie, gdy próbuję zrobić update firmware dostaję taki błąd podczas wgrywania pliku<br />
<br />
Wiadomość zwrócona przez urządzenie: "Unknown error"<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
nie udało mi się znaleźć nigdzie how to , wszystko co znalazłem to do wersji HW 3.x +<br />
<br />
<br />
czy mogę prosić o poradę ?]]></description>
			<content:encoded><![CDATA[Dzień dobry,<br />
<br />
Posiadam taki sprzęt jak w temacie, gdy próbuję zrobić update firmware dostaję taki błąd podczas wgrywania pliku<br />
<br />
Wiadomość zwrócona przez urządzenie: "Unknown error"<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
nie udało mi się znaleźć nigdzie how to , wszystko co znalazłem to do wersji HW 3.x +<br />
<br />
<br />
czy mogę prosić o poradę ?]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Odczyt liczników energii elektrycznej za pomocą głowicy optycznej]]></title>
			<link>https://forum.tinycontrol.pl/showthread.php?tid=2590</link>
			<pubDate>Mon, 28 Nov 2022 14:33:25 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.tinycontrol.pl/member.php?action=profile&uid=8694">SirAdams</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.tinycontrol.pl/showthread.php?tid=2590</guid>
			<description><![CDATA[Nie znam się więc zapytam. Czy da się odczytać liczniki elektryczne za pomocą głowicy optycznej z użyciem LK?<br />
<br />
Mam licznik OTUS 3 który jest już zabudowany w instalacji na obiekcie i chciałbym móc z niego odczytywać zużycie energii bez dostawania się za płytę i rozgryzania gdzie co idzie. Czy jest to możliwe z użyciem takiej głowicy i LK3.8?<br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://forum.tinycontrol.pl/images/attachtypes/pdf.png" title="Adobe Acrobat PDF" border="0" alt=".pdf" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=871" target="_blank" title="">otus3-karta-katalogowa.pdf</a> (Rozmiar: 1.14 MB / Pobrań: 583)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[Nie znam się więc zapytam. Czy da się odczytać liczniki elektryczne za pomocą głowicy optycznej z użyciem LK?<br />
<br />
Mam licznik OTUS 3 który jest już zabudowany w instalacji na obiekcie i chciałbym móc z niego odczytywać zużycie energii bez dostawania się za płytę i rozgryzania gdzie co idzie. Czy jest to możliwe z użyciem takiej głowicy i LK3.8?<br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://forum.tinycontrol.pl/images/attachtypes/pdf.png" title="Adobe Acrobat PDF" border="0" alt=".pdf" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=871" target="_blank" title="">otus3-karta-katalogowa.pdf</a> (Rozmiar: 1.14 MB / Pobrań: 583)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
	</channel>
</rss>