IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Univerzálne updater

Zdravím všetkých čitateľov,

na popud komentárov na mojom predchádzajúcom článku "Galéria Efektov pre GM" (viz. tu) dnes teda konečne posielam môj updater. Je to malá aplikácia písaná v C #. Aj keď sa to nezdá, má celkom veľa užitočných funkcií, takže vám stačí ju pribaliť spolu s konfiguračným súborom do zložky s vašou hrou / programom a máte postarané.

Čo teda vie?

  • Prirodzene, sťahovať súbory.
  • Rozoznáva verzie a porovnáva ich s aktuálne dostupnej verzii.
  • Ak je verzia na PC staršie, než tá na update servera, stiahne súbor (y) bez pýtania. Ak sa verzia zhodujú, spýta sa, ak sa chce užívateľ update stiahnuť, keď má aktuálnu verziu. (Čo umožní napr. Opravenie poškodeného exe)
  • Po ukončení Updater spustí aplikáciu, ktorá bola updatována.
  • Samozrejme pri updatované ukazuje celkový postup, postup sťahovanie jednotlivých súborov, počet súborov stiahnutých a ich celkový počet a taktiež zobrazuje rýchlosť downloadu.

Formát INI konfigurácia

INI súbor, ktorý určuje vlastnosti celého Updater obsahuje jedinú sekciu - [info]. Jeho zápis je nasledovné:

[info]
major=1
minor=0
build=0
revsn=0

progid=muj_program
update=http://www.example.com/update_handler.php
run=nazev_aplikace.exe

prvý bloček premenných určuje verziu, ktorú má užovatel práve v PC. Tak, ako som to napísal by bola verzia 1.0.0.0. Updater je robený tak, že už keď by na serveri bola verzia 1.0.0.1, bez pýtania by sťahoval.

"ProgID" je ID vášho programu / hry. Sú 2 možnosti, ako budete updater obsluhovať. Buď cez PHP, čo vám umožní jedným PHP scriptom vytvoriť rozcestník pre Updater na potrebné 10 vašich produktov. Práve vďaka ProgID ich môžete takto rozčleniť. Druhá možnosť obsluhy je obyčajný plaintextový súbor na serveri. V tomto prípade môžete do ProgID dať čokoľvek. Viac o obsluhe Updater na strane servera sa dočítate nižšie v článku.

"Update" je URL adresa na script / súbor, ktorý Updater poskytne informácie o lokácii súborov, ich verziu atď. Opäť - viac o obsluhu na strane servera sa dočítate nižšie.

"Run" je parameter, ktorý určuje súbor, ktorý má byť spustený po dokončení updatu. Pokiaľ ho necháte prázdny, nevykoná sa žiadna akcia, rovnako ako keď by súbor eventuálne neexistoval.

Obsluha Updater na strane servera

Pri updatované sa updater pripojí na adresu určenú parametrom update. Na tejto adrese by mal byť váš script / súbor, ktorý poskytne Updater potrebné informácie. Updater sa pripojí na adresu vo formáte:

zadana_url? ProgID = ID & major = X & minor = X & build = X & revsn = X

V adrese URL sa objaví ID vášho programu (podľa parametra ProgID v INI), tiež sa tam objaví verzia programu. (U vašich programov dbajte na to, aby ste každý z programov distribuovali s unikátnym ID.)

PHP:

<?php
switch ($_GET["progid"]) {
  case "muj_program_1":
    echo "1 0 0 1 http://www.example.com/soubor1.exe http://www.example.com/soubor2.dll";
    break;

  case "muj_program_2":
    echo "3 1 4 8 http://www.example.com/program.exe";
    break;

  default:
    echo "error";
    break;
}
header("Content-Type:text/plain; charset=utf-8");
?>

Podľa GET premenné ProgID rozlíšite vašu aplikáciu a vypíšete dáta k updatu v tomto formáte:

verze_major <mezera> verze_minor <mezera> verze_build <mezera> verze_revision <mezera> soubor_1 <mezera> soubor_2 <mezera> soubor_3 ...

Na koniec stačí zadať typ obsahu na "text / plain" a ošéfovat kódovanie (používajte vždy UTF-8, updater zatiaľ nerozlišuje iná kódovania). Zariadi to funkcie header. Navyše tým, že nastavíte Content-Type na text / plain vám hostingoch ako ENDOR atď. Prestanú do súboru vkladať reklamu, takže vám updater nevyhlási chybu syntaxe. Vyzerá to, že to nemá o moc viac výhod, než napríklad zložka s txt súbory, ale aby som vás vyviedol z prípadného omylu, v PHP si môžete viesť štatistiky, môžete si urobiť niekde admin na správu updatov a dáta pre updater môžete načítať z DB. Tiež môžete pre rovnaký program poskytovať rôzne updaty pri rôznych verziách.

K funkčnosti vám ale stačí aj txt súbor. Stačí, keď do neho zadáte dáta v rovnakom formáte ako som spomínal u PHP a updater nasmerujete na file.txt.

Tým by mal byť updater funkčná (samozřejmně za predpokladu, že súbory, na ktoré updater odkážete existujú.)

Varujem všetkých, updater nemusí byť blbuvzdorný vo všetkých smeroch. Možno sa niekde môže objaviť nejaká tá neošetrená výnimka. Ak by ste niečo objavili, prosím napíšte, ja ich opravím ;)


Galéria


 

Stiahnuť

Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkami

Stiahnuté 634x (15.53 kB)

 

Program pre vás napísal Pelpet
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
Autor se věnuje (web)designu a tvorbě softwaru pro průmyslové využití
Aktivity