document.write('\
<div class="poshcode code posh">\
<style type="text/css">\
');
document.write("/**\
 * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann\
 * (http://qbnz.com/highlighter/ and http://geshi.org/)\
 */\
.posh .de1, .posh .de2 {font: normal normal 1em/1.2em Consolas, 'Bitstream Vera Sans Mono', 'Courier New', monospace; margin:0; padding:0; background:none; vertical-align:top;}\
.posh  {font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', monospace;}\
.posh .imp {font-weight: bold; color: red;}\
.posh li, .posh .li1 {background: #ffffff;}\
.posh .ln {width:1px;text-align:right;margin:0;padding:0 2px;vertical-align:top;}\
.posh .li2 {background: #eeeeee;}\
.posh .kw1 {color: #666699; font-weight: bold;}\
.posh .kw2 {color: #333399; font-weight: bold; font-style: italic;}\
.posh .kw3 {color: #003366; font-weight: bold;}\
.posh .kw4 {color: #660033;}\
.posh .co1 {color: #666666; font-style: italic;}\
.posh .coMULTI {color: #666666; font-style: italic;}\
.posh .es0 {color: #000099; font-weight: bold;}\
.posh .br0 {color: #333;}\
.posh .sy0 {color: #66cc66;}\
.posh .st0 {color: #009900;}\
.posh .nu0 {color: #cc66cc;}\
.posh .me1 {color: #003366;}\
.posh .me2 {color: #003366;}\
.posh .re0 {color: #0066cc; font-style: italic;}\
.posh .re1 {font-style: normal;}\
.posh .re2 {color: #000066;}\
.posh .re3 {color: #660033; font-weight: bold;}\
.posh .re4 {color: #003366; font-weight: bold;}\
.posh span.xtra { display:block; }\
");
document.write(".posh ol {float:left; margin: 0px !important; padding: 0px; min-width:100% !important; list-style-position: inside;}\
.posh li.li2, .posh li.li1 {list-style-type:decimal-leading-zero; white-space:nowrap; padding:0 1em 0 0.5em;}\
.posh li {color: #ccc;}\
.posh li div {color: #000; display: inline;}\
.syntax {background:none repeat scroll 0 0 #eee; border:0.5em solid #ccc;}\
.syntax .posh {overflow: auto;}\
.syntax .poshcredit {\
background-color:#eaeaea; color:#666;\
padding:0.5em 1em; clear:both;\
font-size:85%;\
}");
document.write("\n</style>");
document.write('<div class="syntax"><div class="posh" style="font-family: Consolas, \'Bitstream Vera Sans Mono\', \'Courier New\', monospace;"><ol><li class="li1"><div class="de1"><span class="co1">## DekiWiki Module -note this is a v2 module, but I think you can dot-source in v1 if you remove the last line ;)</span></div></li>\
<li class="li2"><div class="de2"><span class="co1">####################################################################################################</span></div></li>\
<li class="li1"><div class="de1"><span class="co1">## The first of many script cmdlets for working with DekiWiki, based on their REST api sdk &quot;Dream&quot;</span></div></li>\
<li class="li2"><div class="de2"><span class="co1">## You need log4net.dll mindtouch.core.dll mindtouch.dream.dll and SgmlReaderDll.dll from the SDK</span></div></li>\
<li class="li1"><div class="de1"><span class="co1">## Download DREAM from http://sourceforge.net/project/showfiles.php?group_id=173074 </span></div></li>\
<li class="li2"><div class="de2"><span class="co1">## Unpack it, and you can find these dlls in the &quot;dist&quot; folder.</span></div></li>\
<li class="li1"><div class="de1"><span class="co1">####################################################################################################</span></div></li>\
<li class="li2"><div class="de2"><span class="co1">## More details to come with the next version. Sorry, it\'s time for bed ;)</span></div></li>\
<li class="li1"><div class="de1"><span class="co1">## History:</span></div></li>\
<li class="li2"><div class="de2"><span class="co1">## v 1.0 Set-DekiCredential, Get-DekiContent, Set-DekiContent, New-DekiContent, Get-DekiFile</span></div></li>\
<li class="li1"><div class="de1"><span class="co1">## </span></div></li>\
<li class="li2"><div class="de2">&nbsp;</div></li>\
<li class="li1"><div class="de1"><span class="re4"><span class="br0">&#91;</span>Reflection.<span class="me1">Assembly</span><span class="br0">&#93;</span></span>::<span class="me2">LoadFile</span><span class="br0">&#40;</span> <span class="st0">&quot;$PSScriptRoot\\mindtouch.dream.dll&quot;</span> <span class="br0">&#41;</span></div></li>\
<li class="li2"><div class="de2">&nbsp;</div></li>\
<li class="li1"><div class="de1"><span class="re3">$url</span> <span class="sy0">=</span> <span class="st0">&quot;http://powershell.wik.is&quot;</span> <span class="co1"># </span></div></li>\
<li class="li2"><div class="de2"><span class="re3">$api</span> <span class="sy0">=</span> <span class="st0">&quot;$url/@api/deki&quot;</span></div></li>\
<li class="li1"><div class="de1"><span class="re3">$plug</span> <span class="sy0">=</span> <span class="re4"><span class="br0">&#91;</span>MindTouch.<span class="me1">Dream</span>.<span class="me1">Plug</span><span class="br0">&#93;</span></span>::<span class="me2">New</span><span class="br0">&#40;</span><span class="re3">$api</span><span class="br0">&#41;</span>; &nbsp;</div></li>\
<li class="li2"><div class="de2"><span class="re3">$cred</span> <span class="sy0">=</span> <span class="re3">$null</span></div></li>\
<li class="li1"><div class="de1">&nbsp;</div></li>\
<li class="li2"><div class="de2"><span class="kw1">function</span> <span class="re0">Set-<span class="re1">DekiCredential</span></span> <span class="br0">&#123;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="kw1">param</span><span class="br0">&#40;</span><span class="re3">$Credential</span><span class="sy0">=</span>$<span class="br0">&#40;</span><span class="re0">Get-<span class="re1">Credential</span></span><span class="br0">&#41;</span><span class="br0">&#41;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="re3">$global</span>:cred <span class="sy0">=</span> <span class="re3">$Credential</span></div></li>\
<li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li>\
<li class="li2"><div class="de2">&nbsp;</div></li>\
<li class="li1"><div class="de1"><span class="kw1">function</span> <span class="re0">Get-<span class="re1">DekiCredential</span></span> <span class="br0">&#123;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="kw1">if</span><span class="br0">&#40;</span><span class="sy0">!</span><span class="re3">$global</span>:cred<span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="re0">Set-<span class="re1">DekiCredential</span></span> $<span class="br0">&#40;</span><span class="re0">Get-<span class="re1">Credential</span></span><span class="br0">&#41;</span> <span class="br0">&#125;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="kw1">return</span> <span class="re3">$global</span>:cred.<span class="me1">GetNetworkCredential</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div></li>\
<li class="li2"><div class="de2"><span class="br0">&#125;</span></div></li>\
<li class="li1"><div class="de1">&nbsp;</div></li>\
<li class="li2"><div class="de2">&nbsp;</div></li>\
<li class="li1"><div class="de1"><span class="re3">$DreamText</span> <span class="sy0">=</span> <span class="re4"><span class="br0">&#91;</span>MindTouch.<span class="me1">Dream</span>.<span class="me1">MimeType</span><span class="br0">&#93;</span></span>::<span class="me2">TEXT</span></div></li>\
<li class="li2"><div class="de2"><span class="re3">$DreamXml</span> &nbsp;<span class="sy0">=</span> <span class="re4"><span class="br0">&#91;</span>MindTouch.<span class="me1">Dream</span>.<span class="me1">MimeType</span><span class="br0">&#93;</span></span>::<span class="kw3">XML</span></div></li>\
<li class="li1"><div class="de1"><span class="re3">$DreamHtml</span> &nbsp;<span class="sy0">=</span> <span class="re4"><span class="br0">&#91;</span>MindTouch.<span class="me1">Dream</span>.<span class="me1">MimeType</span><span class="br0">&#93;</span></span>::<span class="me2">HTML</span></div></li>\
<li class="li2"><div class="de2"><span class="kw1">function</span> <span class="re0">Get-<span class="re1">DekiContent</span></span> <span class="br0">&#123;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="kw1">param</span><span class="br0">&#40;</span> <span class="re3">$pageName</span> <span class="sy0">=</span> <span class="st0">&quot;Test_Page&quot;</span> <span class="br0">&#41;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="re3">$pageName</span> <span class="sy0">=</span> <span class="re4"><span class="br0">&#91;</span><span class="kw3">System</span>.<span class="me1">Web</span>.<span class="me1">HttpUtility</span><span class="br0">&#93;</span></span>::<span class="me2">UrlEncode</span><span class="br0">&#40;</span> <span class="re4"><span class="br0">&#91;</span><span class="kw3">System</span>.<span class="me1">Web</span>.<span class="me1">HttpUtility</span><span class="br0">&#93;</span></span>::<span class="me2">UrlEncode</span><span class="br0">&#40;</span> <span class="re3">$pageName</span> <span class="br0">&#41;</span> <span class="br0">&#41;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;</div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="re3">$plug</span>.<span class="me1">At</span><span class="br0">&#40;</span><span class="st0">&quot;pages&quot;</span>, <span class="st0">&quot;=$pageName&quot;</span>, <span class="st0">&quot;contents&quot;</span><span class="br0">&#41;</span>.<span class="me1">With</span><span class="br0">&#40;</span><span class="st0">&quot;mode&quot;</span>, <span class="st0">&quot;view&quot;</span><span class="br0">&#41;</span>.<span class="me1">Get</span><span class="br0">&#40;</span><span class="br0">&#41;</span>.<span class="me1">AsDocument</span><span class="br0">&#40;</span><span class="br0">&#41;</span>.<span class="me1">AsXmlNode</span></div></li>\
<li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li>\
<li class="li2"><div class="de2">&nbsp;</div></li>\
<li class="li1"><div class="de1"><span class="co1"># Get-DekiFile will LIST all files if called with just a PageName</span></div></li>\
<li class="li2"><div class="de2"><span class="co1"># Otherwise, fileName can be a single fileName, or wildcards</span></div></li>\
<li class="li1"><div class="de1"><span class="kw1">function</span> <span class="re0">Get-<span class="re1">DekiFile</span></span> <span class="br0">&#123;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="kw1">param</span><span class="br0">&#40;</span> <span class="re3">$pageName</span> <span class="sy0">=</span> <span class="st0">&quot;Test_Page&quot;</span>, <span class="re4"><span class="br0">&#91;</span><span class="kw3">string</span><span class="br0">&#91;</span><span class="br0">&#93;</span><span class="br0">&#93;</span></span><span class="re3">$fileNames</span>, <span class="re3">$destinationFolder</span> <span class="br0">&#41;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="re3">$encodedPageName</span> <span class="sy0">=</span> Encode<span class="sy0">-</span>Twice <span class="re3">$pageName</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;</div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="re3">$files</span> <span class="sy0">=</span> <span class="re3">$plug</span>.<span class="me1">At</span><span class="br0">&#40;</span><span class="st0">&quot;pages&quot;</span>, <span class="st0">&quot;=$encodedPageName&quot;</span>, <span class="st0">&quot;files&quot;</span><span class="br0">&#41;</span>.<span class="me1">Get</span><span class="br0">&#40;</span><span class="br0">&#41;</span>.<span class="me1">AsDocument</span><span class="br0">&#40;</span><span class="br0">&#41;</span>.<span class="me1">AsXmlNode</span>.<span class="me1">file</span></div></li>\
<li class="li2"><div class="de2">&nbsp;</div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="kw1">if</span><span class="br0">&#40;</span><span class="sy0">!</span><span class="re3">$fileNames</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="re3">$files</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span> &nbsp; </div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; <span class="kw1">foreach</span><span class="br0">&#40;</span><span class="re3">$fileName</span> <span class="kw1">in</span> <span class="re3">$fileNames</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">foreach</span><span class="br0">&#40;</span><span class="re3">$file</span> <span class="kw1">in</span> $<span class="br0">&#40;</span><span class="re3">$files</span> <span class="sy0">|</span> <span class="kw4">where</span> <span class="br0">&#123;</span> <span class="re3">$_</span>.<span class="me1">filename</span> <span class="re2">-like</span> <span class="re3">$fileName</span> <span class="br0">&#125;</span> <span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re3">$encodedFileName</span> <span class="sy0">=</span> <span class="re4"><span class="br0">&#91;</span><span class="kw3">System</span>.<span class="me1">Web</span>.<span class="me1">HttpUtility</span><span class="br0">&#93;</span></span>::<span class="me2">UrlEncode</span><span class="br0">&#40;</span> <span class="re4"><span class="br0">&#91;</span><span class="kw3">System</span>.<span class="me1">Web</span>.<span class="me1">HttpUtility</span><span class="br0">&#93;</span></span>::<span class="me2">UrlEncode</span><span class="br0">&#40;</span> $<span class="br0">&#40;</span><span class="re3">$file</span>.<span class="me1">filename</span><span class="br0">&#41;</span> <span class="br0">&#41;</span> <span class="br0">&#41;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">Write-<span class="re1">Verbose</span></span> <span class="st0">&quot;Fetching $($file.filename) from $pageName&quot;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1"># Note that you can resize, if it\'s a picture: .With(&quot;size&quot;, &quot;bestfit&quot;).With(&quot;width&quot;, 100).With(&quot;height&quot;, 100).Get(); &nbsp;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re3">$message</span> <span class="sy0">=</span> <span class="re3">$plug</span>.<span class="me1">At</span><span class="br0">&#40;</span><span class="st0">&quot;pages&quot;</span>, <span class="st0">&quot;=$encodedPageName&quot;</span>, <span class="st0">&quot;files&quot;</span>, <span class="st0">&quot;=$encodedFileName&quot;</span><span class="br0">&#41;</span>.<span class="me1">Get</span><span class="br0">&#40;</span><span class="br0">&#41;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re3">$fullName</span> <span class="sy0">=</span> $<span class="br0">&#40;</span><span class="re0">Get-<span class="re1">FileName</span></span> <span class="re3">$file</span>.<span class="me1">filename</span> destinationFolder<span class="br0">&#41;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&amp;</span><span class="br0">&#123;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="re3">$writer</span> <span class="sy0">=</span> <span class="re0">new-<span class="re1">object</span></span> <span class="kw3">System</span>.<span class="me1">IO</span>.<span class="me1">FileStream</span> <span class="re3">$fullName</span>, <span class="st0">&quot;Create&quot;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="re3">$bytes</span> <span class="sy0">=</span> <span class="re3">$message</span>.<span class="me1">AsBytes</span><span class="br0">&#40;</span><span class="br0">&#41;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="re3">$writer</span>.<span class="kw4">Write</span><span class="br0">&#40;</span><span class="re3">$bytes</span>,<span class="nu0">0</span>,<span class="re3">$bytes</span>.<span class="me1">Length</span><span class="br0">&#41;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">trap</span> <span class="br0">&#123;</span> </div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re3">$writer</span>.<span class="me1">Flush</span><span class="br0">&#40;</span><span class="br0">&#41;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re3">$writer</span>.<span class="me1">Close</span><span class="br0">&#40;</span><span class="br0">&#41;</span> </div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="re3">$writer</span>.<span class="me1">Flush</span><span class="br0">&#40;</span><span class="br0">&#41;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="re3">$writer</span>.<span class="me1">Close</span><span class="br0">&#40;</span><span class="br0">&#41;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">write-<span class="re1">output</span></span> <span class="br0">&#40;</span><span class="re0">get-<span class="re1">item</span></span> <span class="re3">$fullName</span><span class="br0">&#41;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="br0">&#125;</span></div></li>\
<li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li>\
<li class="li2"><div class="de2">&nbsp;</div></li>\
<li class="li1"><div class="de1"><span class="kw1">function</span> <span class="re0">Set-<span class="re1">DekiContent</span></span> <span class="br0">&#123;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="kw1">param</span><span class="br0">&#40;</span> <span class="re3">$pageName</span> <span class="sy0">=</span> <span class="st0">&quot;Test_Page&quot;</span>, <span class="re3">$content</span> <span class="sy0">=</span> <span class="br0">&#40;</span><span class="kw1">throw</span> <span class="st0">&quot;You must specify page contents&quot;</span><span class="br0">&#41;</span>, <span class="re3">$section</span> <span class="br0">&#41;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="re3">$encodedPageName</span> <span class="sy0">=</span> Encode<span class="sy0">-</span>Twice <span class="re3">$pageName</span> </div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="co1"># you have to pre-authenticate ...</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="re3">$null</span> <span class="sy0">=</span> <span class="re3">$plug</span>.<span class="me1">At</span><span class="br0">&#40;</span><span class="st0">&quot;users&quot;</span>, <span class="st0">&quot;authenticate&quot;</span><span class="br0">&#41;</span>.<span class="me1">WithCredentials</span><span class="br0">&#40;</span> $<span class="br0">&#40;</span><span class="re0">Get-<span class="re1">DekiCredential</span></span><span class="br0">&#41;</span> <span class="br0">&#41;</span>.<span class="me1">Get</span><span class="br0">&#40;</span><span class="br0">&#41;</span></div></li>\
<li class="li2"><div class="de2">&nbsp;</div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="kw1">if</span><span class="br0">&#40;</span> <span class="re3">$content</span> <span class="re2">-is</span> <span class="re4"><span class="br0">&#91;</span><span class="kw3">System</span>.<span class="kw3">Xml</span>.<span class="me1">XmlDocument</span><span class="br0">&#93;</span></span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; <span class="re3">$msg</span> <span class="sy0">=</span> <span class="re4"><span class="br0">&#91;</span>MindTouch.<span class="me1">Dream</span>.<span class="me1">DreamMessage</span><span class="br0">&#93;</span></span>::<span class="me2">Ok</span><span class="br0">&#40;</span> <span class="re3">$content</span> <span class="br0">&#41;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span> </div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; <span class="re3">$msg</span> <span class="sy0">=</span> <span class="re4"><span class="br0">&#91;</span>MindTouch.<span class="me1">Dream</span>.<span class="me1">DreamMessage</span><span class="br0">&#93;</span></span>::<span class="me2">Ok</span><span class="br0">&#40;</span> <span class="re3">$DreamText</span>, <span class="re3">$content</span> <span class="br0">&#41;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="br0">&#125;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="re0">Write-<span class="re1">Verbose</span></span> <span class="st0">&quot;Updating $pageName at $(UtcNow &quot;</span>yyyyMMddhhmmss<span class="st0">&quot;): $($msg.ContentLength) bytes&quot;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="re0">Write-<span class="re1">Verbose</span></span> <span class="st0">&quot;$($msg.AsText())&quot;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="re3">$partway</span> <span class="sy0">=</span> <span class="re3">$plug</span>.<span class="me1">At</span><span class="br0">&#40;</span><span class="st0">&quot;pages&quot;</span>, <span class="st0">&quot;=$encodedPageName&quot;</span>, <span class="st0">&quot;contents&quot;</span><span class="br0">&#41;</span>.<span class="me1">With</span><span class="br0">&#40;</span><span class="st0">&quot;edittime&quot;</span>,$<span class="br0">&#40;</span>UtcNow <span class="st0">&quot;yyyyMMddhhmmss&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="kw1">if</span><span class="br0">&#40;</span><span class="re3">$section</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; <span class="re3">$result</span> <span class="sy0">=</span> <span class="re3">$partway</span>.<span class="me1">With</span><span class="br0">&#40;</span><span class="st0">&quot;Section&quot;</span>,<span class="nu0">0</span><span class="br0">&#41;</span>.<span class="me1">Post</span><span class="br0">&#40;</span> <span class="re3">$msg</span> <span class="br0">&#41;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; <span class="re3">$result</span> <span class="sy0">=</span> <span class="re3">$partway</span>.<span class="me1">Post</span><span class="br0">&#40;</span> <span class="re3">$msg</span> <span class="br0">&#41;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="br0">&#125;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="kw1">if</span><span class="br0">&#40;</span><span class="re3">$result</span>.<span class="me1">IsSuccessful</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="st0">&quot;$url/$pageName&quot;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="re3">$result</span>.<span class="me1">Response</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="br0">&#125;</span></div></li>\
<li class="li1"><div class="de1">&nbsp;</div></li>\
<li class="li2"><div class="de2">&nbsp;</div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="kw1">trap</span> <span class="re4"><span class="br0">&#91;</span>MindTouch.<span class="me1">Dream</span>.<span class="me1">DreamResponseException</span><span class="br0">&#93;</span></span> <span class="br0">&#123;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; <span class="re0">Write-<span class="re1">Error</span></span> <span class="st0">&quot;TRAPPED DreamResponseException<span class="es0">`n</span><span class="es0">`n</span>$($_.Exception.Response | Out-String)<span class="es0">`n</span><span class="es0">`n</span><span class="es0">`n</span>$($_.Exception.Response.Headers | Out-String)&quot;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw1">break</span>;</div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="br0">&#125;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;</div></li>\
<li class="li2"><div class="de2"><span class="br0">&#125;</span></div></li>\
<li class="li1"><div class="de1">&nbsp;</div></li>\
<li class="li2"><div class="de2">&nbsp;</div></li>\
<li class="li1"><div class="de1"><span class="kw1">function</span> <span class="re0">New-<span class="re1">DekiContent</span></span> <span class="br0">&#123;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="kw1">param</span><span class="br0">&#40;</span> <span class="re3">$pageName</span> <span class="sy0">=</span> <span class="st0">&quot;Test_Page&quot;</span>, <span class="re3">$content</span> <span class="sy0">=</span> <span class="br0">&#40;</span><span class="kw1">throw</span> <span class="st0">&quot;You must specify page contents&quot;</span><span class="br0">&#41;</span> <span class="br0">&#41;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="re3">$encodedPageName</span> <span class="sy0">=</span> Encode<span class="sy0">-</span>Twice <span class="re3">$pageName</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="co1"># you have to pre-authenticate ...</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="re3">$null</span> <span class="sy0">=</span> <span class="re3">$plug</span>.<span class="me1">At</span><span class="br0">&#40;</span><span class="st0">&quot;users&quot;</span>, <span class="st0">&quot;authenticate&quot;</span><span class="br0">&#41;</span>.<span class="me1">WithCredentials</span><span class="br0">&#40;</span> $<span class="br0">&#40;</span><span class="re0">Get-<span class="re1">DekiCredential</span></span><span class="br0">&#41;</span> <span class="br0">&#41;</span>.<span class="me1">Get</span><span class="br0">&#40;</span><span class="br0">&#41;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;</div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="kw1">if</span><span class="br0">&#40;</span> <span class="re3">$content</span> <span class="re2">-is</span> <span class="re4"><span class="br0">&#91;</span><span class="kw3">System</span>.<span class="kw3">Xml</span>.<span class="me1">XmlDocument</span><span class="br0">&#93;</span></span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; <span class="re3">$msg</span> <span class="sy0">=</span> <span class="re4"><span class="br0">&#91;</span>MindTouch.<span class="me1">Dream</span>.<span class="me1">DreamMessage</span><span class="br0">&#93;</span></span>::<span class="me2">Ok</span><span class="br0">&#40;</span> <span class="re3">$content</span> <span class="br0">&#41;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span> </div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; <span class="re3">$msg</span> <span class="sy0">=</span> <span class="re4"><span class="br0">&#91;</span>MindTouch.<span class="me1">Dream</span>.<span class="me1">DreamMessage</span><span class="br0">&#93;</span></span>::<span class="me2">Ok</span><span class="br0">&#40;</span> <span class="re3">$DreamText</span>, <span class="re3">$content</span> <span class="br0">&#41;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="br0">&#125;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="re0">Write-<span class="re1">Verbose</span></span> <span class="st0">&quot;Updating $pageName at $(UtcNow &quot;</span>yyyyMMddhhmmss<span class="st0">&quot;): $($msg.ContentLength) bytes&quot;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="re0">Write-<span class="re1">Verbose</span></span> <span class="st0">&quot;$($msg.AsText())&quot;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;</div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="re3">$result</span> <span class="sy0">=</span> <span class="re3">$plug</span>.<span class="me1">At</span><span class="br0">&#40;</span><span class="st0">&quot;pages&quot;</span>, <span class="st0">&quot;=$encodedPageName&quot;</span>, <span class="st0">&quot;contents&quot;</span><span class="br0">&#41;</span>.<span class="me1">With</span><span class="br0">&#40;</span><span class="st0">&quot;abort&quot;</span>, <span class="st0">&quot;exists&quot;</span><span class="br0">&#41;</span>.<span class="me1">With</span><span class="br0">&#40;</span><span class="st0">&quot;edittime&quot;</span>,$<span class="br0">&#40;</span>UtcNow <span class="st0">&quot;yyyyMMddhhmmss&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>.<span class="me1">Post</span><span class="br0">&#40;</span> <span class="re3">$msg</span> <span class="br0">&#41;</span> &nbsp;</div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="kw1">trap</span> <span class="re4"><span class="br0">&#91;</span>MindTouch.<span class="me1">Dream</span>.<span class="me1">DreamResponseException</span><span class="br0">&#93;</span></span> <span class="br0">&#123;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; <span class="re0">Write-<span class="re1">Error</span></span> <span class="st0">&quot;TRAPPED DreamResponseException<span class="es0">`n</span><span class="es0">`n</span>$($_.Exception.Response | Out-String)<span class="es0">`n</span><span class="es0">`n</span><span class="es0">`n</span>$($_.Exception.Response.Headers | Out-String)&quot;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="br0">&#125;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="kw1">if</span><span class="br0">&#40;</span><span class="re3">$result</span>.<span class="me1">IsSuccessful</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="st0">&quot;$url/$pageName&quot;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="re3">$result</span>.<span class="me1">Response</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="br0">&#125;</span></div></li>\
<li class="li2"><div class="de2"><span class="br0">&#125;</span></div></li>\
<li class="li1"><div class="de1">&nbsp;</div></li>\
<li class="li2"><div class="de2"><span class="co1">## Utility Functions </span></div></li>\
<li class="li1"><div class="de1"><span class="kw1">function</span> UtcNow <span class="br0">&#123;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="kw1">Param</span><span class="br0">&#40;</span><span class="re3">$Format</span><span class="sy0">=</span><span class="st0">&quot;&quot;</span><span class="br0">&#41;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="re4"><span class="br0">&#91;</span>DateTime<span class="br0">&#93;</span></span>::<span class="me2">Now</span>.<span class="me1">ToUniversalTime</span><span class="br0">&#40;</span><span class="br0">&#41;</span>.<span class="me1">ToString</span><span class="br0">&#40;</span><span class="re3">$Format</span><span class="br0">&#41;</span></div></li>\
<li class="li2"><div class="de2"><span class="br0">&#125;</span></div></li>\
<li class="li1"><div class="de1"><span class="kw1">function</span> Encode<span class="sy0">-</span>Twice <span class="br0">&#123;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="kw1">param</span><span class="br0">&#40;</span><span class="re4"><span class="br0">&#91;</span><span class="kw3">string</span><span class="br0">&#93;</span></span><span class="re3">$text</span><span class="br0">&#41;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="kw1">return</span> <span class="re4"><span class="br0">&#91;</span><span class="kw3">System</span>.<span class="me1">Web</span>.<span class="me1">HttpUtility</span><span class="br0">&#93;</span></span>::<span class="me2">UrlEncode</span><span class="br0">&#40;</span> <span class="re4"><span class="br0">&#91;</span><span class="kw3">System</span>.<span class="me1">Web</span>.<span class="me1">HttpUtility</span><span class="br0">&#93;</span></span>::<span class="me2">UrlEncode</span><span class="br0">&#40;</span> <span class="re3">$text</span> <span class="br0">&#41;</span> <span class="br0">&#41;</span></div></li>\
<li class="li2"><div class="de2"><span class="br0">&#125;</span></div></li>\
<li class="li1"><div class="de1">&nbsp;</div></li>\
<li class="li2"><div class="de2"><span class="kw1">function</span> <span class="re0">Get-<span class="re1">FileName</span></span> <span class="br0">&#123;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="kw1">param</span><span class="br0">&#40;</span><span class="re3">$fileName</span><span class="sy0">=</span>$<span class="br0">&#40;</span><span class="re4"><span class="br0">&#91;</span>IO.<span class="me1">Path</span><span class="br0">&#93;</span></span>::<span class="me2">GetRandomFileName</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>, <span class="re3">$path</span><span class="br0">&#41;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;</div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="re3">$fileName</span> <span class="sy0">=</span> <span class="re3">$fileName</span>.<span class="me1">trim</span><span class="br0">&#40;</span><span class="st0">&quot;\\/&quot;</span><span class="st0">&quot;\'&quot;</span><span class="br0">&#41;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="kw1">if</span><span class="br0">&#40;</span><span class="re3">$path</span> <span class="re2">-and</span> <span class="br0">&#40;</span><span class="re0">Test-<span class="re1">Path</span></span> <span class="re3">$path</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; <span class="re3">$fileName</span> <span class="sy0">=</span> <span class="re0">Split-<span class="re1">Path</span></span> <span class="re3">$fileName</span> <span class="re2">-leaf</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; <span class="re0">Join-<span class="re1">Path</span></span> <span class="re3">$path</span> <span class="re3">$fileName</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="br0">&#125;</span> <span class="kw1">elseif</span><span class="br0">&#40;</span><span class="br0">&#40;</span><span class="re0">Split-<span class="re1">Path</span></span> <span class="re3">$fileName</span><span class="br0">&#41;</span> <span class="re2">-and</span> <span class="br0">&#40;</span><span class="re0">Test-<span class="re1">Path</span></span> <span class="br0">&#40;</span><span class="re0">Split-<span class="re1">Path</span></span> <span class="re3">$fileName</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="re3">$fileName</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; <span class="re0">Join-<span class="re1">Path</span></span> <span class="br0">&#40;</span><span class="re0">Convert-<span class="re1">Path</span></span> <span class="br0">&#40;</span><span class="re0">Get-<span class="re1">Location</span></span> <span class="re2">-PSProvider</span> <span class="st0">&quot;FileSystem&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#40;</span><span class="re0">Split-<span class="re1">Path</span></span> <span class="re3">$fileName</span> <span class="re2">-Leaf</span><span class="br0">&#41;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="br0">&#125;</span></div></li>\
<li class="li2"><div class="de2"><span class="br0">&#125;</span></div></li>\
<li class="li1"><div class="de1">&nbsp;</div></li>\
<li class="li2"><div class="de2"><span class="re0">Export-<span class="re1">ModuleMember</span></span> <span class="re0">Set-<span class="re1">DekiCredential</span></span>, <span class="re0">Get-<span class="re1">DekiContent</span></span>, <span class="re0">Set-<span class="re1">DekiContent</span></span>, <span class="re0">New-<span class="re1">DekiContent</span></span>, <span class="re0">Get-<span class="re1">DekiFile</span></span></div></li>\
</ol></div>');document.write('<div class="poshcredit"><a style="float:right;" href="http://poshcode.org/get/671" title="download file">download</a><a href="http://poshcode.org/?show=671" title="full view">This Script</a> brought to you by <a href="http://PoshCode.org">PoshCode</a>\
</div>\
</div>\
</div>');
