Я пытаюсь изменить код в фитон-скрипте для студии OBS, чтобы отображать даты наступающих событий из календаря Google. Но вывод в OBS Studio показывает только одну и ту же (последнюю) дату для каждого события. В журнале сценариев это показывается так, как должно быть ...
Пытаясь найти способ преобразовать элементы словаря в печать так, как я хотел бы показать, я наконец-то подумал, что все заработалотак, как я хотел.
Я новичок в Python и в основном только что искал ответы на вопросы, как решить, что мне нужно изменить в коде. Мне потребовались дни, чтобы узнать о datetime.datetime и о том, как strftime может работать вместе, и что мне нужно обновить Dateutil до более новой версии, чтобы не получать некоторые ошибки, которые я получил.
В любом случае, так как яЯ новичок в кодировании, и большая часть этого сценария была написана кем-то другим, мне несколько трудно понять, в чем заключается эта проблема. в журнале сценариев она работает так, как должно, но дата в «stime» становится одинаковой для каждого события, когда я отправляю его в «text» в OBS Studio.
Если кто-нибудь может помочь мне с решением этой проблемыЯ был бы очень счастлив.
# Time objects using datetime
dt_now = dt.utcnow()
now = dt.utcnow().isoformat() + 'Z' # 'Z' indicates UTC time
#Timeformat
locale.setlocale(locale.LC_TIME, "sv_SE") # swedish
tmfmt = '%d %B, %H:%M '
# Gets events currently happending by setting bounds to events happening within a second of current datetime
events = service.events().list(calendarId=cal_url, timeMin=now, timeMax=(dt_now+datetime.timedelta(7,1)).isoformat() +'Z',
maxResults=max_events, singleEvents=True, orderBy='startTime').execute()
# Logs the events to console
for event in events['items']:
mystart = (event['start']['dateTime'])
stime = dt.strftime(dtparse(mystart), format=tmfmt)
print(stime)
#print(datetime.datetime.utcnow().date())
#print (event['start']['dateTime'])
print(event['summary'])
#print(dt_now("%d %b, %Y"))
# Updates the text for each event
count = 0
stream_event_happening = False
record_event_happening = False
for event in events['items']:
if(count >= max_events):
break
text = stime + "\n" + event['summary']
settings = obs.obs_data_create()
obs.obs_data_set_string(settings, "text", text)
source = obs.obs_get_source_by_name(source_names[count])
obs.obs_source_update(source, settings)
obs.obs_data_release(settings)
obs.obs_source_release(source)
settings2 = obs.obs_data_create()
obs.obs_data_set_string(settings2, "file", "{}/{}.jpg".format(images_path, text))
source2 = obs.obs_get_source_by_name(image_sources[count])
obs.obs_source_update(source2, settings2)
obs.obs_data_release(settings2)
obs.obs_source_release(source2)
count += 1
text = stime + "\ n" + event ['summary']
показывает только одну и ту же дату, но разные события ...