Skip to content

supersjgk/pyoverleafbot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Overleaf Automation Bot to Appear Active (pyoverleafbot)

Overview

pyoverleafbot is built to help users appear active on collaborative Overleaf projects. It automates interactions with Overleaf.

Tech Stack

  • Python
  • Selenium

What can this be used for?

  • For PhD Students: Helps manage stress
  • Coffee Break: Set up the bot to run during breaks to keep your presence active.
  • Scheduled Runs: Schedule the bot to run at specific times to maintain activity on projects.

Why use Selenium rather than simple pyautogui?

  • Selenium is an automation tool
  • Selenium can interact directly with web applications in any browser
  • Selenium provides high level interaction with the web elements
  • Selenium can be used for web scraping
  • Selenium scripts can be used in Headless Mode

Implementations

  • Platforms:
    • Windows (Currently only implemented for Windows OS)
      • Robust Login:
        • Windows Credential Manager (using email & password) + Store session information for faster login
        • Gmail login
      • Browsers:
        • Chrome
        • Others
      • Scheduling (in progress):
        • Scheduled Runs when power on (logged in/logged out)
        • Scheduled Runs when power off
      • Functionalities:
        • Fully automated
        • Manage credentials securely
        • Select project you want to work on
        • Appear active
        • Headless Mode
    • Linux (in progress)
    • Mac (in progress)

One time setup

  • Prerequisites: Windows with Python and Chrome browser installed.
  • Clone the repository: git clone https://github.com/supersjgk/pyoverleafbot
  • cd pyoverleafbot
  • Install the dependencies: pip install -r requirements.txt
  • cd pyoverleafbot
  • Set Credentials in Windows Credential Manager by running: python credential_manager.py set OverleafBot
  • Run the script:
    • The Bot displays the available overleaf projects and prompts you to select a project: python script.py
    • To run the script in headless mode (Uses less resources, Browser GUI will not be displayed, the script still runs normally), use argument: --headless 1
    • If you already know the Overleaf Project ID: python script.py --project_id <Project ID>
    • If you want to appear active for x minutes (default 5 minutes), use the argument --duration <x>
    • The bot repeatedly selects a random line (every 5 to 10 seconds) in the project to appear active. To override default values, use the arguments: --min_change_time <min_seconds> --max_change_time <max_seconds>. It is recommended to set them to atleast 45 and 60, respectively to make it look more natural.

Something not working?

Releases

No releases published

Packages

No packages published

Languages