มีวิธีใช้ Emacs ในการซิงค์กับ Google ปฏิทินและที่อยู่ติดต่อของ Google หรือไม่และเก็บสำเนาเฉพาะที่ไว้ในเครื่องเพื่อให้ฉันสามารถเข้าถึงพวกเขาออฟไลน์ได้หรือไม่?
มีวิธีใช้ Emacs ในการซิงค์กับ Google ปฏิทินและที่อยู่ติดต่อของ Google หรือไม่และเก็บสำเนาเฉพาะที่ไว้ในเครื่องเพื่อให้ฉันสามารถเข้าถึงพวกเขาออฟไลน์ได้หรือไม่?
คำตอบ:
ขออภัยฉันไม่สามารถให้คำตอบที่สมบูรณ์ ทั้งหมดที่ฉันมีคือคำแนะนำเกี่ยวกับเส้นทางที่เป็นไปได้ที่จะเดินลงไป
เส้นทางที่ง่ายที่สุดคือถ้าemacs-g-clientที่ Gilles พูดถึงในเวอร์ชั่น SU ของคำถามนี้ใช้งานได้ หากไม่ได้ผลฉันจะตรวจสอบสิ่งต่อไปนี้:
อย่างน้อยที่สุดคุณควรจะได้รับฟังก์ชั่นปฏิทินบางอย่างด้วยการเข้าถึง Google ปฏิทินของคุณโดยใช้ ical ฟังก์ชั่นicalendar-import-file
สามารถนำเข้าไฟล์ ical ไปยังไฟล์ emacs ไดอารี่ ( เอกสาร icalendar-import-file ) ดังนั้นในไฟล์. emacs คุณอาจมี emacs กระเพื่อมเล็กน้อยเพื่อรับไฟล์ google calendar ical และนำเข้าสู่ไดอารี่ของคุณ หากคุณจบลงด้วยการใช้โหมดองค์กรมีหลายวิธีในการรวมโหมดองค์กรกับโหมดไดอารี่
ฉันคิดว่าเป้าหมายสูงสุดคือการใช้ประโยชน์จาก gdata api ฉันไม่คิดว่ามีวิธีที่ง่ายในการเข้าถึงผู้ติดต่อของ Google นอก API นี้ มียูทิลิตีบรรทัดคำสั่งที่รองรับฟังก์ชั่นที่หลากหลายโดยใช้ API นี้เรียกว่าGoogle CLซึ่งในทางทฤษฎีสามารถใช้ในฟังก์ชั่นเสียงกระเพื่อม emacs บางอย่างเพื่อให้สามารถเข้าถึงผู้ติดต่อปฏิทินและบริการที่โฮสต์โดย Google อื่น ๆ ได้อย่างเต็มที่ อย่างไรก็ตามนี่อาจเป็นเรื่องยากกว่าการขีดเส้นใต้ไม่กี่บรรทัดลงใน. emac ของคุณ
สำหรับ Google Calendar ฉันมีการตั้งค่าการซิงค์ทางเดียวให้สำเร็จ Emacs ดึงปฏิทินของฉันเมื่อเริ่มต้นและถ่ายโอนในไดอารี่ emacs จากนั้นจะแสดงโดยโหมดองค์กรในวาระการประชุม แต่คุณสามารถตั้งค่าได้ตามที่คุณต้องการ
สำหรับการส่งกลับไปที่ Google ปฏิทินฉันยังไม่ได้ตั้งค่าอะไรเลยเพราะฉันไม่ต้องการมันมากนัก อย่างไรก็ตามฉันคิดว่ามันเป็นเรื่องง่ายที่จะมีฟังก์ชั่นที่เพิ่มรายการในไดอารี่และเรียกgoogleclเพื่อเพิ่มรายการในปฏิทิน Google ของคุณ
เพื่อดึงปฏิทินฉันมีสิ่งต่อไปนี้ใน. emacs ของฉัน (ไม่ใช่ว่านี่ไม่ใช่รหัสของฉันมันมาจากรายชื่อผู้รับจดหมายในโหมดองค์กร แต่ฉันจำไม่ได้ว่าฉันพบที่ใด)
(setq mark-diary-entries-in-calendar t)
(defun getcal (url)
"Download ics file and add to diary"
(let ((tmpfile (url-file-local-copy url)))
(icalendar-import-file tmpfile "~/diary" t)
(kill-buffer (car (last (split-string tmpfile "/"))))
)
)
(setq google-calendars '(
"http://www.google.com/calendar/ical/DFSDFSDFSDFASD/basic.ics"
"http://www.google.com/calendar/ical/SDFSADFSADFASD/basic.ics"
))
(defun getcals ()
(interactive)
(find-file "~/diary")
(flush-lines "^[& ]")
(dolist (url google-calendars) (getcal url))
(kill-buffer "diary"))
แทนที่"http://www.google.com/calendar/ical/DFSDFSDFSDFASD/basic.ics"
ด้วย URL ไปยังปฏิทินที่คุณต้องการดึงข้อมูล (คุณพบที่ด้านล่างของหน้าการตั้งค่าของแต่ละปฏิทินใน Google ปฏิทิน) คุณสามารถเพิ่มได้มากเท่าที่คุณต้องการ
ตอนนี้คุณสามารถโทรหา(getcals)
เมื่อคุณต้องการดึงปฏิทิน คุณสามารถใส่สิ่งนี้ลงใน. emac ของคุณเพื่อดำเนินการเมื่อเริ่มต้น แต่อาจทำให้การเริ่มต้นของคุณล่าช้า
หากต้องการให้โหมดองค์กรแสดงรายการไดอารี่ในวาระการประชุมเพียงเพิ่ม(setq org-agenda-include-diary t)
ใน. emacs ของคุณ ดูคู่มือโหมด orgสำหรับรายละเอียด
สำหรับการรวมกับผู้ติดต่อของ Google มีสคริปต์ของ Julien Danjou ซึ่งคุณสามารถเห็นการทำงานได้ที่นี่ (ที่เก็บ github อยู่ที่นี่ ):
ส่วนติดต่อของ google สำหรับส่วนขยาย Emacs อนุญาตให้แสดงที่อยู่ติดต่อ Google ของคุณได้โดยตรงภายใน Emacs
โปรดทราบว่ามีแนวโน้มที่จะใช้งานได้กับ Emacs อย่างน้อย 24 เท่านั้นเนื่องจากใช้ oauth2 ซึ่งเป็นส่วนหนึ่งของ GNU ELPA
emacs-calfwสามารถประสานกับปฏิทินใน.ics
รูปแบบiCal ( ) เช่น Google Calendar