<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="/stylesheets/rss.css" type="text/css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>APIDoc: Nasze pierwsze aplikacje gronowego API!</title>
    <link>http://apidoc.grono.net/articles/2007/08/29/windowsowe-aplikacje</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description></description>
    <item>
      <title>Nasze pierwsze aplikacje gronowego API!</title>
      <description>&lt;p&gt;Stworzyli&#347;my dwie aplikacje pod nowe Gronowe &lt;span class="caps"&gt;API&lt;/span&gt;, kt&#243;re opublikujemy tu ju&#380; nied&#322;ugo. Najbardziej interesuj&#261;cy w nich jest fakt, &#380;e pomimo naszego (gronowego dzia&#322;u R&amp;#38;D) pogl&#261;du na temat tego systemu operacyjnego, obie dzia&#322;aj&#261; pod Windowsem.&lt;/p&gt;


	&lt;p&gt;Maj&#261; oko&#322;o 20 linijek kodu i napisane s&#261; w j&#281;zykach skryptowych. Wykonuj&#261; u&#380;yteczne zadanie kosztem niewielkiej przestrzeni na dysku. Powsta&#322;y jako przyk&#322;ady do nowego &lt;span class="caps"&gt;API&lt;/span&gt;.&lt;/p&gt;


	&lt;h2&gt;szybki uploader do avatar&#243;w: &lt;code&gt;avatar.cmd&lt;/code&gt;&lt;/h2&gt;


&lt;pre&gt;&lt;code&gt;
setlocal
set CURL="C:/Documents and Settings/kerni/Pulpit/curl-7.16.4/curl.exe" 
set COOKIEFILE=%TMP%/avacook.tmp
set LOGIN=__TU__MOJ_LOGIN__
set PASSWORD=__TU_MOJE_HASLO__
set LOGINARGS="login=%LOGIN%&amp;#38;password=%PASSWORD%&amp;#38;client=avatar_batch&amp;#38;cliver=1.0&amp;#38;lang=pl"^

%CURL% -v -c %COOKIEFILE% http://api.grono.net/pub/apilogin/ -d %LOGINARGS%
if not errorlevel 0 goto login_err

%CURL% -v -0 -b %COOKIEFILE% -Favatar=@%1 http://api.grono.net/api/avatar/%LOGIN%/
if not errorlevel 0 goto upload_err

goto end
:login_err
echo Bledne parametry logowania
goto end
:upload_err
echo Blad podczas uploadu
goto end

:end
endlocal
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;Wymaga CURLa, ale sprawuje si&#281; doskonale. Wykorzystuje technik&#281; Drag&amp;#38;Drop do uploadowania plik&#243;w na grono. Dzia&#322;a na ka&#380;dym relatywnie &#347;wie&#380;ym windowsie, nie potrzebuje instalatora ani wpis&#243;w w rejestrze.&lt;/p&gt;


	&lt;h2&gt;natywny blimp: &lt;code&gt;blimp.vbs&lt;/code&gt;&lt;/h2&gt;


&lt;pre&gt;&lt;code&gt;
' konfiguracja
LOGIN = "mojlogin" 
PASSWORD = "mojehaslo" 

' tworzymy xmlhttp
Set http = CreateObject("Microsoft.XmlHttp")
'logujemy sie na API
http.open "POST", "http://api.grono.net/pub/apilogin/", 0
' tak sie robi POST w MSXML
http.setRequestHeader "Content-Type", "application/x-www-form-urlencoded" 
http.send ("login=" + LOGIN + "&amp;#38;password=" + PASSWORD + "&amp;#38;client=avatar_vbs&amp;#38;cliver=0.1&amp;#38;lang=pl")

' sciagamy starego blimpa
http.open "GET", "http://api.grono.net/api/user/reklama/status/", 0
http.send
text = http.responseText

' zapytamy usera o nowego blimpa, podsuwajac mu stary
newtext = InputBox("Wpisz blimpa!", "BLIMP", text)

http.open "POST", "http://api.grono.net/api/user/reklama/status/", 0
http.setRequestHeader "Content-Type", "application/x-www-form-urlencoded" 
' send sie nam wywali bo POST zwroci HTTP 204 a nie 200
' czego MSXML juz nie kuma :)
On Error Resume Next
' wysylamy nowego blimpa
http.send ("status=" + newtext)
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;Brak wymaga&#324; i prostota u&#380;ytkowania czyni&#261; go doskona&#322;ym przyk&#322;adem. Dla wygody u&#380;ytkownika pobiera starego blimpa i podsuwa go do zmodyfikowania. Wygl&#261;dem integruje si&#281; z reszt&#261; systemu operacyjnego.&lt;/p&gt;


	&lt;h2&gt;dlaczego?&lt;/h2&gt;


	&lt;p&gt;Stworzenie ka&#380;dej z nich zaj&#281;&#322;o ok. 25 minut, z czego 20 na szukanie dokumentacji do &lt;span class="caps"&gt;XMLHTTP&lt;/span&gt; lub przypominanie sobie kontroli przep&#322;ywu w plikach wsadowych. Celem by&#322;o te&#380; od&#347;wie&#380;enie umiej&#281;tno&#347;ci pisania w obskurnych j&#281;zykach i &#263;wiczenie cierpliwo&#347;ci w tworzeniu oprogramowania bez dedykowanych narz&#281;dzi.&lt;/p&gt;


	&lt;h2&gt;linki&lt;/h2&gt;


	&lt;p&gt;Oba programy znajdziecie &lt;a href="http://apidoc.grono.net/trac/wiki/Przyk&#322;ady"&gt;tutaj&lt;/a&gt;. W przysz&#322;o&#347;ci znajdzie si&#281; ich tam wi&#281;cej. Istnieje te&#380; &lt;a href="http://apidoc.grono.net/trac/browser/examples/"&gt;repozytorium&lt;/a&gt;, sk&#261;d mo&#380;na &#322;atwo pobiera&#263; i przegl&#261;da&#263; dost&#281;pne zasoby &lt;span class="caps"&gt;API&lt;/span&gt;. W planach jest umo&#380;liwienie dost&#281;pu do niego przez anonimowe svn.&lt;/p&gt;</description>
      <pubDate>Wed, 29 Aug 2007 16:53:00 +0200</pubDate>
      <guid isPermaLink="false">urn:uuid:16ee88c6-1d10-4cae-9d86-ea510171ff75</guid>
      <author>k3rni</author>
      <link>http://apidoc.grono.net/articles/2007/08/29/windowsowe-aplikacje</link>
      <category>Blimp</category>
      <category>Avatar</category>
    </item>
    <item>
      <title>"Nasze pierwsze aplikacje gronowego API!" by Pit GM</title>
      <description>w jaki spos&#243;b odebra&#263;/ustawi&#263; blimpa w PHP?</description>
      <pubDate>Tue, 25 Sep 2007 22:30:23 +0200</pubDate>
      <guid isPermaLink="false">urn:uuid:e44f4a48-38df-4f1b-9f3f-5d6fbea8ba53</guid>
      <link>http://apidoc.grono.net/articles/2007/08/29/windowsowe-aplikacje#comment-48</link>
    </item>
    <item>
      <title>"Nasze pierwsze aplikacje gronowego API!" by k3rni</title>
      <description>w uploadera avatar&#243;w wkrad&#322; si&#281; feature: nie usuwa pliku z ciasteczkami po zako&#324;czeniu pracy. mo&#380;na to wykorzysta&#263; do podkradni&#281;cia komu&#347; sesji - inna sprawa &#380;e login i has&#322;o s&#261; zapisane jawnie w samym pliku.</description>
      <pubDate>Fri, 31 Aug 2007 00:12:04 +0200</pubDate>
      <guid isPermaLink="false">urn:uuid:b594666a-a2e1-4319-848e-1700a3bbfb66</guid>
      <link>http://apidoc.grono.net/articles/2007/08/29/windowsowe-aplikacje#comment-28</link>
    </item>
    <item>
      <title>"Nasze pierwsze aplikacje gronowego API!" by pulczynski</title>
      <description>Ten skrypt cmd jest arcyfinezyjny :)</description>
      <pubDate>Thu, 30 Aug 2007 11:36:24 +0200</pubDate>
      <guid isPermaLink="false">urn:uuid:46b464e8-a960-4379-972f-07b8232a48f4</guid>
      <link>http://apidoc.grono.net/articles/2007/08/29/windowsowe-aplikacje#comment-26</link>
    </item>
  </channel>
</rss>
