
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>sfufoet's blog &#187; Ubiquity</title>
	<atom:link href="http://blog.loland.net/tag/ubiquity/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.loland.net</link>
	<description>Geek Tips</description>
	<lastBuildDate>Mon, 30 Jan 2012 13:50:45 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>快速分享网页到 Twitter 的 ubiquity 命令</title>
		<link>http://blog.loland.net/196.et</link>
		<comments>http://blog.loland.net/196.et#comments</comments>
		<pubDate>Sun, 26 Jul 2009 02:00:53 +0000</pubDate>
		<dc:creator>sfufoet</dc:creator>
				<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[Ubiquity]]></category>

		<guid isPermaLink="false">http://blog.loland.net/196.et</guid>
		<description><![CDATA[把以前那个《用 Ubiquity 打造个 hellotxt》下的脚本修改了一下，同步已经没有意义了，封的封，挂的挂。
注意：此命令很可能不支持最新那个 0.5 版的 ubiquity。
命令参数：tw s 和 tw r。自己测试一下就知道啥东东了。需要更多参数请自行定义。
CmdUtils.CreateCommand({
&#160;&#160;&#160;&#160;&#160; name: "tw",
&#160;&#160;&#160;&#160;&#160; takes: {status: noun_arb_text},
&#160;&#160;&#160;&#160;&#160; homepage: "http://blog.loland.net/2008/09/28/58.et",
&#160;&#160;&#160;&#160;&#160; author: {name: "sfufoet", homepage: "http://blog.loland.net/"},
&#160;&#160;&#160;&#160;&#160; license: "MPL",
&#160;&#160;&#160; &#160;
&#160;&#160;&#160;&#160;&#160; preview: function(previewBlock, statusText, mods) {
&#160;&#160;&#160;&#160;&#160;&#160;&#160; var previewTemplate = '&#60;/div&#62;&#60;br/&#62;' +
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; "将要发布到 twitter 的内容如下: &#60;br/&#62;" +&#160;&#160;&#160;&#160; &#160;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; "&#60;b&#62;${status}&#60;/b&#62;&#60;br /&#62;&#60;br /&#62;" +
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; " 总字数为: &#60;b&#62;${chars}&#60;/b&#62;";
&#160;&#160;&#160;&#160;&#160;&#160;&#160; var truncateTemplate = "&#60;br /&#62;后面 &#60;b&#62;${truncate}&#60;/b&#62; [...]]]></description>
			<content:encoded><![CDATA[<p>把以前那个《<a href="http://blog.loland.net/58.et">用 Ubiquity 打造个 hellotxt</a>》下的脚本修改了一下，同步已经没有意义了，封的封，挂的挂。</p>
<p><strong>注意：</strong>此命令很可能不支持最新那个 0.5 版的 ubiquity。</p>
<p>命令参数：tw s 和 tw r。自己测试一下就知道啥东东了。需要更多参数请自行定义。</p>
<p>CmdUtils.CreateCommand({<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name: "tw",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; takes: {status: noun_arb_text},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; homepage: "http://blog.loland.net/2008/09/28/58.et",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; author: {name: "sfufoet", homepage: "http://blog.loland.net/"},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; license: "MPL",<br />
&nbsp;&nbsp;&nbsp; &nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; preview: function(previewBlock, statusText, mods) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var previewTemplate = '&lt;/div&gt;&lt;br/&gt;' +<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "将要发布到 twitter 的内容如下: &lt;br/&gt;" +&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "&lt;b&gt;${status}&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;" +<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; " 总字数为: &lt;b&gt;${chars}&lt;/b&gt;";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var truncateTemplate = "&lt;br /&gt;后面 &lt;b&gt;${truncate}&lt;/b&gt; " +<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "个字将予以删除!";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(statusText.text=="share" || statusText.text=="s"){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; statusText.text = context.focusedWindow.getSelection()<br />
&nbsp;&nbsp;&nbsp;&nbsp; + "分享：" + context.focusedWindow.document.title +" (" + context.focusedWindow.location + ")";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(statusText.text=="Reading" || statusText.text=="r"){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; statusText.text = context.focusedWindow.getSelection()<br />
&nbsp;&nbsp;&nbsp;&nbsp; + "Reading：" + context.focusedWindow.document.title +" (" + context.focusedWindow.location + ")";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var previewData = {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; status: statusText.text,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; chars: statusText.text.length<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; };<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var previewHTML = CmdUtils.renderTemplate(previewTemplate,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; previewData);<br />
&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(previewData.chars &gt; 140) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var truncateData = {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; truncate: previewData.chars - 140<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; };<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; previewHTML += CmdUtils.renderTemplate(truncateTemplate,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; truncateData);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jQuery(".emoticon").click(function(){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var mark= jQuery(this).attr("id");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert(mark);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; });<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; previewBlock.innerHTML = previewHTML;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; },<br />
&nbsp;&nbsp;&nbsp; &nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; execute: function(statusText) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(statusText.text.length &lt; 1) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; displayMessage("出错：内容不可空白");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; updateUrl = "https://twitter.com/statuses/update.json";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; updateParams = {<br />
&nbsp;&nbsp;&nbsp; 　　 source: "Twitter",<br />
&nbsp;&nbsp;&nbsp; 　　 status: statusText.text<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; };<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jQuery.ajax({<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; type: "POST",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; url: updateUrl,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; data: updateParams,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dataType: "json",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; error: function() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; displayMessage("Twitter：发布错误");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; },<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; success: function() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; displayMessage("Twitter：发布成功");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; });<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }); </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.loland.net/196.et/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>用 ubiquity 调用 Bit.ly 缩短网址</title>
		<link>http://blog.loland.net/189.et</link>
		<comments>http://blog.loland.net/189.et#comments</comments>
		<pubDate>Wed, 20 May 2009 15:28:41 +0000</pubDate>
		<dc:creator>sfufoet</dc:creator>
				<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[Ubiquity]]></category>

		<guid isPermaLink="false">http://blog.loland.net/189.et</guid>
		<description><![CDATA[很郁闷，过长的链接总是需要手工到 Bit.ly 缩短一下才能贴到 twitter。有了 Bit.ly Ubiquity Command Script，选中文字，按下 ubiquity 的快捷键，输入 bit.ly 回车，全自动替换到输入框。缩短后的网址还会发到剪贴板。
]]></description>
			<content:encoded><![CDATA[<p>很郁闷，过长的链接总是需要手工到 Bit.ly 缩短一下才能贴到 twitter。有了 <a href="http://mskadu.googlepages.com/bitly">Bit.ly Ubiquity Command Script</a>，选中文字，按下 <a href="http://labs.mozilla.com/projects/ubiquity/">ubiquity</a> 的快捷键，输入 bit.ly 回车，全自动替换到输入框。缩短后的网址还会发到剪贴板。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.loland.net/189.et/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>用 Ubiquity 发飞信</title>
		<link>http://blog.loland.net/185.et</link>
		<comments>http://blog.loland.net/185.et#comments</comments>
		<pubDate>Sat, 02 May 2009 04:51:33 +0000</pubDate>
		<dc:creator>sfufoet</dc:creator>
				<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Ubiquity]]></category>

		<guid isPermaLink="false">http://blog.loland.net/185.et</guid>
		<description><![CDATA[在我的推友里看到这篇 中国移动飞信 Fetion API 免费发短信的一些应用。文章里面有个 Ubiquity 命令，很简陋，而且还是新建标签式的。

输入在 Ubiquity 里输入 command-editor 或者打开 chrome://ubiquity/content/editor.html，在输入框的末尾输入以下命令。红色部分需要修改。
CmdUtils.CreateCommand({
&#160;&#160;name: "sms",
&#160;&#160;takes: {status: noun_arb_text},
&#160;&#160;homepage: "http://blog.loland.net/2008/09/28/58.et",
&#160;&#160;author: {name: "sfufoet", homepage: "http://blog.loland.net/"},
&#160;&#160;license: "MPL",
&#160;
&#160;&#160;preview: function(previewBlock, statusText, mods) {
&#160; &#160;&#160;var previewTemplate = '&#60;/div&#62;&#60;br/&#62;' +
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;&#160;"将要发送到手机的的内容如下: &#60;br/&#62;" +&#160; &#160; &#160;&#160;
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>在<a href="http://twitter.com/sfufoet">我的推友</a>里看到这篇 <a href="http://daibin.info/fetion-api.html/">中国移动飞信 Fetion API 免费发短信的一些应用</a>。文章里面有个 <a href="https://wiki.mozilla.org/Labs/Ubiquity">Ubiquity </a>命令，很简陋，而且还是新建标签式的。</p>
<p><img src="http://blog.loland.net/wp-content/plugins/pika/readimg.php?src=http%3A%2F%2Flh4.gouride.com%2F_dgCGC6ge86w%2FSfvR8ObgwoI%2FAAAAAAAABI4%2FVmtOcdRAKtI%2Fs512%2F2009-05-02_125344.png" /></p>
<p>输入在 <a href="https://wiki.mozilla.org/Labs/Ubiquity">Ubiquity</a> 里输入 command-editor 或者打开 chrome://ubiquity/content/editor.html，在输入框的末尾输入以下命令。<font color="#cc0000">红色部分需要修改。</font></p>
<blockquote><p><span class="part js-variable">CmdUtils</span><span class="part js-punctuation">.</span><span class="part js-property">CreateCommand</span><span class="part js-punctuation">(</span><span class="part js-punctuation">{</span><br />
<span class="part whitespace">&nbsp;&nbsp;</span><span class="part js-property">name</span><span class="part js-punctuation">: </span><span class="part js-string">"sms"</span><span class="part js-punctuation">,</span><br />
<span class="part whitespace">&nbsp;&nbsp;</span><span class="part js-property">takes</span><span class="part js-punctuation">: </span><span class="part js-punctuation">{</span><span class="part js-property">status</span><span class="part js-punctuation">: </span><span class="part js-variable">noun_arb_text</span><span class="part js-punctuation">}</span><span class="part js-punctuation">,</span><br />
<span class="part whitespace">&nbsp;&nbsp;</span><span class="part js-property">homepage</span><span class="part js-punctuation">: </span><span class="part js-string">"http://blog.loland.net/2008/09/28/58.et"</span><span class="part js-punctuation">,</span><br />
<span class="part whitespace">&nbsp;&nbsp;</span><span class="part js-property">author</span><span class="part js-punctuation">: </span><span class="part js-punctuation">{</span><span class="part js-property">name</span><span class="part js-punctuation">: </span><span class="part js-string">"sfufoet"</span><span class="part js-punctuation">, </span><span class="part js-property">homepage</span><span class="part js-punctuation">: </span><span class="part js-string">"http://blog.loland.net/"</span><span class="part js-punctuation">}</span><span class="part js-punctuation">,</span><br />
<span class="part whitespace">&nbsp;&nbsp;</span><span class="part js-property">license</span><span class="part js-punctuation">: </span><span class="part js-string">"MPL"</span><span class="part js-punctuation">,</span><br />
<span class="part whitespace">&nbsp;</span><br />
<span class="part whitespace">&nbsp;&nbsp;</span><span class="part js-property">preview</span><span class="part js-punctuation">: </span><span class="part js-keyword">function</span><span class="part js-punctuation">(</span><span class="part js-variabledef">previewBlock</span><span class="part js-punctuation">, </span><span class="part js-variabledef">statusText</span><span class="part js-punctuation">, </span><span class="part js-variabledef">mods</span><span class="part js-punctuation">) </span><span class="part js-punctuation">{</span><br />
<span class="part whitespace">&nbsp; &nbsp;&nbsp;</span><span class="part js-keyword">var </span><span class="part js-variabledef">previewTemplate </span><span class="part js-operator">= </span><span class="part js-string">'&lt;/div&gt;&lt;br/&gt;' </span><span class="part js-operator">+</span><br />
<span class="part whitespace">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</span><span class="part js-string">"将要发送到手机的的内容如下: &lt;br/&gt;" </span><span class="part js-operator">+&nbsp; &nbsp; &nbsp;&nbsp;</span><br />
<span class="part whitespace">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</span><span class="part js-string">"&lt;b&gt;${status}&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;" </span><span class="part js-operator">+</span><br />
<span class="part whitespace">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</span><span class="part js-string">" 总字数为: &lt;b&gt;${chars}&lt;/b&gt;"</span><span class="part js-punctuation">;</span><br />
<span class="part js-keyword">if</span><span class="part js-punctuation">(</span><span class="part js-localvariable">statusText</span><span class="part js-punctuation">.</span><span class="part js-property">text</span><span class="part js-operator">==</span><span class="part js-string">"me"</span><span class="part js-punctuation">)</span><br />
<span class="part whitespace">&nbsp; &nbsp;&nbsp;</span><span class="part js-localvariable">statusText</span><span class="part js-punctuation">.</span><span class="part js-property">text </span><span class="part js-operator">= </span><span class="part js-string">"<font color="#cc0000">你的手机号</font>&amp;msg=" </span><span class="part js-operator">+ </span><span class="part js-variable">context</span><span class="part js-punctuation">.</span><span class="part js-property">focusedWindow</span><span class="part js-punctuation">.</span><span class="part js-property">getSelection</span><span class="part js-punctuation">(</span><span class="part js-punctuation">) </span><span class="part js-operator">+ </span><span class="part js-string">" " </span><span class="part js-operator">+ </span><span class="part js-variable">context</span><span class="part js-punctuation">.</span><span class="part js-variable">focusedWindow</span><span class="part js-punctuation">.</span><span class="part js-variable">location</span><span class="part js-punctuation">;</span><br />
<span class="part js-keyword">else</span><br />
<span class="part whitespace">&nbsp; &nbsp;&nbsp;</span><span class="part js-localvariable">statusText</span><span class="part js-punctuation">.</span><span class="part js-property">text </span><span class="part js-operator">= </span><span class="part js-localvariable">statusText</span><span class="part js-punctuation">.</span><span class="part js-property">text </span><span class="part js-operator">+ </span><span class="part js-string">"&amp;msg=" </span><span class="part js-operator">+ </span><span class="part js-variable">context</span><span class="part js-punctuation">.</span><span class="part js-property">focusedWindow</span><span class="part js-punctuation">.</span><span class="part js-property">getSelection</span><span class="part js-punctuation">(</span><span class="part js-punctuation">) </span><span class="part js-operator">+ </span><span class="part js-string">" " </span><span class="part js-operator">+ </span><span class="part js-variable">context</span><span class="part js-punctuation">.</span><span class="part js-variable">focusedWindow</span><span class="part js-punctuation">.</span><span class="part js-variable">location</span><span class="part js-punctuation">;</span></p>
<p><span class="part whitespace">&nbsp; &nbsp;&nbsp;</span><span class="part js-keyword">var </span><span class="part js-variabledef">previewData </span><span class="part js-operator">= </span><span class="part js-punctuation">{</span><br />
<span class="part whitespace">&nbsp; &nbsp; &nbsp;&nbsp;</span><span class="part js-property">status</span><span class="part js-punctuation">: </span><span class="part js-variable">context</span><span class="part js-punctuation">.</span><span class="part js-property">focusedWindow</span><span class="part js-punctuation">.</span><span class="part js-property">getSelection</span><span class="part js-punctuation">(</span><span class="part js-punctuation">) </span><span class="part js-operator">+ </span><span class="part js-string">" " </span><span class="part js-operator">+ </span><span class="part js-variable">context</span><span class="part js-punctuation">.</span><span class="part js-variable">focusedWindow</span><span class="part js-punctuation">.</span><span class="part js-variable">location</span><span class="part js-punctuation">,</span><br />
<span class="part whitespace">&nbsp; &nbsp; &nbsp;&nbsp;</span><span class="part js-variable">chars</span><span class="part js-punctuation">: </span><span class="part js-localvariable">statusText</span><span class="part js-punctuation">.</span><span class="part js-variable">text</span><span class="part js-punctuation">.</span><span class="part js-variable">length</span><br />
<span class="part whitespace">&nbsp; &nbsp;&nbsp;</span><span class="part js-punctuation">}</span><span class="part js-punctuation">;</span><br />
<span class="part whitespace">&nbsp; &nbsp; &nbsp;</span><br />
<span class="part whitespace">&nbsp; &nbsp;&nbsp;</span><span class="part js-keyword">var </span><span class="part js-variabledef">previewHTML </span><span class="part js-operator">= </span><span class="part js-variable">CmdUtils</span><span class="part js-punctuation">.</span><span class="part js-property">renderTemplate</span><span class="part js-punctuation">(</span><span class="part js-localvariable">previewTemplate</span><span class="part js-punctuation">,</span><br />
<span class="part whitespace">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="part js-localvariable">previewData</span><span class="part js-punctuation">)</span><span class="part js-punctuation">;</span><br />
<span class="part whitespace">&nbsp;&nbsp;</span><br />
<span class="part whitespace">&nbsp; &nbsp;&nbsp;</span><span class="part js-localvariable">previewBlock</span><span class="part js-punctuation">.</span><span class="part js-property">innerHTML </span><span class="part js-operator">= </span><span class="part js-localvariable">previewHTML</span><span class="part js-punctuation">;</span><br />
<span class="part whitespace">&nbsp;&nbsp;</span><span class="part js-punctuation">}</span><span class="part js-punctuation">,</span><br />
<span class="part whitespace">&nbsp;</span><br />
<span class="part whitespace">&nbsp;&nbsp;</span><span class="part js-property">execute</span><span class="part js-punctuation">: </span><span class="part js-keyword">function</span><span class="part js-punctuation">(</span><span class="part js-variabledef">statusText</span><span class="part js-punctuation">) </span><span class="part js-punctuation">{</span><br />
<span class="part whitespace">&nbsp; &nbsp;&nbsp;</span><span class="part js-variable">jQuery</span><span class="part js-punctuation">.</span><span class="part js-property">ajax</span><span class="part js-punctuation">(</span><span class="part js-punctuation">{</span><br />
<span class="part whitespace">&nbsp; &nbsp; &nbsp;&nbsp;</span><span class="part js-property">type</span><span class="part js-punctuation">: </span><span class="part js-string">"Get"</span><span class="part js-punctuation">,</span><br />
<span class="part whitespace">&nbsp; &nbsp; &nbsp;&nbsp;</span><span class="part js-property">url</span><span class="part js-punctuation">: </span><span class="part js-string">"https://fetionAPI.appspot.com/api/?from=<font color="#cc0000">你的手机号</font>&amp;pw=<font color="#cc0000">飞信密码</font>&amp;to=" </span><span class="part js-operator">+ </span><span class="part js-localvariable">statusText</span><span class="part js-punctuation">.</span><span class="part js-property">text</span><span class="part js-punctuation">,</span><br />
<span class="part whitespace">&nbsp; &nbsp; &nbsp;&nbsp;</span><span class="part js-property">error</span><span class="part js-punctuation">: </span><span class="part js-keyword">function</span><span class="part js-punctuation">(</span><span class="part js-punctuation">) </span><span class="part js-punctuation">{</span><br />
<span class="part whitespace">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</span><span class="part js-variable">displayMessage</span><span class="part js-punctuation">(</span><span class="part js-string">"发送失败"</span><span class="part js-punctuation">)</span><span class="part js-punctuation">;</span><br />
<span class="part whitespace">&nbsp; &nbsp; &nbsp;&nbsp;</span><span class="part js-punctuation">}</span><span class="part js-punctuation">,</span><br />
<span class="part whitespace">&nbsp; &nbsp; &nbsp;&nbsp;</span><span class="part js-property">success</span><span class="part js-punctuation">: </span><span class="part js-keyword">function</span><span class="part js-punctuation">(</span><span class="part js-punctuation">) </span><span class="part js-punctuation">{</span><br />
<span class="part whitespace">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</span><span class="part js-variable">displayMessage</span><span class="part js-punctuation">(</span><span class="part js-string">"发送成功"</span><span class="part js-punctuation">)</span><span class="part js-punctuation">;</span><br />
<span class="part whitespace">&nbsp; &nbsp; &nbsp;&nbsp;</span><span class="part js-punctuation">}</span><br />
<span class="part whitespace">&nbsp; &nbsp;&nbsp;</span><span class="part js-punctuation">}</span><span class="part js-punctuation">)</span><span class="part js-punctuation">;</span><br />
<span class="part whitespace">&nbsp;&nbsp;</span><span class="part js-punctuation">}</span><br />
<span class="part js-punctuation">}</span><span class="part js-punctuation">)</span><span class="part js-punctuation">;</span>
</p></blockquote>
<p>                                         <b>用法：</b></p>
<ol>
<li>输入 sms 手机号，回车后会把当前选中的文字和当前网址发生到对方手机上。</li>
<li>输入 sms me，就会发给自己。</li>
</ol>
<p>我用的这个飞信 API 是用 Google App Engine 打造的。注意：若短时间内循环大量发送短信者，将直接封号封 IP ！</p>
<p>如果不小心被封了，可以试试 <a href="http://daibin.info/fetion-api.html/">中国移动飞信 Fetion API 免费发短信的一些应用</a> 里的另外一个 API。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.loland.net/185.et/feed</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>两个翻译当前页面为中文的 Ubiquity 命令[不带框架]</title>
		<link>http://blog.loland.net/122.et</link>
		<comments>http://blog.loland.net/122.et#comments</comments>
		<pubDate>Fri, 26 Dec 2008 03:29:26 +0000</pubDate>
		<dc:creator>sfufoet</dc:creator>
				<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Ubiquity]]></category>

		<guid isPermaLink="false">http://blog.loland.net/2008/12/26/122.et</guid>
		<description><![CDATA[用小书签来调用 Google 翻译来翻译当前页面，没办法去掉框架。Google 总是自动把没框架的翻译页面自动重定向到有框架的。
奇怪的是，用 Ubiquity 来调用木有框架的翻译页面却可以哦。
下面是两个 Ubiquity 命令，一个是“将当前英文网页翻译为中文”命令：en2zh，另一个是“将当前日文网页翻译为中文”命令：jp2zh。安装打开 Ubiquity ，输入 command-editor，打开命令编辑器，粘贴以下内容：
CmdUtils.CreateCommand({
  name: "en2zh",
  icon: "http://www.google.com/favicon.ico",
  description: "将当前英文网页翻译为中文",
  execute: function() {
  var word = context.focusedWindow.document.location;
    Utils.openUrlInBrowser( "http://72.14.235.104/translate_c?sl=en&#038;tl=zh-CN&#038;hl=zh-CN&#038;ie=UTF-8&#038;u=" +
      escape(word) );
  },
  preview : function(obj){
    obj.innerHTML = "将当前英文网页翻译为中文";
  [...]]]></description>
			<content:encoded><![CDATA[<p>用小书签来调用 <a href="http://translate.google.cn/">Google 翻译</a>来翻译当前页面，没办法去掉框架。Google 总是自动把没框架的翻译页面自动重定向到有框架的。</p>
<p>奇怪的是，用 <a href="http://labs.mozilla.com/projects/ubiquity/">Ubiquity</a> 来调用木有框架的翻译页面却可以哦。</p>
<p>下面是两个 Ubiquity 命令，一个是“将当前<strong>英文</strong>网页翻译为中文”命令：en2zh，另一个是“将当前<strong>日文</strong>网页翻译为中文”命令：jp2zh。安装打开 Ubiquity ，输入 command-editor，打开命令编辑器，粘贴以下内容：</p>
<blockquote><p>CmdUtils.CreateCommand({<br />
  name: "en2zh",<br />
  icon: "http://www.google.com/favicon.ico",<br />
  description: "将当前英文网页翻译为中文",<br />
  execute: function() {<br />
  var word = context.focusedWindow.document.location;<br />
    Utils.openUrlInBrowser( "http://72.14.235.104/translate_c?sl=en&#038;tl=zh-CN&#038;hl=zh-CN&#038;ie=UTF-8&#038;u=" +<br />
      escape(word) );<br />
  },<br />
  preview : function(obj){<br />
    obj.innerHTML = "将当前英文网页翻译为中文";<br />
  }<br />
});</p>
<p>CmdUtils.CreateCommand({<br />
  name: "jp2zh",<br />
  icon: "http://www.google.com/favicon.ico",<br />
  description: "将当前日文网页翻译为中文",<br />
  execute: function() {<br />
  var word = context.focusedWindow.document.location;<br />
    Utils.openUrlInBrowser( "http://72.14.235.104/translate_c?sl=jp&#038;tl=zh-CN&#038;hl=zh-CN&#038;ie=UTF-8&#038;u=" +<br />
      escape(word) );<br />
  },<br />
  preview : function(obj){<br />
    obj.innerHTML = "将当前日文网页翻译为中文";<br />
  }<br />
});</p></blockquote>
<p>相关文章：</p>
<ul>
<li><a href="http://jdev.tw/blog/1202/firefox-ubiquity-introduction">網路衝浪新幫手－無所不在的Firefox Ubiquity</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.loland.net/122.et/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>用 Ubiquity 打造个 hellotxt</title>
		<link>http://blog.loland.net/58.et</link>
		<comments>http://blog.loland.net/58.et#comments</comments>
		<pubDate>Sun, 28 Sep 2008 01:03:32 +0000</pubDate>
		<dc:creator>sfufoet</dc:creator>
				<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Ubiquity]]></category>

		<guid isPermaLink="false">http://blog.loland.net/?p=58</guid>
		<description><![CDATA[虽然用 hellotxt 可以同步到 plurk、饭否、twitter，但干嘛不用 Ubiquity 来折腾个呢？
尤其是推荐文章的时候超级方便。
先说用法，呼出 Ubiquity，输入“ff [动作] 文字”就可以闪电同步，[动作]部分为 Plurk 所有，可以根据需要输入。输入“ff s”或者“ff share”或者“ff 推”就可以快速分享当前的正在看的页面到三大服务。
为虾米要用 ff 做命令？因为好按，也是分发的首拼音，也好记。不喜欢自己修改代码
复制以下代码，并修改 uid 的值“272105”为你自己的 uid，快速获得自己的 uid：查看自己的头像地址，比如我的：http:
//avatars.plurk.com/272105-small.gif，那串数字就是你的 uid。
按下呼出 Ubiquity 的快捷键，输入：command-editor，回车。粘贴到 Ubiquity 的命令编辑框里面。Ubiquity 会自动保存，关闭 Ubiquity 的命令编辑界面。哦也。
CmdUtils.CreateCommand({
&#160; name: "ff",
&#160; takes: {status: noun_arb_text},
&#160; homepage: "http://blog.loland.net/2008/09/28/58.et",
&#160; author: {name: "sfufoet", homepage: "http://blog.loland.net/"},
&#160; license: "MPL",
&#160;
&#160; preview: function(previewBlock, statusText, mods) {
&#160;&#160;&#160; var previewTemplate = '&#60;/div&#62;&#60;br/&#62;' +
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; "将要发布到饭否、plurk、twitter 的内容如下: &#60;br/&#62;" [...]]]></description>
			<content:encoded><![CDATA[<p>虽然用 hellotxt 可以同步到 plurk、饭否、twitter，但干嘛不用 Ubiquity 来折腾个呢？</p>
<p>尤其是推荐文章的时候超级方便。</p>
<p>先说用法，呼出 Ubiquity，输入“ff [动作] 文字”就可以闪电同步，[动作]部分为 Plurk 所有，可以根据需要输入。输入“ff s”或者“ff share”或者“ff 推”就可以快速分享当前的正在看的页面到三大服务。</p>
<p>为虾米要用 ff 做命令？因为好按，也是分发的首拼音，也好记。不喜欢自己修改代码</p>
<p>复制以下代码，并修改 uid 的值“272105”为你自己的 uid，快速获得自己的 uid：查看自己的头像地址，比如我的：http:
<div class="entry"><wbr>//avatars.plurk.com<wbr>/272105-small.gif，那串数字就是你的 uid。</p>
<p>按下呼出 Ubiquity 的快捷键，输入：command-editor，回车。粘贴到 Ubiquity 的命令编辑框里面。Ubiquity 会自动保存，关闭 Ubiquity 的命令编辑界面。哦也。</p>
<blockquote><p>CmdUtils.CreateCommand({<br />
&nbsp; name: "ff",<br />
&nbsp; takes: {status: noun_arb_text},<br />
&nbsp; homepage: "http://blog.loland.net/2008/09/28/58.et",<br />
&nbsp; author: {name: "sfufoet", homepage: "http://blog.loland.net/"},<br />
&nbsp; license: "MPL",<br />
&nbsp;<br />
&nbsp; preview: function(previewBlock, statusText, mods) {<br />
&nbsp;&nbsp;&nbsp; var previewTemplate = '&lt;/div&gt;&lt;br/&gt;' +<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "将要发布到饭否、plurk、twitter 的内容如下: &lt;br/&gt;" +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "&lt;b&gt;${status}&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;" +<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; " 总字数为: &lt;b&gt;${chars}&lt;/b&gt;";<br />
&nbsp;&nbsp;&nbsp; var truncateTemplate = "&lt;br /&gt;后面 &lt;b&gt;${truncate}&lt;/b&gt; " +<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "个字将予以删除!";<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp; if(statusText.text=="share" || statusText.text=="s" || statusText.text=="推"){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; statusText.text = context.focusedWindow.getSelection()<br />
&nbsp;+ "推荐 " + context.focusedWindow.location +" (" + context.focusedWindow.document.title + ")";<br />
&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; var previewData = {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; status: statusText.text,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; chars: statusText.text.length<br />
&nbsp;&nbsp;&nbsp; };<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp; var previewHTML = CmdUtils.renderTemplate(previewTemplate,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; previewData);<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp; if(previewData.chars &gt; 140) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var truncateData = {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; truncate: previewData.chars - 140<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; };<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; previewHTML += CmdUtils.renderTemplate(truncateTemplate,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; truncateData);<br />
&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; jQuery(".emoticon").click(function(){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var mark= jQuery(this).attr("id");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert(mark);<br />
&nbsp;&nbsp;&nbsp; });<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp; previewBlock.innerHTML = previewHTML;<br />
&nbsp; },<br />
&nbsp;<br />
&nbsp; execute: function(statusText) {<br />
&nbsp;&nbsp;&nbsp; if(statusText.text.length &lt; 1) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; displayMessage("出错：内容不可空白");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return;<br />
&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; var updateUrl = "http://www.plurk.com/TimeLine/addPlurk";<br />
&nbsp;&nbsp;&nbsp; var updateParams = {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; uid: 272105,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; qualifier:":",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lang:"cn",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; content: statusText.text<br />
&nbsp;&nbsp;&nbsp; };<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp; jQuery.ajax({<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; type: "POST",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; url: updateUrl,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; data: updateParams,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dataType: "json",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; error: function() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; displayMessage("Plurk 发布错误");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; },<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; success: function() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; displayMessage("Plurk 发布成功");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; });</p>
<p>&nbsp;&nbsp;&nbsp; updateUrl = "http://api.fanfou.com/statuses/update.json";<br />
&nbsp;&nbsp;&nbsp; updateParams = {<br />
　　 source: "fanfou",<br />
　　 status: statusText.text<br />
&nbsp;&nbsp;&nbsp; };<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp; jQuery.ajax({<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; type: "POST",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; url: updateUrl,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; data: updateParams,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dataType: "json",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; error: function() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; displayMessage("饭否：发布错误");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; },<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; success: function() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; displayMessage("饭否：发布成功");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; });</p>
<p>&nbsp;&nbsp;&nbsp; updateUrl = "https://twitter.com/statuses/update.json";<br />
&nbsp;&nbsp;&nbsp; updateParams = {<br />
　　 source: "Twitter",<br />
　　 status: statusText.text<br />
&nbsp;&nbsp;&nbsp; };<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp; jQuery.ajax({<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; type: "POST",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; url: updateUrl,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; data: updateParams,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dataType: "json",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; error: function() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; displayMessage("Twitter：发布错误");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; },<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; success: function() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; displayMessage("Twitter：发布成功");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; });<br />
&nbsp; }<br />
});
</p></blockquote>
<p>说明：发布到 twitter 的时候，会弹出输入用户名和密码的对话框。想同步到其他服务，搜索下吧。后面很相似的代码就是起发布作用的。
</p></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.loland.net/58.et/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>每日三折腾 - 用 Ubiquity 快速发布到 plurk</title>
		<link>http://blog.loland.net/57.et</link>
		<comments>http://blog.loland.net/57.et#comments</comments>
		<pubDate>Sat, 27 Sep 2008 06:58:48 +0000</pubDate>
		<dc:creator>sfufoet</dc:creator>
				<category><![CDATA[Firefox]]></category>
		<category><![CDATA[plurk]]></category>
		<category><![CDATA[Ubiquity]]></category>

		<guid isPermaLink="false">http://blog.loland.net/?p=57</guid>
		<description><![CDATA[瓦咔咔，太赞了。分享给用 plurk 的好友们！
实现效果，按下 Ubiquity 快捷键，输入“plurk [动作] 文字”就可以闪电发布到 plurk 啦，[动作]可以省略。更加神奇的是，可以快速推荐正在看的文章，命令是“plurk s”或者“plurk share”或者“plurk 推”！当然要先登录自己的 plurk 哦。
安装设置 Ubiquity 的加教程请看 xbeta 的文章。然后，按下呼出 Ubiquity 的快捷键，输入：command-editor，回车。
复制以下代码，并修改 uid 的值“272105”为你自己的 uid，快速获得自己的 uid：查看自己的头像地址，比如我的：http://avatars.plurk.com/272105-small.gif，那串数字就是你的 uid。
CmdUtils.CreateCommand({
&#160; name: "plurk",
&#160; takes: {status: noun_arb_text},
&#160; homepage: "http://theunfocused.net/moz/ubiquity/verbs/",
&#160; author: {name: "Blair McBride", homepage: "http://theunfocused.net/"},
&#160; modifier: {name: "Forte Lin"},
&#160; license: "MPL",
&#160;
&#160; preview: function(previewBlock, statusText, mods) {
&#160;&#160;&#160; var previewTemplate = '&#60;/div&#62;&#60;br/&#62;' +
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; "将要发布的内容如下: [...]]]></description>
			<content:encoded><![CDATA[<p>瓦咔咔，太赞了。分享给用 plurk 的好友们！</p>
<p>实现效果，按下 Ubiquity 快捷键，输入“plurk [动作] 文字”就可以闪电发布到 plurk 啦，[动作]可以省略。更加神奇的是，可以快速推荐正在看的文章，命令是“plurk s”或者“plurk share”或者“plurk 推”！当然要先登录自己的 plurk 哦。</p>
<p>安装设置 Ubiquity 的加教程<a href="http://xbeta.info/firefox-ubiquity.htm">请看 xbeta 的文章</a>。然后，按下呼出 Ubiquity 的快捷键，输入：command-editor，回车。</p>
<p>复制以下代码，并修改 uid 的值“272105”为你自己的 uid，快速获得自己的 uid：查看自己的头像地址，比如我的：http://avatars.plurk.com/272105-small.gif，那串数字就是你的 uid。</p>
<blockquote><p>CmdUtils.CreateCommand({<br />
&nbsp; name: "plurk",<br />
&nbsp; takes: {status: noun_arb_text},<br />
&nbsp; homepage: "http://theunfocused.net/moz/ubiquity/verbs/",<br />
&nbsp; author: {name: "Blair McBride", homepage: "http://theunfocused.net/"},<br />
&nbsp; modifier: {name: "Forte Lin"},<br />
&nbsp; license: "MPL",<br />
&nbsp;<br />
&nbsp; preview: function(previewBlock, statusText, mods) {<br />
&nbsp;&nbsp;&nbsp; var previewTemplate = '&lt;/div&gt;&lt;br/&gt;' +<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "将要发布的内容如下: &lt;br/&gt;" +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "&lt;b&gt;${status}&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;" +<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; " 总字数为: &lt;b&gt;${chars}&lt;/b&gt;";<br />
&nbsp;&nbsp;&nbsp; var truncateTemplate = "&lt;br /&gt;后面 &lt;b&gt;${truncate}&lt;/b&gt; " +<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "个字将予以删除!";<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp; if(statusText.text=="share" || statusText.text=="s" || statusText.text=="推"){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; statusText.text = context.focusedWindow.getSelection()<br />
&nbsp;+ "推荐 " + context.focusedWindow.location +" (" + context.focusedWindow.document.title + ")";<br />
&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; var previewData = {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; status: statusText.text,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; chars: statusText.text.length<br />
&nbsp;&nbsp;&nbsp; };<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp; var previewHTML = CmdUtils.renderTemplate(previewTemplate,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; previewData);<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp; if(previewData.chars &gt; 140) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var truncateData = {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; truncate: previewData.chars - 140<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; };<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; previewHTML += CmdUtils.renderTemplate(truncateTemplate,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; truncateData);<br />
&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; jQuery(".emoticon").click(function(){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var mark= jQuery(this).attr("id");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert(mark);<br />
&nbsp;&nbsp;&nbsp; });<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp; previewBlock.innerHTML = previewHTML;<br />
&nbsp; },<br />
&nbsp;<br />
&nbsp; execute: function(statusText) {<br />
&nbsp;&nbsp;&nbsp; if(statusText.text.length &lt; 1) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; displayMessage("Plurk 内容不可空白");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return;<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp; var updateUrl = "http://www.plurk.com/TimeLine/addPlurk";<br />
&nbsp;&nbsp;&nbsp; var updateParams = {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; uid: 272105,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; qualifier:":",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lang:"cn",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; content: statusText.text<br />
&nbsp;&nbsp;&nbsp; };<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp; jQuery.ajax({<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; type: "POST",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; url: updateUrl,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; data: updateParams,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dataType: "json",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; error: function() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; displayMessage("Plurk 发布错误");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; },<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; success: function() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; displayMessage("Plurk 发布成功");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; });<br />
&nbsp; }<br />
});
</p></blockquote>
<p>复制完毕之后，粘贴到 Ubiquity 的命令编辑框里面。Ubiquity 会自动保存，关闭 Ubiquity 的命令编辑界面。哦也。</p>
<p>打算折腾个 Ubiquity 版本的 hellotxt（私用），自动同步到 fanfou、twitter 和 plurk 这三个我常用的咔咔。 </p>
<p>via <a href="http://blog.xuite.net/emisjerry/tech/19619746">[1]</a> <a href="http://www.plurk.com/p/3b9ij">[2]</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.loland.net/57.et/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

