Python:会議時間をCrontabに設定し、自動Zoom出席する
事前にスケジュールがわかっているズーム会議の時間設定をcrontabに渡し、会議時間にZoomが立ち上がる設定コードをPythonで実装する。自動でZoom会議に入出するコードは、前記事のコードを使う。
crontabの起動には、subprocessを使い、pyautoguiで時間設定とコマンドを書き込む手順となる。
初めに、Meeting IDと会議時間、会議日程、Passcodeが必要な場合はPasscodeをmain.pyに渡す。main.pyは、会議日程をcrontab仕様に変換し、crontabに実行命令とともに書き込む。
実際にZoomを起動するコードを呼び出すのは、main_zoom.pyでMeeting IDと会議時間、Passcodeを引数とする。
main_zoom.pyの実装は以下のようになる。
if __name__ == '__main__':
import PyZoom as PZ
import argparse
# Create an ArgumentParser object
parser = argparse.ArgumentParser(description="Pass meeting details as arguments.")
# Add arguments
parser.add_argument("--MeetingID", required=True, help="Meeting ID (e.g., '880 1935 6472')")
parser.add_argument("--Passcode", default=None, help="Passcode for the meeting (optional)")
parser.add_argument("--MeetingTime", required=True, help="Time of the meeting (e.g., '0.5m')")
args = parser.parse_args()
print(args.MeetingID,args.MeetingTime,args.Passcode)
PZ.AutoZoom(args.MeetingID,args.MeetingTime,Passcode=args.Passcode)
これの実行を時間指定とともに、crontabに書き込むmain.pyが以下のコードとなる。
def DateToCron(MeetingDateTime):
import datetime
MeetingDT = datetime.datetime.strptime(MeetingDateTime, '%d/%m/%y %H:%M')
sunday_as_zero = (MeetingDT.weekday() + 1) % 7
return f'{MeetingDT.minute} {MeetingDT.hour} {MeetingDT.day} {MeetingDT.month} {sunday_as_zero} '
if __name__ == '__main__':
import argparse
import pyautogui as pa
import os
import time
import subprocess
import PyZoom as PZ
from pathlib import Path
parser = argparse.ArgumentParser(description="Pass meeting details as arguments.")
# Adding arguments
parser.add_argument("--MeetingID", required=True, help="Meeting ID")
parser.add_argument("--Passcode", default=None, help="Passcode for the meeting")
parser.add_argument("--MeetingTime", required=True, help="Time of the meeting")
parser.add_argument("--MeetingSchedule", required=True, help="Date and time of the meeting")
args = parser.parse_args()
strArgs=f"--MeetingID='{args.MeetingID}' --MeetingTime='{args.MeetingTime}' --Passcode='{args.Passcode}'"
# Parse the arguments
strCron=DateToCron(args.MeetingSchedule)
home_directory = Path.home()
strCron=strCron+f'source {home_directory}/.zshrc; cd {home_directory}/path/to/mainzoomfile; python {home_directory}/path/to/mainzoomfile/main_zoom.py {strArgs} >> /tmp/test.txt 2>&1'
subprocess.run(["open", "-a", "Terminal"])
pa.write('crontab -e')
pa.press('enter')
time.sleep(2)
pa.press('i')
pa.write('PATH=/usr/sbin:/usr/bin:/bin:/usr/local/bin \nSHELL=/bin/zsh \n')
pa.write(strCron)
pa.press('esc') # Confirm save (if asked)
pa.write(':wq') # Exit nano
pa.press('enter')
実行は、
% python main.py --MeetingID='XXX XXXX XXXX' --Passcode='XXXXXX' --MeetingTime='30m' --MeetingSchedule='date/month/year H:M'
のように行う。これによって、crontabに書き込まれ、指定時間にChromeからZoomが起動される。
この記事が気に入ったらサポートをしてみませんか?