├── requirements.txt ├── run.bat ├── LICENSE ├── README.md └── main.py /requirements.txt: -------------------------------------------------------------------------------- 1 | pyautogui 2 | schedule -------------------------------------------------------------------------------- /run.bat: -------------------------------------------------------------------------------- 1 | "Path\to\your\python executable\python.exe" "Path\to\where\the\main.py\file\is\located\main.py" 2 | pause -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Prashanth Umapathy 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Meet-Automation ![Hits](https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https://github.com/prashanth-up/Meet-Automation&title=You+Like+it?) 2 | Another simple automation script to join all the boring meetings/classes in Google Meet, while sleeping. 3 | This too is for all the lazy peeps who are dreading the morning classes. 4 | 5 | ## Requirements 6 | - [x] Installed python version above 3.5 7 | - [x] Installed pyautogui package 8 | - [x] Installed schedule package 9 | - [x] Chrome Web Browser (Signed in) 10 | 11 | #### To install the above packages : 12 | + To [Download Python](https://www.python.org/downloads/) 13 | + `pip install pyautogui` 14 | + `pip install schedule` 15 | 16 | Alternatively you can just run `pip install -r requirements.txt` 17 | 18 | # How to run the program : 19 | ##### Clone this repository and unzip it 20 | 21 | + Make sure you are logged in to your browser 22 | + Make sure you are signed into the account to attend the meeting 23 | 24 | * Open the run.bat and set the paths 25 | * First Path - "Path to where python is located" 26 | * Second Path - "Path to where the main.py is located" 27 | * Run the `run.bat` to run the batch file 28 | 29 | Alternatively you can also run the `main.py` for the same result but `run.bat` is preferred 30 | 31 | ## For Slower computers/laptops : 32 | 33 | + By default, will work on all PCs without any error 34 | + Just in case, increase the timer 35 | + Increase the time.sleep value until it matches your PC 36 | 37 | ## How to contribute 38 | + Create an issue 39 | + Create a pull request 40 | + If you wanna make a GUI out of this 41 | 42 | 43 | ## For any bugs/fixes: 44 | ##### Please create an issue in this repo and I'll try to fix it as soon as I can 45 | 46 | ## Upcoming Updates: 47 | - [ ] New GUI Interface for the inputs instead of CLI 48 | - [ ] Automation to create a task in the Task Scheduler for running the Script 49 | - [ ] Create an exe out of this when GUI added. 50 | 51 | # Have Fun Lazy People 52 | _*Drop a ⭐ if you're gonna sleep peacefully*_ 53 | 54 | 55 | -------------------------------------------------------------------------------- /main.py: -------------------------------------------------------------------------------- 1 | # Made By Prashanth Umapathy 2 | # Specialises in Extreme Laziness 3 | 4 | # Very important imports 5 | import webbrowser, time 6 | import pyautogui as pag 7 | import schedule 8 | 9 | # Meeing info 10 | url = str(input('Enter the meeting id :')) 11 | meeting_time = int(input('Enter total minutes of the meeting: ')) 12 | comment_ask = input('Type yes/no to print your attendance info in comments :') 13 | meet_join_time = input('Enter meeting time in 24hour format (eg: "15:30" for 3:30pm): ') 14 | 15 | 16 | meet_join_time = str(meet_join_time) 17 | 18 | # Comment Check 19 | if (comment_ask.lower() == 'yes' or 'y' or 'Y'): 20 | print("Please Enter the following details to be shown in comments") 21 | name = input('Please enter your name :') 22 | regNo = input('Enter your register number :') 23 | classSec = input('Enter your Year and Section :') 24 | foo = True 25 | else: 26 | foo = False 27 | 28 | # Windows 29 | chrome_path = 'C:/Program Files (x86)/Google/Chrome/Application/chrome.exe %s' 30 | 31 | 32 | # Opens the meeting ID 33 | def meeting_join(): 34 | webbrowser.get(chrome_path).open(url) 35 | 36 | time.sleep(4) 37 | 38 | pag.hotkey('ctrl','d') 39 | pag.hotkey('ctrl','e') 40 | 41 | time.sleep(3) 42 | 43 | for i in range(5): 44 | pag.press('tab') 45 | 46 | time.sleep(2) 47 | pag.press('enter') 48 | 49 | print("Session has started and will continue for %s minutes"%meeting_time) 50 | print('Press (Ctrl+c) to exit the program ') 51 | time.sleep(2) 52 | 53 | # Adds the comment in meeting 54 | def comment(name,regNo,classSec): 55 | time.sleep(15) 56 | pag.press('tab') 57 | time.sleep(1) 58 | pag.press('tab') 59 | time.sleep(1) 60 | pag.press('tab') 61 | time.sleep(1) 62 | pag.press('enter') 63 | 64 | time.sleep(4) 65 | 66 | pag.write(name, interval=0.1) 67 | time.sleep(0.5) 68 | pag.hotkey('shift','enter') 69 | pag.write(regNo, interval=0.1) 70 | time.sleep(0.5) 71 | pag.hotkey('shift','enter') 72 | pag.write(classSec, interval=0.1) 73 | pag.press('enter') 74 | 75 | # Where the wizards work 76 | def mainFunc(): 77 | meeting_join() 78 | if(foo): 79 | comment(name,regNo,classSec) 80 | time.sleep(meeting_time*60) 81 | pag.hotkey('ctrl','w') 82 | print('Meeting ended') 83 | 84 | if __name__ == "__main__": 85 | # Schedule it to the time given 86 | schedule.every().day.at("%s"%meet_join_time).do(mainFunc) 87 | print("Scheduling meeting at ",meet_join_time) 88 | 89 | while True: 90 | # Check whether any scheduled task is pending to run or not 91 | schedule.run_pending() 92 | time.sleep(1) --------------------------------------------------------------------------------