Git Product home page Git Product logo

1337w0rm / yeetmeet Goto Github PK

View Code? Open in Web Editor NEW
166.0 6.0 103.0 2.71 MB

YEET MEET is a telegram bot which can be deployed to a server, heroku or on your local machine. It can attend your Google Meet and Zoom classes for you. You can also schedule meetings and it will automatically join at the given time.

Python 100.00%
heroku chromedriver google-chrome zoom google meet googlemeet skipclasses google-meet python

yeetmeet's Introduction

YEET MEET

Telegram Group: https://t.me/YeetMeetTG

YEET MEET is a telegram bot which can be deployed to a server, heroku or on your local machine. It can attend your Google Meet and Zoom classes for you. You can also schedule meetings and it will automatically join at the given time.

Bot Commands

/help - Show avaliable commands
/meet - Command to join Google Meet classes or metting
/zoom - Command to join Zoom Meeting
/status - Sends screenshot of the web page
/exit - Exit Meeting
/timatable - Shows todays meeting schedule

Usage

Join Google Meeting
/meet https://meet.google.com/agr-ghts-ade

Get list of commands
/help

Join Zoom Meeting
/zoom 12354674654 ax56rR

Get screenshot of the web page
/status

Exit Google Meet or Zoom Meeting
/exit

If you've set SCHEDULER in config.py to True

Use /timetable to get todays schedule

BOT_TOKEN : You can get the BOT TOKEN from Bot Father on Telegram. Here is a guide on how to create and new bot and get it's BOT_TOKEN

SCHEDULER : If you want to use scheduler on bot set this to TRUE else set it to False

USERID : Set this to your Telegram User ID. ( You can use @userinfobot on Telegram for that )

Setup Scheduler

If you want to use Scheduler set SCHEDULER to True in config.py

  1. cd YeetMeet
  2. cd bot
  3. python3 schedule.py

The scheduler.py script will guide you to setup schedule for your meetings. It stores the schedule in a CSV file.

Deploy to Linux Machine and Linux Server

You would need:

  1. Geckodriver and Firefox installed on your system.
  2. Python 3.7+ and pip3 installed.

To run it locally:

  1. git clone https;//github.com/1337w0rm/YeetMeet.git
  2. cd YeetMeet
  3. python3 -m pip install -r requirements.txt
  4. Rename YeetMeet/config.py to something else.
  5. Rename YeetMeet/RunLocallyConfig.py to config.py .
  6. Rename YeetMeet/bot/__init__.py to something else.
  7. Rename YeetMeet/bot/RunlocallyInit.py to __init__.py .
  8. Set your USERID, BOT_TOKEN and SCHEDULE value in config.py .
  9. ( You can get your USERID from @userinfobot from Telegram, and BOT_TOKEN from @BotFather from Telegram. )
  10. python3 chromium.py

Deploy to Heroku

You would need :

  1. Firefox, for making a profile your YeetMeet app will use.
  2. Heroku CLI and Heroku Account.
  3. Git installed.
  4. Some patience.
  5. For remaining instructions, please read this. or, watch video tutorials we posted on the telegram group.

Managing Heroku's Dynos so that your bot won't stop at near the end of the month

Heroku gives 500 hours/month for free

And, a month has 720 hours

So, your app would probably stop working earlier than the end of the month

To prevent that, you can

heroku ps:scale worker=0

When you're not using it, that command will stop the app

And again, when you want to start it ,

heroku ps:scale worker=1

Stopping app when you are not using it, will save hours/month (heroku calls it dynos) for you, so you won't have to redeploy, or will have to wake up early for classes when the end of month is near :)

Also, you can do this ( turning app off or on ) right from your phone on Termux ( Turning on PC just for this might be pain in ass for some people ), so, if you don't know much regarding this, and you want a tutorial, you can ask us out on telegram group.

yeetmeet's People

Contributors

1337w0rm avatar frost2k5 avatar vanshsantoshi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

yeetmeet's Issues

Can't join Google meet !

When I use this command
/meet <meeting_url>

I get this error message from my bot :

Message: no such element: Unable to locate element: {"method":"xpath","selector":"//span[@Class='NPEfkd RveJvd snByac' and contains(text(), 'Join now')]"}(Session info: headless chrome=87.0.4280.88)

On the screenshot page it says :

You can't join this video call
No one can join the meeting unless invited or admitted by host

Normally If I'd click the link and open the meet app it waits until I get accepted by host, but it's not going like that, it's not waiting to get accepted rather giver an error instantaneously

Feature add

Possible to add Record meeting..??and to any media server like Google Drive something!!

[Enhancement] Multiple users

Please can you add the ability to add multiple accounts from the start and open each account meeting in incogneto mode

Question

When I run python chromium.py in my server,it shows this error:

Traceback (most recent call last):
  File "chromium.py", line 3, in <module>
    from telegram.ext import CommandHandler, Job, run_async
ImportError: No module named telegram.ext

How can i fix it?

record

can i record sessions ?

Feature request

Can you add feature for attending microsoft teams meating?

.

nothing

Login Info

Is there any risk of login to google meet through stored .pkl file again and again, something like leaking of id, password

Zoom cookies expire after a day

Zoom cookies stored in pkl files get expired after 24 hours and the user have to relogin again to use it.

If anybody could figure out a workaround for this, such that the cookies gets refreshed automatically and the user don't have to relogin again after 24 hours

ValueError: `token` or `bot` must be passed

Traceback (most recent call last): File "chromium.py", line 21, in <module> updater = Updater(token = Config.BOT_TOKEN, use_context=True) File "/usr/local/lib/python3.7/dist-packages/telegram/ext/updater.py", line 122, in __init__ raise ValueError('tokenorbotmust be passed') ValueError:tokenorbotmust be passed
I want to mention that i did set everything in config.py correctly.

Help

root@instance-20210712-1350:/home/ubuntu/YeetMeet# pip install -r requirements.txt
Requirement already satisfied: attrs==19.3.0 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 1)) (19.3.0)
Requirement already satisfied: blinker==1.4 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 2)) (1.4)
Requirement already satisfied: certifi==2019.11.28 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 3)) (2019.11.28)
Requirement already satisfied: chardet==3.0.4 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 4)) (3.0.4)
Requirement already satisfied: cloud-init==21.2 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 5)) (21.2)
Requirement already satisfied: colorama==0.4.4 in /usr/local/lib/python3.8/dist-packages (from -r requirements.txt (line 6)) (0.4.4)
Requirement already satisfied: configobj==5.0.6 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 7)) (5.0.6)
Requirement already satisfied: cryptography==2.8 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 8)) (2.8)
Requirement already satisfied: cupshelpers==1.0 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 9)) (1.0)
Requirement already satisfied: dbus-python==1.2.16 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 10)) (1.2.16)
Requirement already satisfied: decorator==5.0.9 in /usr/local/lib/python3.8/dist-packages (from -r requirements.txt (line 11)) (5.0.9)Requirement already satisfied: defer==1.0.6 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 12)) (1.0.6)
Requirement already satisfied: distro==1.4.0 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 13)) (1.4.0)
Requirement already satisfied: distro-info===0.23ubuntu1 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 14)) (0.23ubuntu1)
Requirement already satisfied: entrypoints==0.3 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 15)) (0.3)
Requirement already satisfied: future==0.18.2 in /usr/local/lib/python3.8/dist-packages (from -r requirements.txt (line 16)) (0.18.2)
Requirement already satisfied: httplib2==0.14.0 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 17)) (0.14.0)
Requirement already satisfied: idna==2.8 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 18)) (2.8)
Requirement already satisfied: importlib-metadata==1.5.0 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 19)) (1.5.0)
Requirement already satisfied: Jinja2==2.10.1 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 20)) (2.10.1)
Requirement already satisfied: jsonpatch==1.22 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 21)) (1.22)
Requirement already satisfied: jsonpointer==2.0 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 22)) (2.0)
Requirement already satisfied: jsonschema==3.2.0 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 23)) (3.2.0)
Requirement already satisfied: keyring==18.0.1 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 24)) (18.0.1)
Requirement already satisfied: language-selector==0.1 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 25)) (0.1)
Requirement already satisfied: launchpadlib==1.10.13 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 26)) (1.10.13)
Requirement already satisfied: lazr.restfulclient==0.14.2 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 27)) (0.14.2)
Requirement already satisfied: lazr.uri==1.0.3 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 28)) (1.0.3)
Requirement already satisfied: macaroonbakery==1.3.1 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 29)) (1.3.1)
Requirement already satisfied: MarkupSafe==1.1.0 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 30)) (1.1.0)
Requirement already satisfied: more-itertools==4.2.0 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 31)) (4.2.0)
Requirement already satisfied: netifaces==0.10.4 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 32)) (0.10.4)
Requirement already satisfied: oauthlib==3.1.0 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 33)) (3.1.0)
Requirement already satisfied: pause==0.2 in /usr/local/lib/python3.8/dist-packages (from -r requirements.txt (line 34)) (0.2)
Requirement already satisfied: pbr==5.6.0 in /usr/local/lib/python3.8/dist-packages (from -r requirements.txt (line 35)) (5.6.0)
Requirement already satisfied: pexpect==4.6.0 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 36)) (4.6.0)
Requirement already satisfied: protobuf==3.6.1 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 37)) (3.6.1)
Requirement already satisfied: psutil==5.7.2 in /usr/local/lib/python3.8/dist-packages (from -r requirements.txt (line 38)) (5.7.2)
Requirement already satisfied: pycairo==1.16.2 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 39)) (1.16.2)
Requirement already satisfied: pycups==1.9.73 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 40)) (1.9.73)
Requirement already satisfied: PyGObject==3.36.0 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 41)) (3.36.0)
Requirement already satisfied: PyJWT==1.7.1 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 42)) (1.7.1)
Requirement already satisfied: pylivestream==1.11.1 in /usr/local/lib/python3.8/dist-packages (from -r requirements.txt (line 43)) (1.11.1)
Requirement already satisfied: pymacaroons==0.13.0 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 44)) (0.13.0)
Requirement already satisfied: PyNaCl==1.3.0 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 45)) (1.3.0)
Requirement already satisfied: pyOpenSSL==19.0.0 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 46)) (19.0.0)
Requirement already satisfied: pyRFC3339==1.1 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 47)) (1.1)
Requirement already satisfied: pyrsistent==0.15.5 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 48)) (0.15.5)
Requirement already satisfied: pyserial==3.4 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 49)) (3.4)
Requirement already satisfied: pyte==0.8.0 in /usr/local/lib/python3.8/dist-packages (from -r requirements.txt (line 50)) (0.8.0)
Requirement already satisfied: python-apt==2.0.0+ubuntu0.20.4.5 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 51)) (2.0.0+ubuntu0.20.4.5)
Requirement already satisfied: python-debian===0.1.36ubuntu1 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 52)) (0.1.36ubuntu1)
Requirement already satisfied: python-telegram-bot==12.5.1 in /usr/local/lib/python3.8/dist-packages (from -r requirements.txt (line 53)) (12.5.1)
Requirement already satisfied: pytz==2019.3 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 54)) (2019.3)
Requirement already satisfied: pyxattr==0.6.1 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 55)) (0.6.1)
Requirement already satisfied: PyYAML==5.3.1 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 56)) (5.3.1)
Requirement already satisfied: requests==2.22.0 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 57)) (2.22.0)
Requirement already satisfied: requests-unixsocket==0.2.0 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 58)) (0.2.0)
Requirement already satisfied: SecretStorage==2.3.1 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 59)) (2.3.1)
Requirement already satisfied: selenium==3.141.0 in /usr/local/lib/python3.8/dist-packages (from -r requirements.txt (line 60)) (3.141.0)
Requirement already satisfied: simplejson==3.16.0 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 61)) (3.16.0)
Requirement already satisfied: six==1.14.0 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 62)) (1.14.0)
Requirement already satisfied: sos==4.1 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 63)) (4.1)
Requirement already satisfied: ssh-import-id==5.10 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 64)) (5.10)
Requirement already satisfied: systemd-python==234 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 65)) (234)
Requirement already satisfied: testresources==2.0.1 in /usr/local/lib/python3.8/dist-packages (from -r requirements.txt (line 66)) (2.0.1)
Requirement already satisfied: thefuck==3.31 in /usr/local/lib/python3.8/dist-packages (from -r requirements.txt (line 67)) (3.31)
Requirement already satisfied: tornado==6.1 in /usr/local/lib/python3.8/dist-packages (from -r requirements.txt (line 68)) (6.1)
Requirement already satisfied: unattended-upgrades==0.1 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 69)) (0.1)
Requirement already satisfied: urllib3==1.25.8 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 70)) (1.25.8)
Requirement already satisfied: wadllib==1.3.3 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 71)) (1.3.3)
Requirement already satisfied: wcwidth==0.2.5 in /usr/local/lib/python3.8/dist-packages (from -r requirements.txt (line 72)) (0.2.5)
Requirement already satisfied: youtube-dl==2020.3.24 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 73)) (2020.3.24)
Requirement already satisfied: zipp==1.0.0 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 74)) (1.0.0)
Requirement already satisfied: setuptools in /usr/lib/python3/dist-packages (from launchpadlib==1.10.13->-r requirements.txt (line 26)) (45.2.0)
root@instance-20210712-1350:/home/ubuntu/YeetMeet# python chromium.py
Traceback (most recent call last):
  File "chromium.py", line 3, in <module>
    from telegram.ext import CommandHandler, Job, run_async
ImportError: No module named telegram.ext

I run it,but it shows this result,can anyone help me

Feature needed

Can you add a feature that after several member exits the bot exits the meeting

timetable not working

i follow your guidlines but its not working for timetable its not showing any upcoming class / meeting plz fix it

Unable to login from my local machine

I have tried multiple step to login from my local machine

  • I tried to run the python app using python3 chromium.py but it didnt run
  • I tried heroku local and heroku local worker in cmd but it still didnt work

can you help me around this please

Not really an issue but

my schedule i'm trying to use alternates between two everyday and it also goes over weekends like if it was day 1 on friday monday is day 2 so what would be the best solution to get schedule setup

Mozilla

why don't you convert it to Mozilla geodriver it's better ?

[Help Needed] Creating `.pkl` file seperately.

This bot is amazing. I have successfully deployed it to heroku. All features are working perfectly but the login system is not working cause i didn't created a .pkl file. I don't have pc or laptop and that's why I'm not able to use selenium and other things, i just deployed it directly.
If there is any way to create the pkl files seperately please elaborate.
Thanks in advance ๐Ÿ˜Š

Gmeet is exiting for every 30 min

If we login a meeting and leave the bot without sending any request,the bot is gettng into sleep mode and the meeting is exited.
To conventionally deploy my bot , i used webhooks
updater.start_webhook(listen="0.0.0.0", port=int(PORT), url_path=str(Config.BOT_TOKEN))
updater.bot.setWebhook('heroku app link' + str(Config.BOT_TOKEN))
As i am using webhooks it is getting into sleep,if any request is not made for 30 min.

Feature request

Some features i would like to see..

  1. Push messages to chat
    2.see the participants list in google meet in telegram
  2. Deploy to railway.app

trying to understand some lines of code

i learned a lot from your code, but there is this one keyword that i cant understand,
on line 45, inside the restart() you have these
with open('restart.pickle', 'wb') as status: pickle.dump(restart_message, status)

does the restart.pickle refers to the function or it has to do something with the telegram api

Error occurred! Fix error and retry! "unable to set cookie"

Every time I send the command "/ meet [url]" the bot sends this error message on telegram and reboots.

Telegram Chat: "Error occurred! Fix error and retry!
Message: unable to set cookie
(Session info: chrome=90.0.4430.212)"

Log: "

python chromium.py

DevTools listening on ws://127.0.0.1:55554/devtools/browser/75b53719-1732-4f0f-9250-b95aecaca27d
2021-05-14 10:54:33,088 - root - INFO - Adding Google Meet meetings to schedule
Google meet schedule not found. Run schedule.py to add schedule or change SCHEDULE environment variable to 'False to turn off schedule'
2021-05-14 10:54:33,089 - root - INFO - Adding Zoom meetings to schedule
Zoom schedule not found. Run schedule.py to add schedule or change SCHEDULE environment variable to 'False' to turn off schedule
2021-05-14 10:54:33,089 - root - INFO - Bot started
[4060:11584:0514/105442.701:ERROR:device_event_log_impl.cc(214)] [10:54:42.702] USB: usb_device_handle_win.cc:1054 Failed to read descriptor from node connection: A device attached to the system is not functioning. (0x1F)
[4060:11584:0514/105442.703:ERROR:device_event_log_impl.cc(214)] [10:54:42.703] USB: usb_device_handle_win.cc:1054 Failed to read descriptor from node connection: A device attached to the system is not functioning. (0x1F)
2021-05-14 10:54:50,017 - root - INFO - DOING

"

After the last string of text ( - root - INFO - DOING), the bot stops working and restarts

Got Problem with Verification box.

I don't know how to describe the problem as try to make this ok while I'm trying to login into the link using my local computer gives some sort of error.Please check with it.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.