Exemple #1
0
 def save(self):
     if self._id == None:
         try:
             i_share = db.prepare('INSERT INTO share (symbol, name) \
                                     VALUES ($1,$2) RETURNING id')
             self._id = i_share(self.symbol, self.name)[0][0]
         except: 
             raise
     else:
         try:
             update_share = db.prepare('update share set symbol=$1, name=$2 \
                                        where id = $3')
             result = update_share(self.symbol, self.name, self._id)
         except:
             raise
Exemple #2
0
 def write_to_db():
     print('writing: \n',self)
     try:
         i_quote = db.prepare("""INSERT INTO quote (share_id, price, volume) 
                                     VALUES ($1,$2,$3) RETURNING id""")
         self._id = i_quote(self.share._id, self.price, self.volume)
     except: 
         raise
Exemple #3
0
 def __init__(self, symbol, name):
     self.symbol = symbol
     self.name = name
     self.last_quote = None # Contains the last known quote
     self._id = None
     fetch_share = db.prepare('select id from share where symbol = $1 \
                                 and name = $2')
     result = fetch_share(self.symbol, self.name)
     if len(result)<=0:
         self.save()
     if len(result)==1:
         self._id = result[0][0]
Exemple #4
0
        result = fetch_share(self.symbol, self.name)
        if len(result)<=0:
            self.save()
        if len(result)==1:
            self._id = result[0][0]
        
    def __str__(self):
        return (self.__repr__()+' '+self.symbol+' '+self.name)
    
    def save(self):
        if self._id == None:
            try:
                i_share = db.prepare('INSERT INTO share (symbol, name) \
                                        VALUES ($1,$2) RETURNING id')
                self._id = i_share(self.symbol, self.name)[0][0]
            except: 
                raise
        else:
            try:
                update_share = db.prepare('update share set symbol=$1, name=$2 \
                                           where id = $3')
                result = update_share(self.symbol, self.name, self._id)
            except:
                raise
            
        
if __name__ == '__main__':
    share = Share('SATC', 'SatCon Technology Corporation')
    print(share.save())
    con = db.prepare('select * from share')
    print(con())
Exemple #5
0
                      self != self.share.last_quote):
            self.share.last_quote = self
            write_to_db()
        else:
            print('skipping: ',share.symbol)    
        
    def __str__(self):
        return (self.__repr__()+
                '\n share: '+str(self.share)+
                '\n price: '+str(self.price)+
                '\n volume: '+str(self.volume))
    
    def __eq__(self, other):
        def equal_price(a, b):
            return abs(a - b) < 1e-6
        
        if isinstance(other,Quote):
            print('p1,p2', self.price, other.price, '\n',
                  'v1,v2', self.volume, other.volume)
            if (self.price == other.price and
                self.volume == other.volume):
                return True
        return False    
        
if __name__ == '__main__':
    import share
    share = share.Share('SATC', 'SatCon Technology Corporation')
    print(share.save())
    con = db.prepare('select * from quote')
    print(con())
    
Exemple #6
0
# print("get_tags_count " + str(get_tags_count()))
# print("pages_by_100 " 	+ str(pages_by_100))
# print("last_page_id " 	+ str(last_page_id))
# print("from_page " 		+ str(from_page))
# print("until_page " 	+ str(until_page))
# sys.exit()

for page in range(from_page, until_page): 
	time.sleep(1)
	build_url = "http://api.stackexchange.com/2.2/tags?page=" + str(page) + "&pagesize=10&order=desc&sort=popular&site=stackoverflow" + str(ACCESS_KEY)
	print("> Fetching tags from page id: " + str(page))
	try:
		api = jsonify(build_url)
	except Exception as e:
		print("> Exiting script: Likely due to execeding rate limit: e -> ", e)
		sys.exit()
	for badge in api['items']:
		is_moderator_only	= badge['is_moderator_only']
		is_required			= badge['is_required']
		has_synonyms		= badge['has_synonyms']
		name 				= badge['name']
		tags_count 			= badge['count']
		page_id 				= int(page)
		try: 
			db.prepare(sql, (name, tags_count, is_moderator_only, is_required, has_synonyms, page_id))
			db.commit()
		except Exception as e:
			print("> Existing script: Likely unknown error in database e -> ", e)
			sys.exit()
			db.rollback()