reminders — 访问iOS上的提醒事项数据库
reminders
模块提供读/写访问iOS上的提醒事项数据库。提醒事项以Reminder
类和提醒列表Calendar
类进行呈现。
注意:当你第一次使用任何函数去访问你的提醒事项时,系统会自动弹出一个权限对话框。如果你拒绝访问,大多数函数会返回空数据。如果你之后改变了想法,你可以在系统设置的隐私页面设置Pythonista访问提醒事项的权限。
快速开始
浏览已存在的提醒
使用get_reminders()
浏览数据库中的所有提醒事项。通过completed
参数,你可以按照完成状态(是否已检查)来过滤列表中的提醒事项。
1 | import reminders |
添加新提醒
要添加新的提醒,只需创建一个Reminder
对象,设置其标题,截止日期等,然后调用其Reminder.save()
方法即可:
1 | import reminders |
您可以在提醒事项应用中拥有多个提醒列表。这些列表由Calendar
模块中的对象表示。如果没有明确指定,提醒将添加到默认列表/日历中。要将提醒添加到其他列表,只需通过相应Calendar
创建提醒。
以下示例查找标题为“Pythonista”的日历,并向其添加新的提醒(如果存在):
1 | import reminders |
添加日历
您还可以通过编程方式创建新的日历。本示例添加一个标题为Pythonista的日历(如果尚不存在):
1 | import reminders |
添加警报
提醒在实际提醒您某些事情(例如显示通知)时会更加有用。为此,您必须在提醒中添加一个或多个Alarm
。Alarm
可以在特定时间或在到达/离开某地理位置时触发。
首先让我们看看基于日期/时间的警报。本示例添加了一个新的提醒,该提醒会从现在开始25分钟后触发通知:
1 | import reminders |
要添加基于地理位置的警报,您必须指定标题,纬度和经度。您还可以指定半径,以及进入或离开该半径时是否应触发警报:
1 | import reminders |
函数
reminders.get_reminders(calendar=None, completed=None)
返回给定日历(或所有日历)中的所有提醒。
如果省略calendar参数或为None,则返回所有日历中的所有提醒。
completed
参数可以通过完成状态来过滤提醒:
- None (默认):返回所有提醒
- True :仅返回已完成(已检查)的提醒
- False :仅返回尚未完成的提醒
reminders.get_all_calendars()
返回所有可用日历(Calendar对象)的列表。日历代表提醒列表。
reminders.get_default_calendar()
返回默认情况下提醒所添加到的日历。
reminders.get_calendar(calendar_id)
通过唯一标识符返回特定日历。如果没有对应的日历则返回None
。
reminders.delete_reminder(reminder)
从数据库删除一个提醒。
如果删除成功则返回True
,否则返回Fales
。
reminders.delete_calendar(calendar)
从数据库删除一个日历。
如果删除成功则返回True
,否则返回Fales
。
Calendar 对象
class reminders.Calendar
Calendar
对象代表提醒列表。每个提醒都属于一个日历,你可以使用该get_reminders()
函数检索特定日历的提醒。要获取新提醒的默认日历,请使用get_default_calendar()
。每个日历都有一个唯一的标识符可以使你准确地(使用函数get_calendar()
)检索它,无论标题是否更改。
Calendar 属性
Calendar.title
提醒列表的标题(string/unicode)
Calendar.identifier
日历的唯一标识符(只读,string)。
即使它的标题可能已更改,它也可以用于以后检索此特定日历。
Calendar 方法
Calendar.save()
将更改保存到数据库(仅保存日历的元数据,必须使用对象自己的Reminder.save()
方法保存日历内的提醒)。
Reminder 对象
class reminders.Reminder([calendar])
Reminder
对象表示列表中的单个提醒。提醒可以具有多个附加Alarm
对象,这些对象确定系统何时/何地/是否显示提醒通知。
提醒始终包含在Calendar
代表的提醒的列表中。如果你在初始化Reminder
时未指定特定Calendar
,则将会使用默认日历。
Reminder 属性
Reminder.alarms
与该提醒关联的Alarm
对象列表。
注意:该值表示副本/快照;除非您重新分配属性,否则就地更改列表不会更改警报。
Reminder.completed
提醒是否已完成(检查)(boolean)。
Reminder.completion_date
该提醒完成(检查)的日期,如果它尚未完成则为None
。
Reminder.due_date
提醒的截止日期。
注意:设置到期日期与设置警报不同。虽然提醒事项应用中显示了日期到期,但您也不会收到通知,除非您还添加了
Alarm
(通过设置提醒的alarms
属性)。
Reminder.notes
提醒的其他说明 (string/unicode)。
Reminder.priority
提醒的优先级(0 =无优先级,1 =最高优先级,9 =最低优先级)。
Reminder.title
提醒的标题(string/unicode)。
Reminder.url
与提醒关联的URL。
Reminder 方法
Reminder.save()
保存您对数据库所做的更改(例如,在更改title
或completed
属性后)。
Alarm 对象
class reminders.Alarm
Alarm
对象表示与提醒关联的警报。警报可以在特定时间触发,也可以在进入/离开地理位置时触发。您可以通过设置Reminder.alarms
属性将Alarm
与提醒相关联。
Alarm 属性
Alarm.date
触发警报的绝对日期(datetime对象)。
Alarm.location
基于地理位置的警报的标题,坐标和半径。该位置以3元组或4元组(title, latitude, longitude[, radius])
表示。默认情况下,半径设置为100m。
Alarm.proximity
确定进入或离开指定区域时是否触发基于位置的警报。可能的值是’enter
‘,’leave
‘和’none
‘。