Skip to content

Instantly share code, notes, and snippets.

@renovatorruler
Created May 30, 2010 19:45
Show Gist options
  • Save renovatorruler/419268 to your computer and use it in GitHub Desktop.
Save renovatorruler/419268 to your computer and use it in GitHub Desktop.
###
# Copyright (c) 2010, Durentu
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice,
# this list of conditions, and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions, and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# * Neither the name of the author of this software nor the name of
# contributors to this software may be used to endorse or promote products
# derived from this software without specific prior written consent.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
###
import supybot.utils as utils
from supybot.commands import *
import supybot.plugins as plugins
import supybot.ircutils as ircutils
import supybot.callbacks as callbacks
class Mises(callbacks.Plugin):
"""Add the help for "@plugin help Mises" here
This should describe *how* to use this plugin."""
threaded = True
baseURL = 'http://finance.yahoo.com/d/quotes.csv?s=%s&f=sl1d1t1c1ohgv&e=.csv'
def mises(self, irc, msg, args):
"""
Random Mises quotes from mises.org
"""
try:
mises = utils.web.getUrl("http://mises.org/quote.aspx")
except utils.web.Error, e:
irc.error(str(e), Raise=True)
irc.reply(utils.web.htmlToText(mises))
def industry(self, irc, msg, args):
"""
This is the industry command
"""
return_msg="DOW composite (^dja): " + Mises.getPrice(self,irc,"^dja")[1]+" NYSE (^nya): " + Mises.getPrice(self,irc,"^nya")[1]+" NASDAQ 100 (^ndx): " + Mises.getPrice(self,irc,"^ndx")[1]+"S&P 500 (^gspc): " + Mises.getPrice(self,irc,"^gspc")[1]
irc.reply(return_msg)
def metals(self, irc, msg, args):
"""
This is the metal command
"""
irc.reply("Gold (xauusd=x): " + Mises.getPrice(self,irc,"xauusd=x")[1])
irc.reply("Silver (SLV): " + Mises.getPrice(self,irc,"slv")[1])
def stock(self, irc, msg, args, symbol):
"""<company symbol>
Gets the information about the current price and change from the
previous day of a given company (represented by a stock symbol).
"""
data = Mises.getPrice(self, irc, symbol)
if data[1] != '0.00':
irc.reply('The current price of %s is %s, as of %s EST. '
'A change of %s from the last business day.' %
(data[0][1:-1], data[1], data[3][1:-1], data[4]))
else:
s = 'I couldn\'t find a listing for %s' % symbol
irc.error(s)
stock = wrap(stock, ['somethingWithoutSpaces'])
def getPrice(self, irc, symbol):
"""
You shouldn't really see this
"""
url=Mises.baseURL%symbol;
try:
getPrice = utils.web.getUrl(url)
except utils.web.Error, e:
irc.error(str(e), Raise=True)
data=getPrice.split(',')
return data
Class = Mises
# vim:set shiftwidth=4 softtabstop=4 expandtab textwidth=79:
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment