def get(self):
     ticker = self.request.get('ticker')
     category = self.request.get('category')
     subcategory = self.request.get('subcategory')
     entry = stock.get(ticker)
     entry.category = category
     entry.subcategory = subcategory
     stock.put(ticker, entry)
 def get(self):
     ticker = self.request.get('ticker')
     category = self.request.get('category')
     subcategory = self.request.get('subcategory')
     entry = stock.get(ticker)
     entry.category = category
     entry.subcategory = subcategory
     stock.put(ticker, entry)
 def __update_market_capital(self, market_capital):
     ticker = self.request.get('ticker')
     title = self.request.get('title')
     entry = stock.get(ticker)
     entry.ticker = ticker
     entry.title = title
     entry.market_capital = market_capital
     entry.market_capital_date = datetime.date.today()
     stock.put(ticker, entry)
Esempio n. 4
0
 def __update_market_capital(self, market_capital):
     ticker = self.request.get('ticker')
     title = self.request.get('title')
     entry = stock.get(ticker)
     entry.ticker = ticker
     entry.title = title
     entry.market_capital = market_capital
     entry.market_capital_date = datetime.date.today()
     stock.put(ticker, entry)
Esempio n. 5
0
    def privmsg(self, user, channel, msg):
        """This will get called when the bot receives a message."""
        source = user.split('!', 1)[0]
        global teddy_mute

        if msg.lower().startswith("!%s" % self.nickname):
            parse_last = re.split(' ', msg.strip())
            if len(parse_last) == 2:
                if source == 'jason' and parse_last[1] == 'mute':
                    teddy_mute = True
                    self.msg(channel, 'i will stop talking now ' + source)
                elif source == 'jason' and parse_last[1] == 'unmute':
                    teddy_mute = False
                    self.msg(channel, 'lets talk ' + source)

        if msg.lower().startswith("!%s" % "all"):
            parse_last = re.split(' ', msg.strip())
            if len(parse_last) == 2:
                for url in self.url_by_source(parse_last[1]):
                    self.msg(source, url)

        if msg.lower().startswith("!%s" % "search"):
            parse_last = re.split(' ', msg.strip())
            if len(parse_last) == 2:
                for url in self.url_by_search(parse_last[1]):
                    self.msg(source, url)

        if msg.lower().startswith("!%s" % "last"):
            parse_last = re.split(' ', msg.strip())
            if len(parse_last) == 2:
                short = self.get_short_from_db('source', parse_last[1])
                title = self.get_title_from_db('short', short)
                self.msg(channel, title)
                self.msg(channel, "http://wgeturl.com/" + short)
            elif len(parse_last) == 1:
                short = self.get_short_from_db('source', source)
                title = self.get_title_from_db('short', short)
                self.msg(channel, title)
                self.msg(channel, "http://wgeturl.com/" + short)
            else:
                self.msg(channel, "!last username")

        if msg.lower().startswith("!%s" % "stock"):
            parse_last = re.split(' ', msg.strip())
            try:
                stock_data = stock.get(parse_last[1])
                self.msg(channel, stock_data)
            except:
                print "Unexpected error:", sys.exc_info()

        if msg.lower().startswith("!%s" % "flip"):
            parse_last = msg.strip()[6:]
            angry = '(╯°□°)╯︵'

            if parse_last:
                flip = upsidedown.transform(parse_last)
                flipit = '%s %s' % (angry, flip.encode('utf-8'))
            else:
                flipit = '%s %s' % (angry, '┻━┻ ')

            try:
                self.msg(channel, flipit)
            except:
                print "Unexpected error:", sys.exc_info()

        if msg.lower().startswith("!%s" % "moofi"):
            parse_last = re.split(' ', msg.strip())
            try:
                items = woot.get(woot_key, event='moofi')
                for item in items:
                    output = "%s - Sale:$%s List:$%s" % (item['title'], item['saleprice'], item['listprice'])
                    short = self.write_url_to_db(source, item['url'])
                    self.msg(channel, output)
                    self.msg(channel, "http://wgeturl.com/" + short)
            except:
                print "Unexpected error:", sys.exc_info()

#       if msg.lower().startswith("!%s" % "woot"):
#           parse_last = re.split(' ', msg.strip())
#           try:
#               item = woot.get(woot_key)
#               output = "%s - Sale:$%s List:$%s" % (item['title'], item['saleprice'], item['listprice'])
#               short = self.write_url_to_db(source, item['url'])
#               self.msg(channel, output)
#               self.msg(channel, "http://wgeturl.com/" + short)
#           except:
#               print "Unexpected error:", sys.exc_info()

        if "pug me" in msg.lower():
            self.msg(channel, getpug())

        if "lgtm" in msg.lower():
            self.msg(channel, getlgtm())

        if "t**s" in msg.lower():
            self.msg(channel, getreddit('t**s'))

        if msg.lower().startswith("!r"):
            m = re.search('!r\W(.*)', msg.lower())
            self.msg(channel, getreddit(m.group(1)))

        if msg.lower().endswith('++'):
            m = re.search('(.*)\+\+', msg.lower())
            score.increment(m.group(1))

        if msg.lower().endswith('--'):
            m = re.search('(.*)\-\-', msg.lower())
            score.decrement(m.group(1))

        if msg.lower().startswith('!score'):
            user_score_name = re.split(' ', msg.strip())[1]

            user_score = score.get_score(user_score_name)
            self.msg(channel, '%s has %s points!' % (user_score_name, user_score))

        if msg.lower().startswith("!%s" % "dance"):
            self.msg(channel, ":D\<")
            self.msg(channel, ":D|<")
            self.msg(channel, ":D/<")
            self.msg(channel, ":D|<")

        if msg.lower().startswith("!%s" % "angrydance"):
            self.msg(channel, ">\D:")
            self.msg(channel, ">|D:")
            self.msg(channel, ">/D:")
            self.msg(channel, ">|D:")

        if re.search("http", msg.lower()) and source != 'wesley':
            try:
                parse_string = msg[msg.find("http"):]
                url = parse_string.strip()
                short = self.write_url_to_db(source, url)
                title = self.get_title_from_db('short', short)
                self.msg(channel, title)
                if (len(parse_string) >= 29):
                    self.msg(channel, "http://wgeturl.com/" + short)
            except:
                print "Unexpected error:", sys.exc_info()

        if "teddy" in msg.lower():
            try:
                teddy_response = self.teddy_ai(msg.lower())
                self.msg(channel, source + ": " + teddy_response)
            except:
                self.msg(channel, source + ": My brain is broken :(")
 def __update_earnings(self):
     ticker = self.request.get('ticker')
     entry = stock.get(ticker)
     balance = self.__get_balance_earnings()
     profit = self.__get_profit_earnings()
     year = datetime.date.today().year
     for i in range(3):
         earnings_date = self.__get_recent_earnings_date(year - i, balance, profit)
         if earnings_date is not None:
             break
     if earnings_date is None:
         logging.warn('There is no earnings date for %s' % (ticker))
         return
     else:
         try:
             bank_flag = False
             if earnings_date.month == 12:
                 this_earnings_date = earnings_date.strftime('%Y%m%d')
                 ebit = self.__get_ebit(profit[this_earnings_date])
                 income = self.__get_income(profit[this_earnings_date])
                 enterprise_value = self.__get_enterprise_value(balance[this_earnings_date])
                 tangible_asset = self.__get_tangible_asset(balance[this_earnings_date])
                 ownership_interest = self.__get_ownership_interest(balance[this_earnings_date])
                 net_profit = self.__get_net_profit(profit[this_earnings_date])
                 total_assets = self.__get_total_assets(balance[this_earnings_date])
                 total_liability = self.__get_total_liability(balance[this_earnings_date])
             else:
                 this_earnings_date = earnings_date.strftime('%Y%m%d')
                 last_earnings_date = earnings_date.replace(earnings_date.year - 1).strftime('%Y%m%d')
                 last_year_date = datetime.date(year=earnings_date.year - 1, month=12, day=31).strftime('%Y%m%d')
                 enterprise_value = self.__get_enterprise_value(balance[this_earnings_date])
                 tangible_asset = self.__get_tangible_asset(balance[this_earnings_date])
                 ownership_interest = self.__get_ownership_interest(balance[this_earnings_date])
                 total_assets = self.__get_total_assets(balance[this_earnings_date])
                 total_liability = self.__get_total_liability(balance[this_earnings_date])
                 ebit = (self.__get_ebit(profit[this_earnings_date]) 
                         + self.__get_ebit(profit[last_year_date]) 
                         - self.__get_ebit(profit[last_earnings_date]))
                 income = (self.__get_income(profit[this_earnings_date]) 
                           + self.__get_income(profit[last_year_date]) 
                           - self.__get_income(profit[last_earnings_date]))
                 net_profit = (self.__get_net_profit(profit[this_earnings_date]) 
                               + self.__get_net_profit(profit[last_year_date]) 
                               - self.__get_net_profit(profit[last_earnings_date]))
         except KeyError as ke:
             logging.exception(ke)
             bank_flag = True
             if earnings_date.month == 12:
                 this_earnings_date = earnings_date.strftime('%Y%m%d')
                 ownership_interest = string.atof(balance[this_earnings_date]['归属于母公司股东的权益'])
                 net_profit = string.atof(profit[this_earnings_date]['归属于母公司的净利润'])
                 total_assets = string.atof(balance[this_earnings_date]['资产总计'])
                 total_liability = string.atof(balance[this_earnings_date]['负债合计'])
             else:
                 this_earnings_date = earnings_date.strftime('%Y%m%d')
                 last_earnings_date = earnings_date.replace(earnings_date.year - 1).strftime('%Y%m%d')
                 last_year_date = datetime.date(year=earnings_date.year - 1, month=12, day=31).strftime('%Y%m%d')
                 ownership_interest = string.atof(balance[this_earnings_date]['归属于母公司股东的权益'])
                 total_assets = string.atof(balance[this_earnings_date]['资产总计'])
                 total_liability = string.atof(balance[this_earnings_date]['负债合计'])
                 net_profit = (string.atof(profit[this_earnings_date]['归属于母公司的净利润'])
                               + string.atof(profit[last_year_date]['归属于母公司的净利润'])
                               - string.atof(profit[last_earnings_date]['归属于母公司的净利润']))
             entry.bank_flag = bank_flag
             entry.earnings_date = earnings_date
             entry.ownership_interest = ownership_interest
             entry.net_profit = net_profit
             entry.total_assets = total_assets
             entry.total_liability = total_liability
             stock.put(ticker, entry)
             logging.info("Firstly %s is a bank" % (ticker))
             return
         entry.bank_flag = bank_flag
         entry.earnings_date = earnings_date
         entry.ebit = ebit
         entry.income = income
         entry.enterprise_value = enterprise_value
         entry.tangible_asset = tangible_asset
         entry.ownership_interest = ownership_interest
         entry.net_profit = net_profit
         entry.total_assets = total_assets
         entry.total_liability = total_liability
         stock.put(ticker, entry)
Esempio n. 7
0
 def __update_earnings(self):
     ticker = self.request.get('ticker')
     entry = stock.get(ticker)
     balance = self.__get_balance_earnings()
     profit = self.__get_profit_earnings()
     year = datetime.date.today().year
     for i in range(3):
         earnings_date = self.__get_recent_earnings_date(year - i, balance, profit)
         if earnings_date is not None:
             break
     if earnings_date is None:
         logging.warn('There is no earnings date for %s' % (ticker))
         return
     else:
         try:
             bank_flag = False
             if earnings_date.month == 12:
                 this_earnings_date = earnings_date.strftime('%Y%m%d')
                 ebit = self.__get_ebit(profit[this_earnings_date])
                 income = self.__get_income(profit[this_earnings_date])
                 enterprise_value = self.__get_enterprise_value(balance[this_earnings_date])
                 tangible_asset = self.__get_tangible_asset(balance[this_earnings_date])
                 ownership_interest = self.__get_ownership_interest(balance[this_earnings_date])
                 net_profit = self.__get_net_profit(profit[this_earnings_date])
                 total_assets = self.__get_total_assets(balance[this_earnings_date])
                 total_liability = self.__get_total_liability(balance[this_earnings_date])
                 current_assets = self.__get_current_assets(balance[this_earnings_date])
             else:
                 this_earnings_date = earnings_date.strftime('%Y%m%d')
                 last_earnings_date = earnings_date.replace(earnings_date.year - 1).strftime('%Y%m%d')
                 last_year_date = datetime.date(year=earnings_date.year - 1, month=12, day=31).strftime('%Y%m%d')
                 enterprise_value = self.__get_enterprise_value(balance[this_earnings_date])
                 tangible_asset = self.__get_tangible_asset(balance[this_earnings_date])
                 ownership_interest = self.__get_ownership_interest(balance[this_earnings_date])
                 total_assets = self.__get_total_assets(balance[this_earnings_date])
                 total_liability = self.__get_total_liability(balance[this_earnings_date])
                 current_assets = self.__get_current_assets(balance[this_earnings_date])
                 ebit = (self.__get_ebit(profit[this_earnings_date]) 
                         + self.__get_ebit(profit[last_year_date]) 
                         - self.__get_ebit(profit[last_earnings_date]))
                 income = (self.__get_income(profit[this_earnings_date]) 
                           + self.__get_income(profit[last_year_date]) 
                           - self.__get_income(profit[last_earnings_date]))
                 net_profit = (self.__get_net_profit(profit[this_earnings_date]) 
                               + self.__get_net_profit(profit[last_year_date]) 
                               - self.__get_net_profit(profit[last_earnings_date]))
         except KeyError as ke:
             logging.exception(ke)
             bank_flag = True
             if earnings_date.month == 12:
                 this_earnings_date = earnings_date.strftime('%Y%m%d')
                 ownership_interest = string.atof(balance[this_earnings_date]['归属于母公司股东的权益'])
                 net_profit = string.atof(profit[this_earnings_date]['归属于母公司的净利润'])
                 total_assets = string.atof(balance[this_earnings_date]['资产总计'])
                 total_liability = string.atof(balance[this_earnings_date]['负债合计'])
             else:
                 this_earnings_date = earnings_date.strftime('%Y%m%d')
                 last_earnings_date = earnings_date.replace(earnings_date.year - 1).strftime('%Y%m%d')
                 last_year_date = datetime.date(year=earnings_date.year - 1, month=12, day=31).strftime('%Y%m%d')
                 ownership_interest = string.atof(balance[this_earnings_date]['归属于母公司股东的权益'])
                 total_assets = string.atof(balance[this_earnings_date]['资产总计'])
                 total_liability = string.atof(balance[this_earnings_date]['负债合计'])
                 net_profit = (string.atof(profit[this_earnings_date]['归属于母公司的净利润'])
                               + string.atof(profit[last_year_date]['归属于母公司的净利润'])
                               - string.atof(profit[last_earnings_date]['归属于母公司的净利润']))
             entry.bank_flag = bank_flag
             entry.earnings_date = earnings_date
             entry.ownership_interest = ownership_interest
             entry.net_profit = net_profit
             entry.total_assets = total_assets
             entry.total_liability = total_liability
             stock.put(ticker, entry)
             logging.info("Firstly %s is a bank" % (ticker))
             return
         entry.bank_flag = bank_flag
         entry.earnings_date = earnings_date
         entry.ebit = ebit
         entry.income = income
         entry.enterprise_value = enterprise_value
         entry.tangible_asset = tangible_asset
         entry.ownership_interest = ownership_interest
         entry.net_profit = net_profit
         entry.total_assets = total_assets
         entry.total_liability = total_liability
         entry.current_assets = current_assets
         stock.put(ticker, entry)