Runt.rb
#!/usr/bin/env ruby require "webrick" s=WEBrick::HTTPServer.new( :BindAddress => "localhost", :Port => 8080, :DocumentRoot => File.dirname($0)+"/"+"www/" ) trap("INT") { s.shutdown } s.start
11397 users tagging and storing useful source code snippets
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
Andrew Pennebaker http://mcandre.devjavu.com/wiki
#!/usr/bin/env ruby require "webrick" s=WEBrick::HTTPServer.new( :BindAddress => "localhost", :Port => 8080, :DocumentRoot => File.dirname($0)+"/"+"www/" ) trap("INT") { s.shutdown } s.start
#!/usr/bin/env ruby require "rubygems" require "open-uri" require "hpricot" require "htmlentities" coder=HTMLEntities.new() doc=open("http://www.channel4.com/entertainment/tv/microsites/I/itcrowd/quote_generator/") { |f| Hpricot(f) } section=doc/"blockquote"/"p" (section/"cite").remove() quote=section.inner_html # remove leading whitespace quote=quote.gsub(/^\s+/, "") # remove trailing whitespace quote=quote.gsub(/\s+$/, $/) # remove dash quote=quote.gsub(/\s\-\s+$/, $/).chomp # decode HTML entities quote=coder.decode(quote) puts quote
#!/usr/bin/env ruby # Andrew Pennebaker (andrew.pennebaker@gmail.com) # 7 Aug 2007 # Copyright 2007 Andrew Pennebaker # License: GPL # URL: http://snippets.dzone.com/posts/show/4400 parser="http://yubnub.org/parser/parse?command=" command=ARGV.join("+") system "open "+parser+command
config = "jaiku.conf" xmlrpcurl = "http://api.jaiku.com/xmlrpc" feedurlstart = "http://" feedurlend = ".jaiku.com/feed/atom" itemdelimeter = "<entry>" titledelimeter1 = "<title>" titledelimeter2 = "</title>" username = "mcandre" personalkey = "FILL IN YOUR API KEY HERE" location = ""
#!/usr/bin/env python __author__="Andrew Pennebaker (andrew.pennebaker@gmail.com)" __date__="28 Jun 2007" __copyright__="Copyright 2007 Andrew Pennebaker" __license__="GPL" __version__="0.0.1" __URL__="http://snippets.dzone.com/posts/show/4223" import sys, getopt, urllib2, xmlrpclib import configreader STATUS_MODE="STATUS" VIEW_MODE="VIEW" def set_status(settings, status): s=xmlrpclib.ServerProxy(settings["xmlrpcurl"]) calldata={"user":settings["username"], "personal_key":settings["personalkey"], "message":status, "location":settings["location"]} try: s.presence.send(calldata) except: raise "Could not connect." def view_status(settings): item=settings["itemdelimeter"] t1=settings["titledelimeter1"] t2=settings["titledelimeter2"] try: instream=urllib2.urlopen( settings["feedurlstart"]+settings["username"]+settings["feedurlend"] ) for line in instream: if item in line: break title=instream.readline() instream.close() status=title[title.index(t1)+len(t1):title.index(t2)] return status except IOError, e: raise "Could not connect." def usage(): print "Usage: %s [options]" % (sys.argv[0]) print "\nWithout any options, uses status mode. Leftover args are concatenated to form message." print "\n-u|--username <username> specified in jaiku.conf" print "-p|--personal-key <key>" print "-l|--location <location>" print "-s|--status mode" print "-v|--view status" print "-c|--config <configfile>" print "-h|--help" sys.exit() def main(): global STATUS_MODE global VIEW_MODE systemArgs=sys.argv[1:] mode=STATUS_MODE settings={ "config":"jaiku.conf", "xmlrpcurl":"http://api.jaiku.com/xmlrpc", "feedurlstart":"http://", "feedurlend":".jaiku.com/feed/atom", "itemdelimeter":"<entry>", "titledelimeter1":"<title>", "titledelimeter2":"</title>", "username":"mcandre", "personalkey":"", "location":"" } optlist, args=[], [] try: optlist, args=getopt.getopt(systemArgs, "u:p:l:svc:h", ["username=", "personal-key=", "location=", "status", "view", "config=", "help"]) except e: usage() for option, value in optlist: if option=="-c" or option=="--config": settings["config"]=value try: configreader.load(open(settings["config"], "r"), settings) except IOError, e: pass for option, value in optlist: if option=="-h" or option=="--help": usage() elif option=="-u" or option=="--username": settings["username"]=value elif option=="-p" or option=="--personal-key": settings["personalkey"]=value elif option=="-l" or option=="--location": settings["location"]=value elif option=="-s" or option=="--status": mode=STATUS_MODE elif option=="-v" or option=="--view": mode=VIEW_MODE if mode==STATUS_MODE: if len(args)<1: usage() message=" ".join(args) set_status(settings, message) elif mode==VIEW_MODE: print view_status(settings) if __name__=="__main__": try: main() except KeyboardInterrupt, e: pass
config = "tiny.conf" service = "urltea" urltea url = "http://urltea.com/api/text/?url=" tinyurl url = "http://tinyurl.com/api-create.php?" description delimeter = "?" description = ""
#!/usr/bin/env python __author__="Andrew Pennebaker (andrew.pennebaker@gmail.com)" __date__="22 Jun 2007" __copyright__="Copyright 2007 Andrew Pennebaker" __license__="GPL" __version__="0.0.1" __URL__="http://urltea.com/to8" __credits__="http://tinyurl.com/yswqg3" import sys, urllib, getopt CREATE_URL="http://urltea.com/api/text/?url=" COMMENT_DELIMETER="?" def tiny(url, description=""): global CREATE_URL global COMMENT_DELIMETER try: encodedurl=CREATE_URL+urllib.urlencode({"url":url}) instream=urllib.urlopen(encodedurl) tinyurl=instream.read() instream.close() if len(tinyurl)==0: return url if len(description)>0: tinyurl+=COMMENT_DELIMETER+description return tinyurl except IOError, e: raise "Could not connect." def usage(): print "Usage: %s <url1> <url2> <url3> ..." % (sys.argv[0]) print "-d|--description <comment>" print "-h|--help (usage)" sys.exit() def main(): systemArgs=sys.argv[1:] oplist, args=[], [] comment="" try: optlist, args=getopt.getopt(systemArgs, "d:h", ["description=", "help"]) except: usage() for option, value in optlist: if option=="-h" or option=="--help": usage() elif option=="-d" or option=="--description": comment=value if len(args)<1: usage() for u in args: print tiny(u, comment) if __name__=="__main__": try: main() except KeyboardInterrupt, e: pass
#!/usr/bin/env python """Converts long URLs to tiny URLs, with either tinyurl, urltea, or a custom url.""" __author__="Andrew Pennebaker (andrew.pennebaker@gmail.com)" __date__="22 Jun 2007 - 24 Jun 2007" __copyright__="Copyright 2007 Andrew Pennebaker" __license__="GPL" __version__="0.0.1" __URL__="http://snippets.dzone.com/posts/show/4195" __credits__="http://lateral.netmanagers.com.ar/weblog/2007/04/08.html#BB548" import sys, getopt, urllib import configreader def tiny(url, settings): try: encodedurl=settings["posting url"]+urllib.urlencode({"url":url}) instream=urllib.urlopen(encodedurl) tinyurl=instream.read() instream.close() if len(tinyurl)==0: return url if settings["service"]=="urltea" and len(settings["description"])>0: tinyurl+=settings["description delimeter"]+settings["description"] return tinyurl except IOError, e: raise "Could not connect." def usage(): print "Usage: %s [options] <url1> <url2> <url3> ..." % (sys.argv[0]) print "\nDefaults to urlTea unless specified in options or a config file." print "\n-s|--service [tinyurl|urltea]" print "-u|--custom-url <posting url>" print "-d|--description <comment> May only be used with urltea." print "-c|--config <configfile>" print "-h|--help (usage)" sys.exit() def main(): systemArgs=sys.argv[1:] oplist, args=[], [] settings={ "config":"tiny.conf", "service":"urltea", "urltea url":"http://urltea.com/api/text/?url=", "tinyurl url":"http://tinyurl.com/api-create.php?", "description delimeter":"?", "description":"" } try: optlist, args=getopt.getopt(systemArgs, "s:u:d:c:h", ["service=", "custom-url=", "description=", "config=", "help"]) except: usage() for option, value in optlist: if option=="-c" or option=="--config": settings["config"]=value try: configreader.load(open(settings["config"], "r"), settings) except IOError, e: pass for option, value in optlist: if option=="-h" or option=="--help": usage() elif option=="-s" or option=="--service": settings["service"]=value elif option=="-d" or option=="--description": settings["description"]=value if settings["service"]!="urltea" and len(settings["description"])>0: usage() try: settings["posting url"]=settings[settings["service"]+" url"] except: usage() for option, value in optlist: if option=="-u" or option=="--custom-url": settings["posting url"]=value if len(args)<1: usage() for u in args: print tiny(u, settings) if __name__=="__main__": try: main() except KeyboardInterrupt, e: pass
config = "tw.conf" username = "mcandre" rootauthurl = "http://twitter.com/statuses/" useragent = "tw.py 0.0.1" statusdelimeter1 = "<p class=\"entry-title entry-content\">" statusdelimeter2 = "</p>"
#!/usr/bin/env python __author__="Andrew Pennebaker (andrew.pennebaker@gmail.com)" __date__="17 Jun 2007 - 28 Jun 2007" __copyright__="Copyright 2007 Andrew Pennebaker" __license__="GPL" __version__="0.0.1" __credits__="Based on tweetyPy (http://muffinresearch.co.uk/archives/2007/03/24/tweetypy-python-based-cli-client-for-twitter/)" __URL__="http://snippets.dzone.com/posts/show/4150" import sys, getopt, getpass, urllib, urllib2 import configreader STATUS_MODE="STATUS" VIEW_MODE="VIEW" COMMAND_MODE="COMMAND" COMMANDS="""Command\t\tMeaning d username\tDirect Text @username\tReply follow username\tReceive updates via phone or IM leave username\tStop following username leave all\tStop following all friends remove username\tRemove username from friends list delete username\tDelete username from friends list get username\tGet the last update from username get\tGet the most recent updates from all friends nudge username\tTwitter aks what the person is currently up to whois username\tGet username's bio add phonenumber\tSend text invite. If already a member, invite will turn into a friend request. accept username\tAccept username as a friend deny username\tDeny username as friend""" def usage(): print "Usage: %s [options]" % (sys.argv[0]) print "\nWithout any options, uses status mode. Leftover args are concatenated to form message." print "\n-u|--username <username> specified in tw.conf" print "-s|--status mode" print "-v|--view status" print "-l|--list-commands List Twitter commands" print "-c|--config <configfile>" print "-h|--help" sys.exit() def set_status(settings, status): auth=urllib2.HTTPPasswordMgrWithDefaultRealm() auth.add_password(None, settings["rootauthurl"], settings["username"], settings["password"]) authHandler=urllib2.HTTPBasicAuthHandler(auth) opener=urllib2.build_opener(authHandler) url="http://twitter.com/statuses/update.xml" post=urllib.urlencode({"status":status}) request=urllib2.Request(url, post) request.add_header("User-Agent", settings["useragent"]) try: response=opener.open(request) except IOError, e: raise "Could not connect." def view_status(settings): url="http://twitter.com/"+settings["username"] message="" statusdelimeter1=settings["statusdelimeter1"] statusdelimeter2=settings["statusdelimeter2"] try: instream=urllib.urlopen(url) for line in instream: if statusdelimeter1 in line: message=line[ line.index(statusdelimeter1)+len(statusdelimeter1):line.index(statusdelimeter2) ] break instream.close() return message except IOError, e: raise "Could not connect." def main(): global STATUS_MODE global VIEW_MODE global COMMAND_MODE global COMMANDS sysArgs=sys.argv[1:] mode=STATUS_MODE settings={ "config":"tw.conf", "username":"mcandre", "rootauthurl":"http://twitter.com/statuses/", "useragent":sys.argv[0]+" "+__version__, "statusdelimeter1":"<p class=\"entry-title entry-content\">", "statusdelimeter2":"</p>" } optlist, args=[], [] try: optlist, args=getopt.getopt(sysArgs, "u:svlc:h", ["username=", "status", "view", "list-commands", "config=", "help"]) except: usage() for option, value in optlist: if option=="-c" or option=="--config": settings["config"]=value try: configreader.load(open(settings["config"], "r"), settings) except IOError, e: pass for option, value in optlist: if option=="-h" or option=="--help": usage() elif option=="-u" or option=="--username": settings["username"]=value elif option=="-s" or option=="--status": mode=STATUS_MODE elif option=="-v" or option=="--view": mode=VIEW_MODE elif option=="-l" or option=="--list=commands": mode=COMMAND_MODE if mode==STATUS_MODE: if len(args)<1: usage() message=" ".join(args) settings["password"]=getpass.getpass() set_status(settings, message) elif mode==VIEW_MODE: print view_status(settings) elif mode==COMMAND_MODE: print COMMANDS if __name__=="__main__": try: main() except KeyboardInterrupt, e: pass