我希望在给定条件下通过API调用供应商网站向我们的系统添加项目。我们有一个复制的数据库,我希望这个过程是自动化的。
令人惊讶的是,供应商要求您登录一个地址,然后导航到另一个地址以呼叫SEND,但我不认为该会话是持久的。
下面的代码是我正在尝试创建的SP,它允许我将其用于各种更新,而不仅仅是这种特定类型。
我到目前为止的代码是:
from datetime import datetime,timedelta
def weighteddiff(d2,d1,dawn,dusk,night_weight):
#if dusk is "before" dawn, switch roles
day_weight = 1
if dusk < dawn:
day_weight = night_weight
night_weight = 1
placeholder = dawn
dawn = dusk
dusk = placeholder
nighttime = dawn.total_seconds()/3600 + 24 - dusk.total_seconds()/3600
daytime = 24-nighttime
dt = d2-d1
total_hours = 0
total_hours += dt.days*daytime*day_weight + dt.days*nighttime*night_weight
d1 += timedelta(days=dt.days)
d1 -= dawn
d2 -= dawn
dawntime = datetime(d2.year,d2.month,d2.day,0)
dusktime = dawntime + dusk - dawn
if d1 < dusktime and d2 < dusktime:
total_hours += (d2-d1).total_seconds()/3600*day_weight
elif d1 < dusktime and d2 >= dusktime:
total_hours += (dusktime - d1).total_seconds()/3600*day_weight
total_hours += (d2 - dusktime).total_seconds()/3600*night_weight
elif d1 >= dusktime and d2 >= dusktime:
total_hours += (d2-d1).total_seconds()/3600*night_weight
else:
pass
return total_hours
weight = 0.5 #weight of nightime hours
#dawn and dusk supplied as timedelta from midnight
dawn = timedelta(hours=5,minutes=0,seconds=0)
dusk = timedelta(hours=19,minutes=4,seconds=0)
d1 = datetime(2017,10,23, 14)
d2 = datetime(2017,10,23, 22)
print("test1",weighteddiff(d2,d1,dawn,dusk,weight))
d1 = datetime(2016,10,22, 20)
d2 = datetime(2016,10,23, 20)
print("test2",weighteddiff(d2,d1,dawn,dusk,weight))
dawn = timedelta(hours=6,minutes=0,seconds=0)
dusk = timedelta(hours=1,minutes=4,seconds=0)
d1 = datetime(2017,10,22, 2)
d2 = datetime(2017,10,23, 19)
print("test3",weighteddiff(d2,d1,dawn,dusk,weight))
d1 = datetime(2016,10,22, 20)
d2 = datetime(2016,10,23, 20)
print("test4",weighteddiff(d2,d1,dawn,dusk,weight))