--Todoixx, Wundexxx-Avant de dire, pouvez-vous utiliser Outlook?
――Si vous créez une source avec Python, vous pouvez coopérer de différentes manières et vous êtes libre en fonction de vos idées --Peut également être utilisé comme notification
Vimmer?
win32com.client --Préparez win32com.client pour faire fonctionner Outlook --Dans l'environnement Anaconda, il est inclus par défaut, donc c'est ok la mort
La source
Outlook_alert_vim.py
# coding: utf-8
import pytz
import sys
from datetime import datetime, timedelta
import win32com.client as wcl
def win_time_norm(d):
    '''
Convertir au format d'heure Outlook
    :param d: Datetime
    :return: Type pytx Datetime
    '''
    date = pytz.utc.localize(d)
    return date
def post_outlook_task(task_list):
    '''
Enregistrer les tâches dans Outlook
・ Win32com.Préparer le client
・ Anaconda est inclus par défaut
    out_task.DueDate = s_win_day
・ Si vous définissez la date sur aujourd'hui, la notification peut être utilisée à la place.
・ Si la date limite est fixée, e_win_Inscription jour
・ Edday(5 jours)で5 jours後アラートにしてる
    :param task_list:Soumettez la première ligne de texte dans VIM
    '''
    stday = datetime.today()
    edday = datetime.today() + timedelta(days=5)
    s_win_day = win_time_norm(stday)
    e_win_day = win_time_norm(edday)
    outlook = wcl.Dispatch("Outlook.Application")
    for task in task_list:
        out_task = outlook.CreateItem(3)
        out_task.Subject = task[0]
        out_task.Body = task[1]
        out_task.StartDate = s_win_day
        out_task.DueDate = s_win_day
        # out_task.DueDate = e_win_day
        out_task.ReminderSet = True
        out_task.Save()
def main(args):
    filename = str(args[0])
    with open(filename, mode="r", encoding='utf-8') as fh:
        data = fh.readlines()
    data = [t.strip().strip('\n') for t in data if t]
    #Je peux m'inscrire en continu(Je n'ai pas besoin de cet exemple)
    task_list = []
    task_list.append((data[0], "\n".join(data)))
    # task_list.append(("test subject","body row1 \n body row2"))
    post_outlook_task(task_list)
if __name__ == "__main__":
    main(sys.argv[1:])
Spécifiez vous-même l'emplacement de s: python_file.
_vimrc
"outlook_task_vim"{{{
function! s:outlook_posttask_vim()"
    let s:python_file = "D:/Outlook_alert_vim.py"
    let s:file = tempname()
    silent execute ":write " . s:file
    silent execute "!python " . s:python_file . ' ' . s:file
    call delete(s:file)
    unlet! s:file
    unlet! s:py_script
endfunction augroup END"
command! -nargs=0 PostOutlookTask call s:outlook_posttask_vim()
"}}}
        Recommended Posts