├── .gitattributes ├── .gitignore ├── README.md ├── info.py ├── join.py ├── main.py ├── requirements.txt └── timeTable.py /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | 6 | # C extensions 7 | *.so 8 | 9 | # Distribution / packaging 10 | .Python 11 | build/ 12 | develop-eggs/ 13 | dist/ 14 | downloads/ 15 | eggs/ 16 | .eggs/ 17 | lib/ 18 | lib64/ 19 | parts/ 20 | sdist/ 21 | var/ 22 | wheels/ 23 | pip-wheel-metadata/ 24 | share/python-wheels/ 25 | *.egg-info/ 26 | .installed.cfg 27 | *.egg 28 | MANIFEST 29 | 30 | # PyInstaller 31 | # Usually these files are written by a python script from a template 32 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 33 | *.manifest 34 | *.spec 35 | 36 | # Installer logs 37 | pip-log.txt 38 | pip-delete-this-directory.txt 39 | 40 | # Unit test / coverage reports 41 | htmlcov/ 42 | .tox/ 43 | .nox/ 44 | .coverage 45 | .coverage.* 46 | .cache 47 | nosetests.xml 48 | coverage.xml 49 | *.cover 50 | *.py,cover 51 | .hypothesis/ 52 | .pytest_cache/ 53 | 54 | # Translations 55 | *.mo 56 | *.pot 57 | 58 | # Django stuff: 59 | *.log 60 | local_settings.py 61 | db.sqlite3 62 | db.sqlite3-journal 63 | 64 | # Flask stuff: 65 | instance/ 66 | .webassets-cache 67 | 68 | # Scrapy stuff: 69 | .scrapy 70 | 71 | # Sphinx documentation 72 | docs/_build/ 73 | 74 | # PyBuilder 75 | target/ 76 | 77 | # Jupyter Notebook 78 | .ipynb_checkpoints 79 | 80 | # IPython 81 | profile_default/ 82 | ipython_config.py 83 | 84 | # pyenv 85 | .python-version 86 | 87 | # pipenv 88 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. 89 | # However, in case of collaboration, if having platform-specific dependencies or dependencies 90 | # having no cross-platform support, pipenv may install dependencies that don't work, or not 91 | # install all needed dependencies. 92 | #Pipfile.lock 93 | 94 | # celery beat schedule file 95 | celerybeat-schedule 96 | 97 | # SageMath parsed files 98 | *.sage.py 99 | 100 | # Environments 101 | .env 102 | .venv 103 | env/ 104 | venv/ 105 | ENV/ 106 | env.bak/ 107 | venv.bak/ 108 | 109 | # Spyder project settings 110 | .spyderproject 111 | .spyproject 112 | 113 | # Rope project settings 114 | .ropeproject 115 | 116 | # mkdocs documentation 117 | /site 118 | 119 | # mypy 120 | .mypy_cache/ 121 | .dmypy.json 122 | dmypy.json 123 | 124 | # Pyre type checker 125 | .pyre/ 126 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # classBot 2 | classBot written in python, by www.youtube.com/HasanImam 3 | -------------------------------------------------------------------------------- /info.py: -------------------------------------------------------------------------------- 1 | #Only for storing links and timings... Supported apps=> Zoom, Google Meet, Microsoft Teams and Cisco WebX 2 | #completed Final Version 3 | 4 | firstClass = ("08:30") 5 | secondClass = ("09:10") 6 | thirdClass = ("09:50") 7 | fourthClass = ("10:30") 8 | fifthClass = ("11:15") 9 | dummyclass = ("13:00") 10 | 11 | #Subscribe = "www.youtube.com/HasanImam" 12 | 13 | #enter links here 14 | english = ("https://") 15 | maths = ("https://") 16 | biology = ("https://") 17 | physics = ("https://") 18 | chemistry = ("https://") 19 | dummy = ("https://") -------------------------------------------------------------------------------- /join.py: -------------------------------------------------------------------------------- 1 | import info 2 | #import timeTable 3 | import time 4 | 5 | #For zoom make sure you have zoom client installed, and signed in. 6 | # Google meet and Microsoft support will be added soon 7 | 8 | def joinEnglish(): 9 | driver.get(english) 10 | time.sleep(60) #seconds 11 | alert = driver.switch_to_alert() 12 | alert.accept() 13 | time.sleep(1800) 14 | driver.quit() 15 | 16 | def joinPhysics(): 17 | driver.get(physics) 18 | time.sleep(60) #seconds 19 | alert = driver.switch_to_alert() 20 | alert.accept() 21 | time.sleep(1800) 22 | driver.quit() 23 | 24 | def joinChem(): 25 | driver.get(chemistry) 26 | time.sleep(60) #seconds 27 | alert = driver.switch_to_alert() 28 | alert.accept() 29 | time.sleep(1800) 30 | driver.quit() 31 | 32 | def joinMaths(): 33 | driver.get(maths) 34 | time.sleep(60) #seconds 35 | alert = driver.switch_to_alert() 36 | alert.accept() 37 | time.sleep(1800) 38 | driver.quit() 39 | 40 | def joinBio(): 41 | driver.get(biology) 42 | time.sleep(60) #seconds 43 | alert = driver.switch_to_alert() 44 | alert.accept() 45 | time.sleep(1800) 46 | driver.quit() 47 | 48 | def dummy(): 49 | driver.get(dummy) 50 | time.sleep(60) #seconds 51 | alert = driver.switch_to_alert() 52 | alert.accept() 53 | time.sleep(1800) 54 | driver.quit() 55 | -------------------------------------------------------------------------------- /main.py: -------------------------------------------------------------------------------- 1 | import datetime 2 | from selenium import webdriver 3 | import schedule 4 | import time 5 | from join import * 6 | import info 7 | 8 | driver = webdriver.Chrome('D:\\SERVER\\chromedriver.exe') 9 | e = datetime.datetime.now() 10 | 11 | #timeTable.py combined in main.py to simplfy working 12 | 13 | def monday(): 14 | schedule.every().monday.at(firstClass).do(joinEnglish()) 15 | schedule.every().monday.at(secondClass).do(joinMaths()) 16 | schedule.every().monday.at(thirdClass).do(joinBio()) 17 | schedule.every().monday.at(fourthClass).do(joinPhysics()) 18 | schedule.every().monday.at(fifthClass).do(joinChem()) 19 | 20 | def tuesday(): 21 | schedule.every().tuesday.at(firstClass).do(joinPhysics()) 22 | schedule.every().tuesday.at(secondClass).do(joinMaths()) 23 | schedule.every().tuesday.at(thirdClass).do(joinBio()) 24 | schedule.every().tuesday.at(fourthClass).do(joinChem()) 25 | schedule.every().tuesday.at(fifthClass).do(joinEnglish()) 26 | 27 | def wednesday(): 28 | schedule.every().wednesday.at(firstClass).do(joinEnglish()) 29 | schedule.every().wednesday.at(secondClass).do(joinChem()) 30 | schedule.every().wednesday.at(thirdClass).do(joinPhysics()) 31 | schedule.every().wednesday.at(fourthClass).do(joinMaths()) 32 | schedule.every().wednesday.at(fifthClass).do(joinMaths()) 33 | 34 | def thursday(): 35 | schedule.every().thursday.at(firstClass).do(joinEnglish()) 36 | schedule.every().thursday.at(secondClass).do(joinMaths()) 37 | schedule.every().thursday.at(thirdClass).do(joinEnglish()) 38 | schedule.every().thursday.at(fourthClass).do(joinChem()) 39 | schedule.every().thursday.at(fifthClass).do(joinBio()) 40 | 41 | def friday(): 42 | schedule.every().friday.at(firstClass).do(joinEnglish()) 43 | schedule.every().friday.at(secondClass).do(joinChem()) 44 | schedule.every().friday.at(thirdClass).do(joinPhysics()) 45 | schedule.every().friday.at(fourthClass).do(joinMaths()) 46 | schedule.every().friday.at(fifthClass).do(joinBio()) 47 | 48 | def dumm(): 49 | schedule.every().saturday.at(dummyClass).do(dummy()) 50 | 51 | while True: 52 | schedule.run_pending() 53 | time.sleep(1)#seconds 54 | 55 | 56 | # Code for Timetable.py ends here 57 | 58 | day = (e.strftime("%a")) 59 | print(day) 60 | 61 | if day=="Mon": 62 | monday() 63 | elif day=="Tue": 64 | tuesday() 65 | elif day=="Wed": 66 | wednesday() 67 | elif day=="Thu": 68 | thursday() 69 | elif day=="Fri": 70 | friday() 71 | elif day=="Sat": 72 | dumm() 73 | else: 74 | print("Its sunday bro") 75 | 76 | 77 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntrovertCoder-Youtube/classBot/586f0bb4b636873da65f0e5f638d9e37828fae54/requirements.txt -------------------------------------------------------------------------------- /timeTable.py: -------------------------------------------------------------------------------- 1 | # This file is combined with main.py to simplify working, check main.py line 31 --------------------------------------------------------------------------------