atharva-lipare / ms-teams-auto-joiner Goto Github PK
View Code? Open in Web Editor NEWPython script to automatically join Microsoft Teams meetings appearing in your calendar.
Python script to automatically join Microsoft Teams meetings appearing in your calendar.
i think deploying on heroku or glitch is a perfect idea for those lazy to wake up and turn on the computer to run the script
Everything works perfectly but it enters back the meeting which it has just left on reloading. My teacher kept noticing me for joining and leaving the meeting several times and she caught me that i was using a bot XD . I am new to python and github both, just tried few editing but ended messing it up. Please help me out
I tried adding one more function:
def check_and_rejoin_meeting():
global curParticipants
global current_meeting
global about_to_join_meeting
joins = wait_and_find_elements_by_xpath('//button[.="Join"]', 3)
if len(joins) == 0: # no meeting scheduled
return
joins[-1].click() # join the latest meeting scheduled i.e if join buttons for 9, 10 A.M available, will join 10 A.M
elem = wait_and_find_element_by_xpath(
'//[@id="page-content-wrapper"]/div[1]/div/calling-pre-join-screen/div/div/div[2]/div[1]/div['
'2]/div/div/section/div[2]/toggle-button[1]/div/button')
about_to_join_meeting=browser.title
if about_to_join_meeting != current_meeting :
current_meeting=browser.title
if elem.get_attribute('aria-pressed') == 'true': # turn off camera
elem.click()
elem = wait_and_find_element_by_xpath('//[@id="preJoinAudioButton"]/div/button')
if elem.get_attribute('aria-pressed') == 'true': # turn off microphone
elem.click()
wait_and_find_element_by_xpath('//button[.="Join now"]').click() # join meeting
if(config['use_twilio']==True):
global check
global meeting_name
meeting_name=browser.title
check = 0
try:
client.messages.create(
to=config['your_no'],
from_=config['twilio_no'],
body=f"Hi {config['nickname']}, I joined the meeting named {meeting_name} at {datetime.now()}. Hope you're doing well"
)
except:
print('Twilio service failed')
print('Joined the meeting at {}'.format(datetime.now()))
sleep(60 * 5)
browser.execute_script("document.getElementById('roster-button').click()")
sleep(sleepDelay)
num_str = wait_and_find_elements_by_xpath(
'//span[@Class="toggle-number"][@ng-if="::ctrl.enableRosterParticipantsLimit"]')
if len(num_str) >= 2:
if num_str[1].text[1:-1] != '':
curParticipants = int(num_str[1].text[1:-1])
else:
browser.execute_script("document.getElementById('roster-button').click()")
else:
browser.get(TEAMS_URL)
browser.refresh()
sleep(5)
check_and_rejoin_meeting()
Hi! I modified the values as you have instructed in the config.Json and still the meeting doesn't end even though the number of minimum participants are crossed i.e., 50 (Input value). If the meeting isn't left it won't join any other meeting, I've checked the code and even tried tweaking it by changing default minimum value to 50. Nothing works, I've checked the code twice before executing, the data is working as login happens smoothly, the meetings joining is accurate too. Only issue is that it doesn't leave when the organizer (admin person) hasn't left but the meeting has less than minimum participants. I have noticed that its because it doesn't open the active participants to scan it in certain intervals. I hope you understood my situation and can help out. Thank you!
Google Browser sometimes stay in loop, and sometimes it does work.
Wish if it supported more web browsers- firefox, vivaldi
As the calendar view is switched to the "Day" view, the script works only for that day (i.e. the day on which the script is started).
Refreshing the page after some interval may be a solution for this.
Everything works fine but when chrome browser open it cannot join meeting also said no audio channel receiver found on cmd and continuously loop again and again..! i have put error from debug file.!
[1119/115014.628:ERROR:process_reader_win.cc(123)] NtOpenThread: {Access Denied} A process has requested access to an object, but has not been granted those access rights. (0xc0000022)
[1119/115014.937:ERROR:exception_snapshot_win.cc(99)] thread ID 140 not found in process
[1119/115015.110:ERROR:process_reader_win.cc(123)] NtOpenThread: {Access Denied} A process has requested access to an object, but has not been granted those access rights. (0xc0000022)
[1119/115015.110:ERROR:exception_snapshot_win.cc(99)] thread ID 4600 not found in process
[1119/115015.992:ERROR:process_reader_win.cc(123)] NtOpenThread: {Access Denied} A process has requested access to an object, but has not been granted those access rights. (0xc0000022)
[1119/115015.992:ERROR:exception_snapshot_win.cc(99)] thread ID 6164 not found in process
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.