Never been to DZone Snippets before?

Snippets is a public source code repository. Easily build up your personal collection of code snippets, categorize them with tags / keywords, and share them with the world

About this user

Andrew Pennebaker http://mcandre.devjavu.com/wiki

« Newer Snippets
Older Snippets »
Showing 1-2 of 2 total  RSS 

yn.rb

// Ruby Yubnub launcher

   1  
   2  #!/usr/bin/env ruby
   3  
   4  # Andrew Pennebaker (andrew.pennebaker@gmail.com)
   5  # 7 Aug 2007
   6  # Copyright 2007 Andrew Pennebaker
   7  # License: GPL
   8  # URL: http://snippets.dzone.com/posts/show/4400
   9  
  10  parser="http://yubnub.org/parser/parse?command="
  11  
  12  command=ARGV.join("+")
  13  
  14  system "open "+parser+command

yubnub.py

   1  
   2  #!/usr/bin/env python
   3  
   4  __author__="Andrew Pennebaker (andrew.pennebaker@gmail.com)"
   5  __date__="9 Dec 2006 - 10 Dec 2006"
   6  __copyright__="Copyright 2006 Andrew Pennebaker"
   7  __license__="GPL"
   8  __version__="0.0.1"
   9  __credits__="Based on Yubnub for Windows (http://www.opbarnes.com/blog/Programming/OPB/Utilities/yubnub.html)"
  10  __URL__="http://snippets.dzone.com/posts/show/3120"
  11  
  12  from html2txt import html2txt
  13  
  14  import webbrowser
  15  from urllib import urlopen
  16  import re
  17  
  18  import sys
  19  from getopt import getopt
  20  
  21  PARSER="http://yubnub.org/parser/parse?command="
  22  
  23  BROWSER_MODE="BROWSER"
  24  PLAIN_MODE="PLAIN"
  25  
  26  def space2plus(s):
  27  	return "+".join(s.split())
  28  
  29  def yubnub(command=""):
  30  	global PARSER
  31  
  32  	return PARSER+space2plus(command)
  33  
  34  def yubnubBrowser(command):
  35  	return webbrowser.open(yubnub(command))
  36  
  37  def cleanHTML(html):
  38  	h=html2txt()
  39  	h.feed(html)
  40  	h.close()
  41  
  42  	return h.output()
  43  
  44  def yubnubPlain(command, clean=True):
  45  	command=yubnub(command)
  46  
  47  	try:
  48  		url=urlopen(command)
  49  		lines=url.readlines()
  50  		url.close()
  51  
  52  		lines="".join(lines)
  53  
  54  		if clean:
  55  			return cleanHTML(lines)
  56  
  57  		return lines
  58  
  59  	except IOError, e:
  60  		return "Error connecting to "+command
  61  
  62  def usage():
  63  	print "Usage: "+sys.argv[0]+" [options] <command>"
  64  	print "-b --browser"
  65  	print "\n--plain (default)"
  66  	print "\t-c --clean (default)"
  67  	print "\t-d --dirty"
  68  	print "\n--parser <parser> (experimental)"
  69  	print "\n-h --help"
  70  
  71  	sys.exit()
  72  
  73  def main():
  74  	global PARSER
  75  
  76  	global BROWSER_MODE
  77  	global PLAIN_MODE
  78  
  79  	mode=PLAIN_MODE
  80  	parser=PARSER
  81  	clean=True
  82  
  83  	systemArgs=sys.argv[1:]
  84  	optlist, args=[], []
  85  	try:
  86  		optlist, args=getopt(systemArgs, "bhcd", ["browser", "plain", "clean", "dirty", "parser=", "help"])
  87  	except:
  88  		usage()
  89  
  90  	for option, value in optlist:
  91  		if option=="-h" or option=="--help":
  92  			usage()
  93  
  94  		elif option=="-b" or option=="--browser":
  95  			mode=BROWSER_MODE
  96  		elif option=="--plain":
  97  			mode=PLAIN_MODE
  98  		elif option=="-c" or option=="--clean":
  99  			clean=True
 100  		elif option=="-d" or option=="--dirty":
 101  			clean=False
 102  		elif option=="--parser":
 103  			parser=value
 104  
 105  	command=" ".join(args)
 106  
 107  	if mode==BROWSER_MODE:
 108  		yubnubBrowser(command)
 109  	elif mode==PLAIN_MODE:
 110  		for line in yubnubPlain(command, clean):
 111  			sys.stdout.write(line)
 112  		print ""
 113  
 114  if __name__=="__main__":
 115  	main()
« Newer Snippets
Older Snippets »
Showing 1-2 of 2 total  RSS