def search(): es = pyes.ES('127.0.0.1:9200') page_no = request.GET.get('page_no') query_string = request.GET.get('query') query = pyes.StringQuery(query_string) result = es.search(query=query, search_fields="_all") bill_list = [] session = models.DBSession() for res in result['hits']['hits']: id = res['_source']['id'] bill = session.query(models.BillRevision).get(id) if not bill: log.info('bill_revs record with %r not found.' % id) continue bill_list.append(bill) if bill_list: pages = utils.Pagination(settings.ITEM_PER_PAGE, settings.PAGE_DISPLAYED, len(bill_list), page_no) else: pages = None if pages: bill_list = bill_list[pages.first:pages.last] return {'bill': bill_list, 'query': query_string, 'pages': pages}
def migrate_bills(): session = models.DBSession() bills = session.query(models.Bill).all() en = session.query(models.Language).get(name='en') for bill in bills: translate = models.BillTranslation(lang_id=en.id, name=bill.name, bill_id=bill.id) session.add(translate) session.flush()
def migrate_revisions(): session = models.DBSession() en = session.query(models.Language).get(name='en') revs = session.query(models.BillRevision).all() for rev in revs: translate = models.BillRevisionTranslation(lang_id=en.id, name=rev.bill.name, rev_id=rev.id) session.add(translate) session.flush()
def get_fn(handler): db = models.DBSession() sXml = '' for row in db.query(models.User).all(): print(row, row.name) sXml += "<li>" + row.name + "</li>" db.commit() db.close() return "main_get_fun" + sXml
def __init__(self): self.current_rev = None self.request_URL = "" self.request_parameter = {} self.pages = [] self.indexer = indexer.Search() self.session = models.DBSession() # a transition table is to check that it is in the next state # just a validation tool self.transition = {}
def connectToDatabase(self, dburl): """ Connect to our database and return a Session object :param dburl: a valid SQLAlchemy URL string """ log.debug("connect db") engine = database.sa.create_engine(dburl, echo=False) database.init_model(engine) session = database.DBSession() self.setupDatabase(session, engine) return session
def load_data(): print 'Loading...' bills = load_page() print 'Here we go' session = models.DBSession() for b in bills: message = '' bill = (session.query( models.Bill).filter(models.Bill.name == b['name']).first()) if not bill: bill = models.Bill(name=b['name'], long_name=b['long_name']) session.add(bill) session.flush() b['bill_id'] = bill.id if b.has_key('date_presented'): b['date_presented'] = datetime.datetime.strptime( b['date_presented'], '%d/%m/%Y').date() rev = (session.query(models.BillRevision).filter( models.BillRevision.bill_id == bill.id).filter( models.BillRevision.year == int(b['year'])).first()) now = datetime.datetime.now() b['update_date'] = now if not rev: b['create_date'] = now rev = models.BillRevision(**b) session.add(rev) session.flush() message = 'Bill Started: %s, year %s %s' else: if rev.status != b['status']: for k, v in b.iteritems(): if hasattr(rev, k): setattr(rev, k, v) session.flush() message = 'Bills Updated: %s, year %s %s' if message: url = settings.URL + 'detail/%d/' % (rev.id) indexer.index_single(rev.id) print message % (bill.long_name, rev.year, url) session.commit()
def list_all(): page_no = request.GET.get('page_no') # conn = engine.connect() session = models.DBSession() base_bills = (session.query(models.BillRevision).order_by( models.BillRevision.year.desc())) ongoing_bill = (base_bills.filter( ~models.BillRevision.status.in_(["Accepted", "Withdrawn"])).all()) done_bill = (base_bills.filter( models.BillRevision.status.in_(["Accepted", "Withdrawn"])).all()) bills = (ongoing_bill + done_bill) pages = utils.Pagination(settings.ITEM_PER_PAGE, settings.PAGE_DISPLAYED, len(bills), page_no) bills = bills[pages.first:pages.last] return {'bills': bills, 'pages': pages}
def feed(): prefix = '://'.join(request.urlparts[:2]) title = 'Malaysian Bill Watcher' link = prefix + '/' description = 'This is an app for Malaysian to see bill being passed by the Parliament' lastBuildDate = datetime.datetime.utcnow() session = models.DBSession() bills = (session.query(models.Bill).join( (models.Bill.bill_revs, models.BillRevision)).order_by(models.BillRevision.update_date).all()) items = [] for bill in bills[-1:-101:-1]: _rev = bill.bill_revs[0] _title = bill.long_name _description = "year: %s\n" \ "status: %s\n" \ "url: %s\n" \ "name: %s\n" \ "read_by: %s\n" \ "supported_by: %s\n" \ "date_presented: %s" % \ (_rev.year, _rev.status, _rev.url, bill.name, _rev.read_by, _rev.supported_by, _rev.date_presented) _link = prefix + '/detail/%s/' % (_rev.id) _pubDate = _rev.update_date _guid = PyRSS2Gen.Guid(_link) item = PyRSS2Gen.RSSItem(title=_title, description=_description, link=_link, guid=_guid, pubDate=_pubDate) items.append(item) rss = PyRSS2Gen.RSS2(title=title, link=link, description=description, items=items) output = cStringIO.StringIO() rss.write_xml(output) response.content_type = 'application/rss+xml' return output.getvalue()
def weppar(msg): db = models.DBSession() user = db.query( models.User).filter_by(wechat_id=msg['FromUserName']).first() if user: if user.name: if 'Content' in msg and msg['Content'][0] == '\\': result = command(msg['Content'][1:], user) else: result = func(msg, user, db) else: user.name = msg['Content'].strip() result = f'你的名字设置为: {user.name}, 以后需要修改,请发送 \\name_<你的新名字>' else: user = models.User(wechat_id=msg['FromUserName']) db.add(user) result = '初次见面,你的名字是?' db.commit() db.close() return result
stocklist = db_session.query(models.StockList).filter( models.StockList.name.notlike('%ST%')).all() else: for code in code_list: stock = db_session.query(models.StockList).filter( models.StockList.code == code).first() if stock: stocklist.append(stock) return stocklist if __name__ == '__main__': models.init_db() db_session = models.DBSession() # 除了st的全部股票列表 # stocklist = db_session.query(models.StockList).filter(models.StockList.name.notlike('%ST%')).all() # stocklist = get_stock_list_by_day_percentage('2018-11-05', 'upper', 7) # import pdb;pdb.set_trace() stocklist = get_stock_list_by_code_list(['603997'], all=True) stocks_analises(stocklist, date='2018-11-05', up_gt=6, interval=12, offset=2, start='2018-09-31',
def all_item(): session = models.DBSession() bills = session.query(models.Bill).all() data = map(serialize_bill, bills) return {'data': data}
def single_item(): id = request.GET.get('id') session = models.DBSession() bill = session.query(models.Bill).get(id) data = serialize_bill(bill) return data
def add_language(): session = models.DBSession() language = models.Language(name='en') session.add(language) session.flush()
def detail(rev_id): session = models.DBSession() rev = session.query(models.BillRevision).get(rev_id) return {'rev': rev}