Yado_tech

旅館+ITとはなんぞ

モーニングコールを作る② AGIから登録

とりまスクリプトのみ

from asterisk.agi import *

#ロジック部分。
#AGIのインスタンス化
agi = AGI()
roomNo = agi.env['agi.callerid']
t_time = []

while True:
    t_time.append(agi.wait_for_digit(-1))

    #数字が4つになったら登録して切断する
    if len(t_time) == 4:
        makedate(t_time,roomNo)
        agi.hangup()

#数字4つを元に時刻を作ってSQLITEに登録する
def makedate(t_time,roomNo):
    from sqlalchemy.ext.automap import automap_base
    from sqlalchemy.orm import sessionmaker
    from sqlalchemy import create_engine
    import datetime
    #tableの作成
    engine= create_engine("sqlite:///test1.sqlite")
    base = automap_base()
    base.prepare(engine,reflect = True)
    table = base.classes.wakeup

    #sessionの作成

    session = sessionmaker(bind=engine)()
    
    now = datetime.datetime.now()
    tomorrow =now +  datetime.timedelta(days = 1)
    
    #13時から24時までに登録されたら明日のモーニングコール
    if (now.hour<24 and now.hour>13):
        target_date = tomorrow
    
    #それ以外なら当日のモーニングコール
    else:
        target_date = now
    
    wakeup_date =datetime.datetime(target_date.year,target_date.month,target_date.day,10*t_time[0]+t_time[1],10*t_time[2]+t_time[3])
    
    
    new_table = table(roomNo = roomNo , reg_Date = now, wake_Date = wakeup_date)
    session.add(new_table)
    session.commit()