Я пишу скрипт для преобразования экспортируемых расписаний из ibasketball.co.il в расписание ICS, которое будет использоваться совместно.
исходный файл: https://github.com/gilzellner/ibasketball_to_ics/blob/master/exported_data_2018-10-12_12-53.xls
код здесь: репозиторий github
данные подходят для даты и времени, но отображаются символы ивритакак это:\ u05d5 \ u05d3 \ u05e9 \ u05e8 \ u05d5 \ u05df '
вот мой код:
import xlrd
from ics import Calendar, Event
from datetime import datetime, timedelta
import dateutil
workbook = xlrd.open_workbook('/home/gilzellner/Downloads/exported_data_2018-10-12_12-53.xls')
sheet = workbook.sheet_by_index(0)
schedule = []
for rx in range(sheet.nrows):
if 'number' in str(sheet.row(rx)[0]):
game = {}
game['date'] = str(sheet.row(rx)[2]).replace('text:', '').replace('u', '').replace('\'', '')
game['time'] = str(sheet.row(rx)[3]).replace('text:', '').replace('u', '').replace('\'', '')
game['home'] = str(sheet.row(rx)[4]).replace('text:', '').encode('utf-8')
game['away'] = str(sheet.row(rx)[5]).replace('text:', '').encode('utf-8')
game['location'] = str(sheet.row(rx)[6]).replace('text:', '').encode('utf-8')
schedule.append(game)
for game in schedule:
game['start'] = datetime.strptime(game['date'] + ' ' + game['time'], '%d-%m-%Y %H:%M:%S')\
.replace(tzinfo=dateutil.tz.tzoffset('IST', 3*60*60))
game['end'] = game['start'] + timedelta(hours=2)
c = Calendar()
for game in schedule:
e = Event()
e.name = game['away'] + ' at ' + game['home']
e.begin = game['start']
e.end = game['end']
e.location = game['location']
c.events.add(e)
with open('my.ics', 'w') as my_file:
my_file.writelines(c)