コード例 #1
0
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}
コード例 #2
0
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()
コード例 #3
0
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()
コード例 #4
0
ファイル: main.py プロジェクト: daiybh/wxBot
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
コード例 #5
0
    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 = {}
コード例 #6
0
ファイル: __init__.py プロジェクト: osnipezzini/EServices
    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
コード例 #7
0
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()
コード例 #8
0
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}
コード例 #9
0
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()
コード例 #10
0
 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
コード例 #11
0
ファイル: analyse.py プロジェクト: shichao1986/daily_exercise
        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',
コード例 #12
0
def all_item():
    session = models.DBSession()
    bills = session.query(models.Bill).all()
    data = map(serialize_bill, bills)
    return {'data': data}
コード例 #13
0
def single_item():
    id = request.GET.get('id')
    session = models.DBSession()
    bill = session.query(models.Bill).get(id)
    data = serialize_bill(bill)
    return data
コード例 #14
0
def add_language():
    session = models.DBSession()
    language = models.Language(name='en')
    session.add(language)
    session.flush()
コード例 #15
0
def detail(rev_id):
    session = models.DBSession()
    rev = session.query(models.BillRevision).get(rev_id)
    return {'rev': rev}