<?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>rel=me &#187; tcl</title>
	<atom:link href="http://rel.me/t/tcl/feed/" rel="self" type="application/rss+xml" />
	<link>http://rel.me</link>
	<description>programming, objective-c, cocoa, iphone, c</description>
	<lastBuildDate>Wed, 01 Feb 2012 07:26:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Parsing bash.org quotes for eggdrop bottalk.tcl</title>
		<link>http://rel.me/2007/10/10/parsing-bash-org-quotes-for-eggdrop-bottalk-tcl/</link>
		<comments>http://rel.me/2007/10/10/parsing-bash-org-quotes-for-eggdrop-bottalk-tcl/#comments</comments>
		<pubDate>Wed, 10 Oct 2007 22:44:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Ruby]]></category>
		<category><![CDATA[eggdrop]]></category>
		<category><![CDATA[tcl]]></category>

		<guid isPermaLink="false">/2007/10/10/parsing-bash-org-quotes-for-eggdrop-bottalk-tcl</guid>
		<description><![CDATA[Here is a script to scrape quotes from bash.org, and create a bottalker data file (source&#8217;d tcl script) for our eggdrop. If you want to chat with it, come to #oaktoncc on freenode. require 'rubygems' require 'open-uri' require 'hpricot' require 'cgi' &#160; count = 10 last_page = 407 &#160; lines = &#91;&#93; &#160; count.times do [...]]]></description>
			<content:encoded><![CDATA[<p>Here is a script to scrape quotes from bash.org, and create a <a href="http://irc.tm-net.ru/soft/eggdrop/scripts/bottalker/">bottalker</a> data file (source&#8217;d tcl script) for our eggdrop. If you want to chat with it, come to #oaktoncc on freenode.</p>

<div class="wp_syntax"><div class="code"><pre class="ruby"><span class="kw3">require</span> <span class="st0">'rubygems'</span>
<span class="kw3">require</span> <span class="st0">'open-uri'</span>
<span class="kw3">require</span> <span class="st0">'hpricot'</span>
<span class="kw3">require</span> <span class="st0">'cgi'</span>
&nbsp;
count = <span class="nu0">10</span>
last_page = <span class="nu0">407</span>
&nbsp;
lines = <span class="br0">&#91;</span><span class="br0">&#93;</span>
&nbsp;
count.<span class="me1">times</span> <span class="kw1">do</span> <span class="sy0">|</span>i<span class="sy0">|</span>
  page = last_page <span class="sy0">-</span> i
  uri = <span class="st0">&quot;http://bash.org/?browse&amp;p=#{page}&quot;</span>
  <span class="kw3">puts</span> <span class="st0">&quot;#{uri}&quot;</span>
  doc = Hpricot<span class="br0">&#40;</span><span class="kw3">open</span><span class="br0">&#40;</span>uri<span class="br0">&#41;</span><span class="br0">&#41;</span>
&nbsp;
  doc.<span class="me1">search</span><span class="br0">&#40;</span><span class="st0">&quot;//p[@class='qt']&quot;</span><span class="br0">&#41;</span>.<span class="me1">each</span> <span class="kw1">do</span> <span class="sy0">|</span>element<span class="sy0">|</span>
&nbsp;
    quote = element.<span class="me1">inner_html</span>
&nbsp;
    quote.<span class="kw3">split</span><span class="br0">&#40;</span><span class="sy0">/</span>\n<span class="sy0">/</span><span class="br0">&#41;</span>.<span class="me1">each</span> <span class="kw1">do</span> <span class="sy0">|</span>line<span class="sy0">|</span>
      line = <span class="kw4">CGI</span>::unescapeHTML<span class="br0">&#40;</span>line<span class="br0">&#41;</span>
      line.<span class="kw3">gsub!</span><span class="br0">&#40;</span><span class="sy0">/&lt;</span>br\s<span class="sy0">*</span>\<span class="sy0">/&gt;/</span>, <span class="st0">&quot;&quot;</span><span class="br0">&#41;</span>
      line.<span class="kw3">gsub!</span><span class="br0">&#40;</span><span class="st0">&quot;&amp;nbsp;&quot;</span>, <span class="st0">&quot; &quot;</span><span class="br0">&#41;</span>
&nbsp;
      <span class="co1"># Different formats (otherwise ignore):</span>
      <span class="co1"># &lt;name&gt; blah</span>
      <span class="co1"># (@name:#channel) blah</span>
      <span class="co1"># name: blah</span>
      <span class="co1"># [name] blah</span>
&nbsp;
      <span class="kw1">if</span> line =~ <span class="sy0">/</span>^\s<span class="sy0">*&lt;</span>.<span class="sy0">*</span>?<span class="sy0">&gt;</span><span class="br0">&#40;</span>.<span class="sy0">*</span><span class="br0">&#41;</span><span class="sy0">/</span> <span class="kw1">or</span> line =~ <span class="sy0">/</span>^\s<span class="sy0">*</span>\<span class="br0">&#40;</span>.<span class="sy0">*</span>?\<span class="br0">&#41;</span><span class="br0">&#40;</span>.<span class="sy0">*</span><span class="br0">&#41;</span><span class="sy0">/</span> <span class="kw1">or</span> line =~ <span class="sy0">/</span>^\s<span class="sy0">*</span>.<span class="sy0">+</span>?\:<span class="br0">&#40;</span>.<span class="sy0">*</span><span class="br0">&#41;</span><span class="sy0">/</span> <span class="kw1">or</span> line =~ <span class="sy0">/</span>^\s<span class="sy0">*</span>\<span class="br0">&#91;</span>.<span class="sy0">+</span>?\<span class="br0">&#93;</span><span class="br0">&#40;</span>.<span class="sy0">*</span><span class="br0">&#41;</span><span class="sy0">/</span> 
        lines <span class="sy0">&lt;&lt;</span> $1.<span class="me1">strip</span>
      <span class="kw1">end</span>
&nbsp;
    <span class="kw1">end</span>
&nbsp;
  <span class="kw1">end</span>
<span class="kw1">end</span>
&nbsp;
<span class="kw4">File</span>.<span class="kw3">open</span><span class="br0">&#40;</span><span class="st0">&quot;BotTalker_data_bash_org.tcl&quot;</span>, <span class="st0">&quot;w&quot;</span><span class="br0">&#41;</span> <span class="kw1">do</span> <span class="sy0">|</span>f<span class="sy0">|</span>
  f.<span class="kw3">puts</span><span class="br0">&#40;</span><span class="st0">&quot;# Bot Talker Data file.&quot;</span><span class="br0">&#41;</span>
  f.<span class="kw3">puts</span><span class="br0">&#40;</span><span class="st0">&quot;set TalkzStrArray {&quot;</span><span class="br0">&#41;</span>    
  lines.<span class="me1">each</span> <span class="kw1">do</span> <span class="sy0">|</span>line<span class="sy0">|</span> 
    <span class="kw1">next</span> <span class="kw1">if</span> line =~ <span class="sy0">/</span><span class="br0">&#91;</span>\<span class="br0">&#123;</span>\<span class="br0">&#125;</span>\\<span class="br0">&#93;</span><span class="sy0">/</span> <span class="co1"># Ignore lines with {}\ chars since it screws up the tcl source</span>
    line.<span class="kw3">gsub!</span><span class="br0">&#40;</span><span class="sy0">/</span>\<span class="br0">&#91;</span><span class="sy0">/</span>, <span class="st0">&quot;(&quot;</span><span class="br0">&#41;</span>
    line.<span class="kw3">gsub!</span><span class="br0">&#40;</span><span class="sy0">/</span>\<span class="br0">&#93;</span><span class="sy0">/</span>, <span class="st0">&quot;)&quot;</span><span class="br0">&#41;</span>
    f.<span class="kw3">puts</span><span class="br0">&#40;</span><span class="st0">&quot; {#{line}}&quot;</span><span class="br0">&#41;</span> 
  <span class="kw1">end</span>
  f.<span class="kw3">puts</span><span class="br0">&#40;</span><span class="st0">&quot;}&quot;</span><span class="br0">&#41;</span>
<span class="kw1">end</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://rel.me/2007/10/10/parsing-bash-org-quotes-for-eggdrop-bottalk-tcl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

